From ae5bb0dc68ec9a0be23d2173cec320d5c41e79d1 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 28 五月 2025 09:05:57 +0800
Subject: [PATCH] Merge branch 'dev' of http://42.193.1.25:9521/r/lmk-shop-wx into dev

---
 uview-components/uview-ui/components/u-index-item/u-index-item.vue               |    0 
 uview-components/uview-ui/components/u-button/u-button.vue                       |    0 
 uview-components/uview-ui/libs/config/props/line.js                              |    0 
 uview-components/uview-ui/components/u-rate/u-rate.vue                           |    0 
 uview-components/uview-ui/components/u-search/props.js                           |    0 
 pages/mine/msgTips/main.vue                                                      |    1 
 pages/tabbar/home/template/tpl_goods.vue                                         |    1 
 uni_modules/uni-transition/readme.md                                             |   11 
 uni_modules/uni-load-more/components/uni-load-more/i18n/index.js                 |    8 
 uview-components/uview-ui/components/u-select/u-select.vue                       |    0 
 pages/mine/deposit/recharge.vue                                                  |    1 
 uni_modules/uni-popup/changelog.md                                               |   94 +
 uview-components/uview-ui/components/u-avatar-cropper/weCropper.js               |    0 
 uview-components/uview-ui/components/u-circle-progress/u-circle-progress.vue     |    0 
 uview-components/uview-ui/components/u-steps-item/props.js                       |    0 
 main.js                                                                          |    5 
 uview-components/uview-ui/components/u-dropdown-item/props.js                    |    0 
 uview-components/uview-ui/components/u-form/u-form.vue                           |    0 
 uview-components/uview-ui/components/u-list-item/u-list-item.vue                 |    0 
 uview-components/uview-ui/components/u-scroll-list/other.js                      |    0 
 components/verification/verification.vue                                         |    1 
 uview-components/uview-ui/libs/config/props/numberKeyboard.js                    |    0 
 uview-components/uview-ui/components/u-notify/props.js                           |    0 
 uview-components/uview-ui/libs/config/props/form.js                              |    0 
 pages/mine/myTracks.vue                                                          |    8 
 uview-components/uview-ui/libs/config/props/row.js                               |    0 
 uview-components/uview-ui/libs/config/props/switch.js                            |    0 
 uview-components/uview-ui/components/u-picker-column/props.js                    |    0 
 pages/tabbar/home/template/tpl_left_one_right_two.vue                            |    2 
 uni.scss                                                                         |    2 
 uview-components/uview-ui/libs/config/props/col.js                               |    0 
 pages/order/myOrder.vue                                                          |   11 
 uview-components/uview-ui/components/u-table/props.js                            |    0 
 pages/passport/wechatMPLogin.vue                                                 |    4 
 uview-components/uview-ui/index.scss                                             |    0 
 uview-components/uview-ui/libs/config/props/badge.js                             |    0 
 uview-components/uview-ui/components/u-swipe-action-item/nvue.js                 |    0 
 uview-components/uview-ui/libs/config/props/formItem.js                          |    0 
 uview-components/uview-ui/components/u-alert-tips/u-alert-tips.vue               |    0 
 uview-components/uview-ui/libs/function/throttle.js                              |    0 
 uview-components/uview-ui/components/u-album/props.js                            |    0 
 uview-components/uview-ui/components/u-alert/u-alert.vue                         |    0 
 uview-components/uview-ui/components/u-number-keyboard/props.js                  |    0 
 uview-components/uview-ui/components/u-keyboard/props.js                         |    0 
 uni_modules/uni-scss/styles/setting/_text.scss                                   |   24 
 uview-components/uview-ui/components/u-card/u-card.vue                           |    0 
 uview-components/uview-ui/libs/config/props/picker.js                            |    0 
 uview-components/uview-ui/components/u-text/u-text.vue                           |    0 
 uview-components/uview-ui/libs/config/props/countDown.js                         |    0 
 uview-components/uview-ui/components/u-skeleton/u-skeleton.vue                   |    0 
 uview-components/uview-ui/components/u-button/vue.scss                           |    0 
 uview-components/uview-ui/components/u-code-input/u-code-input.vue               |    0 
 uview-components/uview-ui/components/u-text/props.js                             |    0 
 uview-components/uview-ui/components/u-scroll-list/scrollWxs.wxs                 |    0 
 uview-components/uview-ui/components/u-parse/libs/trees.vue                      |    0 
 uview-components/uview-ui/components/u-switch/u-switch.vue                       |    0 
 uview-components/uview-ui/libs/config/props/parse.js                             |    0 
 uview-components/uview-ui/components/u-no-network/u-no-network.vue               |    0 
 uview-components/uview-ui/libs/config/props/avatar.js                            |    0 
 uview-components/uview-ui/components/u-tooltip/u-tooltip.vue                     |    0 
 uview-components/uview-ui/libs/function/trim.js                                  |    0 
 uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue         |  143 +
 uview-components/uview-ui/components/u-upload/utils.js                           |    0 
 pages/mine/address/address.vue                                                   |    1 
 uview-components/uview-ui/components/u-avatar-group/u-avatar-group.vue           |    0 
 uview-components/uview-ui/components/u-swiper-indicator/props.js                 |    0 
 uview-components/uview-ui/components/u-transition/transition.js                  |    0 
 uview-components/uview-ui/components/u-swipe-action/props.js                     |    0 
 uview-components/uview-ui/components/u-waterfall/u-waterfall.vue                 |    0 
 pages/tabbar/home/template/tpl_promotions_detail.vue                             |    1 
 uview-components/uview-ui/components/u-steps/props.js                            |    0 
 uview-components/uview-ui/libs/function/test.js                                  |    0 
 pages/mine/deposit/operation.vue                                                 |    1 
 pages/mine/set/securityCenter/securityCenter.vue                                 |    1 
 uview-components/uview-ui/components/u-sticky/props.js                           |    0 
 uview-components/uview-ui/components/u-swiper/u-swiper.vue                       |    0 
 uview-components/uview-ui/components/u-button/props.js                           |    0 
 pages/cart/payment/shareOrderGoods.vue                                           |    1 
 uview-components/uview-ui/libs/config/config.js                                  |    0 
 uview-components/uview-ui/components/u-tabs/props.js                             |    0 
 uview-components/uview-ui/libs/mixin/mixin.js                                    |    0 
 pages/passport/login.vue                                                         |    1 
 uview-components/pages/empty-page/empty-page.vue                                 |   22 
 uview-components/uview-ui/components/u-index-list/props.js                       |    0 
 uview-components/uview-ui/libs/function/addUnit.js                               |    0 
 uni_modules/uni-scss/styles/setting/_variables.scss                              |  146 +
 uview-components/uview-ui/libs/config/props/tag.js                               |    0 
 pages/tabbar/index/home.vue                                                      |  546 ++++-
 uview-components/uview-ui/components/u-loading-page/u-loading-page.vue           |    0 
 uview-components/uview-ui/libs/config/props/noticeBar.js                         |    0 
 uview-components/uview-ui/components/u-collapse-item/props.js                    |    0 
 pages/order/afterSales/afterSales.vue                                            |   10 
 pages/tabbar/home/template/tpl_notice.vue                                        |    1 
 uview-components/uview-ui/components/u-col/u-col.vue                             |    0 
 uview-components/uview-ui/libs/config/props/checkboxGroup.js                     |    0 
 uview-components/uview-ui/components/u--form/u--form.vue                         |    0 
 uview-components/uview-ui/components/u-album/u-album.vue                         |    0 
 uview-components/uview-ui/libs/luch-request/core/InterceptorManager.js           |    0 
 uview-components/uview-ui/libs/config/props/stepsItem.js                         |    0 
 uview-components/uview-ui/components/u-index-anchor/u-index-anchor.vue           |    0 
 uview-components/uview-ui/libs/config/props/alert.js                             |    0 
 pages/mine/msgTips/sysMsg/index.vue                                              |    1 
 pages/promotion/joinGroup.vue                                                    |    1 
 pages/mine/distribution/list.vue                                                 |   61 
 uview-components/uview-ui/libs/config/props/divider.js                           |    0 
 uview-components/uview-ui/libs/function/timeFrom.js                              |    0 
 uview-components/uview-ui/libs/luch-request/adapters/index.js                    |    0 
 uview-components/uview-ui/components/u-full-screen/u-full-screen.vue             |    0 
 uview-components/uview-ui/components/u-tag/u-tag.vue                             |    0 
 static/video/play.png                                                            |    0 
 uni_modules/uni-load-more/readme.md                                              |   14 
 uni_modules/uni-scss/readme.md                                                   |    4 
 pages/passport/wechatH5Login.vue                                                 |    1 
 uview-components/uview-ui/libs/config/props/listItem.js                          |    0 
 uview-components/uview-ui/components/u-row-notice/u-row-notice.vue               |    0 
 uview-components/uview-ui/components/u-section/u-section.vue                     |    0 
 uview-components/uview-ui/libs/config/props/noNetwork.js                         |    0 
 uni_modules/uni-popup/package.json                                               |   90 
 uview-components/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue       |    0 
 uview-components/uview-ui/components/u-dropdown/u-dropdown.vue                   |    0 
 uview-components/uview-ui/components/u-input/props.js                            |    0 
 uview-components/uview-ui/libs/util/city.js                                      |    0 
 uview-components/uview-ui/components/u-form/props.js                             |    0 
 uview-components/uview-ui/components/u-avatar-group/props.js                     |    0 
 uview-components/uview-ui/components/u-icon/u-icon.vue                           |    0 
 pages/order/afterSales/afterSalesDetailExpress.vue                               |    1 
 uview-components/uview-ui/components/u-button/nvue.scss                          |    0 
 uview-components/uview-ui/components/u-back-top/props.js                         |    0 
 pages/order/fillorder.vue                                                        |    1 
 uview-components/uview-ui/components/u-tabbar/props.js                           |    0 
 pages/product/product/goods/-goods-intro.vue                                     |    4 
 pages/tabbar/home/template/tpl_top_two_bottom_one.vue                            |    1 
 uview-components/uview-ui/libs/config/props/codeInput.js                         |    0 
 uni_modules/uni-transition/components/uni-transition/uni-transition.vue          |  289 +++
 uview-components/uview-ui/components/u-count-down/utils.js                       |    0 
 uview-components/uview-ui/libs/config/props/carKeyboard.js                       |    0 
 uview-components/uview-ui/components/u-swipe-action-item/wxs.js                  |    0 
 pages/product/product/goods/-goods-swiper.vue                                    |    4 
 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json                     |    7 
 uni_modules/uni-scss/styles/setting/_border.scss                                 |    3 
 uview-components/uview-ui/components/u-loading/u-loading.vue                     |    0 
 uview-components/uview-ui/libs/config/props/collapseItem.js                      |    0 
 uview-components/uview-ui/libs/config/props/loadingIcon.js                       |    0 
 uview-components/uview-ui/libs/function/route.js                                 |    0 
 uview-components/uview-ui/index.js                                               |    1 
 uview-components/uview-ui/components/u-line/props.js                             |    0 
 uview-components/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js             |    0 
 uview-components/uview-ui/libs/config/props/tabs.js                              |    0 
 uview-components/uview-ui/components/u-checkbox/props.js                         |    0 
 uview-components/uview-ui/libs/config/props/transition.js                        |    0 
 uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue          |  232 ++
 uview-components/uview-ui/libs/config/props/text.js                              |    0 
 config/api.js                                                                    |    6 
 uview-components/uview-ui/libs/function/deepMerge.js                             |    0 
 uview-components/uview-ui/libs/css/style.h5.scss                                 |    0 
 uview-components/uview-ui/components/u-row/u-row.vue                             |    0 
 uview-components/uview-ui/libs/util/emitter.js                                   |    0 
 uview-components/uview-ui/libs/function/md5.js                                   |    0 
 uview-components/uview-ui/theme.scss                                             |    0 
 pages/tabbar/home/template/tpl_left_two_right_one.vue                            |    1 
 uview-components/uview-ui/components/u-col/props.js                              |    0 
 uview-components/uview-ui/components/u-tr/u-tr.vue                               |    0 
 uview-components/uview-ui/components/u-number-keyboard/u-number-keyboard.vue     |    0 
 uview-components/uview-ui/libs/config/props/toast.js                             |    0 
 uview-components/uview-ui/components/u-line/u-line.vue                           |    0 
 uview-components/uview-ui/components/u-swipe-action-item/nvue - backup.js        |    0 
 uview-components/uview-ui/libs/config/props/gap.js                               |    0 
 uview-components/uview-ui/components/u-gap/props.js                              |    0 
 uview-components/uview-ui/components/u-slider/nvue.js                            |    0 
 pages/passport/entry/seller/step1.vue                                            |    7 
 components/m-goods-list/promotion.vue                                            |    1 
 uni_modules/uni-scss/styles/setting/_color.scss                                  |   66 
 uview-components/uview-ui/components/u-mask/u-mask.vue                           |    0 
 uview-components/uview-ui/components/u-toolbar/props.js                          |    0 
 uview-components/uview-ui/components/u-collapse/props.js                         |    0 
 uview-components/uview-ui/libs/config/props/cell.js                              |    0 
 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json             |    5 
 uview-components/uview-ui/components/u-index-item/props.js                       |    0 
 uni_modules/uni-popup/components/uni-popup/keypress.js                           |   45 
 uview-components/uview-ui/libs/config/props/tabbar.js                            |    0 
 uview-components/uview-ui/components/u-loading-icon/props.js                     |    0 
 uview-components/uview-ui/libs/config/props/list.js                              |    0 
 uview-components/uview-ui/libs/function/guid.js                                  |    0 
 uview-components/uview-ui/components/u-input/u-input.vue                         |    0 
 uview-components/uview-ui/libs/request/index.js                                  |    0 
 uni_modules/uni-popup/components/uni-popup/i18n/en.json                          |    7 
 uview-components/uview-ui/libs/function/deepClone.js                             |    0 
 pages/mine/set/securityCenter/editPassword.vue                                   |    1 
 pages/order/invoice/setInvoice.vue                                               |    1 
 uview-components/uview-ui/libs/config/props/toolbar.js                           |    0 
 uni_modules/uni-popup/components/uni-popup-dialog/keypress.js                    |   45 
 uview-components/uview-ui/libs/config/props/textarea.js                          |    0 
 uview-components/uview-ui/libs/config/props/subsection.js                        |    0 
 uni_modules/uni-scss/styles/tools/functions.scss                                 |   19 
 components/m-goods-list/list.vue                                                 |    6 
 pages/mine/deposit/info.vue                                                      |    1 
 uview-components/uview-ui/libs/css/vue.scss                                      |    0 
 uview-components/uview-ui/components/u-number-box/props.js                       |    0 
 uview-components/uview-ui/libs/function/getParent.js                             |    0 
 pages/mine/distribution/history.vue                                              |    2 
 uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue           |  327 +++
 uview-components/uview-ui/components/u-no-network/props.js                       |    0 
 pages/promotion/seckill.vue                                                      |    1 
 uview-components/uview-ui/components/u-modal/u-modal.vue                         |    0 
 pages/tabbar/home/title.vue                                                      |    1 
 uview-components/uview-ui/libs/config/props.js                                   |    0 
 uview-components/uview-ui/libs/config/props/checkbox.js                          |    0 
 uview-components/uview-ui/libs/config/props/tabbarItem.js                        |    0 
 uview-components/uview-ui/components/u-loading-page/props.js                     |    0 
 uview-components/uview-ui/libs/config/props/indexAnchor.js                       |    0 
 uview-components/uview-ui/components/u-navbar/u-navbar.vue                       |    0 
 uview-components/uview-ui/components/u-datetime-picker/u-datetime-picker.vue     |    0 
 uview-components/uview-ui/components/u-line-progress/props.js                    |    0 
 uview-components/uview-ui/components/u-verification-code/u-verification-code.vue |    0 
 uview-components/uview-ui/libs/function/platform.js                              |    0 
 uview-components/uview-ui/libs/util/area.js                                      |    0 
 uni_modules/uni-scss/theme.scss                                                  |   31 
 uview-components/uview-ui/components/u-grid-item/props.js                        |    0 
 uview-components/uview-ui/components/u-tabbar/u-tabbar.vue                       |    0 
 uview-components/uview-ui/components/u-calendar/header.vue                       |    0 
 uview-components/uview-ui/components/u-swipe-action-item/index - backup.wxs      |    0 
 pages/order/afterSales/applySuccess.vue                                          |    1 
 uview-components/uview-ui/components/u-parse/u-parse.vue                         |    0 
 uview-components/uview-ui/components/u-subsection/props.js                       |    0 
 uview-components/uview-ui/components/u-calendar/props.js                         |    0 
 pages/tabbar/home/template/tpl_top_one_bottom_two.vue                            |    1 
 uview-components/uview-ui/components/u-datetime-picker/props.js                  |    0 
 uview-components/uview-ui/components/u-index-anchor/props.js                     |    0 
 uview-components/uview-ui/components/u-search/u-search.vue                       |    0 
 uview-components/uview-ui/libs/luch-request/core/buildFullPath.js                |    0 
 uview-components/uview-ui/libs/util/calendar.js                                  |    0 
 uview-components/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue   |    0 
 uview-components/uview-ui/components/u-code-input/props.js                       |    0 
 pages/passport/entry/seller/step2.vue                                            |    5 
 uni_modules/uni-popup/components/uni-popup/uni-popup.uvue                        |   90 
 uview-components/uview-ui/components/u-swipe-action-item/props.js                |    0 
 uview-components/uview-ui/libs/config/zIndex.js                                  |    0 
 uview-components/uview-ui/libs/config/props/empty.js                             |    0 
 uni_modules/uni-number-box/package.json                                          |   83 
 uview-components/uview-ui/components/u-line-progress/u-line-progress.vue         |    0 
 pages/promotion/bargain/detail.vue                                               |    1 
 pages/promotion/lives.vue                                                        |    1 
 uview-components/uview-ui/components/u-grid/u-grid.vue                           |    0 
 uview-components/uview-ui/libs/config/props/rate.js                              |    0 
 uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue           |    0 
 uview-components/uview-ui/components/u-dropdown/props.js                         |    0 
 uview-components/uview-ui/components/u-tabs-item/u-tabs-item.vue                 |    0 
 uview-components/uview-ui/components/u-cell-item/u-cell-item.vue                 |    0 
 uview-components/uview-ui/components/u-parse/node/node.vue                       |    0 
 uview-components/uview-ui/libs/util/route.js                                     |    0 
 uview-components/uview-ui/libs/config/props/navbar.js                            |    0 
 uview-components/uview-ui/components/u-badge/props.js                            |    0 
 pages/mine/address/add.vue                                                       |    9 
 uview-components/uview-ui/components/u-count-down/u-count-down.vue               |    0 
 pages/product/product/promotion/-promotion-assemble-list.vue                     |    5 
 uview-components/uview-ui/libs/config/props/album.js                             |    0 
 uview-components/uview-ui/libs/function/timeFormat.js                            |    0 
 pages/product/shopPageGoods.vue                                                  |    1 
 pages/mine/set/securityCenter/bindMobile.vue                                     |    1 
 uview-components/uview-ui/iconfont.css                                           |    0 
 uni_modules/uni-transition/changelog.md                                          |   27 
 uview-components/uview-ui/components/u-row/props.js                              |    0 
 pages/tabbar/video/video.vue                                                     |   43 
 uview-components/uview-ui/components/u-notice-bar/u-notice-bar.vue               |    0 
 pages/tabbar/category/category.vue                                               |    4 
 pages/order/complain/complainList.vue                                            |    7 
 uview-components/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue             |    0 
 uview-components/uview-ui/components/u-swiper/props.js                           |    0 
 uview-components/uview-ui/libs/config/props/rowNotice.js                         |    0 
 uview-components/uview-ui/libs/css/style.vue.scss                                |    0 
 uview-components/uview-ui/components/u-icon/props.js                             |    0 
 uview-components/uview-ui/components/u-radio-group/u-radio-group.vue             |    0 
 pages/mine/set/feedBack.vue                                                      |    4 
 uni_modules/uni-popup/components/uni-popup/popup.js                              |   26 
 uview-components/uview-ui/components/u-cell/u-cell.vue                           |    0 
 uview-components/uview-ui/components/u-popup/u-popup.vue                         |    0 
 uni_modules/uni-popup/readme.md                                                  |   17 
 pages/product/shopPage.vue                                                       |    1 
 uview-components/uview-ui/libs/config/props/statusBar.js                         |    0 
 uview-components/uview-ui/libs/css/flex.scss                                     |    0 
 uview-components/uview-ui/libs/config/props/loadmore.js                          |    0 
 uview-components/uview-ui/libs/config/props/numberBox.js                         |    0 
 pages/product/comment.vue                                                        |    1 
 uview-components/uview-ui/components/u-avatar/props.js                           |    0 
 pages/tabbar/home/template/tpl_text_picture.vue                                  |    2 
 uview-components/uview-ui/components/u-checkbox-group/props.js                   |    0 
 uview-components/uview-ui/components/u-parse/props.js                            |    0 
 uview-components/uview-ui/components/u-radio/u-radio.vue                         |    0 
 pages/mine/distribution/home.vue                                                 |    4 
 uni_modules/uni-scss/changelog.md                                                |    8 
 pages/tabbar/home/template/tpl_flex_two.vue                                      |    3 
 pages/cart/coupon/index.vue                                                      |    1 
 pages/tabbar/special/special.vue                                                 |    1 
 pages/mine/address/addressManage.vue                                             |    5 
 pages/mine/distribution/join.vue                                                 |    8 
 uview-components/uview-ui/components/u-status-bar/u-status-bar.vue               |    0 
 uview-components/uview-ui/components/u-collapse/u-collapse.vue                   |    0 
 pages/tabbar/home/views.vue                                                      |    1 
 uview-components/uview-ui/libs/css/nvue.scss                                     |    0 
 uview-components/uview-ui/libs/function/toast.js                                 |    0 
 uview-components/uview-ui/libs/luch-request/core/dispatchRequest.js              |    0 
 pages/order/afterSales/afterSalesSelect.vue                                      |    1 
 uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue             |  404 ++++
 uview-components/uview-ui/components/u-safe-bottom/props.js                      |    0 
 uview-components/uview-ui/libs/css/style.components.scss                         |    0 
 uni_modules/uni-scss/styles/index.scss                                           |    7 
 uview-components/uview-ui/components/u-slider/mpwxs.wxs                          |    0 
 pages/order/evaluate/evaluateDetail.vue                                          |    1 
 uview-components/uview-ui/libs/luch-request/helpers/buildURL.js                  |    0 
 pages/product/product/promotion/-promotion-details.vue                           |    3 
 uview-components/uview-ui/components/u-overlay/props.js                          |    0 
 uview-components/uview-ui/libs/css/mp.scss                                       |    0 
 uview-components/uview-ui/components/u-count-down/props.js                       |    0 
 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json             |    5 
 pages/passport/entry/seller/control.vue                                          |    3 
 uview-components/uview-ui/components/u-dropdown-list/u-dropdown-list.vue         |    0 
 uview-components/uview-ui/libs/luch-request/core/settle.js                       |    0 
 pages/order/invoice/invoiceDetail.vue                                            |    1 
 uview-components/uview-ui/components/u-keyboard/u-keyboard.vue                   |    0 
 pages/promotion/bargain/list.vue                                                 |    1 
 uni_modules/uni-scss/variables.scss                                              |   62 
 uview-components/uview-ui/components/u-tabbar-item/u-tabbar-item.vue             |    0 
 pages/order/orderDetail.vue                                                      |    1 
 uview-components/uview-ui/components/u--text/u--text.vue                         |    0 
 uview-components/uview-ui/components/u-upload/props.js                           |    0 
 uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue       |    0 
 pages/mine/set/personMsg.vue                                                     |    3 
 uview-components/uview-ui/libs/css/style.nvue.scss                               |    0 
 pages/product/product/promotion/-promotion-assemble-promotions.vue               |    4 
 uview-components/uview-ui/components/u-upload/mixin.js                           |    0 
 uview-components/uview-ui/libs/function/queryParams.js                           |    0 
 uview-components/uview-ui/components/u-icon/icons.js                             |    0 
 uview-components/uview-ui/components/u-empty/u-empty.vue                         |    0 
 uview-components/uview-ui/components/u-overlay/u-overlay.vue                     |    0 
 uni_modules/uni-scss/styles/setting/_space.scss                                  |   56 
 uview-components/uview-ui/components/u--input/u--input.vue                       |    0 
 uview-components/uview-ui/libs/luch-request/index.js                             |    0 
 uni_modules/uni-scss/styles/setting/_styles.scss                                 |  167 +
 pages/mine/set/setUp.vue                                                         |    6 
 uview-components/uview-ui/components/u-circle-progress/props.js                  |    0 
 uview-components/uview-ui/components/u-parse/libs/handler.wxs                    |    0 
 uview-components/uview-ui/components/u-parse/parser.js                           |    0 
 uni_modules/uni-load-more/changelog.md                                           |   25 
 uview-components/uview-ui/components/u-link/u-link.vue                           |    0 
 uview-components/uview-ui/libs/util/dayjs.js                                     |    0 
 pages/mine/deposit/withdrawal.vue                                                |    1 
 pages/mine/signIn.vue                                                            |    3 
 pages/order/afterSales/applyDetail.vue                                           |    1 
 uview-components/uview-ui/components/u-number-box/u-number-box.vue               |    0 
 uview-components/uview-ui/components/u-code/u-code.vue                           |    0 
 uview-components/uview-ui/libs/config/props/popup.js                             |    0 
 pages/mine/msgTips/packageMsg/index.vue                                          |    1 
 uview-components/uview-ui/libs/function/random.js                                |    0 
 uview-components/uview-ui/components/u-popup/props.js                            |    0 
 uview-components/uview-ui/components/u-car-keyboard/u-car-keyboard.vue           |    0 
 uview-components/uview-ui/libs/css/common.scss                                   |    0 
 uview-components/uview-ui/libs/config/props/icon.js                              |    0 
 pages/product/shopList.vue                                                       |    1 
 uview-components/uview-ui/components/u-upload/u-upload.vue                       |    0 
 uview-components/uview-ui/libs/luch-request/core/mergeConfig.js                  |    0 
 uview-components/uview-ui/components/u-transition/u-transition.vue               |    0 
 pages/mine/deposit/index.vue                                                     |    1 
 pages/tabbar/home/template/tpl_flex_four.vue                                     |    1 
 uview-components/uview-ui/components/u-list/props.js                             |    0 
 pages/tabbar/home/template/tpl_flex_five.vue                                     |    1 
 uview-components/uview-ui/libs/config/props/modal.js                             |    0 
 api/video.js                                                                     |   68 
 pages/promotion/bargain/log.vue                                                  |    4 
 uview-components/uview-ui/README.md                                              |    0 
 uview-components/uview-ui/libs/config/props/search.js                            |    0 
 uview-components/uview-ui/libs/config/props/tooltip.js                           |    0 
 uview-components/uview-ui/components/u-radio-group/props.js                      |    0 
 uview-components/uview-ui/libs/config/props/swipterIndicator.js                  |    0 
 uview-components/uview-ui/components/u-count-to/props.js                         |    0 
 uview-components/uview-ui/libs/mixin/button.js                                   |    0 
 uview-components/uview-ui/components/u-badge/u-badge.vue                         |    0 
 uview-components/uview-ui/libs/config/color.js                                   |    0 
 uview-components/uview-ui/components/u-rate/props.js                             |    0 
 uview-components/uview-ui/components/u-image/u-image.vue                         |    0 
 pages/mine/im/index.vue                                                          |    1 
 pages/mine/set/securityCenter/faceLogin.vue                                      |    1 
 uview-components/uview-ui/components/u-parse/libs/config.js                      |    0 
 uview-components/uview-ui/libs/luch-request/utils/clone.js                       |    0 
 uni_modules/uni-scss/styles/setting/_radius.scss                                 |   55 
 uview-components/uview-ui/components/u-picker/props.js                           |    0 
 uview-components/uview-ui/components/u-slider/mpwxs.js                           |    0 
 uview-components/uview-ui/libs/config/props/swipeAction.js                       |    0 
 uview-components/uview-ui/libs/function/sys.js                                   |    0 
 uview-components/uview-ui/components/u-list-item/props.js                        |    0 
 uview-components/uview-ui/libs/function/type2icon.js                             |    0 
 pages/mine/set/securityCenter/fingerLogin.vue                                    |    1 
 pages/tabbar/home/template/tpl_search.vue                                        |    1 
 pages/passport/entry/seller/step3.vue                                            |    8 
 uview-components/uview-ui/components/u-cell-group/u-cell-group.vue               |    0 
 uview-components/uview-ui/libs/config/props/image.js                             |    0 
 pages/product/product/popup/address.vue                                          |    5 
 uview-components/uview-ui/components/u-divider/u-divider.vue                     |    0 
 uview-components/uview-ui/components/u-avatar/u-avatar.vue                       |    0 
 uview-components/uview-ui/components/u-list/u-list.vue                           |    0 
 uview-components/uview-ui/libs/config/props/sticky.js                            |    0 
 uview-components/uview-ui/package.json                                           |    0 
 pages/order/evaluate/myEvaluate.vue                                              |    6 
 uview-components/uview-ui/components/u-read-more/u-read-more.vue                 |    0 
 components/m-share/index.vue                                                     |    6 
 pages/mine/point/myPoint.vue                                                     |    4 
 components/popups/popups.vue                                                     |    3 
 uview-components/uview-ui/components/u-swipe-action-item/index.wxs               |    0 
 uview-components/uview-ui/components/u-notify/u-notify.vue                       |    0 
 pages/mine/help/tips.vue                                                         |    3 
 uview-components/uview-ui/components/u-checkbox/u-checkbox.vue                   |    0 
 pages/promotion/point/detail.vue                                                 |    1 
 uview-components/uview-ui/components/u-empty/props.js                            |    0 
 components/m-search-revision/m-search-revision.vue                               |    3 
 pages/product/goods.vue                                                          |   10 
 pages/mine/msgTips/serviceMsg/index.vue                                          |    1 
 pages/product/askList.vue                                                        |    1 
 uview-components/uview-ui/libs/css/components.scss                               |    0 
 uview-components/uview-ui/libs/config/props/input.js                             |    0 
 pages/mine/msgTips/packageMsg/logisticsDetail.vue                                |    1 
 uview-components/uview-ui/components/u-steps/u-steps.vue                         |    0 
 pages/cart/coupon/couponCenter.vue                                               |    2 
 uview-components/uview-ui/changelog.md                                           |    0 
 uview-components/uview-ui/components/u-dropdown-item/u-dropdown-item.vue         |    0 
 uview-components/uview-ui/components/u-collapse-item/u-collapse-item.vue         |    0 
 components/m-load-more/m-load-more.vue                                           |    0 
 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json                     |    7 
 pages/order/complain/complain.vue                                                |    1 
 uni_modules/uni-load-more/components/uni-load-more/i18n/en.json                  |    5 
 uview-components/uview-ui/components/u-back-top/u-back-top.vue                   |    0 
 uview-components/uview-ui/components/u-tag/props.js                              |    0 
 uview-components/uview-ui/components/u-textarea/u-textarea.vue                   |    0 
 uview-components/uview-ui/libs/config/props/overlay.js                           |    0 
 uview-components/uview-ui/libs/luch-request/helpers/combineURLs.js               |    0 
 uview-components/uview-ui/components/u-divider/props.js                          |    0 
 uview-components/uview-ui/components/u-tabs-item/props.js                        |    0 
 uview-components/uview-ui/components/u-modal/props.js                            |    0 
 uview-components/uview-ui/libs/config/props/gridItem.js                          |    0 
 uview-components/uview-ui/components/u-tooltip/clipboard.min.js                  |    0 
 uview-components/uview-ui/components/u-top-tips/u-top-tips.vue                   |    0 
 uview-components/uview-ui/libs/config/props/code.js                              |    0 
 uview-components/uview-ui/components/u-form-item/props.js                        |    0 
 uni_modules/uni-popup/components/uni-popup/i18n/index.js                         |    8 
 uview-components/uview-ui/libs/config/props/countTo.js                           |    0 
 uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue             |  188 ++
 uview-components/uview-ui/components/u-gap/u-gap.vue                             |    0 
 uview-components/uview-ui/libs/config/props/scrollList.js                        |    0 
 uview-components/uview-ui/libs/config/props/slider.js                            |    0 
 uview-components/uview-ui/libs/function/colorGradient.js                         |    0 
 uview-components/uview-ui/components/u-slider/props.js                           |    0 
 pages/cart/payment/payOrder.vue                                                  |    1 
 pages/order/afterSales/applyProgress.vue                                         |    1 
 uview-components/uview-ui/components/u-parse/libs/CssHandler.js                  |    0 
 uview-components/uview-ui/libs/css/color.scss                                    |    0 
 uview-components/uview-ui/components/u-tabs/u-tabs.vue                           |    0 
 uview-components/uview-ui/components/u-time-line-item/u-time-line-item.vue       |    0 
 pages/product/product/shop/-shop.vue                                             |    3 
 uview-components/uview-ui/libs/config/props/calendar.js                          |    0 
 uview-components/uview-ui/libs/util/async-validator.js                           |    0 
 uview-components/uview-ui/components/u-picker-column/u-picker-column.vue         |    0 
 uview-components/uview-ui/components/u-switch/props.js                           |    0 
 uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue           |    0 
 uview-components/uview-ui/components/u-slider/nvue - 副本.js                       |    0 
 uview-components/uview-ui/libs/function/debounce.js                              |    0 
 uview-components/uview-ui/components/u-message-input/u-message-input.vue         |    0 
 uview-components/uview-ui/components/u-scroll-list/u-scroll-list.vue             |    0 
 uview-components/uview-ui/libs/config/props/notify.js                            |    0 
 uview-components/uview-ui/components/u-td/u-td.vue                               |    0 
 uview-components/uview-ui/components/u-transition/vue.ani-style.scss             |    0 
 pages/cart/coupon/myCoupon.vue                                                   |    4 
 uview-components/uview-ui/components/u-parse/libs/MpHtmlParser.js                |    0 
 pages/mine/myCollect.vue                                                         |    8 
 pages/passport/scannerCodeLoginConfirm.vue                                       |    1 
 uview-components/uview-ui/components/u-grid/props.js                             |    0 
 uview-components/uview-ui/components/u-skeleton/props.js                         |    0 
 uview-components/uview-ui/components/u-link/props.js                             |    0 
 uview-components/uview-ui/components/u-tr/props.js                               |    0 
 uview-components/uview-ui/components/u-column-notice/u-column-notice.vue         |    0 
 uview-components/uview-ui/components/u-table/u-table.vue                         |    0 
 uview-components/uview-ui/libs/config/props/collapse.js                          |    0 
 pages/product/licencePhoto.vue                                                   |    1 
 uview-components/uview-ui/components/u-scroll-list/props.js                      |    0 
 uview-components/uview-ui/libs/mixin/touch.js                                    |    0 
 pages/tabbar/home/template/tpl_flex_three.vue                                    |    1 
 pages/order/complain/complainInfo.vue                                            |    1 
 uview-components/uview-ui/components/u-tabbar-item/props.js                      |    0 
 uview-components/uview-ui/components/u-loadmore/props.js                         |    0 
 uview-components/uview-ui/components/u-form-item/u-form-item.vue                 |    0 
 uview-components/uview-ui/libs/config/props/actionSheet.js                       |    0 
 pages/promotion/point/pointList.vue                                              |    1 
 uview-components/uview-ui/libs/config/props/button.js                            |    0 
 pages/passport/article.vue                                                       |    1 
 uview-components/uview-ui/libs/config/props/columnNotice.js                      |    0 
 uview-components/uview-ui/libs/config/props/readMore.js                          |    0 
 uview-components/uview-ui/libs/config/props/swiper.js                            |    0 
 uview-components/uview-ui/libs/config/props/circleProgress.js                    |    0 
 uview-components/uview-ui/components/u-calendar/u-calendar.vue                   |    0 
 uview-components/uview-ui/libs/config/props/upload.js                            |    0 
 uview-components/uview-ui/libs/function/$parent.js                               |    0 
 uview-components/uview-ui/libs/function/color.js                                 |    0 
 uni_modules/uni-load-more/package.json                                           |   84 
 uview-components/uview-ui/components/u-transition/props.js                       |    0 
 uview-components/uview-ui/libs/mixin/mpShare.js                                  |    0 
 uview-components/uview-ui/libs/luch-request/utils.js                             |    0 
 pages/order/afterSales/afterSalesDetail.vue                                      |    1 
 uview-components/uview-ui/components/u-row-notice/props.js                       |    0 
 uview-components/uview-ui/libs/config/props/lineProgress.js                      |    0 
 uview-components/uview-ui/LICENSE                                                |    0 
 uview-components/uview-ui/libs/luch-request/core/defaults.js                     |    0 
 pages/tabbar/home/template/fetch_coupon.vue                                      |    1 
 uview-components/uview-ui/libs/config/props/backtop.js                           |    0 
 pages/tabbar/home/template/tpl_menu.vue                                          |    1 
 uview-components/uview-ui/components/u-toast/u-toast.vue                         |    0 
 uview-components/uview-ui/libs/mixin/mpMixin.js                                  |    0 
 uview-components/uview-ui/libs/css/style.mp.scss                                 |    0 
 uview-components/uview-ui/libs/config/props/section.js                           |    0 
 uview-components/uview-ui/libs/config/props/keyboard.js                          |    0 
 pages/product/product/evaluation/-evaluation.vue                                 |    5 
 uview-components/uview-ui/libs/config/props/datetimePicker.js                    |    0 
 uview-components/uview-ui/components/u-lazy-load/u-lazy-load.vue                 |    0 
 uview-components/uview-ui/libs/luch-request/index.d.ts                           |    0 
 components/m-take-down-sale-goods/index.vue                                      |    4 
 uview-components/uview-ui/libs/mixin/style.js                                    |    0 
 uview-components/uview-ui/components/u-alert/props.js                            |    0 
 uview-components/uview-ui/libs/function/digit.js                                 |    0 
 uni_modules/uni-popup/components/uni-popup/uni-popup.vue                         |  518 +++++
 uview-components/uview-ui/components/u-cell-group/props.js                       |    0 
 pages/navigation/search/searchPage.vue                                           |   12 
 uview-components/uview-ui/components/u-textarea/props.js                         |    0 
 pages/tabbar/home/template/tpl_flex_one.vue                                      |    1 
 uview-components/uview-ui/components/u-car-keyboard/props.js                     |    0 
 uview-components/uview-ui/components/u-radio/props.js                            |    0 
 uview-components/uview-ui/components/u-subsection/u-subsection.vue               |    0 
 uview-components/uview-ui/components/u-time-line/u-time-line.vue                 |    0 
 uview-components/uview-ui/libs/config/props/loadingPage.js                       |    0 
 uview-components/uview-ui/components/u-navbar/props.js                           |    0 
 uview-components/uview-ui/components/u-field/u-field.vue                         |    0 
 uview-components/uview-ui/libs/function/bem.js                                   |    0 
 pages/mine/distribution/auth.vue                                                 |    6 
 uview-components/uview-ui/libs/config/props/radio.js                             |    0 
 uview-components/uview-ui/components/u-steps-item/u-steps-item.vue               |    0 
 uview-components/uview-ui/libs/store/index.js                                    |    0 
 uview-components/uview-ui/components/u-transition/nvue.ani-map.js                |    0 
 uni_modules/uni-transition/package.json                                          |   87 
 uview-components/uview-ui/components/u-count-to/u-count-to.vue                   |    0 
 uview-components/uview-ui/components/u-cell/props.js                             |    0 
 uview-components/uview-ui/components/u-status-bar/props.js                       |    0 
 uview-components/uview-ui/components/u-text/value.js                             |    0 
 pages/mine/set/versionFunctionList.vue                                           |    1 
 pages/tabbar/cart/cartList.vue                                                   |   15 
 uview-components/uview-ui/components/u--image/u--image.vue                       |    0 
 uview-components/uview-ui/components/u-slider/u-slider.vue                       |    0 
 pages/tabbar/home/template/tpl_banner.vue                                        |    1 
 pages.json                                                                       |  570 +++++-
 uview-components/uview-ui/components/u-action-sheet/props.js                     |    0 
 uview-components/uview-ui/libs/config/props/indexList.js                         |    0 
 uview-components/uview-ui/libs/css/mixin.scss                                    |    0 
 uview-components/uview-ui/libs/util/province.js                                  |    0 
 pages/mine/distribution/withdrawal.vue                                           |    2 
 uni_modules/uni-transition/components/uni-transition/createAnimation.js          |  131 +
 uview-components/uview-ui/components/u-calendar/util.js                          |    0 
 pages/promotion/point/user.vue                                                   |    1 
 uview-components/uview-ui/components/u-scroll-list/nvue.js                       |    0 
 uview-components/uview-ui/components/u-sticky/u-sticky.vue                       |    0 
 uview-components/uview-ui/components/u-index-list/u-index-list.vue               |    0 
 uview-components/uview-ui/components/u-image/props.js                            |    0 
 pages/mine/address/storeAddress.vue                                              |    1 
 uview-components/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue |    0 
 pages/tabbar/user/my.vue                                                         |    5 
 uview-components/uview-ui/components/u-slider/mpother.js                         |    0 
 uview-components/uview-ui/libs/config/props/swipeActionItem.js                   |    0 
 uview-components/uview-ui/components/u-code/props.js                             |    0 
 uview-components/uview-ui/components/u-safe-bottom/u-safe-bottom.vue             |    0 
 uview-components/uview-ui/components/u-tooltip/props.js                          |    0 
 uni_modules/uni-number-box/readme.md                                             |   13 
 uview-components/uview-ui/components/u-loading-icon/u-loading-icon.vue           |    0 
 uview-components/uview-ui/libs/function/randomArray.js                           |    0 
 uview-components/uview-ui/libs/css/h5.scss                                       |    0 
 uview-components/uview-ui/libs/config/props/link.js                              |    0 
 uview-components/uview-ui/libs/config/props/steps.js                             |    0 
 api/collect.js                                                                   |   22 
 App.vue                                                                          |    8 
 uview-components/uview-ui/components/u-td/props.js                               |    0 
 uview-components/uview-ui/components/u--textarea/u--textarea.vue                 |    0 
 uview-components/uview-ui/components/u-toolbar/u-toolbar.vue                     |    0 
 uview-components/uview-ui/components/u-calendar/month.vue                        |    0 
 uview-components/uview-ui/libs/config/props/avatarGroup.js                       |    0 
 uview-components/uview-ui/libs/function/index.js                                 |    0 
 pages/passport/entry/seller/index.vue                                            |    4 
 uview-components/uview-ui/libs/config/props/cellGroup.js                         |    0 
 uview-components/uview-ui/libs/mixin/openType.js                                 |    0 
 uni_modules/uni-scss/index.scss                                                  |    1 
 uview-components/uview-ui/components/u-notice-bar/props.js                       |    0 
 uview-components/uview-ui/components/u-read-more/props.js                        |    0 
 pages/mine/set/editionIntro.vue                                                  |    4 
 uview-components/uview-ui/components/u-grid-item/u-grid-item.vue                 |    0 
 uview-components/uview-ui/components/uview-ui/uview-ui.vue                       |    0 
 uview-components/uview-ui/libs/config/props/grid.js                              |    0 
 uview-components/uview-ui/libs/config/props/radioGroup.js                        |    0 
 uview-components/uview-ui/components/u-column-notice/props.js                    |    0 
 uni_modules/uni-number-box/changelog.md                                          |   39 
 uni_modules/uni-scss/package.json                                                |   82 
 uview-components/uview-ui/components/u-picker/u-picker.vue                       |    0 
 uview-components/uview-ui/components/u-loadmore/u-loadmore.vue                   |    0 
 pages/order/evaluate/releaseEvaluate.vue                                         |    1 
 pages/mine/im/list.vue                                                           |    1 
 components/m-canvas/index.vue                                                    |    1 
 components/m-buy/goods.vue                                                       |    8 
 uview-components/uview-ui/libs/luch-request/core/Request.js                      |    0 
 uview-components/uview-ui/libs/config/props/skeleton.js                          |    0 
 uview-components/uview-ui/components/u-th/u-th.vue                               |    0 
 610 files changed, 5,184 insertions(+), 320 deletions(-)

diff --git a/App.vue b/App.vue
index 05c3594..7488ba6 100644
--- a/App.vue
+++ b/App.vue
@@ -223,7 +223,7 @@
 </script>
 
 <style lang="scss">
-	@import "uview-ui/index.scss";
+	@import '@/uview-components/uview-ui/index.scss';
 
 	// -------閫傞厤搴曢儴瀹夊叏鍖�  鑻规灉x绯诲垪鍒樻捣灞�
 
@@ -255,9 +255,9 @@
 	@font-face {
 	  font-family: 'iconfont';  /* Project id 4921691 */
 	  src: 
-	       url('//at.alicdn.com/t/c/font_4921691_ds91dsf3lgc.woff2?t=1747375499357') format('woff2'),
-	       url('//at.alicdn.com/t/c/font_4921691_ds91dsf3lgc.woff?t=1747375499357') format('woff'),
-	       url('//at.alicdn.com/t/c/font_4921691_ds91dsf3lgc.ttf?t=1747375499357') format('truetype');
+	       url('//at.alicdn.com/t/c/font_4921691_1hkd3qibo87.woff2?t=1748343163548') format('woff2'),
+	       url('//at.alicdn.com/t/c/font_4921691_1hkd3qibo87.woff?t=1748343163548') format('woff'),
+	       url('//at.alicdn.com/t/c/font_4921691_1hkd3qibo87.ttf?t=1748343163548') format('truetype');
 	}
 	.iconfont {
 		  /* font-family闇�瑕佸拰鑷畾涔夌殑鐩稿悓 */
diff --git a/api/collect.js b/api/collect.js
new file mode 100644
index 0000000..4a12dec
--- /dev/null
+++ b/api/collect.js
@@ -0,0 +1,22 @@
+/**
+ * 瑙嗛鏍囩鐩稿叧API
+ */
+
+import { http, Method } from "@/utils/request.js";
+
+
+
+
+/**
+ * 鏀惰棌/鍙栨秷鏀惰棌
+ * 
+ * @param params
+ */
+ export function changeCollect(data) {
+  return http.request({
+    url: "/lmk/my-collect/change",
+    method: Method.POST,
+    needToken: true,
+    data: data
+  });
+}
diff --git a/api/video.js b/api/video.js
index 40d2bfd..843d069 100644
--- a/api/video.js
+++ b/api/video.js
@@ -20,3 +20,71 @@
     data: data
   });
 }
+
+/**
+ * 鑾峰彇浜斾釜鎺ㄨ崘瑙嗛
+ * 
+ * @param params
+ */
+ export function getRecommendVideos() {
+  return http.request({
+    url: "/lmk/video/recommend",
+    method: Method.GET,
+    needToken: true
+  });
+}
+
+/**
+ * 淇濆瓨瑙嗛鎾斁璁板綍
+ * 
+ * @param params
+ */
+ export function savePlayRecord(data) {
+  return http.request({
+    url: "/lmk/video/view/record",
+    method: Method.POST,
+    needToken: true,
+	data: data
+  });
+}
+
+/**
+ * 鍏虫敞浣滆��
+ * 
+ * @param params
+ */
+ export function subscribe(authorId) {
+  return http.request({
+    url: "/lmk/my-subscribe/subscribe/" + authorId,
+    method: Method.POST,
+    needToken: true
+  });
+}
+
+/**
+ * 鑾峰彇瑙嗛璇勮
+ * 
+ * @param params
+ */
+ export function getVideoComments(params) {
+  return http.request({
+    url: "/lmk/video-comment/wx/page",
+    method: Method.GET,
+    needToken: true,
+	params: params
+  });
+}
+
+/**
+ * 鍙戝竷瑙嗛璇勮
+ * 
+ * @param params
+ */
+ export function addVideoComment(data) {
+  return http.request({
+    url: "/lmk/video-comment/comment",
+    method: Method.POST,
+    needToken: true,
+	data: data
+  });
+}
diff --git a/components/m-buy/goods.vue b/components/m-buy/goods.vue
index 7ea11b1..75ee113 100644
--- a/components/m-buy/goods.vue
+++ b/components/m-buy/goods.vue
@@ -112,12 +112,16 @@
 	</div>
 </template>
 <script>
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UAlertTips from '@/uview-components/uview-ui/components/u-alert-tips/u-alert-tips.vue';
+
 import * as API_trade from '@/api/trade.js';
 import setup from './popup';
-import uniNumberBox from '@/components/uni-number-box'
+// import uniNumberBox from '@/components/uni-number-box'
 export default {
 	components: {
-		uniNumberBox
+		// uniNumberBox
 	},
 	data() {
 		return {
diff --git a/components/m-canvas/index.vue b/components/m-canvas/index.vue
index 92aae81..6d6161b 100644
--- a/components/m-canvas/index.vue
+++ b/components/m-canvas/index.vue
@@ -18,6 +18,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 // 寮曞叆缁樺埗鎻掍欢
 import DrawPoster from "@/js_sdk/u-draw-poster";
 
diff --git a/components/m-goods-list/list.vue b/components/m-goods-list/list.vue
index 4291c64..632c690 100644
--- a/components/m-goods-list/list.vue
+++ b/components/m-goods-list/list.vue
@@ -101,8 +101,14 @@
 </template>
 
 <script>
+	import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+	import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+	import ULoading from '@/uview-components/uview-ui/components/u-loading/u-loading.vue';
+	import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
+	
 	import commonTpl from '@/components/m-goods-list/common'
 	export default {
+		components: {UIcon,UImage,ULoading,UTag},
 		data() {
 			return {
 				lightColor: this.$mainColor
diff --git a/components/m-goods-list/promotion.vue b/components/m-goods-list/promotion.vue
index 9f3762d..c426f80 100644
--- a/components/m-goods-list/promotion.vue
+++ b/components/m-goods-list/promotion.vue
@@ -44,6 +44,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import commonTpl from '@/components/m-goods-list/common'
 	export default {
 		data() {
diff --git a/components/uni-load-more/uni-load-more.vue b/components/m-load-more/m-load-more.vue
similarity index 100%
rename from components/uni-load-more/uni-load-more.vue
rename to components/m-load-more/m-load-more.vue
diff --git a/components/m-search-revision/m-search-revision.vue b/components/m-search-revision/m-search-revision.vue
index 0ac1125..08095ef 100644
--- a/components/m-search-revision/m-search-revision.vue
+++ b/components/m-search-revision/m-search-revision.vue
@@ -29,7 +29,10 @@
 </template>
 
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+
 export default {
+  components: {UIcon},
   props: {
     mode: {
       value: Number,
diff --git a/components/m-share/index.vue b/components/m-share/index.vue
index c1ce033..3592c7c 100644
--- a/components/m-share/index.vue
+++ b/components/m-share/index.vue
@@ -29,11 +29,15 @@
   </u-popup>
 </template>
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+
 import { h5Copy } from "@/js_sdk/h5-copy/h5-copy.js";
 import configs from "@/config/config";
-import mpShare from "uview-ui/libs/mixin/mpShare.js";
+import mpShare from "@/uview-components/uview-ui/index.js";
 
 export default {
+  components: {UIcon,UPopup},
   mixins: [mpShare],
   data() {
     return {
diff --git a/components/m-take-down-sale-goods/index.vue b/components/m-take-down-sale-goods/index.vue
index 8a27d71..2d0d740 100644
--- a/components/m-take-down-sale-goods/index.vue
+++ b/components/m-take-down-sale-goods/index.vue
@@ -12,15 +12,17 @@
 </template>
 
 <script>
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+
 import goodsRecommend from "@/components/m-goods-recommend/index.vue";
 
 export default {
+  components: { goodsRecommend,UPopup },
   data() {
     return {
       show: true, // 鏄惁鏄剧ず
     };
   },
-  components: { goodsRecommend },
 };
 </script>
 
diff --git a/components/popups/popups.vue b/components/popups/popups.vue
index 331589f..48e3bb0 100644
--- a/components/popups/popups.vue
+++ b/components/popups/popups.vue
@@ -11,7 +11,10 @@
 </template>
 
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+
 export default {
+  components: {UIcon},
   props: {
     maskBg: {
       type: String,
diff --git a/components/verification/verification.vue b/components/verification/verification.vue
index 355098a..b328524 100644
--- a/components/verification/verification.vue
+++ b/components/verification/verification.vue
@@ -107,6 +107,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import api from "@/config/api.js";
 import storage from "@/utils/storage.js";
 import uuid from "@/utils/uuid.modified.js";
diff --git a/config/api.js b/config/api.js
index 950c0ca..de87b6c 100644
--- a/config/api.js
+++ b/config/api.js
@@ -4,9 +4,9 @@
  */
 // 寮�鍙戠幆澧�
 const dev = {
-  im: "http://127.0.0.1:8885",
-  common: "http://127.0.0.1:8890",
-  buyer: "http://127.0.0.1:8888",
+  im: "http://192.168.0.4:8885",
+  common: "http://192.168.0.4:8890",
+  buyer: "http://192.168.0.4:8888",
   // common: "http://192.168.0.113:8890",
   // buyer: "http://192.168.0.113:8888",
   // im: "http://192.168.0.113:8885",
diff --git a/main.js b/main.js
index 540a322..30b77ff 100644
--- a/main.js
+++ b/main.js
@@ -1,7 +1,7 @@
 import Vue from "vue";
 import App from "./App";
 import * as filters from "./utils/filters.js"; // global filter
-import uView from "uview-ui";
+import uView from '@/uview-components/uview-ui'
 import store from "./store";
 import config from '@/config/config';
 import airBtn from "@/components/m-airbtn/index.vue";
@@ -24,7 +24,7 @@
 // #endif
 
 // 寮曞叆uView瀵瑰皬绋嬪簭鍒嗕韩鐨刴ixin灏佽
-let mpShare = require('uview-ui/libs/mixin/mpShare.js');
+let mpShare = require('./uview-components/uview-ui/libs/mixin/mpShare.js');
 Vue.mixin(mpShare)
 
 /**
@@ -35,6 +35,7 @@
   Vue.filter(key, filters[key]);
 });
 
+console.log("鏈夊悧锛�",uView);
 // 寮曞叆Vuex
 Vue.prototype.$store = store;
 // Vue.prototype.socketIo = new socketIO();
diff --git a/pages.json b/pages.json
index 3dbb5ee..e4123e3 100644
--- a/pages.json
+++ b/pages.json
@@ -1,8 +1,19 @@
 {
-
-	"easycom": {
-		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
-	},
+	    "easycom": {
+			"autoscan": true,
+			"custom": {
+				"^u-(.*)": "@/uview-components/uview-ui/components/u-$1/u-$1.vue",//uview,
+				"^uni-(.*)": "@/uni_modules/uni-$1/components/uni-$1/uni-$1.vue" // uniapp缁勪欢
+			}
+		},
+	  "preloadRule": {
+	  		"pages/tabbar/index/home": // 椤甸潰璺緞
+	  		// 椤甸潰鐨勯涓嬭浇閰嶇疆
+	  		{
+	  			"network": "all", // all(涓嶉檺缃戠粶) wifi(浠厀ifi涓嬮涓嬭浇)
+	  			"packages": ["uview-components"] // 棰勪笅杞藉垎鍖呯殑 root 鎴� name銆俖_APP__ 琛ㄧず涓诲寘
+	  		}
+		},
 	"pages": [
 		// 绗竴涓氨鏄椤�
 		{
@@ -24,18 +35,6 @@
 			}
 		}, 
 		{
-			"path":"pages/tabbar/screen/fullScreen",
-			"style": {
-				"navigationStyle": "custom", // 闅愯棌绯荤粺瀵艰埅鏍�
-				"app-plus":{
-					"animationType": "fade-in", // 璁剧疆fade-in娣″叆鍔ㄧ敾锛屼负鏈�鍚堢悊鐨勫姩鐢荤被鍨�
-					"background": "transparent", // 鑳屾櫙閫忔槑
-					"backgroundColor": "rgba(0,0,0,0)", // 鑳屾櫙閫忔槑
-					"popGesture": "none" // 鍏抽棴IOS灞忓箷宸﹁竟婊戝姩鍏抽棴褰撳墠椤甸潰鐨勫姛鑳�
-				}
-			}
-		},
-		{
 			"path": "pages/tabbar/home/title",
 			"style": {
 				"navigationBarTitleText": "娑堟伅"
@@ -47,8 +46,19 @@
 				"navigationBarTitleText": "璐墿杞�",
 				"navigationStyle": "custom", // 闅愯棌绯荤粺瀵艰埅鏍�
 				"navigationBarBackgroundColor": "#fff",
-				"enablePullDownRefresh":true    //瀹炵幇涓嬫媺鍒锋柊鏍峰紡
-
+				"enablePullDownRefresh":true,    //瀹炵幇涓嬫媺鍒锋柊鏍峰紡
+				"componentPlaceholder": {
+									"u-navbar": "view",
+									"u-checkbox-group": "view",
+									"u-checkbox": "view",
+									"u-swipe-action": "view",
+									"u-image": "view",
+									"u-icon": "view",
+									"u-count-down": "view",
+									"u-modal": "view",
+									"u-popup": "view",
+									"u-toast": "view"
+								}
 			}
 		}, {
 			"path": "pages/tabbar/category/category",
@@ -57,19 +67,20 @@
 				"navigationStyle": "custom", // 闅愯棌绯荤粺瀵艰埅鏍�
 				"navigationBarTextStyle": "black",
 				"disableScroll": true,
-					"bounce": "none",
-					"scrollIndicator": "none"
-					
-				
+				"bounce": "none",
+				"scrollIndicator": "none",
+				"componentPlaceholder": {
+					"u-navbar": "view",
+					"u-search": "view",
+					"u-image": "view"
+				}
 			}
 		},
-				
 		{
-			"path": "pages/navigation/search/searchPage",
+			"path": "components/m-search-revision/m-search-revision",
 			"style": {
-				"navigationBarTitleText": "鎼滅储",
+				"navigationBarTitleText": "",
 				"navigationStyle": "custom",
-				
 				"app-plus": {
 					//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
 					"scrollIndicator": "none",
@@ -79,6 +90,86 @@
 					"safearea": {
 					"bottom": "none"
 					}
+				},
+				"componentPlaceholder": {
+					"u-icon": "view"
+				}
+			}
+		},
+		{
+			"path": "components/m-goods-list/list",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom",
+				"app-plus": {
+					//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
+					"scrollIndicator": "none",
+					"bottom": "0",
+					"contentAdjust": "false",
+					"bounce": "none",
+					"safearea": {
+					"bottom": "none"
+					}
+				},
+				"componentPlaceholder": {
+					"u-image": "view",
+					"u-loading": "view",
+					"u-tag": "view",
+					"u-icon": "view"
+				}
+			}
+		},
+		{
+			"path": "components/m-share/index",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom",
+				"componentPlaceholder": {
+					"u-popup": "view",
+					"u-icon": "view"
+				}
+			}
+		},
+		{
+			"path": "components/m-buy/goods",
+			"style": {
+				"navigationBarTitleText": "",
+				"componentPlaceholder": {
+					"u-popup": "view",
+					"u-image": "view",
+					"u-alert-tips": "view"
+				}
+			}
+		},
+		{
+			"path": "components/m-take-down-sale-goods/index",
+			"style": {
+				"navigationBarTitleText": "",
+				"componentPlaceholder": {
+					"u-popup": "view"
+				}
+			}
+		},
+		{
+			"path": "pages/navigation/search/searchPage",
+			"style": {
+				"navigationBarTitleText": "鎼滅储",
+				"navigationStyle": "custom",
+				"app-plus": {
+					//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
+					"scrollIndicator": "none",
+					"bottom": "0",
+					"contentAdjust": "false",
+					"bounce": "none",
+					"safearea": {
+					"bottom": "none"
+					}
+				},
+				"componentPlaceholder": {
+					"u-navbar": "view",
+					"u-popup": "view",
+					"u-input": "view",
+					"u-back-top": "view"
 				}
 			}
 		}, {
@@ -86,7 +177,12 @@
 			"style": {
 				"navigationBarTextStyle": "white",
 				"enablePullDownRefresh": true,
-				"navigationStyle": "custom"
+				"navigationStyle": "custom",
+				"componentPlaceholder": {
+					"u-icon": "view",
+					"u-row": "view",
+					"u-col": "view"
+				}
 			}
 		},
 		
@@ -107,7 +203,16 @@
 			"style" : 
 			{
 				"navigationBarTitleText" : "鍙戝竷瑙嗛",
-				"enablePullDownRefresh" : false
+				"enablePullDownRefresh" : false,
+				"componentPlaceholder": {
+					"u-icon": "view",
+					"u-button": "view",
+					"u-form": "view",
+					"u-form-item": "view",
+					"u-input": "view",
+					"u-popup": "view",
+					"u-search": "view"
+				}
 			}
 		},
 		{
@@ -129,7 +234,19 @@
 
 	],
 	"subPackages": [
-
+	{
+      "root": "uview-components",  // 蹇呴』涓巔reloadRule涓殑鍚嶇О瀹屽叏涓�鑷�
+            "name": "uview-components",
+      "pages": [
+		  {
+		            "path": "pages/empty-page/empty-page",
+		            "style": {
+		              "navigationBarTitleText": "",
+		              "disableScroll": true
+		            }
+		          }
+	  ]
+    },
 		{
 			"root": "pages/mine",
 			"pages": [
@@ -137,14 +254,25 @@
 				{
 					"path": "signIn",
 					"style": {
-						"navigationBarTitleText": "绛惧埌"
+						"navigationBarTitleText": "绛惧埌",
+						"componentPlaceholder": {
+							"u-icon": "view"
+						}
 					}
 				}, {
 					"path": "myTracks",
 					"style": {
 						"navigationBarTitleText": "鎴戠殑瓒宠抗",
 						"enablePullDownRefresh": true,
-						"navigationStyle": "custom"
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-navbar": "view",
+							"u-notice-bar": "view",
+							"u-empty": "view",
+							"u-swipe-action": "view",
+							"u-checkbox-group": "view",
+							"u-checkbox": "view"
+						}
 					}
 				}, {
 					"path": "myCollect",
@@ -154,6 +282,15 @@
 						"navigationStyle": "custom",
 						"app-plus": {
 							"scrollIndicator": "none"
+						},
+						"componentPlaceholder": {
+							"u-navbar": "view",
+							"u-tabs": "view",
+							"u-empty": "view",
+							"u-swipe-action": "view",
+							"u-image": "view",
+							"u-loading": "view",
+							"u-tag": "view"
 						}
 					}
 				},
@@ -164,6 +301,11 @@
 						"app-plus": {
 							//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
 							"scrollIndicator": "none"
+						},
+						"componentPlaceholder": {
+							"u-swipe-action": "view",
+							"u-image": "view",
+							"u-modal": "view"
 						}
 					}
 				},
@@ -174,6 +316,9 @@
 						"app-plus": {
 							//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
 							"scrollIndicator": "none"
+						},
+						"componentPlaceholder": {
+							"u-input": "view"
 						}
 					}
 				},
@@ -185,35 +330,50 @@
 						"app-plus": {
 							//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
 							"scrollIndicator": "none"
+						},
+						"componentPlaceholder": {
+							"u-tabs": "view",
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view",
+							"u-button": "view"
 						}
 					}
 				},
 				{
 					"path": "distribution/history",
 					"style": {
-						"navigationBarTitleText": "鎻愮幇鍘嗗彶"
-
+						"navigationBarTitleText": "鎻愮幇鍘嗗彶",
+						"componentPlaceholder": {
+							"u-loadmore": "view"
+						}
 					}
 				},
 				{
 					"path": "distribution/auth",
 					"style": {
-						"navigationBarTitleText": "浼氬憳瀹炲悕璁よ瘉"
-
+						"navigationBarTitleText": "浼氬憳瀹炲悕璁よ瘉",
+						"componentPlaceholder": {
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view",
+							"u-button": "view"
+						}
 					}
 				},
 				{
 					"path": "distribution/achievement",
 					"style": {
 						"navigationBarTitleText": "鎴戠殑鍒嗛攢涓氱哗"
-
 					}
 				},
 				{
 					"path": "distribution/home",
 					"style": {
-						"navigationBarTitleText": "鎺ㄥ箍鍒嗕剑"
-
+						"navigationBarTitleText": "鎺ㄥ箍鍒嗕剑",
+						"componentPlaceholder": {
+							"u-icon": "view"
+						}
 					}
 				},
 				{
@@ -269,13 +429,27 @@
 				{
 					"path": "address/add",
 					"style": {
-						"navigationBarTitleText": "鏀惰揣浜�"
+						"navigationBarTitleText": "鏀惰揣浜�",
+						"componentPlaceholder": {
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view",
+							"u-icon": "view",
+							"u-action-sheet": "view",
+							"u-checkbox-group": "view",
+							"u-checkbox": "view"
+						}
 					}
 				},
 				{
 					"path": "address/addressManage",
 					"style": {
-						"navigationBarTitleText": "鍦板潃绠$悊"
+						"navigationBarTitleText": "鍦板潃绠$悊",
+						"componentPlaceholder": {
+							"u-empty": "view",
+							"u-icon": "view",
+							"u-action-sheet": "view"
+						}
 					}
 				},
 				{
@@ -342,7 +516,11 @@
 				{
 					"path": "set/feedBack",
 					"style": {
-						"navigationBarTitleText": "鎰忚鍙嶉"
+						"navigationBarTitleText": "鎰忚鍙嶉",
+						"componentPlaceholder": {
+							"u-input": "view",
+							"u-upload": "view"
+						}
 					}
 				},
 				{
@@ -355,13 +533,23 @@
 				{
 					"path": "set/editionIntro",
 					"style": {
-						"navigationBarTitleText": "鍏充簬鎴戜滑"
+						"navigationBarTitleText": "鍏充簬鎴戜滑",
+						"componentPlaceholder": {
+							"u-cell-group": "view",
+							"u-cell-item": "view"
+						}
 					}
 				},
 				{
 					"path": "set/setUp",
 					"style": {
-						"navigationBarTitleText": "璁剧疆"
+						"navigationBarTitleText": "璁剧疆",
+						"componentPlaceholder": {
+							"u-image": "view",
+							"u-icon": "view",
+							"u-cell-group": "view",
+							"u-cell-item": "view"
+						}
 					}
 				},
 				{
@@ -383,12 +571,19 @@
 				}, {
 					"path": "help/tips",
 					"style": {
-						"navigationBarTitleText": ""
+						"navigationBarTitleText": "",
+						"componentPlaceholder": {
+							"u-parse": "view"
+						}
 					}
 				}, {
 					"path": "point/myPoint",
 					"style": {
-						"navigationBarTitleText": "鎴戠殑绉垎"
+						"navigationBarTitleText": "鎴戠殑绉垎",
+						"componentPlaceholder": {
+							"u-row": "view",
+							"u-col": "view"
+						}
 					}
 				},
 				 {
@@ -453,50 +648,138 @@
 					"navigationStyle": "custom"
 				}
 			},
-				{
-					"path": "goods",
-					"style": {
-						"backgroundColor": "#fff",
-						"navigationStyle": "custom",
-						"app-plus": {
-							// 灏嗗洖寮瑰睘鎬у叧鎺�
-							"bounce": "none",
-							// 绂佹椤甸潰婊氬姩
-							"scrollIndicator": "none",
-							"safearea": {
-								"bottom": {  
-									  "offset": "none" 
-								  }   
-							  }
-						}
-					}
-				},
-				{
-					"path": "askList",
-					"style": {
-						"navigationBarTitleText": "闂瓟涓撳尯"
-					}
-				},
-				{ //鍟嗗搧璇勪环
-					"path": "comment",
+			{
+				"path": "goods",
+				"style": {
+					"backgroundColor": "#fff",
 					"navigationStyle": "custom",
-					"style": {
-						"navigationBarTitleText": "鍟嗗搧璇勪环",
-						//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
-						"scrollIndicator": "none"
-					}
-				},
-				{ // 瀹㈡湇
-					"path": "customerservice/index",
-					"style": {
-						"navigationBarTitleText": "瀹㈡湇",
-						"usingComponents": {
-							// #ifdef MP-WEIXIN
-							"chat": "plugin://myPlugin/chat"
-							// #endif
-						}
+					"app-plus": {
+						// 灏嗗洖寮瑰睘鎬у叧鎺�
+						"bounce": "none",
+						// 绂佹椤甸潰婊氬姩
+						"scrollIndicator": "none",
+						"safearea": {
+							"bottom": {  
+								  "offset": "none" 
+							  }   
+						  }
+					},
+					"componentPlaceholder": {
+						"u-icon": "view",
+						"u-navbar": "view",
+						"u-popup": "view"
 					}
 				}
+			},
+			{
+				"path": "askList",
+				"style": {
+					"navigationBarTitleText": "闂瓟涓撳尯"
+				}
+			},
+			{
+				"path": "product/promotion/-promotion-details",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-tag": "view"
+					}
+				}
+			},
+			{
+				"path": "product/promotion/-promotion-assemble-promotions",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-tag": "view",
+						"u-count-down": "view"
+					}
+				}
+			},
+			{
+				"path": "product/promotion/-promotion-assemble-list",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-image": "view",
+						"u-button": "view",
+						"u-empty": "view"
+					}
+				}
+			},
+			{
+				"path": "product/goods/-goods-intro",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-empty": "view",
+						"u-parse": "view"
+					}
+				}
+			},
+			{
+				"path": "product/shop/-shop",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-image": "view",
+						"u-loading": "view"
+					}
+				}
+			},
+			{
+				"path": "product/evaluation/-evaluation",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-avatar": "view",
+						"u-read-more": "view",
+						"u-image": "view",
+						"u-empty": "view"
+					}
+				}
+			},
+			{
+				"path": "product/goods/-goods-swiper",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-loading": "view",
+						"u-image": "view"
+					}
+				}
+			},
+			{
+				"path": "product/popup/address",
+				"style": {
+					"navigationBarTitleText": "",
+					"componentPlaceholder": {
+						"u-popup": "view",
+						"u-icon": "view",
+						"u-empty": "view"
+					}
+				}
+			},
+			{ //鍟嗗搧璇勪环
+				"path": "comment",
+				"navigationStyle": "custom",
+				"style": {
+					"navigationBarTitleText": "鍟嗗搧璇勪环",
+					//app椤甸潰涓嶆樉绀烘粴鍔ㄦ潯
+					"scrollIndicator": "none"
+				}
+			},
+			{ // 瀹㈡湇
+				"path": "customerservice/index",
+				"style": {
+					"navigationBarTitleText": "瀹㈡湇",
+					"usingComponents": {
+						// #ifdef MP-WEIXIN
+						"chat": "plugin://myPlugin/chat"
+						// #endif
+					}
+				}
+			}
 
 			]
 
@@ -532,14 +815,59 @@
 					"path": "entry/seller/index",
 					"style": {
 						"navigationBarTitleText": "搴楅摵鍏ラ┗",
-						"navigationStyle": "custom"
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-navbar": "view"
+						}
+					}
+				},
+				{
+					"path": "entry/seller/step1",
+					"style": {
+						"navigationBarTitleText": "",
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view",
+							"u-upload": "view"
+						}
+					}
+				},
+				{
+					"path": "entry/seller/step2",
+					"style": {
+						"navigationBarTitleText": "",
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view"
+						}
+					}
+				},
+				{
+					"path": "entry/seller/step3",
+					"style": {
+						"navigationBarTitleText": "",
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-form": "view",
+							"u-form-item": "view",
+							"u-input": "view",
+							"u-upload": "view",
+							"u-select": "view"
+						}
 					}
 				},
 				{
 					"path": "entry/seller/control",
 					"style": {
 						"navigationBarTitleText": "",
-						"navigationStyle": "custom"
+						"navigationStyle": "custom",
+						"componentPlaceholder": {
+							"u-navbar": "view"
+						}
 					}
 				},
 				{
@@ -553,7 +881,12 @@
 					"style": {
 						"navigationBarTitleText": "灏忕▼搴忕櫥褰�",
 						"navigationStyle": "custom",
-						"navigationBarTextStyle": "black"
+						"navigationBarTextStyle": "black",
+						"componentPlaceholder": {
+							"u-navbar": "view",
+							"u-modal": "view",
+							"u-checkbox": "view"
+						}
 					}
 				},
 				{
@@ -619,7 +952,11 @@
 				},{
 					"path": "bargain/log",
 					"style": {
-						"navigationBarTitleText": "鐮嶄环璁板綍"
+						"navigationBarTitleText": "鐮嶄环璁板綍",
+						"componentPlaceholder": {
+							"u-image": "view",
+							"u-empty": "view"
+						}
 					}
 				},{
 					"path": "point/detail",
@@ -648,7 +985,10 @@
 						"navigationBarTitleText": "鎴戠殑浼樻儬鍒�",
 						"app-plus": {
 							"bounce": "coupon/none"
-							
+						},
+						"componentPlaceholder": {
+							"u-empty": "view",
+							"u-icon": "view"
 						}
 					}
 				},
@@ -669,8 +1009,10 @@
 					"path": "coupon/couponCenter",
 					"style": {
 						"navigationBarTitleText": "棰嗗埜涓績",
-						"enablePullDownRefresh": true
-						
+						"enablePullDownRefresh": true,
+						"componentPlaceholder": {
+							"u-empty": "view"
+						}
 					}
 				},
 				{
@@ -725,7 +1067,14 @@
 				{
 					"path": "complain/complainList",
 					"style": {
-						"navigationBarTitleText": "鎶曡瘔鍒楄〃"
+						"navigationBarTitleText": "鎶曡瘔鍒楄〃",
+						"componentPlaceholder": {
+							"u-line": "view",
+							"u-image": "view",
+							"u-tag": "view",
+							"u-empty": "view",
+							"u-modal": "view"
+						}
 					}
 				},
 				{
@@ -735,7 +1084,17 @@
 						"enablePullDownRefresh": true,
 						"app-plus": {
 							"bounce": "none"
-						
+						},
+						"componentPlaceholder": {
+							"u-empty": "view",
+							"u-modal": "view",
+							"u-image": "view",
+							"u-popup": "view",
+							"u-radio-group": "view",
+							"u-radio": "view",
+							"u-button": "view",
+							"u-toast": "view",
+							"u-modal": "view"
 						}
 					}
 				},
@@ -773,7 +1132,14 @@
 				{
 					"path": "evaluate/myEvaluate",
 					"style": {
-						"navigationBarTitleText": "鎴戠殑璇勪环"
+						"navigationBarTitleText": "鎴戠殑璇勪环",
+						"componentPlaceholder": {
+							"u-empty": "view",
+							"u-tabs": "view",
+							"u-image": "view",
+							"u-read-more": "view",
+							"u-tag": "view"
+						}
 					}
 				},
 				
@@ -827,7 +1193,15 @@
 					"path": "afterSales/afterSales",
 					"style": {
 						"navigationBarTitleText": "鍞悗绠$悊",
-						"enablePullDownRefresh": true
+						"enablePullDownRefresh": true,
+						"componentPlaceholder": {
+							"u-modal": "view",
+							"u-tabs": "view",
+							"u-image": "view",
+							"u-search": "view",
+							"u-icon": "view",
+							"u-loadmore": "view"
+						}
 					}
 				},
 				{
@@ -841,7 +1215,7 @@
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "Lili鍟嗗煄",
+		"navigationBarTitleText": "缁挎弧绛�",
 		"titleColor": "#303133",
 		"navigationBarBackgroundColor": "#fff",
 		"backgroundColor": "#fff",
diff --git a/pages/cart/coupon/couponCenter.vue b/pages/cart/coupon/couponCenter.vue
index eead2c3..4b17115 100644
--- a/pages/cart/coupon/couponCenter.vue
+++ b/pages/cart/coupon/couponCenter.vue
@@ -46,6 +46,7 @@
 </template>
 
 <script>
+	import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
 	import {
 		receiveCoupons
 	} from "@/api/members.js";
@@ -53,6 +54,7 @@
 		getAllCoupons
 	} from "@/api/promotions.js";
 	export default {
+		components: {UEmpty},
 		data() {
 			return {
 				loadStatus: "more", //涓嬫媺鐘舵��
diff --git a/pages/cart/coupon/index.vue b/pages/cart/coupon/index.vue
index 2261545..342bf36 100644
--- a/pages/cart/coupon/index.vue
+++ b/pages/cart/coupon/index.vue
@@ -63,6 +63,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { useCoupon } from "@/api/trade.js";
 
 export default {
diff --git a/pages/cart/coupon/myCoupon.vue b/pages/cart/coupon/myCoupon.vue
index d5e396c..e367d75 100644
--- a/pages/cart/coupon/myCoupon.vue
+++ b/pages/cart/coupon/myCoupon.vue
@@ -123,9 +123,13 @@
 </template>
 
 <script>
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+
 import { getMemberCoupons } from "@/api/members.js";
 
 export default {
+  components: {UEmpty,UIcon},
   data() {
     return {
       tabCurrentIndex: 0, //tab鏍忎笅鏍囬粯璁や负0 鏈娇鐢�
diff --git a/pages/cart/payment/payOrder.vue b/pages/cart/payment/payOrder.vue
index 1efc230..32f7f7b 100644
--- a/pages/cart/payment/payOrder.vue
+++ b/pages/cart/payment/payOrder.vue
@@ -43,6 +43,7 @@
   </div>
 </template>
 <script>
+	import '@/uview-components/uview-ui'
 	import * as API_Trade from "@/api/trade";
 	import {payCallback} from '@/api/members'
 	export default {
diff --git a/pages/cart/payment/shareOrderGoods.vue b/pages/cart/payment/shareOrderGoods.vue
index 5902746..2c7eb20 100644
--- a/pages/cart/payment/shareOrderGoods.vue
+++ b/pages/cart/payment/shareOrderGoods.vue
@@ -63,6 +63,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getGoods } from "@/api/goods.js";
 import { getPinTuanShare } from "@/api/order";
 import shares from "@/components/m-share/index";
diff --git a/pages/mine/address/add.vue b/pages/mine/address/add.vue
index 081a049..36b821f 100644
--- a/pages/mine/address/add.vue
+++ b/pages/mine/address/add.vue
@@ -40,6 +40,14 @@
   </view>
 </template>
 <script>
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UCheckboxGroup from '@/uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue';
+import UCheckbox from '@/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UActionSheet from '@/uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue';
+
 import { addAddress, editAddress, getAddressDetail } from "@/api/address.js";
 import city from "@/components/m-city/m-city.vue";
 import uniMap from "@/components/uniMap";
@@ -48,6 +56,7 @@
   components: {
     "m-city": city,
     uniMap,
+	UForm,UFormItem,UInput,UCheckboxGroup,UCheckbox,UIcon,UActionSheet
   },
   onShow() {
     // 鍒ゆ柇褰撳墠绯荤粺鏉冮檺瀹氫綅鏄惁寮�鍚�
diff --git a/pages/mine/address/address.vue b/pages/mine/address/address.vue
index 58812c6..f450a3c 100644
--- a/pages/mine/address/address.vue
+++ b/pages/mine/address/address.vue
@@ -43,6 +43,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import * as API_Trade from "@/api/trade";
 import * as API_Address from "@/api/address.js";
 export default {
diff --git a/pages/mine/address/addressManage.vue b/pages/mine/address/addressManage.vue
index beb041d..bffe3de 100644
--- a/pages/mine/address/addressManage.vue
+++ b/pages/mine/address/addressManage.vue
@@ -44,8 +44,13 @@
 </template>
 
 <script>
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UActionSheet from '@/uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue';
+
 import * as API_Address from "@/api/address.js";
 export default {
+  components: {UEmpty,UIcon,UActionSheet},
   data() {
     return {
       addressList: [], //鍦板潃鍒楄〃
diff --git a/pages/mine/address/storeAddress.vue b/pages/mine/address/storeAddress.vue
index 988a583..451267f 100644
--- a/pages/mine/address/storeAddress.vue
+++ b/pages/mine/address/storeAddress.vue
@@ -21,6 +21,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import * as API_Trade from "@/api/trade";
 import * as API_Store from "@/api/store.js";
 export default {
diff --git a/pages/mine/deposit/index.vue b/pages/mine/deposit/index.vue
index d6c7d79..f61eec7 100644
--- a/pages/mine/deposit/index.vue
+++ b/pages/mine/deposit/index.vue
@@ -39,6 +39,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getUserRecharge, getWalletLog } from "@/api/members";
 import { getUserWallet } from "@/api/members";
 export default {
diff --git a/pages/mine/deposit/info.vue b/pages/mine/deposit/info.vue
index 1d2df19..cbedf4f 100644
--- a/pages/mine/deposit/info.vue
+++ b/pages/mine/deposit/info.vue
@@ -13,6 +13,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 export default {};
 </script>
 
diff --git a/pages/mine/deposit/operation.vue b/pages/mine/deposit/operation.vue
index ab73181..15cfd54 100644
--- a/pages/mine/deposit/operation.vue
+++ b/pages/mine/deposit/operation.vue
@@ -19,6 +19,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getUserWallet } from "@/api/members";
 export default {
   data() {
diff --git a/pages/mine/deposit/recharge.vue b/pages/mine/deposit/recharge.vue
index c9272d5..ae6963c 100644
--- a/pages/mine/deposit/recharge.vue
+++ b/pages/mine/deposit/recharge.vue
@@ -17,6 +17,7 @@
   </view>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { recharge } from "@/api/members";
 export default {
   data() {
diff --git a/pages/mine/deposit/withdrawal.vue b/pages/mine/deposit/withdrawal.vue
index 7c66954..1594fbb 100644
--- a/pages/mine/deposit/withdrawal.vue
+++ b/pages/mine/deposit/withdrawal.vue
@@ -47,6 +47,7 @@
   </view>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { getUserWallet, withdrawalApply, withdrawalSettingVO } from "@/api/members";
 export default {
   data() {
diff --git a/pages/mine/distribution/auth.vue b/pages/mine/distribution/auth.vue
index 4c70762..464bfd2 100644
--- a/pages/mine/distribution/auth.vue
+++ b/pages/mine/distribution/auth.vue
@@ -40,9 +40,15 @@
   </view>
 </template>
 <script>
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
+
 import { applyDistribution } from "@/api/goods";
 import { checkBankno } from "@/utils/Foundation";
 export default {
+  components: {UForm,UFormItem,UInput,UButton},
   data() {
     return {
       ruleForm: {
diff --git a/pages/mine/distribution/history.vue b/pages/mine/distribution/history.vue
index 1ccf875..56ba113 100644
--- a/pages/mine/distribution/history.vue
+++ b/pages/mine/distribution/history.vue
@@ -44,8 +44,10 @@
   </view>
 </template>
 <script>
+import ULoadmore from '@/uview-components/uview-ui/components/u-loadmore/u-loadmore.vue';
 import { cashLog, distributionOrderList } from "@/api/goods";
 export default {
+  components: {ULoadmore},
   data () {
     return {
       cashLogData: [], //鎻愮幇璁板綍鏁版嵁闆嗗悎
diff --git a/pages/mine/distribution/home.vue b/pages/mine/distribution/home.vue
index 4a9fa3a..4868fcb 100644
--- a/pages/mine/distribution/home.vue
+++ b/pages/mine/distribution/home.vue
@@ -47,10 +47,10 @@
 </template>
 
 <script>
-
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
 import { distribution } from "@/api/goods";
 export default {
-
+  components: {UIcon},
   data() {
     return {
       distributionData: "",
diff --git a/pages/mine/distribution/join.vue b/pages/mine/distribution/join.vue
index 4e6baa7..1cfe457 100644
--- a/pages/mine/distribution/join.vue
+++ b/pages/mine/distribution/join.vue
@@ -44,8 +44,14 @@
   </view>
 </template>
 <script>
+import UTabs from '@/uview-components/uview-ui/components/u-tabs/u-tabs.vue';
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
+
 export default {
-  components: {},
+  components: {UTabs,UForm,UFormItem,UInput,UButton},
   // 蹇呴』瑕佸湪onReady鐢熷懡鍛ㄦ湡锛屽洜涓簅nLoad鐢熷懡鍛ㄦ湡缁勪欢鍙兘灏氭湭鍒涘缓瀹屾瘯
   onReady() {
     this.$refs.uForm.setRules(this.rules);
diff --git a/pages/mine/distribution/list.vue b/pages/mine/distribution/list.vue
index 989daf3..d7e27b2 100644
--- a/pages/mine/distribution/list.vue
+++ b/pages/mine/distribution/list.vue
@@ -1,61 +1,5 @@
 <template>
   <view class="wrapper">
-    <!-- 绛涢�夊脊鍑哄眰 TODO鍚庣画鐗堟湰鏇存柊 -->
-    <!-- <u-popup width="90%" v-model="popup" mode="right">
-      <view class="screen-title">鍟嗗搧绛涢��</view>
-
-      <view class="screen-view">
-        <view class="screen-item">
-          <h4>浠锋牸鍖洪棿</h4>
-          <view class="flex">
-            <u-input class="u-bg" placeholder-style="font-size:22rpx;" type="number" input-align="center" placeholder="鏈�浣庝环"></u-input>
-            <view class="line"></view>
-            <u-input class="u-bg" placeholder-style="font-size:22rpx;" type="number" input-align="center" placeholder="鏈�楂樹环"></u-input>
-          </view>
-        </view>
-        <view class="screen-item">
-          <h4>閿�閲�</h4>
-          <view class="flex">
-            <u-input class="u-bg w200 flex1" placeholder-style="font-size:22rpx;" type="number" input-align="center" placeholder="閿�閲�"></u-input>
-            <view class="flex1">绗斾互涓�</view>
-          </view>
-        </view>
-        <view class="screen-item">
-          <h4>鏀跺叆姣旂巼</h4>
-          <view class="flex">
-            <u-input class="u-bg" placeholder-style="font-size:22rpx;" type="number" input-align="center" placeholder="鏈�浣�%"></u-input>
-            <view class="line"></view>
-            <u-input class="u-bg" placeholder-style="font-size:22rpx;" type="number" input-align="center" placeholder="鏈�楂�%"></u-input>
-          </view>
-        </view>
-        <view class="screen-item">
-          <h4>鍖呴偖</h4>
-          <view class="flex">
-            <u-tag class="u-tag" shape="circle" text="鍖呴偖" mode="plain" type="info" />
-          </view>
-        </view>
-        <view class="screen-item">
-          <h4>淇冮攢娲诲姩</h4>
-          <view class="flex">
-            <u-tag class="u-tag" shape="circle" text="闄愭椂鎶㈣喘" mode="plain" type="info" />
-            <u-tag class="u-tag" shape="circle" text="鎷煎洟绉掓潃" mode="plain" type="info" />
-          </view>
-        </view>
-        <view class="screen-item">
-          <h4>缁忚惀绫诲瀷</h4>
-          <view class="flex">
-            <u-tag class="u-tag" shape="circle" text="骞冲彴鑷惀" mode="plain" type="info" />
-            <u-tag class="u-tag" shape="circle" text="涓夋柟搴楅摵" mode="plain" type="info" />
-          </view>
-        </view>
-      </view>
-
-      <view class="screen-btn">
-        <view class="screen-clear"> 閲嶇疆 </view>
-        <view class="screen-submit"> 纭畾 </view>
-      </view>
-    </u-popup> -->
-
     <!-- 瀵艰埅鏍� -->
     <view class="nav">
       <view class="nav-item" @click="handleMyGoods(true)" :class="{ checked: params.checked }">宸查�夋嫨</view>
@@ -114,6 +58,10 @@
   </view>
 </template>
 <script>
+import USwipeAction from '@/uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UModal from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
+
 import {
   distributionGoods,
   checkedDistributionGoods,
@@ -122,6 +70,7 @@
 
 import drawCanvas from "@/components/m-canvas";
 export default {
+  components: {USwipeAction,UImage,UModal},
   data() {
     return {
       lightColor: this.$lightColor,
diff --git a/pages/mine/distribution/withdrawal.vue b/pages/mine/distribution/withdrawal.vue
index a9614fc..9274d47 100644
--- a/pages/mine/distribution/withdrawal.vue
+++ b/pages/mine/distribution/withdrawal.vue
@@ -22,8 +22,10 @@
   </view>
 </template>
 <script>
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
 import { distribution, cash } from "@/api/goods";
 export default {
+  components: {UInput},
   data() {
     return {
       price: 0,
diff --git a/pages/mine/help/tips.vue b/pages/mine/help/tips.vue
index 75f266a..e31092e 100644
--- a/pages/mine/help/tips.vue
+++ b/pages/mine/help/tips.vue
@@ -5,8 +5,11 @@
   </div>
 </template>
 <script>
+import UParse from '@/uview-components/uview-ui/components/u-parse/u-parse.vue';
+
 import { getArticleDetailByType } from "@/api/article";
 export default {
+  components: {UParse},
   data() {
     return {
       res: "",
diff --git a/pages/mine/im/index.vue b/pages/mine/im/index.vue
index ae0814d..cb708c8 100644
--- a/pages/mine/im/index.vue
+++ b/pages/mine/im/index.vue
@@ -198,6 +198,7 @@
 var wh
 // 椤堕儴绌虹洅瀛愮殑楂樺害
 var mgUpHeight
+import '@/uview-components/uview-ui'
 import {
   getTalkMessage,
   getTalkByUser,
diff --git a/pages/mine/im/list.vue b/pages/mine/im/list.vue
index 0914012..a643d89 100644
--- a/pages/mine/im/list.vue
+++ b/pages/mine/im/list.vue
@@ -58,6 +58,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getTalkList, clearmeaager } from "@/api/im.js";
 import storage from "@/utils/storage.js";
 import { beautifyTime } from "@/utils/filters.js"
diff --git a/pages/mine/msgTips/main.vue b/pages/mine/msgTips/main.vue
index eb383da..028d070 100644
--- a/pages/mine/msgTips/main.vue
+++ b/pages/mine/msgTips/main.vue
@@ -40,6 +40,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		mapMutations
 	} from "vuex";
diff --git a/pages/mine/msgTips/packageMsg/index.vue b/pages/mine/msgTips/packageMsg/index.vue
index da9ae42..76de63d 100644
--- a/pages/mine/msgTips/packageMsg/index.vue
+++ b/pages/mine/msgTips/packageMsg/index.vue
@@ -21,6 +21,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import * as API_Message from "@/api/message.js";
 export default {
   data() {
diff --git a/pages/mine/msgTips/packageMsg/logisticsDetail.vue b/pages/mine/msgTips/packageMsg/logisticsDetail.vue
index d6a98ad..e29745b 100644
--- a/pages/mine/msgTips/packageMsg/logisticsDetail.vue
+++ b/pages/mine/msgTips/packageMsg/logisticsDetail.vue
@@ -30,6 +30,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getExpress } from "@/api/trade.js";
 export default {
   data() {
diff --git a/pages/mine/msgTips/serviceMsg/index.vue b/pages/mine/msgTips/serviceMsg/index.vue
index 2ccbbec..7c6104c 100644
--- a/pages/mine/msgTips/serviceMsg/index.vue
+++ b/pages/mine/msgTips/serviceMsg/index.vue
@@ -32,6 +32,7 @@
 
 <script>
 import { mapMutations } from "vuex";
+import '@/uview-components/uview-ui'
 export default {
   data() {
     return {};
diff --git a/pages/mine/msgTips/sysMsg/index.vue b/pages/mine/msgTips/sysMsg/index.vue
index 1db1c56..4bf62a9 100644
--- a/pages/mine/msgTips/sysMsg/index.vue
+++ b/pages/mine/msgTips/sysMsg/index.vue
@@ -23,6 +23,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { mapMutations } from "vuex";
 import * as API_Message from "@/api/message.js";
 export default {
diff --git a/pages/mine/myCollect.vue b/pages/mine/myCollect.vue
index bc5b617..47c8805 100644
--- a/pages/mine/myCollect.vue
+++ b/pages/mine/myCollect.vue
@@ -62,6 +62,14 @@
 </template>
 
 <script>
+	import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+	import UTabs from '@/uview-components/uview-ui/components/u-tabs/u-tabs.vue';
+	import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+	import USwipeAction from '@/uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue';
+	import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+	import ULoading from '@/uview-components/uview-ui/components/u-loading/u-loading.vue';
+	import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
+	
 	import {
 		getGoodsCollection,
 		getStoreCollection,
diff --git a/pages/mine/myTracks.vue b/pages/mine/myTracks.vue
index ef3fd39..315e67a 100644
--- a/pages/mine/myTracks.vue
+++ b/pages/mine/myTracks.vue
@@ -48,12 +48,20 @@
 </template>
 
 <script>
+	import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+	import UNoticeBar from '@/uview-components/uview-ui/components/u-notice-bar/u-notice-bar.vue';
+	import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+	import USwipeAction from '@/uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue';
+	import UCheckboxGroup from '@/uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue';
+	import UCheckbox from '@/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue';
+	
 	import {
 		myTrackList,
 		deleteHistoryListId
 	} from "@/api/members.js";
 
 	export default {
+		components: {UNavbar,UNoticeBar,UEmpty,USwipeAction,UCheckboxGroup,UCheckbox},
 		data() {
 			return {
 				isEdit:false,
diff --git a/pages/mine/point/myPoint.vue b/pages/mine/point/myPoint.vue
index 3fac2c4..ad0ed21 100644
--- a/pages/mine/point/myPoint.vue
+++ b/pages/mine/point/myPoint.vue
@@ -33,9 +33,13 @@
 </template>
 
 <script>
+import URow from '@/uview-components/uview-ui/components/u-row/u-row.vue';
+import UCol from '@/uview-components/uview-ui/components/u-col/u-col.vue';
+
 import { getPointsData } from "@/api/members.js";
 import { getMemberPointSum } from "@/api/members.js";
 export default {
+  components: {URow, UCol},
   data() {
     return {
       count: {
diff --git a/pages/mine/set/editionIntro.vue b/pages/mine/set/editionIntro.vue
index 160e0f9..c2d8139 100644
--- a/pages/mine/set/editionIntro.vue
+++ b/pages/mine/set/editionIntro.vue
@@ -40,10 +40,14 @@
 </template>
 
 <script>
+import UCellGroup from '@/uview-components/uview-ui/components/u-cell-group/u-cell-group.vue';
+import UCellItem from '@/uview-components/uview-ui/components/u-cell-item/u-cell-item.vue';
+
 import APPUpdate from "@/plugins/APPUpdate";
 import config from "@/config/config";
 import { getAppVersion } from "@/api/message.js";
 export default {
+  components: {UCellGroup,UCellItem},
   data() {
     return {
       config,
diff --git a/pages/mine/set/feedBack.vue b/pages/mine/set/feedBack.vue
index bdd377a..8f3bf56 100644
--- a/pages/mine/set/feedBack.vue
+++ b/pages/mine/set/feedBack.vue
@@ -35,11 +35,15 @@
 </template>
 
 <script>
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UUpload from '@/uview-components/uview-ui/components/u-upload/u-upload.vue';
+
 import storage from "@/utils/storage.js";
 import config from "@/config/config";
 import { feedBack } from "@/api/members.js";
 import { upload } from "@/api/common.js";
 export default {
+  components: {UInput,UUpload},
   data() {
     return {
       storage,
diff --git a/pages/mine/set/personMsg.vue b/pages/mine/set/personMsg.vue
index fbe56b3..bc11b32 100644
--- a/pages/mine/set/personMsg.vue
+++ b/pages/mine/set/personMsg.vue
@@ -41,10 +41,11 @@
   </view>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { saveUserInfo, getUserInfo } from "@/api/members.js";
 import { upload } from "@/api/common.js";
 import storage from "@/utils/storage.js";
-import uFormItem from "@/uview-ui/components/u-form-item/u-form-item.vue";
+import uFormItem from "@/uview-components/uview-ui/components/u-form-item/u-form-item.vue";
 import city from "@/components/m-city/m-city.vue";
 export default {
   components: { uFormItem, "m-city": city },
diff --git a/pages/mine/set/securityCenter/bindMobile.vue b/pages/mine/set/securityCenter/bindMobile.vue
index de301b0..ab3c01e 100644
--- a/pages/mine/set/securityCenter/bindMobile.vue
+++ b/pages/mine/set/securityCenter/bindMobile.vue
@@ -30,6 +30,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		sendMobile,
 		bindMobile
diff --git a/pages/mine/set/securityCenter/editPassword.vue b/pages/mine/set/securityCenter/editPassword.vue
index a6b8cd0..1c5450a 100644
--- a/pages/mine/set/securityCenter/editPassword.vue
+++ b/pages/mine/set/securityCenter/editPassword.vue
@@ -43,6 +43,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		sendMobile,
 		resetByMobile,
diff --git a/pages/mine/set/securityCenter/faceLogin.vue b/pages/mine/set/securityCenter/faceLogin.vue
index ee923e5..ff2000b 100644
--- a/pages/mine/set/securityCenter/faceLogin.vue
+++ b/pages/mine/set/securityCenter/faceLogin.vue
@@ -11,6 +11,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import storage from "@/utils/storage.js";
 import { setBiolofy } from "@/api/passport.js";
 
diff --git a/pages/mine/set/securityCenter/fingerLogin.vue b/pages/mine/set/securityCenter/fingerLogin.vue
index f37fc70..cce9b9f 100644
--- a/pages/mine/set/securityCenter/fingerLogin.vue
+++ b/pages/mine/set/securityCenter/fingerLogin.vue
@@ -11,6 +11,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import storage from "@/utils/storage.js";
 import { setBiolofy } from "@/api/passport.js";
 
diff --git a/pages/mine/set/securityCenter/securityCenter.vue b/pages/mine/set/securityCenter/securityCenter.vue
index 36ffd59..7592344 100644
--- a/pages/mine/set/securityCenter/securityCenter.vue
+++ b/pages/mine/set/securityCenter/securityCenter.vue
@@ -8,6 +8,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 export default {
   data() {
     return {
diff --git a/pages/mine/set/setUp.vue b/pages/mine/set/setUp.vue
index a422266..12345df 100644
--- a/pages/mine/set/setUp.vue
+++ b/pages/mine/set/setUp.vue
@@ -29,8 +29,14 @@
 </template>
 
 <script>
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UCellGroup from '@/uview-components/uview-ui/components/u-cell-group/u-cell-group.vue';
+import UCellItem from '@/uview-components/uview-ui/components/u-cell-item/u-cell-item.vue';
+
 import config from "@/config/config";
 export default {
+  components: {UImage,UIcon,UCellGroup,UCellItem},
   data() {
     return {
       config,
diff --git a/pages/mine/set/versionFunctionList.vue b/pages/mine/set/versionFunctionList.vue
index eb550b1..67c1240 100644
--- a/pages/mine/set/versionFunctionList.vue
+++ b/pages/mine/set/versionFunctionList.vue
@@ -13,6 +13,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getAppVersionList } from "@/api/message";
 export default {
   data() {
diff --git a/pages/mine/signIn.vue b/pages/mine/signIn.vue
index d94fac2..f3940f0 100644
--- a/pages/mine/signIn.vue
+++ b/pages/mine/signIn.vue
@@ -62,8 +62,11 @@
 </template>
 
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+
 import { sign, signTime } from "@/api/point.js";
 export default {
+  components: {UIcon},
   data() {
     return {
       aiderLightColor:this.$aiderLightColor,
diff --git a/pages/navigation/search/searchPage.vue b/pages/navigation/search/searchPage.vue
index cbd6081..c93e0ff 100644
--- a/pages/navigation/search/searchPage.vue
+++ b/pages/navigation/search/searchPage.vue
@@ -203,12 +203,20 @@
 </template>
 
 <script>
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UBackTop from '@/uview-components/uview-ui/components/u-back-top/u-back-top.vue';
+
 import { getGoodsList, getGoodsRelated } from '@/api/goods.js';
 import goodsList from '@/components/m-goods-list/list.vue';
 import { getHotKeywords } from '@/api/home.js';
 import mSearch from '@/components/m-search-revision/m-search-revision.vue';
 import storage from '@/utils/storage';
 export default {
+	components: {
+		UNavbar,UPopup,UInput,UBackTop,mSearch,goodsList
+	},
 	data() {
 		return {
 			empty: false,
@@ -308,10 +316,6 @@
 			this.isShowSeachGoods = true;
 		}
 		this.loadData();
-	},
-	components: {
-		mSearch,
-		goodsList
 	},
 	watch: {
 		/**
diff --git a/pages/order/afterSales/afterSales.vue b/pages/order/afterSales/afterSales.vue
index 6916648..1696f29 100644
--- a/pages/order/afterSales/afterSales.vue
+++ b/pages/order/afterSales/afterSales.vue
@@ -198,14 +198,20 @@
 </template>
 
 <script>
-import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
+import UTabs from '@/uview-components/uview-ui/components/u-tabs/u-tabs.vue';
+import USearch from '@/uview-components/uview-ui/components/u-search/u-search.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import ULoadmore from '@/uview-components/uview-ui/components/u-loadmore/u-loadmore.vue';
+import UModal from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
+
 import { getAfterSaleList, cancelAfterSale } from "@/api/after-sale.js";
 import { getOrderList } from "@/api/order.js";
 import storage from "@/utils/storage";
 
 export default {
   components: {
-    uniLoadMore,
+    UTabs,USearch,UImage,UIcon,ULoadmore
   },
   data() {
     return {
diff --git a/pages/order/afterSales/afterSalesDetail.vue b/pages/order/afterSales/afterSalesDetail.vue
index 66a737a..fca096f 100644
--- a/pages/order/afterSales/afterSalesDetail.vue
+++ b/pages/order/afterSales/afterSalesDetail.vue
@@ -97,6 +97,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import {
   getAfterSaleReason,
   applyReturn,
diff --git a/pages/order/afterSales/afterSalesDetailExpress.vue b/pages/order/afterSales/afterSalesDetailExpress.vue
index 77b3fb3..152bb6b 100644
--- a/pages/order/afterSales/afterSalesDetailExpress.vue
+++ b/pages/order/afterSales/afterSalesDetailExpress.vue
@@ -55,6 +55,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getLogistics } from "@/api/address.js";
 import { fillShipInfo } from "@/api/after-sale.js";
 import storage from "@/utils/storage";
diff --git a/pages/order/afterSales/afterSalesSelect.vue b/pages/order/afterSales/afterSalesSelect.vue
index d298151..af45368 100644
--- a/pages/order/afterSales/afterSalesSelect.vue
+++ b/pages/order/afterSales/afterSalesSelect.vue
@@ -55,6 +55,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getAfterSaleInfo } from "@/api/after-sale";
 import storage from "@/utils/storage";
 export default {
diff --git a/pages/order/afterSales/applyDetail.vue b/pages/order/afterSales/applyDetail.vue
index 7926dc0..cd14842 100644
--- a/pages/order/afterSales/applyDetail.vue
+++ b/pages/order/afterSales/applyDetail.vue
@@ -196,6 +196,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import {
   getServiceDetail,
   getStoreAfterSaleAddress,
diff --git a/pages/order/afterSales/applyProgress.vue b/pages/order/afterSales/applyProgress.vue
index a8d8e1f..013b3da 100644
--- a/pages/order/afterSales/applyProgress.vue
+++ b/pages/order/afterSales/applyProgress.vue
@@ -37,6 +37,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 export default {
   data() {
     return {
diff --git a/pages/order/afterSales/applySuccess.vue b/pages/order/afterSales/applySuccess.vue
index 190d887..9b67a5b 100644
--- a/pages/order/afterSales/applySuccess.vue
+++ b/pages/order/afterSales/applySuccess.vue
@@ -22,6 +22,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 export default {
   data() {
     return {};
diff --git a/pages/order/complain/complain.vue b/pages/order/complain/complain.vue
index f5e561f..d6017e5 100644
--- a/pages/order/complain/complain.vue
+++ b/pages/order/complain/complain.vue
@@ -56,6 +56,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import storage from "@/utils/storage.js";
 import { getOrderDetail } from "@/api/order.js";
 import { getComplainReason, addComplain } from "@/api/after-sale.js";
diff --git a/pages/order/complain/complainInfo.vue b/pages/order/complain/complainInfo.vue
index 90ede36..12ae383 100644
--- a/pages/order/complain/complainInfo.vue
+++ b/pages/order/complain/complainInfo.vue
@@ -50,6 +50,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getComplainDetail, communication } from "@/api/after-sale";
 export default {
   data() {
diff --git a/pages/order/complain/complainList.vue b/pages/order/complain/complainList.vue
index 7a22e3a..78c19a9 100644
--- a/pages/order/complain/complainList.vue
+++ b/pages/order/complain/complainList.vue
@@ -42,9 +42,16 @@
 </template>
 
 <script>
+import ULine from '@/uview-components/uview-ui/components/u-line/u-line.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UModal from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
+
 import { getComplain, clearComplain } from "@/api/after-sale";
 
 export default {
+  components: {ULine,UImage,UTag,UEmpty,UModal},
   data() {
     return {
       statusData: {
diff --git a/pages/order/evaluate/evaluateDetail.vue b/pages/order/evaluate/evaluateDetail.vue
index d8a1ac4..16ae8cc 100644
--- a/pages/order/evaluate/evaluateDetail.vue
+++ b/pages/order/evaluate/evaluateDetail.vue
@@ -41,6 +41,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import configs from '@/config/config'
 export default {
   data() {
diff --git a/pages/order/evaluate/myEvaluate.vue b/pages/order/evaluate/myEvaluate.vue
index dbe110b..4361988 100644
--- a/pages/order/evaluate/myEvaluate.vue
+++ b/pages/order/evaluate/myEvaluate.vue
@@ -70,10 +70,16 @@
 </template>
 
 <script>
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UTabs from '@/uview-components/uview-ui/components/u-tabs/u-tabs.vue';
+import UReadMore from '@/uview-components/uview-ui/components/u-read-more/u-read-more.vue';
+import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
 import { getOrderList } from "@/api/order.js";
 import { getComments } from "@/api/members.js";
 
 export default {
+  components: {UEmpty,UImage,UTabs,UReadMore,UTag},
   data() {
     return {
       list: [
diff --git a/pages/order/evaluate/releaseEvaluate.vue b/pages/order/evaluate/releaseEvaluate.vue
index c607830..cd4c3a1 100644
--- a/pages/order/evaluate/releaseEvaluate.vue
+++ b/pages/order/evaluate/releaseEvaluate.vue
@@ -87,6 +87,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import storage from "@/utils/storage.js";
 import { commentsMemberOrder } from "@/api/members.js";
 import { upload } from "@/api/common.js";
diff --git a/pages/order/fillorder.vue b/pages/order/fillorder.vue
index dff0597..8b2ed61 100644
--- a/pages/order/fillorder.vue
+++ b/pages/order/fillorder.vue
@@ -386,6 +386,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import * as API_Address from "@/api/address";
 import * as API_Order from "@/api/order";
 import * as API_Trade from "@/api/trade";
diff --git a/pages/order/invoice/invoiceDetail.vue b/pages/order/invoice/invoiceDetail.vue
index 441d5d4..3399b0a 100644
--- a/pages/order/invoice/invoiceDetail.vue
+++ b/pages/order/invoice/invoiceDetail.vue
@@ -43,6 +43,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getReceiptDetail } from "@/api/order.js";
 
 export default {
diff --git a/pages/order/invoice/setInvoice.vue b/pages/order/invoice/setInvoice.vue
index 648b6c6..995fee9 100644
--- a/pages/order/invoice/setInvoice.vue
+++ b/pages/order/invoice/setInvoice.vue
@@ -51,6 +51,7 @@
   </u-popup>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { addReceipt } from "@/api/members";
 export default {
   props: ["res"],
diff --git a/pages/order/myOrder.vue b/pages/order/myOrder.vue
index da7a01e..820e33b 100644
--- a/pages/order/myOrder.vue
+++ b/pages/order/myOrder.vue
@@ -213,13 +213,20 @@
 </template>
 
 <script>
-import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+import URadioGroup from '@/uview-components/uview-ui/components/u-radio-group/u-radio-group.vue';
+import URadio from '@/uview-components/uview-ui/components/u-radio/u-radio.vue';
+import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
+import UToast from '@/uview-components/uview-ui/components/u-toast/u-toast.vue';
+import UModal from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
 import { getOrderList, cancelOrder, confirmReceipt } from "@/api/order.js";
 import { getClearReason } from "@/api/after-sale.js";
 import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
 export default {
   components: {
-    uniLoadMore,
+    UEmpty,UImage,UPopup,URadioGroup,URadio,UButton,UToast,UModal
   },
   data() {
     return {
diff --git a/pages/order/orderDetail.vue b/pages/order/orderDetail.vue
index eee7554..377920f 100644
--- a/pages/order/orderDetail.vue
+++ b/pages/order/orderDetail.vue
@@ -260,6 +260,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getExpress, getPackage } from "@/api/trade.js";
 import { cancelOrder, confirmReceipt, getOrderDetail } from "@/api/order.js";
 
diff --git a/pages/passport/article.vue b/pages/passport/article.vue
index e66fd21..4455d8b 100644
--- a/pages/passport/article.vue
+++ b/pages/passport/article.vue
@@ -11,6 +11,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getArticleDetail } from "@/api/article.js";
 export default {
   data() {
diff --git a/pages/passport/entry/seller/control.vue b/pages/passport/entry/seller/control.vue
index 86158b6..7099fd9 100644
--- a/pages/passport/entry/seller/control.vue
+++ b/pages/passport/entry/seller/control.vue
@@ -12,6 +12,8 @@
 </template>
 
 <script>
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+
 import { getCompanyDetail } from "@/api/entry";
 import step1 from "./step1";
 import step2 from "./step2";
@@ -27,6 +29,7 @@
     step1,
     step2,
     step3,
+	UNavbar
   },
   mounted() {
     this.init();
diff --git a/pages/passport/entry/seller/index.vue b/pages/passport/entry/seller/index.vue
index 9481c4d..915ee0e 100644
--- a/pages/passport/entry/seller/index.vue
+++ b/pages/passport/entry/seller/index.vue
@@ -20,9 +20,11 @@
 </template>
 
 <script>
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+
 import { getCompanyDetail } from "@/api/entry";
 export default {
-  components: {},
+  components: {UNavbar},
 
   data() {
     return {
diff --git a/pages/passport/entry/seller/step1.vue b/pages/passport/entry/seller/step1.vue
index 4f86950..de4e907 100644
--- a/pages/passport/entry/seller/step1.vue
+++ b/pages/passport/entry/seller/step1.vue
@@ -179,13 +179,18 @@
 </template>
 
 <script>
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UUpload from '@/uview-components/uview-ui/components/u-upload/u-upload.vue';
+
 import { applyFirst } from "@/api/entry";
 import city from "@/components/m-city/m-city.vue";
 import storage from "@/utils/storage.js";
 import { upload } from "@/api/common.js";
 import * as RegExp from "@/utils/RegExp.js";
 export default {
-  components: { "m-city": city },
+  components: { "m-city": city , UForm,UFormItem,UInput,UUpload},
   data() {
     return {
       storage,
diff --git a/pages/passport/entry/seller/step2.vue b/pages/passport/entry/seller/step2.vue
index 65ccc9c..fe76886 100644
--- a/pages/passport/entry/seller/step2.vue
+++ b/pages/passport/entry/seller/step2.vue
@@ -48,9 +48,14 @@
 </template>
 
 <script>
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+
 import { applySecond } from "@/api/entry";
 
 export default {
+  components: {UForm,UFormItem,UInput},
   data() {
     return {
       defaultInputStyle: {
diff --git a/pages/passport/entry/seller/step3.vue b/pages/passport/entry/seller/step3.vue
index 70acc29..c1f0453 100644
--- a/pages/passport/entry/seller/step3.vue
+++ b/pages/passport/entry/seller/step3.vue
@@ -111,6 +111,12 @@
 </template>
 
 <script>
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import UUpload from '@/uview-components/uview-ui/components/u-upload/u-upload.vue';
+import USelect from '@/uview-components/uview-ui/components/u-select/u-select.vue';
+
 import { applyThird } from "@/api/entry";
 import { getCategoryList } from "@/api/goods";
 import city from "@/components/m-city/m-city.vue";
@@ -119,7 +125,7 @@
 import uniMap from "@/components/uniMap";
 import permision from "@/js_sdk/wa-permission/permission.js";
 export default {
-  components: { "m-city": city, uniMap },
+  components: { "m-city": city, uniMap, UForm,UFormItem,UInput,UUpload,USelect},
   data() {
     return {
       storage,
diff --git a/pages/passport/login.vue b/pages/passport/login.vue
index 1553bb0..abd7068 100644
--- a/pages/passport/login.vue
+++ b/pages/passport/login.vue
@@ -82,6 +82,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		openIdLogin,
 		loginCallback
diff --git a/pages/passport/scannerCodeLoginConfirm.vue b/pages/passport/scannerCodeLoginConfirm.vue
index 66ec5b1..a105a48 100644
--- a/pages/passport/scannerCodeLoginConfirm.vue
+++ b/pages/passport/scannerCodeLoginConfirm.vue
@@ -26,6 +26,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { scannerCodeLogin, scannerCodeLoginConfirm } from "@/api/login";
 export default {
   data() {
diff --git a/pages/passport/wechatH5Login.vue b/pages/passport/wechatH5Login.vue
index 707d493..38ec2e1 100644
--- a/pages/passport/wechatH5Login.vue
+++ b/pages/passport/wechatH5Login.vue
@@ -20,6 +20,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { whetherNavigate } from "@/utils/Foundation"; //鐧诲綍璺宠浆
 import config from "@/config/config";
 import api from "@/config/api.js";
diff --git a/pages/passport/wechatMPLogin.vue b/pages/passport/wechatMPLogin.vue
index f5fc410..41199bc 100644
--- a/pages/passport/wechatMPLogin.vue
+++ b/pages/passport/wechatMPLogin.vue
@@ -38,6 +38,9 @@
 </template>
 
 <script>
+	import UCheckBox from '@/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue';
+	import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+	import UModel from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
 	import {
 		mpAutoLogin
 	} from "@/api/connect.js";
@@ -51,6 +54,7 @@
 	import storage from "@/utils/storage.js";
 	import config from '@/config/config'
 	export default {
+		components: {UCheckBox, UModel,UNavbar},
 		data() {
 			return {
 				lightColor:this.$lightColor,
diff --git a/pages/product/askList.vue b/pages/product/askList.vue
index eef40e8..d06b020 100644
--- a/pages/product/askList.vue
+++ b/pages/product/askList.vue
@@ -37,6 +37,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import * as API_GOODS from "../../api/goods";
 import * as API_MEM from "../../api/members";
 export default {
diff --git a/pages/product/comment.vue b/pages/product/comment.vue
index 97608bc..3182184 100644
--- a/pages/product/comment.vue
+++ b/pages/product/comment.vue
@@ -63,6 +63,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 // import { getGoodsDetail } from '@/api/goods.js';
 import * as membersApi from "@/api/members.js";
 import configs from '@/config/config'
diff --git a/pages/product/goods.vue b/pages/product/goods.vue
index 8702a7d..e4ad5dd 100644
--- a/pages/product/goods.vue
+++ b/pages/product/goods.vue
@@ -275,6 +275,11 @@
 </template>
 
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+
+
 /************鎺ュ彛API***************/
 import { getGoods, getGoodsList, getMpScene, getGoodsDistribution } from "@/api/goods.js";
 import * as API_trade from "@/api/trade.js";
@@ -319,7 +324,10 @@
     GoodsSwiper,
     popupGoods,
     popupAddress,
-    takeDownFormSaleGoods
+    takeDownFormSaleGoods,
+	UIcon,
+	UNavbar,
+	UPopup,
   },
   data () {
     return {
diff --git a/pages/product/licencePhoto.vue b/pages/product/licencePhoto.vue
index 72efc3a..361f1e9 100644
--- a/pages/product/licencePhoto.vue
+++ b/pages/product/licencePhoto.vue
@@ -10,6 +10,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getLicencePhoto } from "@/api/store.js";
 export default {
   data() {
diff --git a/pages/product/product/evaluation/-evaluation.vue b/pages/product/product/evaluation/-evaluation.vue
index 27ad2fd..4912717 100644
--- a/pages/product/product/evaluation/-evaluation.vue
+++ b/pages/product/product/evaluation/-evaluation.vue
@@ -44,6 +44,11 @@
 </template>
 
 <script>
+import UAvatar from '@/uview-components/uview-ui/components/u-avatar/u-avatar.vue';
+import UReadMore from '@/uview-components/uview-ui/components/u-read-more/u-read-more.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+	
 import * as API_Members from "@/api/members.js";
 export default {
   data() {
diff --git a/pages/product/product/goods/-goods-intro.vue b/pages/product/product/goods/-goods-intro.vue
index a9b7a12..a07208b 100644
--- a/pages/product/product/goods/-goods-intro.vue
+++ b/pages/product/product/goods/-goods-intro.vue
@@ -60,8 +60,12 @@
 </template>
 
 <script>
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+import UParse from '@/uview-components/uview-ui/components/u-parse/u-parse.vue';
+
 import { getGoodsMessage } from "@/api/goods";
 export default {
+  components: {UEmpty,UParse},
   data() {
     return {
       goodsDetail: "",
diff --git a/pages/product/product/goods/-goods-swiper.vue b/pages/product/product/goods/-goods-swiper.vue
index 038df4d..e72684d 100644
--- a/pages/product/product/goods/-goods-swiper.vue
+++ b/pages/product/product/goods/-goods-swiper.vue
@@ -30,7 +30,11 @@
   </view>
 </template>
 <script>
+import ULoading from '@/uview-components/uview-ui/components/u-loading/u-loading.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+	
 export default {
+  components: {ULoading,UImage},
   data() {
     return {
       current: 1,
diff --git a/pages/product/product/popup/address.vue b/pages/product/product/popup/address.vue
index 50ce0b9..82e06dd 100644
--- a/pages/product/product/popup/address.vue
+++ b/pages/product/product/popup/address.vue
@@ -27,11 +27,16 @@
   </u-popup>
 </template>
 <script>
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+	
 import setup from "@/components/m-buy/popup.js";
 /************璇锋眰瀛樺偍***************/
 
 import * as API_Address from "@/api/address.js";
 export default {
+  components: {UPopup,UIcon,UEmpty},
   data() {
     return {
       checked: "",
diff --git a/pages/product/product/promotion/-promotion-assemble-list.vue b/pages/product/product/promotion/-promotion-assemble-list.vue
index 8bfc0d4..31e4ff4 100644
--- a/pages/product/product/promotion/-promotion-assemble-list.vue
+++ b/pages/product/product/promotion/-promotion-assemble-list.vue
@@ -24,9 +24,14 @@
 </template>
 
 <script>
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+
 import * as API_Promotions from "@/api/promotions";
 import configs from '@/config/config'
 export default {
+  components: {UImage,UButton,UEmpty},
   data() {
     return {
       configs,
diff --git a/pages/product/product/promotion/-promotion-assemble-promotions.vue b/pages/product/product/promotion/-promotion-assemble-promotions.vue
index 819f8c3..0b6aa84 100644
--- a/pages/product/product/promotion/-promotion-assemble-promotions.vue
+++ b/pages/product/product/promotion/-promotion-assemble-promotions.vue
@@ -109,7 +109,11 @@
 </template>
 
 <script>
+import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
+import UCountDown from '@/uview-components/uview-ui/components/u-count-down/u-count-down.vue';
+
 export default {
+  components: {UTag,UCountDown},
   data() {
     return {};
   },
diff --git a/pages/product/product/promotion/-promotion-details.vue b/pages/product/product/promotion/-promotion-details.vue
index 113b44c..bda170c 100644
--- a/pages/product/product/promotion/-promotion-details.vue
+++ b/pages/product/product/promotion/-promotion-details.vue
@@ -62,7 +62,10 @@
   </view>
 </template>
 <script>
+import UTag from '@/uview-components/uview-ui/components/u-tag/u-tag.vue';
+
 export default {
+  components: {UTag},
   data() {
     return {};
   },
diff --git a/pages/product/product/shop/-shop.vue b/pages/product/product/shop/-shop.vue
index 774b3c3..6e69771 100644
--- a/pages/product/product/shop/-shop.vue
+++ b/pages/product/product/shop/-shop.vue
@@ -41,6 +41,9 @@
 </template>
 
 <script>
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import ULoading from '@/uview-components/uview-ui/components/u-loading/u-loading.vue';
+
 export default {
   data() {
     return {};
diff --git a/pages/product/shopList.vue b/pages/product/shopList.vue
index 79e81ca..7898df7 100644
--- a/pages/product/shopList.vue
+++ b/pages/product/shopList.vue
@@ -52,6 +52,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getStoreList } from "@/api/store";
 export default {
   data() {
diff --git a/pages/product/shopPage.vue b/pages/product/shopPage.vue
index e332253..7b04a74 100644
--- a/pages/product/shopPage.vue
+++ b/pages/product/shopPage.vue
@@ -159,6 +159,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 // 寮曠敤缁勪欢
 import tpl_banner from "@/pages/tabbar/home/template/tpl_banner"; //瀵艰埅鏍忔ā鍧�
 import tpl_title from "@/pages/tabbar/home/template/tpl_title"; //鏍囬鏍忔ā鍧�
diff --git a/pages/product/shopPageGoods.vue b/pages/product/shopPageGoods.vue
index d6471cd..74e00f4 100644
--- a/pages/product/shopPageGoods.vue
+++ b/pages/product/shopPageGoods.vue
@@ -11,6 +11,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		getGoodsList
 	} from "@/api/goods.js";
diff --git a/pages/promotion/bargain/detail.vue b/pages/promotion/bargain/detail.vue
index 3995f5c..ec9e7af 100644
--- a/pages/promotion/bargain/detail.vue
+++ b/pages/promotion/bargain/detail.vue
@@ -111,6 +111,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import popupGoods from "@/components/m-buy/goods"; //璐墿杞﹀晢鍝佺殑妯″潡
 import {
   getBargainDetail,
diff --git a/pages/promotion/bargain/list.vue b/pages/promotion/bargain/list.vue
index d553050..0a5feab 100644
--- a/pages/promotion/bargain/list.vue
+++ b/pages/promotion/bargain/list.vue
@@ -16,6 +16,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getBargainList } from "@/api/promotions";
 import goodsTemplate from '@/components/m-goods-list/promotion'
 export default {
diff --git a/pages/promotion/bargain/log.vue b/pages/promotion/bargain/log.vue
index 9a811bd..8f7314e 100644
--- a/pages/promotion/bargain/log.vue
+++ b/pages/promotion/bargain/log.vue
@@ -31,8 +31,12 @@
 </template>
 
 <script>
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UEmpty from '@/uview-components/uview-ui/components/u-empty/u-empty.vue';
+
 import { getMineBargainLog } from "@/api/promotions";
 export default {
+  components: {UImage, UEmpty},
   data() {
     return {
       params: {
diff --git a/pages/promotion/joinGroup.vue b/pages/promotion/joinGroup.vue
index 0a2b8b8..c307fa8 100644
--- a/pages/promotion/joinGroup.vue
+++ b/pages/promotion/joinGroup.vue
@@ -30,6 +30,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import * as API_Promotions from "@/api/promotions";
 	import * as API_Goods from "@/api/goods";
 	import goodsTemplate from '@/components/m-goods-list/promotion.vue'
diff --git a/pages/promotion/lives.vue b/pages/promotion/lives.vue
index bd0a728..7ad3e54 100644
--- a/pages/promotion/lives.vue
+++ b/pages/promotion/lives.vue
@@ -47,6 +47,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getLiveList } from "@/api/promotions.js";
 export default {
   data() {
diff --git a/pages/promotion/point/detail.vue b/pages/promotion/point/detail.vue
index 6f45b8c..e35a6d9 100644
--- a/pages/promotion/point/detail.vue
+++ b/pages/promotion/point/detail.vue
@@ -51,6 +51,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import popupGoods from "@/components/m-buy/goods"; //璐墿杞﹀晢鍝佺殑妯″潡
 import { getPointsGoodsDetail } from "@/api/promotions";
 export default {
diff --git a/pages/promotion/point/pointList.vue b/pages/promotion/point/pointList.vue
index 924e445..b3ec06f 100644
--- a/pages/promotion/point/pointList.vue
+++ b/pages/promotion/point/pointList.vue
@@ -38,6 +38,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getPointsCategory, getPointsGoods } from "@/api/promotions.js";
 import userPoint from "./user";
 export default {
diff --git a/pages/promotion/point/user.vue b/pages/promotion/point/user.vue
index 6dca8c6..cbbbd6b 100644
--- a/pages/promotion/point/user.vue
+++ b/pages/promotion/point/user.vue
@@ -11,6 +11,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { getUserInfo } from "@/api/members";
 export default {
   data() {
diff --git a/pages/promotion/seckill.vue b/pages/promotion/seckill.vue
index ca6abf9..0d0917a 100644
--- a/pages/promotion/seckill.vue
+++ b/pages/promotion/seckill.vue
@@ -32,6 +32,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		getSeckillTimeLine,
 		getSeckillTimeGoods
diff --git a/pages/tabbar/cart/cartList.vue b/pages/tabbar/cart/cartList.vue
index aa47358..531d5e7 100644
--- a/pages/tabbar/cart/cartList.vue
+++ b/pages/tabbar/cart/cartList.vue
@@ -179,11 +179,22 @@
   </view>
 </template>
 <script>
+
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+import UCheckboxGroup from '@/uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue';
+import UCheckbox from '@/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue';
+import USwipeAction from '@/uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
+import UCountDown from '@/uview-components/uview-ui/components/u-count-down/u-count-down.vue';
+import UModal from '@/uview-components/uview-ui/components/u-modal/u-modal.vue';
+import UToast from '@/uview-components/uview-ui/components/u-toast/u-toast.vue';
 import * as API_Trade from "@/api/trade";
 import { debounce } from "@/utils/tools.js";
-import uniNumberBox from '@/components/uni-number-box'
+// import uniNumberBox from '@/components/uni-number-box'
 export default {
-  components:{uniNumberBox}, // 鏁伴噺鍔犲噺缁勪欢
+  components:{UNavbar,UCheckboxGroup,UCheckbox,USwipeAction,UImage,UIcon,UPopup,UCountDown,UModal,UToast}, // 鏁伴噺鍔犲噺缁勪欢
   data() {
     return {
       loading:false,
diff --git a/pages/tabbar/category/category.vue b/pages/tabbar/category/category.vue
index 5ed9a6f..2953dbc 100644
--- a/pages/tabbar/category/category.vue
+++ b/pages/tabbar/category/category.vue
@@ -41,8 +41,12 @@
 </template>
 
 <script>
+import USearch from '@/uview-components/uview-ui/components/u-search/u-search.vue';
+import UNavbar from '@/uview-components/uview-ui/components/u-navbar/u-navbar.vue';
+import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
 import { getCategoryList } from "@/api/goods.js";
 export default {
+  components: {USearch,UNavbar,UImage},
   data() {
     return {
       currentId: 0,
diff --git a/pages/tabbar/home/template/fetch_coupon.vue b/pages/tabbar/home/template/fetch_coupon.vue
index 15cc5a8..bae4365 100644
--- a/pages/tabbar/home/template/fetch_coupon.vue
+++ b/pages/tabbar/home/template/fetch_coupon.vue
@@ -85,6 +85,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { getAutoCoup } from "@/api/login";
 import storage from "@/utils/storage.js";
 export default {
diff --git a/pages/tabbar/home/template/tpl_banner.vue b/pages/tabbar/home/template/tpl_banner.vue
index dea1572..33b335d 100644
--- a/pages/tabbar/home/template/tpl_banner.vue
+++ b/pages/tabbar/home/template/tpl_banner.vue
@@ -9,6 +9,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "瀵艰埅鏍�",
diff --git a/pages/tabbar/home/template/tpl_flex_five.vue b/pages/tabbar/home/template/tpl_flex_five.vue
index b5b0415..f01cc63 100644
--- a/pages/tabbar/home/template/tpl_flex_five.vue
+++ b/pages/tabbar/home/template/tpl_flex_five.vue
@@ -8,6 +8,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "浜斿垪鍗曡鍥剧墖妯″潡",
diff --git a/pages/tabbar/home/template/tpl_flex_four.vue b/pages/tabbar/home/template/tpl_flex_four.vue
index e701622..36ee241 100644
--- a/pages/tabbar/home/template/tpl_flex_four.vue
+++ b/pages/tabbar/home/template/tpl_flex_four.vue
@@ -8,6 +8,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "鍥涘垪鍗曡鍥剧墖妯″潡",
diff --git a/pages/tabbar/home/template/tpl_flex_one.vue b/pages/tabbar/home/template/tpl_flex_one.vue
index 67c08cf..40efe68 100644
--- a/pages/tabbar/home/template/tpl_flex_one.vue
+++ b/pages/tabbar/home/template/tpl_flex_one.vue
@@ -7,6 +7,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 import hotzone from "@/pages/tabbar/home/template/tpl_hot_zone.vue";
 
diff --git a/pages/tabbar/home/template/tpl_flex_three.vue b/pages/tabbar/home/template/tpl_flex_three.vue
index 749c700..4261c0a 100644
--- a/pages/tabbar/home/template/tpl_flex_three.vue
+++ b/pages/tabbar/home/template/tpl_flex_three.vue
@@ -8,6 +8,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 
 export default {
diff --git a/pages/tabbar/home/template/tpl_flex_two.vue b/pages/tabbar/home/template/tpl_flex_two.vue
index 05c052e..6731466 100644
--- a/pages/tabbar/home/template/tpl_flex_two.vue
+++ b/pages/tabbar/home/template/tpl_flex_two.vue
@@ -15,7 +15,8 @@
   </div>
 </template>
 <script>
-import uImage from "@/uview-ui/components/u-image/u-image.vue";
+import '@/uview-components/uview-ui'
+import uImage from "@/uview-components/uview-ui/components/u-image/u-image.vue";
 import { modelNavigateTo } from "./tpl";
 export default {
   components: { uImage },
diff --git a/pages/tabbar/home/template/tpl_goods.vue b/pages/tabbar/home/template/tpl_goods.vue
index 997bb7c..131c975 100644
--- a/pages/tabbar/home/template/tpl_goods.vue
+++ b/pages/tabbar/home/template/tpl_goods.vue
@@ -84,6 +84,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { getGoodsList } from "@/api/goods.js";
 export default {
   title: "鍟嗗搧鍒嗙被浠ュ強鍟嗗搧",
diff --git a/pages/tabbar/home/template/tpl_left_one_right_two.vue b/pages/tabbar/home/template/tpl_left_one_right_two.vue
index af8e6da..84a1099 100644
--- a/pages/tabbar/home/template/tpl_left_one_right_two.vue
+++ b/pages/tabbar/home/template/tpl_left_one_right_two.vue
@@ -21,7 +21,7 @@
   </div>
 </template>
 <script>
-
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "宸︿竴鍙充簩",
diff --git a/pages/tabbar/home/template/tpl_left_two_right_one.vue b/pages/tabbar/home/template/tpl_left_two_right_one.vue
index a683c63..c396d07 100644
--- a/pages/tabbar/home/template/tpl_left_two_right_one.vue
+++ b/pages/tabbar/home/template/tpl_left_two_right_one.vue
@@ -16,6 +16,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import {modelNavigateTo} from './tpl'
 export default {
   title: "宸︿簩鍙充竴",
diff --git a/pages/tabbar/home/template/tpl_menu.vue b/pages/tabbar/home/template/tpl_menu.vue
index d57f44d..30148dc 100644
--- a/pages/tabbar/home/template/tpl_menu.vue
+++ b/pages/tabbar/home/template/tpl_menu.vue
@@ -23,6 +23,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "浜斿垪鑿滃崟",
diff --git a/pages/tabbar/home/template/tpl_notice.vue b/pages/tabbar/home/template/tpl_notice.vue
index c0e36b2..81eab2d 100644
--- a/pages/tabbar/home/template/tpl_notice.vue
+++ b/pages/tabbar/home/template/tpl_notice.vue
@@ -7,6 +7,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
   export default {
     title: "鍏憡",
     props: ["res"],
diff --git a/pages/tabbar/home/template/tpl_promotions_detail.vue b/pages/tabbar/home/template/tpl_promotions_detail.vue
index bc146cc..6388fef 100644
--- a/pages/tabbar/home/template/tpl_promotions_detail.vue
+++ b/pages/tabbar/home/template/tpl_promotions_detail.vue
@@ -64,6 +64,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 import * as API_Promotions from "@/api/promotions";
 import Foundation from "@/utils/Foundation.js";
 export default {
diff --git a/pages/tabbar/home/template/tpl_search.vue b/pages/tabbar/home/template/tpl_search.vue
index ad82570..8e9a492 100644
--- a/pages/tabbar/home/template/tpl_search.vue
+++ b/pages/tabbar/home/template/tpl_search.vue
@@ -10,6 +10,7 @@
   </div>
 </template>
 <script>
+import '@/uview-components/uview-ui'
 export default {
   title:"鎼滅储鏍�",
   props: ["res","storeId"],
diff --git a/pages/tabbar/home/template/tpl_text_picture.vue b/pages/tabbar/home/template/tpl_text_picture.vue
index eab5201..acac8f1 100644
--- a/pages/tabbar/home/template/tpl_text_picture.vue
+++ b/pages/tabbar/home/template/tpl_text_picture.vue
@@ -33,7 +33,7 @@
 </template>
 
 <script>
-
+import '@/uview-components/uview-ui'
 import {modelNavigateTo} from './tpl'
 export default {
   title: "鏂囧瓧鍥剧墖妯℃澘",
diff --git a/pages/tabbar/home/template/tpl_top_one_bottom_two.vue b/pages/tabbar/home/template/tpl_top_one_bottom_two.vue
index 22aaacc..3ea7d09 100644
--- a/pages/tabbar/home/template/tpl_top_one_bottom_two.vue
+++ b/pages/tabbar/home/template/tpl_top_one_bottom_two.vue
@@ -22,6 +22,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import { modelNavigateTo } from "./tpl";
 export default {
   title: "涓婁竴涓嬩簩",
diff --git a/pages/tabbar/home/template/tpl_top_two_bottom_one.vue b/pages/tabbar/home/template/tpl_top_two_bottom_one.vue
index bbed4ba..94f52ce 100644
--- a/pages/tabbar/home/template/tpl_top_two_bottom_one.vue
+++ b/pages/tabbar/home/template/tpl_top_two_bottom_one.vue
@@ -35,6 +35,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 import {modelNavigateTo} from './tpl'
 export default {
   title: "涓婁簩涓嬩竴",
diff --git a/pages/tabbar/home/title.vue b/pages/tabbar/home/title.vue
index 6506a55..5f0f23d 100644
--- a/pages/tabbar/home/title.vue
+++ b/pages/tabbar/home/title.vue
@@ -60,6 +60,7 @@
 </template>
 
 <script>
+	import '@/uview-components/uview-ui'
 	import {
 		messages,
 		editMessages
diff --git a/pages/tabbar/home/views.vue b/pages/tabbar/home/views.vue
index fad42d4..88e0456 100644
--- a/pages/tabbar/home/views.vue
+++ b/pages/tabbar/home/views.vue
@@ -40,6 +40,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 // 寮曠敤缁勪欢
 import tpl_banner from "@/pages/tabbar/home/template/tpl_banner"; //瀵艰埅鏍忔ā鍧�
 import tpl_title from "@/pages/tabbar/home/template/tpl_title"; //鏍囬鏍忔ā鍧�
diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue
index bbbe33b..4ed067f 100644
--- a/pages/tabbar/index/home.vue
+++ b/pages/tabbar/index/home.vue
@@ -9,17 +9,28 @@
       @change="onSwiperChange"
     >
       <swiper-item v-for="(item, index) in videoList" :key="item.id">
+		<!-- 鎾斁鎸夐挳锛堜粎褰撹棰戞殏鍋滄椂鏄剧ず锛� -->
+		<view 
+		  class="play-icon" 
+		  @click="togglePlay(index)"
+		  v-if="currentVideoIsPlaying != null && !currentVideoIsPlaying"
+		>
+		  <image src="/static/video/play.png" style="width: 45px;height: 45px" mode="aspectFit"></image>
+		</view>
         <video 
           :id="'video'+index"
-          :src="item.url"
+		  :ref="'video'+index"
+          :src="item.videoUrl"
           :autoplay="currentIndex === index"
           :controls="false"
           :loop="true"
 		  :object-fit="item.objectFit"
           class="video-item"
-          @play="onPlay(index)"
+          @play="onPlay(item.id, index)"
           @pause="onPause(index)"
           @ended="onEnded(index)"
+		  @click="togglePlay(index)"
+		  @timeupdate="onTimeUpdate($event)"
         ></video>
 		
 		<!-- 鎮寕鍟嗗搧閾炬帴灞� -->
@@ -27,7 +38,7 @@
 			<view class="goods-link">
 			  <view class="goods-container">
 			    <!-- 鍟嗗搧鍥剧墖 -->
-			    <image class="goods-image" :src="item.goods.image" mode="aspectFill"></image>
+			    <image class="goods-image" :src="item.goods.imageUrl" mode="aspectFill"></image>
 			    
 			    <!-- 鍟嗗搧淇℃伅 -->
 			    <view class="goods-info">
@@ -36,7 +47,7 @@
 			        <text class="current-price">楼{{item.goods.price}}</text>
 			        <text class="original-price" v-if="item.goods.originalPrice">楼{{item.goods.originalPrice}}</text>
 			      </view>
-			      <text class="sales-count">{{item.goods.sales}}浜哄凡璐�</text>
+			      <text class="sales-count">{{item.goods.saleNum}}浜哄凡璐�</text>
 			    </view>
 			    
 			    <!-- 璐拱鎸夐挳 -->
@@ -51,11 +62,11 @@
         <!-- 瑙嗛淇℃伅灞� -->
         <view class="video-info">
 		  <view>
-			  <text class="video-author">@{{item.author}}</text>
+			  <text class="video-author">@{{item.authorName}}</text>
 		  </view>
           <view style="width: 100%;word-wrap: break-word;white-space: normal;overflow-wrap: break-word;">
 			  <text class="video-title">{{item.title}}</text>
-			  <text class="video-tag" v-for="(tag, index) in item.tags" :key="tag">#{{tag}}</text>
+			  <text class="video-tag" v-for="(tag, index) in item.tagList" :key="tag">#{{tag.tagName}}</text>
 		  </view>
         </view>
         
@@ -64,91 +75,234 @@
 		   <view class="avatar-container">
 			   <image class="avatar" :src="item.authorAvatar" mode="aspectFill"></image>
 			   <!-- 鍏虫敞鍥炬爣 - 浣跨敤缁濆瀹氫綅 -->
-			   <view class="follow-icon">
+			   <view v-if="!item.subscribeThisAuthor" class="follow-icon" @click="subscribeAuth(index, item.authorId)">
 				 <text class="iconfont">&#xe629;</text>
 			   </view>
 		   </view>
-          <view class="action-item" @click="toggleCollect(item)">
-            <!-- <image :src="item.isCollected ? '/static/collected.png' : '/static/collect.png'"></image> -->
+          <view class="action-item" @click="toggleCollect(item, index)">
 			<text class="iconfont" v-if="item.collected">&#xe605;</text>
 			<text class="iconfont" v-else>&#xe601;</text>
-			<text style="font-size: 10px;font-weight: lighter;">{{item.collectCount}}</text>
+			<text style="font-size: 10px;font-weight: lighter;">{{item.collectNum}}</text>
           </view>
          <view class="action-item" @click="showComments(item)">
             <text class="iconfont">&#xe7f7;</text>
-            <text style="font-size: 10px;font-weight: lighter;">{{item.commentCount}}</text>
+            <text style="font-size: 10px;font-weight: lighter;">{{item.commentNum}}</text>
           </view>
         </view>
+		
       </swiper-item>
     </swiper>
+	
+	<!-- 璇勮寮圭獥 -->
+	<uni-popup ref="commentPopup" type="bottom" :is-mask-click="true" @maskClick="closeCommentPopup">
+	  <view class="comment-popup">
+	    <view class="popup-header">
+	      <text class="popup-title">璇勮({{comments.length}})</text>
+	      <text class="iconfont close-icon" @click="closeCommentPopup">&#xe675;</text>
+	    </view>
+	    
+	    <scroll-view class="comment-list" scroll-y>
+	      <view v-if="commentLoading" class="loading">
+	        <uni-load-more status="loading"></uni-load-more>
+	      </view>
+	      
+	      <view v-else-if="comments.length === 0" class="empty">
+	        鏆傛棤璇勮锛屽揩鏉ュ彂琛ㄧ涓�鏉¤瘎璁哄惂~
+	      </view>
+	      
+	      <view v-else class="comment-item" v-for="comment in comments" :key="comment.id">
+	        <image class="avatar" :src="comment.user.avatar || '/static/default-avatar.png'"></image>
+	        <view class="comment-content">
+	          <text class="nickname">{{comment.user.nickname}}</text>
+	          <text class="content">{{comment.content}}</text>
+	          <text class="time">{{formatTime(comment.createTime)}}</text>
+	        </view>
+	      </view>
+	    </scroll-view>
+	    
+	    <view class="comment-input-area">
+	      <input 
+	        class="comment-input" 
+	        v-model="commentForm.commentContent" 
+	        placeholder="鍐欎笅浣犵殑璇勮..." 
+	        placeholder-class="placeholder"
+	      />
+	      <button class="submit-btn" @click="submitComment">鍙戦��</button>
+	    </view>
+	  </view>
+	</uni-popup>
+	
+	
 	<custom-tabbar bgColor="#333333" selected="index" selectedTextColor="#ffffff"></custom-tabbar>
   </view>
 </template>
 
 <script>
+import { getRecommendVideos, savePlayRecord, subscribe, getVideoComments, addVideoComment } from "@/api/video.js";
+import { changeCollect } from "@/api/collect.js";
 export default {
   data() {
     return {
-	  isFullScreen: false,
-	  windowHeight: 0,
-      currentIndex: 0, // 褰撳墠鎾斁鐨勮棰戠储寮�
-      videoList: [
-		  {
-			   url: 'http://vjs.zencdn.net/v/oceans.mp4',
-			   objectFit: 'contain',
-			   title: '鎴戜簡涓�',
-			   author: 'xp',
-			   authorAvatar: 'https://picsum.photos/200/200?random=2',
-			   collected: true,
-			   commentCount: 12,
-			   collectCount: 45,
-			   tags: ["浜斾竴", "鐖辩編椋�", "澹ぇ澶�熷害鍜岀矇绾㈣壊鐨勬仮澶嶉�熷害鐨勫彛琚嬬┖绌�"],
-			   goods: {
-				   name: '鎺ㄦ祦',
-				   price: '10',
-				   originalPrice: '48.9',
-				   sales: 1988,
-				   image: 'https://picsum.photos/200/200?random=2'
-			   }
-			},
-		  {
-			  url: 'https://videos.pexels.com/video-files/30900524/13210612_1080_1920_30fps.mp4',
-			  objectFit: 'cover',
-			   title: '鎴戜簡涓�',
-				author: 'xp',
-				 authorAvatar: 'https://picsum.photos/200/200?random=2',
-				  collected: false,
-				   commentCount: 6,
-					collectCount: 45,
-					 tags: ["鎴戝枩娆�"],
-					 goods: {
-					 				   name: '鎺ㄦ祦',
-					 				   price: '10',
-					 				   originalPrice: '48.9',
-					 				   sales: 1988,
-									   image: 'https://picsum.photos/200/200?random=2'
-					 }
-			 },
-	  ],   // 瑙嗛鍒楄〃鏁版嵁
-      videoContexts: [], // 瑙嗛涓婁笅鏂囧璞¢泦鍚�
-      loading: false,  // 鏄惁姝e湪鍔犺浇
-      page: 1,         // 褰撳墠椤电爜
-      pageSize: 10     // 姣忛〉鏁伴噺
+		commentQuery: {
+			pageNumber: 1,
+			pageSize: 5,
+			videoId: '',
+			masterCommentId: ''
+		},
+		commentForm: { // 璇勮琛ㄥ崟鏁版嵁
+			id: null,
+			videoId: null,
+			commentContent: '',
+			replyId: null
+		},
+		comments: [],            // 璇勮鍒楄〃
+		commentLoading: false,   // 璇勮鍔犺浇鐘舵��
+		startHidenTime: 0, // 璁板綍鍒囨崲鑷冲叾瀹冮〉闈㈢殑鏃堕棿锛岀敤浜庤绠楄棰戣鐪嬫椂闂村噺鍘荤殑閮ㄥ垎
+		totalHidenTime: 0, // 鎬诲叡闅愯棌椤甸潰鐨勬椂闂�
+		startPauseTime: 0, // 寮�濮嬫殏鍋滅殑鏃堕棿
+		totalPauseTime: 0, // 鎬诲叡鏆傚仠鐨勬椂闂�
+		playRecord: {
+			videoId: null,
+			viewDuration: 0, // 杩欎釜瑙嗛鎬诲叡瑙傜湅浜嗗涔�
+			playAt: 0 ,// 杩欎釜瑙嗛鎾斁鍒板摢浜�
+			startPlayTime: 0 // 杩欎釜瑙嗛浠庝粈涔堟椂鍊欏紑濮嬫挱鏀剧殑
+		},
+		currentVideoIsPlaying: null, // 褰撳墠瑙嗛鏄惁姝e湪鎾斁
+		isFullScreen: false,
+		windowHeight: 0,
+		currentIndex: 0, // 褰撳墠鎾斁鐨勮棰戠储寮�
+		videoList: [
+		  
+		],   // 瑙嗛鍒楄〃鏁版嵁
+		videoContexts: [], // 瑙嗛涓婁笅鏂囧璞¢泦鍚�
+		loading: false,  // 鏄惁姝e湪鍔犺浇
+		page: 1,         // 褰撳墠椤电爜
+		pageSize: 10     // 姣忛〉鏁伴噺
     }
   },
+  onShow() {
+	  // 濡傛灉瑙嗛鎸変笅鏆傚仠鍚庡垏鎹㈤〉闈㈠啀鍥炲埌椤甸潰鏃讹紝鍙畻鏆傚仠鏃堕棿锛堝洜涓烘殏鍋滄椂闂村拰绂诲紑椤甸潰鏃堕棿鏄噸澶嶇殑锛屽彧绠椾竴涓級
+	  if(this.startHidenTime !== 0 && this.currentVideoIsPlaying) {
+		  const duration = Date.now() - this.startHidenTime
+		  this.totalHidenTime += duration
+	  }
+  },
+  onHide() {
+  	this.startHidenTime = Date.now()
+  },
   onLoad() {
-    // this.loadVideos();
+	  this.loadVideos();
   },
   onReady() {
     // 鍒濆鍖栬棰戜笂涓嬫枃
     this.initVideoContexts();
   },
   methods: {
+		// 鏍煎紡鍖栨椂闂�
+	    formatTime(time) {
+	      const date = new Date(time);
+	      const now = new Date();
+	      const diff = Math.floor((now - date) / 1000); // 绉�
+	      
+	      if (diff < 60) return '鍒氬垰';
+	      if (diff < 3600) return `${Math.floor(diff / 60)}鍒嗛挓鍓峘;
+	      if (diff < 86400) return `${Math.floor(diff / 3600)}灏忔椂鍓峘;
+	      
+	      return `${date.getMonth() + 1}鏈�${date.getDate()}鏃;
+	    },
+		// 鎻愪氦璇勮
+	    async submitComment() {
+	      if (!this.commentForm.commentContent.trim()) {
+	        uni.showToast({
+	          title: '璇勮鍐呭涓嶈兘涓虹┖',
+	          icon: 'none'
+	        });
+	        return;
+	      }
+		  // 鍙戣〃璇勮
+	      addVideoComment(this.commentForm).then(res => {
+			  if(res.data.code === 200) {
+				  this.commentForm = {
+				  			  id: null,
+				  			  videoId: null,
+				  			  commentContent: '',
+				  			  replyId: null
+				  }
+				  this.comments.unshift(res.data.data);
+				  uni.showToast({
+				    title: '璇勮鎴愬姛'
+				  });
+				  // 褰撳墠瑙嗛璇勮鏁板姞涓�
+				  this.videoList[this.currentIndex].commentNum += 1;
+			  } else {
+				  uni.showToast({
+				          title: res.data.msg,
+				          icon: 'none'
+				        });
+			  }
+		  }).catch(() => {
+			  uni.showToast({
+			          title: '璇勮澶辫触',
+			          icon: 'none'
+			        });
+		  })
+	    },
+	    // 鍏抽棴璇勮寮圭獥
+	    closeCommentPopup() {
+			console.log("瑙﹀彂浜�");
+		  this.$refs.commentPopup.close()
+	      this.showCommentPopup = false;
+	      this.comments = [];
+	      this.commentForm = {
+			  id: null,
+			  videoId: null,
+			  commentContent: '',
+			  replyId: null
+		  }
+	    },
+	    // 鏄剧ず璇勮寮圭獥
+	    async showComments(item) {
+	      this.commentForm.videoId = item.id;
+	      this.$refs.commentPopup.open();
+	      this.commentLoading = true;
+	      this.commentQuery.videoId = item.id
+		  getVideoComments(this.commentQuery).then(res => {
+			  this.comments = res.data.data
+		  }).catch(() => {
+			  uni.showToast({
+			    title: '鑾峰彇璇勮澶辫触',
+			    icon: 'none'
+			  });
+		  }).finally(() => {
+			  this.commentLoading = false;
+		  })
+	    },
+	  // 鍏虫敞浣滆��
+	  subscribeAuth(index, authorId) {
+		this.videoList.forEach(video => {
+			if(video.authorId === authorId) {
+				video.subscribeThisAuthor = true
+			}
+		})
+		subscribe(authorId).then(res => {
+			if(res.data.code === 200) {
+				uni.showToast({
+				  title: '鍏虫敞鎴愬姛~',
+				  icon: 'none'
+				});
+			} else {
+				this.videoList.forEach(video => {
+					if(video.authorId === authorId) {
+						video.subscribeThisAuthor = false
+					}
+				})
+			}
+		})
+	  },
     // 鍒濆鍖栬棰戜笂涓嬫枃
     initVideoContexts() {
       this.videoContexts = this.videoList.map((_, index) => {
 		  let videoContent = uni.createVideoContext(`video${index}`, this);
-		  // videoContent.requestFullScreen({ direction: 0 });
 		  return videoContent;
       });
     },
@@ -158,77 +312,128 @@
       if (this.loading) return;
       this.loading = true;
       
-      try {
-        const res = await uni.request({
-          url: 'https://your-api.com/videos',
-          data: {
-            page: this.page,
-            pageSize: this.pageSize
-          }
-        });
-        
-        if (this.page === 1) {
-          this.videoList = res.data.list;
-        } else {
-          this.videoList = [...this.videoList, ...res.data.list];
-        }
-        
-        this.page++;
-        this.$nextTick(() => {
-          this.initVideoContexts();
-        });
-      } catch (e) {
-        console.error('鍔犺浇瑙嗛澶辫触', e);
-      } finally {
-        this.loading = false;
-      }
+	  getRecommendVideos({pageNumber: this.page, pageSize: this.pageSize}).then(res => {
+		  console.log(res, "瑙嗛鏁版嵁");
+		  if (this.page === 1) {
+		    this.videoList = res.data.data;
+		  } else {
+		    this.videoList = [...this.videoList, ...res.data.data];
+		  }
+		  
+		  this.page++;
+		  this.$nextTick(() => {
+		    this.initVideoContexts();
+		  });
+		  this.loading = false;
+	  })
     },
     
     // 婊戝姩鍒囨崲瑙嗛
     onSwiperChange(e) {
-      const oldIndex = this.currentIndex;
-      this.currentIndex = e.detail.current;
-      
-      // 鏆傚仠涓婁竴涓棰�
-      if (this.videoContexts[oldIndex]) {
-        this.videoContexts[oldIndex].pause();
-      }
-      
-      // 鎾斁褰撳墠瑙嗛
-      if (this.videoContexts[this.currentIndex]) {
-        this.videoContexts[this.currentIndex].play();
-      }
+		// 濡傛灉瑙嗛澶勪簬鏆傚仠鐘舵�佸線涓嬪埛瑙嗛锛岄偅涔堥渶瑕佸啀璁$畻涓�娆℃殏鍋滄椂闂�
+		if(!this.currentVideoIsPlaying) {
+			if(this.startPauseTime !== 0) {
+				const duration = Date.now() - this.startPauseTime
+				this.totalPauseTime += duration
+			}
+		}
+		// 淇濆瓨涓婁竴涓棰戠殑鎾斁璁板綍
+		this.savePlayRecord()
+		const oldIndex = this.currentIndex;
+		console.log("瑙嗛涓婁笅鏂�",this.videoContexts[oldIndex]);
+		this.currentIndex = e.detail.current;
+
+		// 鏆傚仠涓婁竴涓棰�
+		if (this.videoContexts[oldIndex]) {
+			this.videoContexts[oldIndex].pause();
+		}
+		this.currentVideoIsPlaying = true;
+		this.startPauseTime = 0;
+		// 鎾斁褰撳墠瑙嗛
+		if (this.videoContexts[this.currentIndex]) {
+			this.videoContexts[this.currentIndex].play();
+		}
     },
     
-    // 鐐硅禐/鍙栨秷鐐硅禐
-    toggleLike(item) {
-      item.isLiked = !item.isLiked;
-      item.likeCount += item.isLiked ? 1 : -1;
-      
-      uni.request({
-        url: `https://your-api.com/video/${item.id}/like`,
-        method: item.isLiked ? 'POST' : 'DELETE'
-      });
+    // 鏀惰棌/鍙栨秷鏀惰棌
+    toggleCollect(item, index) {
+	  let data = {
+		  refId: item.id,
+		  collectType: 'video'
+	  }
+	  const beforeCollected = item.collected
+	  const beforeCollectNum = item.collectNum
+	  if(item.collected) {
+		  this.videoList[index].collected = false
+		  this.videoList[index].collectNum -= 1
+	  } else {
+		  this.videoList[index].collected = true
+		  this.videoList[index].collectNum += 1
+	  }
+      changeCollect(data).then(res => {
+		  if(res.data.code !== 200) {
+			  this.videoList[index].collected = beforeCollected
+			  this.videoList[index].collectNum = beforeCollectNum
+		  }
+	  })
     },
-    
+    // 鍗曞嚮灞忓箷锛氭殏鍋滄垨缁х画鎾斁
+	togglePlay(index) {
+		if(this.currentVideoIsPlaying) {
+			this.videoContexts[index].pause();
+		} else {
+			this.videoContexts[index].play();
+		}
+	},
     // 瑙嗛鎾斁浜嬩欢
-    onPlay(index) {
-      console.log(`瑙嗛 ${index} 寮�濮嬫挱鏀綻);
+    onPlay(id, index) {
+		this.currentVideoIsPlaying = true;
+		this.playRecord.videoId = id;
+		// 娌″垵濮嬪寲鎵嶈祴鍊硷紝鍥犱负涓�涓棰戦噸澶嶆挱鏀緊nPlay浼氶噸澶嶈Е鍙�
+		if(this.playRecord.startPlayTime === 0) {
+			this.playRecord.startPlayTime = Date.now();
+		}
+		if(this.startPauseTime !== 0) {
+			const duration = Date.now() - this.startPauseTime
+			this.totalPauseTime += duration
+		}
     },
     
     // 瑙嗛鏆傚仠浜嬩欢
     onPause(index) {
-      console.log(`瑙嗛 ${index} 鏆傚仠`);
+      this.currentVideoIsPlaying = false;
+	  this.startPauseTime = Date.now()
     },
     
     // 瑙嗛缁撴潫浜嬩欢
     onEnded(index) {
-      console.log(`瑙嗛 ${index} 鎾斁缁撴潫`);
-      // 鑷姩鎾斁涓嬩竴涓紙濡傛灉涓嶅湪鏈�鍚庝竴涓級
-      if (index < this.videoList.length - 1) {
-        this.currentIndex = index + 1;
-      }
-    }
+      // this.currentVideoIsPlaying = false;
+    },
+	
+	// 璁板綍鎾斁鏃堕暱
+	onTimeUpdate(e) {
+		this.playRecord.playAt = e.detail.currentTime
+	},
+	
+	// 淇濆瓨鎾斁璁板綍
+	async savePlayRecord() {
+		console.log(Date.now(), this.playRecord.startPlayTime, this.totalHidenTime);
+		
+		const data = {
+			videoId: this.playRecord.videoId,
+			viewDuration: Date.now() - this.playRecord.startPlayTime - this.totalHidenTime - this.totalPauseTime,
+			playAt: this.playRecord.playAt
+		}
+		this.playRecord = {
+			videoId: null,
+			viewDuration: 0, // 杩欎釜瑙嗛鎬诲叡瑙傜湅浜嗗涔�
+			playAt: 0 ,// 杩欎釜瑙嗛鎾斁鍒板摢浜�
+			startPlayTime: 0 // 杩欎釜瑙嗛浠庝粈涔堟椂鍊欏紑濮嬫挱鏀剧殑
+		}
+		this.totalHidenTime = 0
+		this.totalPauseTime = 0
+		savePlayRecord(data)
+	}
   }
 }
 </script>
@@ -252,6 +457,16 @@
 	  width: 100%;
 	  height: 100%;
 	  object-fit: cover;
+	}
+	.play-icon {
+	  position: absolute;
+	  top: 50%;
+	  left: 50%;
+	  transform: translate(-50%, -50%);
+	  width: 45px;
+	  height: 45px;
+	  z-index: 10;
+	  opacity: 0.6;
 	}
 	
 	.video-info {
@@ -400,5 +615,110 @@
 	  font-size: 26rpx;
 	  font-weight: bold;
 	}
+	/* 璇勮寮圭獥鏍峰紡 */
+	.comment-popup {
+	  background-color: #fff;
+	  border-radius: 20rpx 20rpx 0 0;
+	  padding-bottom: env(safe-area-inset-bottom);
+	  height: 50vh;
+	  display: flex;
+	  flex-direction: column;
+	}
 
+	.popup-header {
+	  padding: 30rpx;
+	  display: flex;
+	  justify-content: space-between;
+	  align-items: center;
+	  border-bottom: 1rpx solid #f5f5f5;
+	}
+
+	.popup-title {
+	  font-size: 32rpx;
+	  font-weight: bold;
+	}
+
+	.close-icon {
+	  /* font-size: 36rpx; */
+	  color: #999;
+	}
+
+	.comment-list {
+	  flex: 1;
+	  padding: 20rpx;
+	  box-sizing: border-box;
+	}
+
+	.comment-item {
+	  display: flex;
+	  padding: 20rpx 0;
+	  border-bottom: 1rpx solid #f5f5f5;
+	}
+
+	.avatar {
+	  width: 80rpx;
+	  height: 80rpx;
+	  border-radius: 50%;
+	  margin-right: 20rpx;
+	}
+
+	.comment-content {
+	  flex: 1;
+	}
+
+	.nickname {
+	  font-size: 26rpx;
+	  color: #666;
+	  display: block;
+	  margin-bottom: 10rpx;
+	}
+
+	.content {
+	  font-size: 30rpx;
+	  color: #333;
+	  display: block;
+	  margin-bottom: 10rpx;
+	}
+
+	.time {
+	  font-size: 24rpx;
+	  color: #999;
+	}
+
+	.comment-input-area {
+	  display: flex;
+	  padding: 20rpx 30rpx;
+	  align-items: center;
+	}
+
+	.comment-input {
+	  flex: 1;
+	  background-color: #fff;
+	  height: 80rpx;
+	  border: 1px solid #dcdcdc;
+	  border-radius: 40rpx;
+	  padding: 0 30rpx;
+	  font-size: 28rpx;
+	}
+
+	.placeholder {
+	  color: #ccc;
+	}
+
+	.submit-btn {
+	  margin-left: 20rpx;
+	  background-color: #07c160;
+	  color: #fff;
+	  border-radius: 40rpx;
+	  padding: 0 30rpx;
+	  height: 80rpx;
+	  line-height: 80rpx;
+	  font-size: 28rpx;
+	}
+
+	.loading, .empty {
+	  padding: 40rpx 0;
+	  text-align: center;
+	  color: #999;
+	}
 </style>
\ No newline at end of file
diff --git a/pages/tabbar/special/special.vue b/pages/tabbar/special/special.vue
index ea7b5e2..f863247 100644
--- a/pages/tabbar/special/special.vue
+++ b/pages/tabbar/special/special.vue
@@ -50,6 +50,7 @@
 </template>
 
 <script>
+import '@/uview-components/uview-ui'
 // 寮曠敤缁勪欢
 import tpl_banner from "@/pages/tabbar/home/template/tpl_banner"; //瀵艰埅鏍忔ā鍧�
 import tpl_title from "@/pages/tabbar/home/template/tpl_title"; //鏍囬鏍忔ā鍧�
diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index 6734f28..239e702 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -75,13 +75,16 @@
   </view>
 </template>
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import URow from '@/uview-components/uview-ui/components/u-row/u-row.vue';
+import UCol from '@/uview-components/uview-ui/components/u-col/u-col.vue';
 import tool from "@/pages/tabbar/user/utils/tool.vue";
 import { getCouponsNum, getFootprintNum } from "@/api/members.js";
 import { getUserWallet } from "@/api/members";
 import configs from '@/config/config'
 export default {
   components: {
-    tool,
+    tool,UIcon,URow,UCol
   },
   data() {
     return {
diff --git a/pages/tabbar/video/video.vue b/pages/tabbar/video/video.vue
index 24539f4..edab4fc 100644
--- a/pages/tabbar/video/video.vue
+++ b/pages/tabbar/video/video.vue
@@ -16,7 +16,7 @@
           :poster="videoInfo.cover || ''"
         ></video>
 		<view class="progress-box">
-			<progress style="width: 100%;" :percent="videoUploadProgress" show-info stroke-width="6" :active="true" active-color="#ff573e" />
+			<progress style="width: 100%;" :percent="videoUploadProgress" active-mode="forwards" show-info stroke-width="6" :active="true" active-color="#ff573e" />
 		</view>
         <view class="video-actions">
           <u-button type="error" size="mini" @click="reUpload">閲嶆柊涓婁紶</u-button>
@@ -171,13 +171,20 @@
 </template>
 
 <script>
+import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
+import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
+import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
+import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
+import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
+import USearch from '@/uview-components/uview-ui/components/u-search/u-search.vue';
+import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
 import MyTag from "@/components/my-tag.vue"
 import { getSTSToken } from "@/api/common.js";
 import { publish } from "@/api/video.js";
 import { getRecommendTag3 } from "@/api/video-tag.js";
 import { getFileKey } from "@/utils/file.js";
 export default {
-  components: {MyTag},
+  components: {MyTag,UIcon,UButton,UForm,UFormItem,UInput,USearch,UPopup},
   data() {
     return {
 	  cosClient: null,
@@ -200,6 +207,7 @@
 		id: '',
         title: '',
 		videoFileKey: '',
+		videoDuration: 0,
 		videoFit: 'cover',
         goodsId: '',
         tags: [],
@@ -253,7 +261,7 @@
   },
   methods: {
 	  // 鑾峰彇鎺ㄨ崘鏍囩
-	  getRecommendTags(type) {
+	  async getRecommendTags(type) {
 		  const params = {
 			  tagName: this.tagInput.trim(),
 			  searchType: type
@@ -267,7 +275,6 @@
 		  console.log("鎵ц浜�");
 		  // 璋冪敤鍚庣鑾峰彇sts涓存椂璁块棶鍑瘉
 		  getSTSToken().then(res => {
-			  console.log(res, "sts缁撴瀯");
 			  const COS = require('@/lib/cos-wx-sdk-v5.js'); // 寮�鍙戞椂浣跨敤
 			  // const COS = require('./lib/cos-wx-sdk-v5.min.js'); // 涓婄嚎鏃朵娇鐢ㄥ帇缂╁寘
 			  
@@ -301,20 +308,21 @@
 			if(fileName.indexOf('%') > -1) {
 				fileName = decodeURIComponent(fileName);
 			}
-          const fileKey = getFileKey(fileName);
-		  this.videoInfo = {
-			url: res.tempFilePath,
-		    fileKey: fileKey,
-		    fileType: fileKey.split('/')[0],
-		    fileSize: res.size,
-		    originalFileName: fileName,
-		    cover: ''
-		  };
-		  this.formData.videoFileKey = fileKey;
-		  // 鍒ゆ柇瑙嗛鐨勫~鍏呮ā寮�
-		  this.formData.videoFit = this.calculateVideoFit(res.width, res.height)
+			const fileKey = getFileKey(fileName);
+		   this.videoInfo = {
+			 url: res.tempFilePath,
+			 fileKey: fileKey,
+			 fileType: fileKey.split('/')[0],
+			 fileSize: res.size,
+			 originalFileName: fileName,
+			 cover: ''
+		   };
+		   this.formData.videoFileKey = fileKey;
+		   this.formData.videoDuration = res.duration;
+		   // 鍒ゆ柇瑙嗛鐨勫~鍏呮ā寮�
+		   this.formData.videoFit = this.calculateVideoFit(res.width, res.height)
 		  
-		  this.cosClient.uploadFile({
+		   this.cosClient.uploadFile({
 		        Bucket: this.bucket,
 		        Region: this.region,
 		        Key: fileKey,
@@ -489,6 +497,7 @@
 			    title: '',
 				videoFileKey: '',
 				videoFit: 'cover',
+				videoDuration: 0,
 			    goodsId: '',
 			    tags: [],
 			    fileInfo: {}
diff --git a/static/video/play.png b/static/video/play.png
new file mode 100644
index 0000000..c06f226
--- /dev/null
+++ b/static/video/play.png
Binary files differ
diff --git a/uni.scss b/uni.scss
index cf254fe..8b17bab 100644
--- a/uni.scss
+++ b/uni.scss
@@ -1,6 +1,6 @@
 /* 椤甸潰宸﹀彸闂磋窛 */
 $page-color-base: #f8f8f8;
-@import "uview-ui/theme.scss";
+@import '@/uview-components/uview-ui/theme.scss';
 
 /* 鏂囧瓧灏哄 */
 $font-sm: 24rpx;
diff --git a/uni_modules/uni-load-more/changelog.md b/uni_modules/uni-load-more/changelog.md
new file mode 100644
index 0000000..667abdb
--- /dev/null
+++ b/uni_modules/uni-load-more/changelog.md
@@ -0,0 +1,25 @@
+## 1.3.6锛�2024-10-15锛�
+- 淇 寰俊灏忕▼搴忎腑鐨刧etSystemInfo璀﹀憡
+## 1.3.5锛�2024-10-12锛�
+- 淇 寰俊灏忕▼搴忎腑鐨刧etSystemInfo璀﹀憡
+## 1.3.4锛�2024-10-12锛�
+- 淇 寰俊灏忕▼搴忎腑鐨刧etSystemInfo璀﹀憡
+## 1.3.3锛�2022-01-20锛�
+- 鏂板 showText灞炴�� 锛屾槸鍚︽樉绀烘枃鏈�
+## 1.3.2锛�2022-01-19锛�
+- 淇 nvue 骞冲彴涓嬩笉鏄剧ず鏂囨湰鐨刡ug
+## 1.3.1锛�2022-01-19锛�
+- 淇 寰俊灏忕▼搴忓钩鍙版牱寮忛�夋嫨鍣ㄦ姤璀﹀憡鐨勯棶棰�
+## 1.3.0锛�2021-11-19锛�
+- 浼樺寲 缁勪欢UI锛屽苟鎻愪緵璁捐璧勬簮锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 鏂囨。杩佺Щ锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+## 1.2.1锛�2021-08-24锛�
+- 鏂板 鏀寔鍥介檯鍖�
+## 1.2.0锛�2021-07-30锛�
+- 缁勪欢鍏煎 vue3锛屽浣曞垱寤簐ue3椤圭洰锛岃瑙� [uni-app 椤圭洰鏀寔 vue3 浠嬬粛](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8锛�2021-05-12锛�
+- 鏂板 缁勪欢绀轰緥鍦板潃
+## 1.1.7锛�2021-03-30锛�
+- 淇 uni-load-more 鍦ㄩ椤典娇鐢ㄦ椂锛宧5 骞冲彴鎶� 'uni is not defined' 鐨� bug
+## 1.1.6锛�2021-02-05锛�
+- 璋冩暣涓簎ni_modules鐩綍瑙勮寖
diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
new file mode 100644
index 0000000..a4f14a5
--- /dev/null
+++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
@@ -0,0 +1,5 @@
+{
+	"uni-load-more.contentdown": "Pull up to show more",
+	"uni-load-more.contentrefresh": "loading...",
+	"uni-load-more.contentnomore": "No more data"
+}
diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
new file mode 100644
index 0000000..de7509c
--- /dev/null
+++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+	en,
+	'zh-Hans': zhHans,
+	'zh-Hant': zhHant
+}
diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
new file mode 100644
index 0000000..f15d510
--- /dev/null
+++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+	"uni-load-more.contentdown": "涓婃媺鏄剧ず鏇村",
+	"uni-load-more.contentrefresh": "姝e湪鍔犺浇...",
+	"uni-load-more.contentnomore": "娌℃湁鏇村鏁版嵁浜�"
+}
diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
new file mode 100644
index 0000000..a255c6d
--- /dev/null
+++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
@@ -0,0 +1,5 @@
+{
+	"uni-load-more.contentdown": "涓婃媺椤ず鏇村",
+	"uni-load-more.contentrefresh": "姝e湪鍔犺級...",
+	"uni-load-more.contentnomore": "娌掓湁鏇村鏁告摎浜�"
+}
diff --git a/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
new file mode 100644
index 0000000..a203417
--- /dev/null
+++ b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
@@ -0,0 +1,404 @@
+<template>
+	<view class="uni-load-more" @click="onClick">
+		<!-- #ifdef APP-NVUE -->
+		<loading-indicator v-if="!webviewHide && status === 'loading' && showIcon"
+			:style="{color: color,width:iconSize+'px',height:iconSize+'px'}" :animating="true"
+			class="uni-load-more__img uni-load-more__img--nvue"></loading-indicator>
+		<!-- #endif -->
+		<!-- #ifdef H5 -->
+		<svg width="24" height="24" viewBox="25 25 50 50"
+			v-if="!webviewHide && (iconType==='circle' || iconType==='auto' && platform === 'android') && status === 'loading' && showIcon"
+			:style="{width:iconSize+'px',height:iconSize+'px'}"
+			class="uni-load-more__img uni-load-more__img--android-H5">
+			<circle cx="50" cy="50" r="20" fill="none" :style="{color:color}" :stroke-width="3"></circle>
+		</svg>
+		<!-- #endif -->
+		<!-- #ifndef APP-NVUE || H5 -->
+		<view
+			v-if="!webviewHide && (iconType==='circle' || iconType==='auto' && platform === 'android') && status === 'loading' && showIcon"
+			:style="{width:iconSize+'px',height:iconSize+'px'}"
+			class="uni-load-more__img uni-load-more__img--android-MP">
+			<view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
+			<view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
+			<view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
+		</view>
+		<!-- #endif -->
+		<!-- #ifndef APP-NVUE -->
+		<view v-else-if="!webviewHide && status === 'loading' && showIcon"
+			:style="{width:iconSize+'px',height:iconSize+'px'}" class="uni-load-more__img uni-load-more__img--ios-H5">
+			<image :src="imgBase64" mode="widthFix"></image>
+		</view>
+		<!-- #endif -->
+		<text v-if="showText" class="uni-load-more__text"
+			:style="{color: color}">{{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}</text>
+	</view>
+</template>
+
+<script>
+	let platform
+	setTimeout(() => {
+		// #ifdef MP-WEIXIN
+		platform = uni.getDeviceInfo().platform
+		// #endif
+		// #ifndef MP-WEIXIN
+		platform = uni.getSystemInfoSync().platform
+		// #endif
+	}, 16)
+
+	import {
+		initVueI18n
+	} from '@dcloudio/uni-i18n'
+	import messages from './i18n/index.js'
+	const {
+		t
+	} = initVueI18n(messages)
+
+	/**
+	 * LoadMore 鍔犺浇鏇村
+	 * @description 鐢ㄤ簬鍒楄〃涓紝鍋氭粴鍔ㄥ姞杞戒娇鐢紝灞曠ず loading 鐨勫悇绉嶇姸鎬�
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=29
+	 * @property {String} status = [more|loading|noMore] loading 鐨勭姸鎬�
+	 * 	@value more loading鍓�
+	 * 	@value loading loading涓�
+	 * 	@value noMore 娌℃湁鏇村浜�
+	 * @property {Number} iconSize 鎸囧畾鍥炬爣澶у皬
+	 * @property {Boolean} iconSize = [true|false] 鏄惁鏄剧ず loading 鍥炬爣
+	 * @property {String} iconType = [snow|circle|auto] 鎸囧畾鍥炬爣鏍峰紡
+	 * 	@value snow ios闆姳鍔犺浇鏍峰紡
+	 * 	@value circle 瀹夊崜鍞ら啋鍔犺浇鏍峰紡
+	 * 	@value auto 鏍规嵁骞冲彴鑷姩閫夋嫨鍔犺浇鏍峰紡
+	 * @property {String} color 鍥炬爣鍜屾枃瀛楅鑹�
+	 * @property {Object} contentText 鍚勭姸鎬佹枃瀛楄鏄庯紝鍊间负锛歿contentdown: "涓婃媺鏄剧ず鏇村",contentrefresh: "姝e湪鍔犺浇...",contentnomore: "娌℃湁鏇村鏁版嵁浜�"}
+	 * @event {Function} clickLoadMore 鐐瑰嚮鍔犺浇鏇村鏃惰Е鍙�
+	 */
+	export default {
+		name: 'UniLoadMore',
+		emits: ['clickLoadMore'],
+		props: {
+			status: {
+				// 涓婃媺鐨勭姸鎬侊細more-loading鍓嶏紱loading-loading涓紱noMore-娌℃湁鏇村浜�
+				type: String,
+				default: 'more'
+			},
+			showIcon: {
+				type: Boolean,
+				default: true
+			},
+			iconType: {
+				type: String,
+				default: 'auto'
+			},
+			iconSize: {
+				type: Number,
+				default: 24
+			},
+			color: {
+				type: String,
+				default: '#777777'
+			},
+			contentText: {
+				type: Object,
+				default () {
+					return {
+						contentdown: '',
+						contentrefresh: '',
+						contentnomore: ''
+					}
+				}
+			},
+			showText: {
+				type: Boolean,
+				default: true
+			}
+		},
+		data() {
+			return {
+				webviewHide: false,
+				platform: platform,
+				imgBase64: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZVHb98LM+F5bHL8khA1iSeiyQBCRM+YGqKUnnJTDLGI0BGZlKDIU2MMglUiDApEZvSsZnQtBRJtKwQNKQMFYeRDR10WOLd8ljYXdh+v8v5fR3Od+797t1dnOnO/Ofce77z+J//+b/P+ZqtXbs2sJ9MJhNUV1cHJ06cCJo3bx7EPc2aNcvpy7pWrVoF+/fvDyoqKoI2bdoE9fX1F7TjN8a+EXBn/fkfvw942Tf+wYMHg9mzZwfjxo0LDhw4EPa1x2MbFw/fOGfPng1qa2tzcCkILsLDydq2bRsunpOTMM7TD/W/tZDZhPdeKD+yGxHhdu3aBV27dg3OnDlzMVANMheLAO3btw8KCwuDmpoaX5OxbgUIMEq7K8IcPnw4KCsrC/r37x8cP378/4cAXAB3vqSkJMuiDhTkw+XcuXNhOWbMmKBly5YhUT8xArhyFvP0BfwRsAuwxJZJsm/nzp2DTp06he/OU+cZ64K6o0ePBkOHDg2GDx8e6gEbJ5Q/NHNuAJQ1hgBeHUDlR7nVTkY8rQAvAi4z34vR/mPs1FoRsaCgIJThI0eOBC1atEiFGGV+5MiRoS45efJkqFjJFXV1dQuA012m2WcwTw98fy6CqBdsaiIO4CScrGPHjvk4odhavPquRtFWXEC25VgkREKOCh/qDSq+vn37htzD/mZTOmOc5U7zKzBPEedygWshcDyWvs30igAbU+6oyMgJBCFhwQE0fccxN60Ay9iebbjoDh06hMowjQxT4fXq1SskArmHZpkArvixp/kWzHdMeArExSJEaiXIjjRjRJ4DaAGWpibLzXN3Fm1vA5teBgh3j1Rv3bp1YgKwPdmf2p9zcyNYYgPKMfY0T5f5nNYdw158nJ8QawW4CLKwiOBSEgO/hok2eBydR+3dYH+PLxA5J8Vv0KBBwenTp0P2JWAx6+yFEBfs8lMY+y0SWMBNI9E4ThKi58VKTg3FQZS1RQF1cz27eC0QHMu+3E0SkUowjhVt5VdaWhp07949ZHv2Qd1EjDXM2cla1M0nl3GxAs3J9yREzyTdFVKVFOaE9qRA8GM0WebRuo9JGZKA7Mv2SeS/Z8+eoQ9BArMfFrLGo6jvxbhHbJZnKX2Rzz1O7QhJJ9Cs2ZMaWIyq/zhdeqPNfIoHd58clIQD+JSXl4dKlyIAuBdVXZwFVWKspSSoxE++h8x4k3uCnEhE4I5KwRiFWGOU0QWKiCYLbdoRMRKAu2kQ9vkfLU6dOhX06NEjlH+yMRZSinnuyWnYosVcji8CEA/6Cg2JF+IIUBqnGKUTCNwtwBN4f89RiK1R96DEgO2o0NDmtEdvVFdVVYV+P3UAPUEs6GFwV3PHmXkD4vh74iDFJysVI/MlaQhwKeBNTLYX5VuA8T4/gZxA4MRGFxDB6R7OmYPfyykGRJbyie+XnGYnQIC/coH9+vULiYrxrkL9ZA9+0ykaHIfEpM7ge8TiJ2CsHYwyMfafAF1yCGBHYIbCVDjDjKt7BeB51D+LgQa6OkG7IDYEEtvQ7lnXLKLtLdLuJBpE4gPUXcW2+PkZwOex+4cGDhwYDBkyRL7/HFcEwUGPo/8uWRUpYnfxGHco8HkewLHLyYmAawAPuIFZxhOpDfJQ8gbUv41yORAptMWBNr6oqMhWird5+u+iHmBb2nhjDV7HWBNQTgK8y11l5NetWzc5ULscAtSj7nbNI0skhWeUZCc0W4nyH/jO4Vz0u1IeYhbk4AiwM6tjxIWByHsoZ9qcIBPJd/y+DwPfBESOmCa/QF3WiZHucLlEDpNxcNhmheEOPgdQNx6/VZFQzFZ5TN08AHXQt2Ii3EdyFuUsPtTcGPhW5iMiCNELvz+Gdn9huG4HUJaW/w3g0wxV0XaG7arG2WeKiUWYM4Y7GO5ezshTARbbWGw/DvXkpp/ivVvE0JVoMxN4rpGzJMhE5Pl+xlATsDIqikP9F9D2z3h9nOksEUFhK+qO4rcPkoalMQ/HqJLIyb3F3JdjrCcw1yZ8joyJLR5gCo54etlag7qIoeNh1N1BRYj3DTFJ0elotxPlVzkGuYAmL0VSJVGAJA41c4Z6A3BzTLfn0HYwYKEI6CUAMzZEWvLsIcQOo1AmmyyM72nHJCfYsogflGV6jEk9vyQZXSuq6w4c16NsGcGZbwOPr+H1RkOk2LEzjNepxQkihHSCQ4ynAYNRx2zMKV92CQMWqj8J0BRE8EShxRFN6YrfCRhC0x3r/Zm4IbQCcmJoV0kMamllccR6FjHqUC5F2R/wS2dcymOlfAKOS4KmzQb5cpNC2MC7JhVn5wjXoJ44rYhLh8n0eXOCorJxa7POjbSlCGVczr34/RsAmrcvo9s+wGp3tzVhntxiXiJ4nvEYb4FJkf0O8HocAePmLvCxnL0AORraVekJk6TYjDabRVXfRE2lCN1h6ZQRN1+InUbsCpKwoBZHh0dODN9JBCUffItXxEavTQkUtnfTVAplCWL3JISz29h4NjotnuSsQKJCk8dF+kJR6RARjrqFVmfPnj3ZbK8cIJ0msd6jgHPGtfVTQ8VLmlvh4mct9sobRmPic0DyDQQnx/NlfYUgyz59+oScsH379pAwXABD32nTpoUHIToESeI5mnbE/UqDdyLcafEBf2MCqgC7NwxIbMREJQ0g4D4sfJwnD+AmRrII05cfMWJE+L1169bQr+fip06dGp4oJ83lmYd5wj/EmMa4TaHivo4EeCguYZBnkB5g2aWA69OIEnUHOaGysjIYMGBAMGnSpODYsWPZwCpFmm4lNq+4gSLQA7jcX8DwtjEyRC8wjabnXEx9kfWnTJkSJkAo90xpJVV+FmcVNeYAF5zWngS4C4O91MBxmAv8blLEpbjI5sz9MTdAhcgkCT1RO8mZkAjfiYpTEvStAS53Uw1vAiUGgZ3GpuQEYvoiBqlIan7kSDHnTwJQFNiPu0+5VxCVYhcZIjNrdXUDdp+Eq5AZ3Gkg8QAyVZRZIk4Tl4QAbF9cXJxNYZMAtAokgs4BrNxEpCtteXg7DDTMDKYNSuQdKsnJBek7HxewvxaosWxLYXtw+cJp18217wql4aKCfBNoEu0O5VU+PhctJ0YeXD4C6JQpyrlpSLTojpGGGN5YwNziChdIZLk4lvLcFJ9jMX3QdiImY9bmGQU+TRUL5CHITTRlgF8D9ouD1MfmLoEPl5xokIumZ2cfgMpHt47IW9N64Hsh7wQYYjyIugWuF5fCqYncXRd5vPMWyizzvhi/32+nvG0dZc9vR6fZOu0md5e+uC408FvKSIOZwXlGvxPv95izA2Vtvg1xKFWARI+vMX66HUhpQQb643uW1bSjuTWyw2SBvDrBvjFic1eGGlz5esq3ko9uSIlBRqPuFcCv8F4WIcN12nVaBd0SaYwI6PDDImR11JkqgHcPmQssjxIn6bUshygDFJUTxPMpHk+jfjPgupgdnYV2R/g7xSjtpah8RJBewhwf0gGK6XI92u4wXFEU40afJ4DN4h5LcAd+40HI3JgJecuT0c062W0i2hQJUTcxan3/CMW1PF2K6bbA+Daz4xRs1D3Br1Cm0OihKCqizW78/nXAF/G5TXrEcVzaNMH6CyMswqsAHqDyDLEyou8lwOXnKF8DjI6KjV3KzMBiXkDH8ij/H214J5A596ekrZ3F0zXlWeL7+P5eUrNo3/QwC15uxthuzidy7DzKRwEDaAViiDgKbTbz7CJnzo0bN7pIfIiid8SuPwn25o3QCmpnyjlZkyxPP8EomCJzrGb7GJMx7tNsq4MT2xMUYaiErZOluTzKsnz3gwCeCZyVRZJfYplNEokEjwrPtxlxjeYAk+F1F74VAzPxQRNYYdtpOUvWs8J1sGhBJMNsb7igN8plJs1eSmLIhLKE4rvaCX27gOhLpLOsIzJ7qn/i+wZzcvSOZ23/du8TZjwV8zHIXoP4R3ifBxiFz1dcVpa3aPntPE+c6TmIWE9EtcMmAcPdWAhYhAXxcLOQi9L1WhD1Sc8p1d2oL7XGiRKp8F4A2i8K/nfI+y/gsTDJ/YC/8+AD5Uh04KHiGl+cIFPnBDDrPMjwRGkLXyxO4VGbfQWnDH2v0bVWE3C9QOXlepbgjEfIJQI6XDG3z5ahD9cw2pS78ipB85wyScNTvsVzlzzhL8/jRrnmVjfFJK/m3m4nj9vbgQTguT8XZTjsm672R5uJKEaQmBI/c58gyus8ZDagLpEVSJBIyHp4jn++xqPV71OgQgJYEWOtZ/haxRtKmWOBu8xdBLftWltsY84zE6WIEy/eIOWL+BaayMx+KHtL7EAkqdNDLiEXmEMUHniedtJqg9HmZtfvt26vNi0BdG3Ft3g8ZOf7PAu59TxtzivLNIekyi+wD1i8CuUiD9FXAa8C+/xS3JPmZnomyc7H+fb4/Se0bk41Fel621r4cgVxbq91V4jVqwB7HTe2M7jgB+QWHavZkDRPmZcASoZEmBx6i75bGjPcMdL4/VKGFAGWZkGzPG0XAbdL9A81G5LOmUnC9hHKJeO7dcUMjblSl12867ElFTtaGl20xvvLGPdVz/8TVuU7y0x1PG7vtNg24oz9Uo/Z412++VFWI7Fcog9tu9Lm6gvRmIPv9x1xmQAu6RDkXtbOtlGEmpgD5Nvnyc0dcv0EE6cfdi1HmhMf9wDF3k3gtRvEedhxjpgfqPb9PU9iEJHnyOUA7bQUXh6kq/D7l2iTjWv7XOD530BDr8jIrus+srXjt4MzumJMHuTsBa63YKE1+RR5lBjEikCCnWKWiHdzOgKO+nRIBAF88za/IFmJ3eMZov4CYxGBabcpGL8EYx+SeMXJeRwHNsV/h+vdxeuhEpN3ZyNY78Gm2fknJxVGhyjixPiQvVkNzT1elD9Py/aTAL64Hb9vcYmC9zfdXdT/C1LeGbg4rnBaAihDFJH12W5ulfNCNe/xTsP3bp8ikzJs5BF+5PNfAQYAPaseTdsEcaYAAAAASUVORK5CYII='
+			}
+		},
+		computed: {
+			iconSnowWidth() {
+				return (Math.floor(this.iconSize / 24) || 1) * 2
+			},
+			contentdownText() {
+				return this.contentText.contentdown || t("uni-load-more.contentdown")
+			},
+			contentrefreshText() {
+				return this.contentText.contentrefresh || t("uni-load-more.contentrefresh")
+			},
+			contentnomoreText() {
+				return this.contentText.contentnomore || t("uni-load-more.contentnomore")
+			}
+		},
+		mounted() {
+			// #ifdef APP-PLUS
+			var pages = getCurrentPages();
+			var page = pages[pages.length - 1];
+			var currentWebview = page.$getAppWebview();
+			currentWebview.addEventListener('hide', () => {
+				this.webviewHide = true
+			})
+			currentWebview.addEventListener('show', () => {
+				this.webviewHide = false
+			})
+			// #endif
+		},
+		methods: {
+			onClick() {
+				this.$emit('clickLoadMore', {
+					detail: {
+						status: this.status,
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" >
+	.uni-load-more {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		height: 40px;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.uni-load-more__text {
+		font-size: 14px;
+		margin-left: 8px;
+	}
+
+	.uni-load-more__img {
+		width: 24px;
+		height: 24px;
+		// margin-right: 8px;
+	}
+
+	.uni-load-more__img--nvue {
+		color: #666666;
+	}
+
+	.uni-load-more__img--android,
+	.uni-load-more__img--ios {
+		width: 24px;
+		height: 24px;
+		transform: rotate(0deg);
+	}
+
+	/* #ifndef APP-NVUE */
+	.uni-load-more__img--android {
+		animation: loading-ios 1s 0s linear infinite;
+	}
+
+	@keyframes loading-android {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	.uni-load-more__img--ios-H5 {
+		position: relative;
+		animation: loading-ios-H5 1s 0s step-end infinite;
+	}
+
+	.uni-load-more__img--ios-H5 image {
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		left: 0;
+		top: 0;
+	}
+
+	@keyframes loading-ios-H5 {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		8% {
+			transform: rotate(30deg);
+		}
+
+		16% {
+			transform: rotate(60deg);
+		}
+
+		24% {
+			transform: rotate(90deg);
+		}
+
+		32% {
+			transform: rotate(120deg);
+		}
+
+		40% {
+			transform: rotate(150deg);
+		}
+
+		48% {
+			transform: rotate(180deg);
+		}
+
+		56% {
+			transform: rotate(210deg);
+		}
+
+		64% {
+			transform: rotate(240deg);
+		}
+
+		73% {
+			transform: rotate(270deg);
+		}
+
+		82% {
+			transform: rotate(300deg);
+		}
+
+		91% {
+			transform: rotate(330deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	/* #endif */
+
+	/* #ifdef H5 */
+	.uni-load-more__img--android-H5 {
+		animation: loading-android-H5-rotate 2s linear infinite;
+		transform-origin: center center;
+	}
+
+	.uni-load-more__img--android-H5 circle {
+		display: inline-block;
+		animation: loading-android-H5-dash 1.5s ease-in-out infinite;
+		stroke: currentColor;
+		stroke-linecap: round;
+	}
+
+	@keyframes loading-android-H5-rotate {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	@keyframes loading-android-H5-dash {
+		0% {
+			stroke-dasharray: 1, 200;
+			stroke-dashoffset: 0;
+		}
+
+		50% {
+			stroke-dasharray: 90, 150;
+			stroke-dashoffset: -40;
+		}
+
+		100% {
+			stroke-dasharray: 90, 150;
+			stroke-dashoffset: -120;
+		}
+	}
+
+	/* #endif */
+
+	/* #ifndef APP-NVUE || H5 */
+	.uni-load-more__img--android-MP {
+		position: relative;
+		width: 24px;
+		height: 24px;
+		transform: rotate(0deg);
+		animation: loading-ios 1s 0s ease infinite;
+	}
+
+	.uni-load-more__img--android-MP .uni-load-more__img-icon {
+		position: absolute;
+		box-sizing: border-box;
+		width: 100%;
+		height: 100%;
+		border-radius: 50%;
+		border: solid 2px transparent;
+		border-top: solid 2px #777777;
+		transform-origin: center;
+	}
+
+	.uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(1) {
+		animation: loading-android-MP-1 1s 0s linear infinite;
+	}
+
+	.uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(2) {
+		animation: loading-android-MP-2 1s 0s linear infinite;
+	}
+
+	.uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(3) {
+		animation: loading-android-MP-3 1s 0s linear infinite;
+	}
+
+	@keyframes loading-android {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	@keyframes loading-android-MP-1 {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		50% {
+			transform: rotate(90deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	@keyframes loading-android-MP-2 {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		50% {
+			transform: rotate(180deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	@keyframes loading-android-MP-3 {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		50% {
+			transform: rotate(270deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	/* #endif */
+</style>
diff --git a/uni_modules/uni-load-more/package.json b/uni_modules/uni-load-more/package.json
new file mode 100644
index 0000000..cf44bff
--- /dev/null
+++ b/uni_modules/uni-load-more/package.json
@@ -0,0 +1,84 @@
+{
+  "id": "uni-load-more",
+  "displayName": "uni-load-more 鍔犺浇鏇村",
+  "version": "1.3.6",
+  "description": "LoadMore 缁勪欢锛屽父鐢ㄥ湪鍒楄〃閲岄潰锛屽仛婊氬姩鍔犺浇浣跨敤銆�",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "鍔犺浇鏇村",
+    "load-more"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+"dcloudext": {
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+    "type": "component-vue"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y",
+        "alipay": "n"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "寰俊娴忚鍣�(Android)": "y",
+          "QQ娴忚鍣�(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "y",
+          "闃块噷": "y",
+          "鐧惧害": "y",
+          "瀛楄妭璺冲姩": "y",
+          "QQ": "y"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "u",
+          "鑱旂洘": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}
diff --git a/uni_modules/uni-load-more/readme.md b/uni_modules/uni-load-more/readme.md
new file mode 100644
index 0000000..54dc1fa
--- /dev/null
+++ b/uni_modules/uni-load-more/readme.md
@@ -0,0 +1,14 @@
+
+
+### LoadMore 鍔犺浇鏇村
+> **缁勪欢鍚嶏細uni-load-more**
+> 浠g爜鍧楋細 `uLoadMore`
+
+
+鐢ㄤ簬鍒楄〃涓紝鍋氭粴鍔ㄥ姞杞戒娇鐢紝灞曠ず loading 鐨勫悇绉嶇姸鎬併��
+
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 
+
+
diff --git a/uni_modules/uni-number-box/changelog.md b/uni_modules/uni-number-box/changelog.md
new file mode 100644
index 0000000..adf9221
--- /dev/null
+++ b/uni_modules/uni-number-box/changelog.md
@@ -0,0 +1,39 @@
+## 1.2.8锛�2024-04-26锛�
+- 淇 鍦╲ue2涓婬5榛戣竟鐨刡ug
+## 1.2.7锛�2024-04-26锛�
+- 淇 鍦╲ue2鎵嬪姩杈撳叆鍚庡け鐒﹀鑷存竻绌烘暟鍊肩殑涓ラ噸bug
+## 1.2.6锛�2024-02-22锛�
+- 鏂板 璁剧疆瀹藉害灞炴�idth(鍗曚綅锛歱x)
+## 1.2.5锛�2024-02-21锛�
+- 淇 step姝ラ暱灏忎簬1鏃讹紝閿洏绫诲瀷涓簄umber鐨刡ug
+## 1.2.4锛�2024-02-02锛�
+- 淇 鍔犲噺鍙峰瀭鐩翠綅缃亸绉绘牱寮忛棶棰�
+## 1.2.3锛�2023-05-23锛�
+- 鏇存柊绀轰緥宸ョ▼
+## 1.2.2锛�2023-05-08锛�
+- 淇 change 浜嬩欢鎵ц椤哄簭閿欒鐨勯棶棰�
+## 1.2.1锛�2021-11-22锛�
+- 淇 vue3涓煇浜泂css鍙橀噺鏃犳硶鎵惧埌鐨勯棶棰�
+## 1.2.0锛�2021-11-19锛�
+- 浼樺寲 缁勪欢UI锛屽苟鎻愪緵璁捐璧勬簮锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 鏂囨。杩佺Щ锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box)
+## 1.1.2锛�2021-11-09锛� 
+- 鏂板 鎻愪緵缁勪欢璁捐璧勬簮锛岀粍浠舵牱寮忚皟鏁�
+## 1.1.1锛�2021-07-30锛�
+- 浼樺寲 vue3涓嬩簨浠惰鍛婄殑闂
+## 1.1.0锛�2021-07-13锛�
+- 缁勪欢鍏煎 vue3锛屽浣曞垱寤簐ue3椤圭洰锛岃瑙� [uni-app 椤圭洰鏀寔 vue3 浠嬬粛](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7锛�2021-05-12锛�
+- 鏂板 缁勪欢绀轰緥鍦板潃
+## 1.0.6锛�2021-04-20锛�
+- 淇 uni-number-box 娴偣鏁拌繍绠椾笉绮剧‘鐨� bug
+- 淇 uni-number-box change 浜嬩欢瑙﹀彂涓嶆纭殑 bug
+- 鏂板 uni-number-box v-model 鍙屽悜缁戝畾
+## 1.0.5锛�2021-02-05锛�
+- 璋冩暣涓簎ni_modules鐩綍瑙勮寖
+
+## 1.0.7锛�2021-02-05锛�
+- 璋冩暣涓簎ni_modules鐩綍瑙勮寖
+- 鏂板 鏀寔 v-model
+- 鏂板 鏀寔 focus銆乥lur 浜嬩欢
+- 鏂板 鏀寔 PC 绔�
diff --git a/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue
new file mode 100644
index 0000000..4e203cc
--- /dev/null
+++ b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue
@@ -0,0 +1,232 @@
+<template>
+	<view class="uni-numbox">
+		<view @click="_calcValue('minus')" class="uni-numbox__minus uni-numbox-btns" :style="{background}">
+			<text class="uni-numbox--text" :class="{ 'uni-numbox--disabled': inputValue <= min || disabled }"
+				:style="{color}">-</text>
+		</view>
+		<input :disabled="disabled" @focus="_onFocus" @blur="_onBlur" class="uni-numbox__value"
+			:type="step<1?'digit':'number'" v-model="inputValue" :style="{background, color, width:widthWithPx}" />
+		<view @click="_calcValue('plus')" class="uni-numbox__plus uni-numbox-btns" :style="{background}">
+			<text class="uni-numbox--text" :class="{ 'uni-numbox--disabled': inputValue >= max || disabled }"
+				:style="{color}">+</text>
+		</view>
+	</view>
+</template>
+<script>
+	/**
+	 * NumberBox 鏁板瓧杈撳叆妗�
+	 * @description 甯﹀姞鍑忔寜閽殑鏁板瓧杈撳叆妗�
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=31
+	 * @property {Number} value 杈撳叆妗嗗綋鍓嶅��
+	 * @property {Number} min 鏈�灏忓��
+	 * @property {Number} max 鏈�澶у��
+	 * @property {Number} step 姣忔鐐瑰嚮鏀瑰彉鐨勯棿闅斿ぇ灏�
+	 * @property {String} background 鑳屾櫙鑹�
+	 * @property {String} color 瀛椾綋棰滆壊锛堝墠鏅壊锛�
+	 * @property {Number} width 杈撳叆妗嗗搴�(鍗曚綅:px)
+	 * @property {Boolean} disabled = [true|false] 鏄惁涓虹鐢ㄧ姸鎬�
+	 * @event {Function} change 杈撳叆妗嗗�兼敼鍙樻椂瑙﹀彂鐨勪簨浠讹紝鍙傛暟涓鸿緭鍏ユ褰撳墠鐨� value
+	 * @event {Function} focus 杈撳叆妗嗚仛鐒︽椂瑙﹀彂鐨勪簨浠讹紝鍙傛暟涓� event 瀵硅薄
+	 * @event {Function} blur 杈撳叆妗嗗け鐒︽椂瑙﹀彂鐨勪簨浠讹紝鍙傛暟涓� event 瀵硅薄
+	 */
+
+	export default {
+		name: "UniNumberBox",
+		emits: ['change', 'input', 'update:modelValue', 'blur', 'focus'],
+		props: {
+			value: {
+				type: [Number, String],
+				default: 1
+			},
+			modelValue: {
+				type: [Number, String],
+				default: 1
+			},
+			min: {
+				type: Number,
+				default: 0
+			},
+			max: {
+				type: Number,
+				default: 100
+			},
+			step: {
+				type: Number,
+				default: 1
+			},
+			background: {
+				type: String,
+				default: '#f5f5f5'
+			},
+			color: {
+				type: String,
+				default: '#333'
+			},
+			disabled: {
+				type: Boolean,
+				default: false
+			},
+			width: {
+				type: Number,
+				default: 40,
+			}
+		},
+		data() {
+			return {
+				inputValue: 0
+			};
+		},
+		watch: {
+			value(val) {
+				this.inputValue = +val;
+			},
+			modelValue(val) {
+				this.inputValue = +val;
+			}
+		},
+		computed: {
+			widthWithPx() {
+				return this.width + 'px';
+			}
+		},
+		created() {
+			if (this.value === 1) {
+				this.inputValue = +this.modelValue;
+			}
+			if (this.modelValue === 1) {
+				this.inputValue = +this.value;
+			}
+		},
+		methods: {
+			_calcValue(type) {
+				if (this.disabled) {
+					return;
+				}
+				const scale = this._getDecimalScale();
+				let value = this.inputValue * scale;
+				let step = this.step * scale;
+				if (type === "minus") {
+					value -= step;
+					if (value < (this.min * scale)) {
+						return;
+					}
+					if (value > (this.max * scale)) {
+						value = this.max * scale
+					}
+				}
+
+				if (type === "plus") {
+					value += step;
+					if (value > (this.max * scale)) {
+						return;
+					}
+					if (value < (this.min * scale)) {
+						value = this.min * scale
+					}
+				}
+
+				this.inputValue = (value / scale).toFixed(String(scale).length - 1);
+				// TODO vue2 鍏煎
+				this.$emit("input", +this.inputValue);
+				// TODO vue3 鍏煎
+				this.$emit("update:modelValue", +this.inputValue);
+				this.$emit("change", +this.inputValue);
+			},
+			_getDecimalScale() {
+
+				let scale = 1;
+				// 娴偣鍨�
+				if (~~this.step !== this.step) {
+					scale = Math.pow(10, String(this.step).split(".")[1].length);
+				}
+				return scale;
+			},
+			_onBlur(event) {
+				this.$emit('blur', event)
+				let value = event.detail.value;
+				if (isNaN(value)) {
+					this.inputValue = this.value;
+					return;
+				}
+				value = +value;
+				if (value > this.max) {
+					value = this.max;
+				} else if (value < this.min) {
+					value = this.min;
+				}
+				const scale = this._getDecimalScale();
+				this.inputValue = value.toFixed(String(scale).length - 1);
+				this.$emit("input", +this.inputValue);
+				this.$emit("update:modelValue", +this.inputValue);
+				this.$emit("change", +this.inputValue);
+			},
+			_onFocus(event) {
+				this.$emit('focus', event)
+			}
+		}
+	};
+</script>
+<style lang="scss">
+	$box-height: 26px;
+	$bg: #f5f5f5;
+	$br: 2px;
+	$color: #333;
+
+	.uni-numbox {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+	}
+
+	.uni-numbox-btns {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		padding: 0 8px;
+		background-color: $bg;
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+	}
+
+	.uni-numbox__value {
+		margin: 0 2px;
+		background-color: $bg;
+		width: 40px;
+		height: $box-height;
+		text-align: center;
+		font-size: 14px;
+		border-width: 0;
+		color: $color;
+	}
+
+	.uni-numbox__minus {
+		border-top-left-radius: $br;
+		border-bottom-left-radius: $br;
+	}
+
+	.uni-numbox__plus {
+		border-top-right-radius: $br;
+		border-bottom-right-radius: $br;
+	}
+
+	.uni-numbox--text {
+		// fix nvue
+		line-height: 20px;
+		margin-bottom: 2px;
+		font-size: 20px;
+		font-weight: 300;
+		color: $color;
+	}
+
+	.uni-numbox .uni-numbox--disabled {
+		color: #c0c0c0 !important;
+		/* #ifdef H5 */
+		cursor: not-allowed;
+		/* #endif */
+	}
+</style>
diff --git a/uni_modules/uni-number-box/package.json b/uni_modules/uni-number-box/package.json
new file mode 100644
index 0000000..4ac9047
--- /dev/null
+++ b/uni_modules/uni-number-box/package.json
@@ -0,0 +1,83 @@
+{
+  "id": "uni-number-box",
+  "displayName": "uni-number-box 鏁板瓧杈撳叆妗�",
+  "version": "1.2.8",
+  "description": "NumberBox 甯﹀姞鍑忔寜閽殑鏁板瓧杈撳叆妗嗙粍浠讹紝鐢ㄦ埛鍙互鎺у埗姣忔鐐瑰嚮澧炲姞鐨勬暟鍊硷紝鏀寔灏忔暟銆�",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "鏁板瓧杈撳叆妗�"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+"dcloudext": {
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+    "type": "component-vue"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y",
+        "alipay": "n"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "寰俊娴忚鍣�(Android)": "y",
+          "QQ娴忚鍣�(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "y",
+          "闃块噷": "y",
+          "鐧惧害": "y",
+          "瀛楄妭璺冲姩": "y",
+          "QQ": "y"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "u",
+          "鑱旂洘": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-number-box/readme.md b/uni_modules/uni-number-box/readme.md
new file mode 100644
index 0000000..affc56f
--- /dev/null
+++ b/uni_modules/uni-number-box/readme.md
@@ -0,0 +1,13 @@
+
+
+## NumberBox 鏁板瓧杈撳叆妗�
+> **缁勪欢鍚嶏細uni-number-box**
+> 浠g爜鍧楋細 `uNumberBox`
+
+
+甯﹀姞鍑忔寜閽殑鏁板瓧杈撳叆妗嗐��
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-number-box)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 
+
+
diff --git a/uni_modules/uni-popup/changelog.md b/uni_modules/uni-popup/changelog.md
new file mode 100644
index 0000000..013272a
--- /dev/null
+++ b/uni_modules/uni-popup/changelog.md
@@ -0,0 +1,94 @@
+## 1.9.8锛�2025-04-16锛�
+- 淇 鏇存柊缁勪欢绀轰緥 锛岃В鍐虫洿鏂版暟鎹垨淇濆瓨椤圭洰瀵艰嚧寮圭獥娑堝け鐨勯棶棰�
+## 1.9.7锛�2025-04-14锛�
+- 淇 uni-popup-dialog 寮瑰嚭妗嗗湪vue3涓弻鍚戠粦瀹氶棶棰�
+## 1.9.6锛�2025-01-08锛�
+- 淇 绀轰緥涓繃鏈熷浘鐗囧湴鍧�
+## 1.9.5锛�2024-10-15锛�
+- 淇 寰俊灏忕▼搴忎腑鐨刧etSystemInfo璀﹀憡
+## 1.9.2锛�2024-09-21锛�
+- 淇 uni-popup鍦╝ndroid涓婄殑閲嶅鐐瑰嚮寮瑰嚭浣嶇疆涓嶆纭殑bug
+## 1.9.1锛�2024-04-02锛�
+- 淇 uni-popup-dialog vue3涓嬩娇鐢╲alue鏃犳硶杩涜缁戝畾鐨刡ug(鍙屽悜缁戝畾鍏煎鏃у啓娉�)
+## 1.9.0锛�2024-03-28锛�
+- 淇 uni-popup-dialog 鍙屽悜缁戝畾鏃跺垵濮嬪寲閫昏緫淇
+## 1.8.9锛�2024-03-20锛�
+- 淇 uni-popup-dialog 鏁版嵁杈撳叆鏃朵慨姝d负鍙屽悜缁戝畾
+## 1.8.8锛�2024-02-20锛�
+- 淇 uni-popup 鍦ㄥ井淇″皬绋嬪簭涓嬪嚭鐜版枃瀛楀悜涓婇棯鍔ㄧ殑bug
+## 1.8.7锛�2024-02-02锛�
+- 鏂板 uni-popup-dialog 鏂板灞炴�ocus锛歩nput妯″紡涓嬶紝鏄惁鑷姩鑷姩鑱氱劍
+## 1.8.6锛�2024-01-30锛�
+- 鏂板 uni-popup-dialog 鏂板灞炴�axLength:闄愬埗杈撳叆妗嗗瓧鏁�
+## 1.8.5锛�2024-01-26锛�
+- 鏂板 uni-popup-dialog 鏂板灞炴�howClose:鎺у埗鍏抽棴鎸夐挳鐨勬樉绀�
+## 1.8.4锛�2023-11-15锛�
+- 鏂板 uni-popup 鏀寔uni-app-x 娉ㄦ剰鏆傛椂浠呮敮鎸� `maskClick` `@open` `@close`
+## 1.8.3锛�2023-04-17锛�
+- 淇 uni-popup 閲嶅鎵撳紑鏃剁殑 bug
+## 1.8.2锛�2023-02-02锛�
+- uni-popup-dialog 缁勪欢鏂板 inputType 灞炴��
+## 1.8.1锛�2022-12-01锛�
+- 淇 nvue 涓� v-show 鎶ラ敊
+## 1.8.0锛�2022-11-29锛�
+- 浼樺寲 涓婚鏍峰紡
+## 1.7.9锛�2022-04-02锛�
+- 淇 寮瑰嚭灞傚唴閮ㄦ棤娉曟粴鍔ㄧ殑bug
+## 1.7.8锛�2022-03-28锛�
+- 淇 灏忕▼搴忎腑楂樺害閿欒鐨刡ug
+## 1.7.7锛�2022-03-17锛�
+- 淇 蹇�熻皟鐢╫pen鍑虹幇闂鐨凚ug
+## 1.7.6锛�2022-02-14锛�
+- 淇 safeArea 灞炴�т笉鑳借缃负false鐨刡ug
+## 1.7.5锛�2022-01-19锛�
+- 淇 isMaskClick 澶辨晥鐨刡ug
+## 1.7.4锛�2022-01-19锛�
+- 鏂板 cancelText \ confirmText 灞炴�� 锛屽彲鑷畾涔夋枃鏈�
+- 鏂板 maskBackgroundColor 灞炴�� 锛屽彲浠ヤ慨鏀硅挋鐗堥鑹�
+- 浼樺寲 maskClick灞炴�� 鏇存柊涓� isMaskClick 锛岃В鍐冲井淇″皬绋嬪簭璀﹀憡鐨勯棶棰�
+## 1.7.3锛�2022-01-13锛�
+- 淇 璁剧疆 safeArea 灞炴�т笉鐢熸晥鐨刡ug
+## 1.7.2锛�2021-11-26锛�
+- 浼樺寲 缁勪欢绀轰緥
+## 1.7.1锛�2021-11-26锛�
+- 淇 vuedoc 鏂囧瓧閿欒
+## 1.7.0锛�2021-11-19锛�
+- 浼樺寲 缁勪欢UI锛屽苟鎻愪緵璁捐璧勬簮锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 鏂囨。杩佺Щ锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2锛�2021-08-24锛�
+- 鏂板 鏀寔鍥介檯鍖�
+## 1.6.1锛�2021-07-30锛�
+- 浼樺寲 vue3涓嬩簨浠惰鍛婄殑闂
+## 1.6.0锛�2021-07-13锛�
+- 缁勪欢鍏煎 vue3锛屽浣曞垱寤簐ue3椤圭洰锛岃瑙� [uni-app 椤圭洰鏀寔 vue3 浠嬬粛](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0锛�2021-06-23锛�
+- 鏂板 mask-click 閬僵灞傜偣鍑讳簨浠�
+## 1.4.5锛�2021-06-22锛�
+- 淇 nvue 骞冲彴涓棿寮瑰嚭鍚庯紝鐐瑰嚮鍐呭锛屽啀鐐瑰嚮閬僵鏃犳硶鍏抽棴鐨凚ug
+## 1.4.4锛�2021-06-18锛�
+- 淇 H5骞冲彴涓棿寮瑰嚭鍚庯紝鐐瑰嚮鍐呭锛屽啀鐐瑰嚮閬僵鏃犳硶鍏抽棴鐨凚ug
+## 1.4.3锛�2021-06-08锛�
+- 淇 閿欒鐨� watch 瀛楁
+- 淇 safeArea 灞炴�т笉鐢熸晥鐨勯棶棰�
+- 淇 鐐瑰嚮鍐呭锛屽啀鐐瑰嚮閬僵鏃犳硶鍏抽棴鐨凚ug
+## 1.4.2锛�2021-05-12锛�
+- 鏂板 缁勪欢绀轰緥鍦板潃
+## 1.4.1锛�2021-04-29锛�
+- 淇 缁勪欢鍐呮斁缃� input 銆乼extarea 缁勪欢锛屾棤娉曡仛鐒︾殑闂
+## 1.4.0 锛�2021-04-29锛�
+- 鏂板 type 灞炴�х殑 left\right 鍊硷紝鏀寔宸﹀彸寮瑰嚭
+- 鏂板 open(String:type) 鏂规硶鍙傛暟 锛屽彲浠ョ渷鐣� type 灞炴�� 锛岀洿鎺ヤ紶鍏ョ被鍨嬫墦寮�鎸囧畾寮圭獥
+- 鏂板 backgroundColor 灞炴�э紝鍙畾涔変富绐楀彛鑳屾櫙鑹�,榛樿涓嶆樉绀鸿儗鏅壊
+- 鏂板 safeArea 灞炴�э紝鏄惁閫傞厤搴曢儴瀹夊叏鍖�
+- 淇 App\h5\寰俊灏忕▼搴忓簳閮ㄥ畨鍏ㄥ尯鍗犱綅涓嶅鐨凚ug
+- 淇 App 绔脊鍑虹瓑寰呯殑Bug
+- 浼樺寲 鎻愬崌浣庨厤璁惧鎬ц兘锛屼紭鍖栧姩鐢诲崱椤块棶棰�
+- 浼樺寲 鏇寸畝鍗曠殑缁勪欢鑷畾涔夋柟寮�
+## 1.2.9锛�2021-02-05锛�
+- 浼樺寲 缁勪欢寮曠敤鍏崇郴锛岄�氳繃uni_modules寮曠敤缁勪欢
+## 1.2.8锛�2021-02-05锛�
+- 璋冩暣涓簎ni_modules鐩綍瑙勮寖
+## 1.2.7锛�2021-02-05锛�
+- 璋冩暣涓簎ni_modules鐩綍瑙勮寖
+- 鏂板 鏀寔 PC 绔�
+- 鏂板 uni-popup-message 銆乽ni-popup-dialog鎵╁睍缁勪欢鏀寔 PC 绔�
diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js
new file mode 100644
index 0000000..6ef26a2
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+  name: 'Keypress',
+  props: {
+    disable: {
+      type: Boolean,
+      default: false
+    }
+  },
+  mounted () {
+    const keyNames = {
+      esc: ['Esc', 'Escape'],
+      tab: 'Tab',
+      enter: 'Enter',
+      space: [' ', 'Spacebar'],
+      up: ['Up', 'ArrowUp'],
+      left: ['Left', 'ArrowLeft'],
+      right: ['Right', 'ArrowRight'],
+      down: ['Down', 'ArrowDown'],
+      delete: ['Backspace', 'Delete', 'Del']
+    }
+    const listener = ($event) => {
+      if (this.disable) {
+        return
+      }
+      const keyName = Object.keys(keyNames).find(key => {
+        const keyName = $event.key
+        const value = keyNames[key]
+        return value === keyName || (Array.isArray(value) && value.includes(keyName))
+      })
+      if (keyName) {
+        // 閬垮厤鍜屽叾浠栨寜閿簨浠跺啿绐�
+        setTimeout(() => {
+          this.$emit(keyName, {})
+        }, 0)
+      }
+    }
+    document.addEventListener('keyup', listener)
+    this.$once('hook:beforeDestroy', () => {
+      document.removeEventListener('keyup', listener)
+    })
+  },
+	render: () => {}
+}
+// #endif
diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
new file mode 100644
index 0000000..f5731d5
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
@@ -0,0 +1,327 @@
+<template>
+	<view class="uni-popup-dialog">
+		<view class="uni-dialog-title">
+			<text class="uni-dialog-title-text" :class="['uni-popup__'+dialogType]">{{titleText}}</text>
+		</view>
+		<view v-if="mode === 'base'" class="uni-dialog-content">
+			<slot>
+				<text class="uni-dialog-content-text">{{content}}</text>
+			</slot>
+		</view>
+		<view v-else class="uni-dialog-content">
+			<slot>
+				<input class="uni-dialog-input" :maxlength="maxlength" v-model="val" :type="inputType"
+					:placeholder="placeholderText" :focus="focus">
+			</slot>
+		</view>
+		<view class="uni-dialog-button-group">
+			<view class="uni-dialog-button" v-if="showClose" @click="closeDialog">
+				<text class="uni-dialog-button-text">{{closeText}}</text>
+			</view>
+			<view class="uni-dialog-button" :class="showClose?'uni-border-left':''" @click="onOk">
+				<text class="uni-dialog-button-text uni-button-color">{{okText}}</text>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import popup from '../uni-popup/popup.js'
+	import {
+		initVueI18n
+	} from '@dcloudio/uni-i18n'
+	import messages from '../uni-popup/i18n/index.js'
+	const {
+		t
+	} = initVueI18n(messages)
+	/**
+	 * PopUp 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮�
+	 * @description 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮�
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
+	 * @property {String} value input 妯″紡涓嬬殑榛樿鍊�
+	 * @property {String} placeholder input 妯″紡涓嬭緭鍏ユ彁绀�
+	 * @property {Boolean} focus input妯″紡涓嬫槸鍚﹁嚜鍔ㄨ仛鐒︼紝榛樿涓簍rue
+	 * @property {String} type = [success|warning|info|error] 涓婚鏍峰紡
+	 *  @value success 鎴愬姛
+	 * 	@value warning 鎻愮ず
+	 * 	@value info 娑堟伅
+	 * 	@value error 閿欒
+	 * @property {String} mode = [base|input] 妯″紡銆�
+	 * 	@value base 鍩虹瀵硅瘽妗�
+	 * 	@value input 鍙緭鍏ュ璇濇
+	 * @showClose {Boolean} 鏄惁鏄剧ず鍏抽棴鎸夐挳
+	 * @property {String} content 瀵硅瘽妗嗗唴瀹�
+	 * @property {Boolean} beforeClose 鏄惁鎷︽埅鍙栨秷浜嬩欢
+	 * @property {Number} maxlength 杈撳叆
+	 * @event {Function} confirm 鐐瑰嚮纭鎸夐挳瑙﹀彂
+	 * @event {Function} close 鐐瑰嚮鍙栨秷鎸夐挳瑙﹀彂
+	 */
+
+	export default {
+		name: "uniPopupDialog",
+		mixins: [popup],
+		emits: ['confirm', 'close', 'update:modelValue', 'input'],
+		props: {
+			inputType: {
+				type: String,
+				default: 'text'
+			},
+			showClose: {
+				type: Boolean,
+				default: true
+			},
+			// #ifdef VUE2
+			value: {
+				type: [String, Number],
+				default: ''
+			},
+			// #endif
+			// #ifdef VUE3
+			modelValue: {
+				type: [Number, String],
+				default: ''
+			},
+			// #endif
+
+
+			placeholder: {
+				type: [String, Number],
+				default: ''
+			},
+			type: {
+				type: String,
+				default: 'error'
+			},
+			mode: {
+				type: String,
+				default: 'base'
+			},
+			title: {
+				type: String,
+				default: ''
+			},
+			content: {
+				type: String,
+				default: ''
+			},
+			beforeClose: {
+				type: Boolean,
+				default: false
+			},
+			cancelText: {
+				type: String,
+				default: ''
+			},
+			confirmText: {
+				type: String,
+				default: ''
+			},
+			maxlength: {
+				type: Number,
+				default: -1,
+			},
+			focus: {
+				type: Boolean,
+				default: true,
+			}
+		},
+		data() {
+			return {
+				dialogType: 'error',
+				val: ""
+			}
+		},
+		computed: {
+			okText() {
+				return this.confirmText || t("uni-popup.ok")
+			},
+			closeText() {
+				return this.cancelText || t("uni-popup.cancel")
+			},
+			placeholderText() {
+				return this.placeholder || t("uni-popup.placeholder")
+			},
+			titleText() {
+				return this.title || t("uni-popup.title")
+			}
+		},
+		watch: {
+			type(val) {
+				this.dialogType = val
+			},
+			mode(val) {
+				if (val === 'input') {
+					this.dialogType = 'info'
+				}
+			},
+			value(val) {
+				setVal(val)
+			},
+			// #ifdef VUE3
+			modelValue(val) {
+				setVal(val)
+			},
+			// #endif
+			val(val) {
+				// #ifdef VUE2
+				// TODO 鍏煎 vue2
+				this.$emit('input', val);
+				// #endif
+				// #ifdef VUE3
+				// TODO銆�鍏煎銆�vue3
+				this.$emit('update:modelValue', val);
+				// #endif
+			}
+		},
+		created() {
+			// 瀵硅瘽妗嗛伄缃╀笉鍙偣鍑�
+			this.popup.disableMask()
+			// this.popup.closeMask()
+			if (this.mode === 'input') {
+				this.dialogType = 'info'
+				this.val = this.value;
+				// #ifdef VUE3
+				this.val = this.modelValue;
+				// #endif
+			} else {
+				this.dialogType = this.type
+			}
+		},
+		methods: {
+			/**
+			 * 缁檝al灞炴�ц祴鍊�
+			 */
+			setVal(val) {
+				if (this.maxlength != -1 && this.mode === 'input') {
+					this.val = val.slice(0, this.maxlength);
+				} else {
+					this.val = val
+				}
+			},
+			/**
+			 * 鐐瑰嚮纭鎸夐挳
+			 */
+			onOk() {
+				if (this.mode === 'input') {
+					this.$emit('confirm', this.val)
+				} else {
+					this.$emit('confirm')
+				}
+				if (this.beforeClose) return
+				this.popup.close()
+			},
+			/**
+			 * 鐐瑰嚮鍙栨秷鎸夐挳
+			 */
+			closeDialog() {
+				this.$emit('close')
+				if (this.beforeClose) return
+				this.popup.close()
+			},
+			close() {
+				this.popup.close()
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.uni-popup-dialog {
+		width: 300px;
+		border-radius: 11px;
+		background-color: #fff;
+	}
+
+	.uni-dialog-title {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		justify-content: center;
+		padding-top: 25px;
+	}
+
+	.uni-dialog-title-text {
+		font-size: 16px;
+		font-weight: 500;
+	}
+
+	.uni-dialog-content {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		padding: 20px;
+	}
+
+	.uni-dialog-content-text {
+		font-size: 14px;
+		color: #6C6C6C;
+	}
+
+	.uni-dialog-button-group {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		border-top-color: #f5f5f5;
+		border-top-style: solid;
+		border-top-width: 1px;
+	}
+
+	.uni-dialog-button {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+
+		flex: 1;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		height: 45px;
+	}
+
+	.uni-border-left {
+		border-left-color: #f0f0f0;
+		border-left-style: solid;
+		border-left-width: 1px;
+	}
+
+	.uni-dialog-button-text {
+		font-size: 16px;
+		color: #333;
+	}
+
+	.uni-button-color {
+		color: #007aff;
+	}
+
+	.uni-dialog-input {
+		flex: 1;
+		font-size: 14px;
+		border: 1px #eee solid;
+		height: 40px;
+		padding: 0 10px;
+		border-radius: 5px;
+		color: #555;
+	}
+
+	.uni-popup__success {
+		color: #4cd964;
+	}
+
+	.uni-popup__warn {
+		color: #f0ad4e;
+	}
+
+	.uni-popup__error {
+		color: #dd524d;
+	}
+
+	.uni-popup__info {
+		color: #909399;
+	}
+</style>
diff --git a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
new file mode 100644
index 0000000..91370a8
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
@@ -0,0 +1,143 @@
+<template>
+	<view class="uni-popup-message">
+		<view class="uni-popup-message__box fixforpc-width" :class="'uni-popup__'+type">
+			<slot>
+				<text class="uni-popup-message-text" :class="'uni-popup__'+type+'-text'">{{message}}</text>
+			</slot>
+		</view>
+	</view>
+</template>
+
+<script>
+	import popup from '../uni-popup/popup.js'
+	/**
+	 * PopUp 寮瑰嚭灞�-娑堟伅鎻愮ず
+	 * @description 寮瑰嚭灞�-娑堟伅鎻愮ず
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
+	 * @property {String} type = [success|warning|info|error] 涓婚鏍峰紡
+	 *  @value success 鎴愬姛
+	 * 	@value warning 鎻愮ず
+	 * 	@value info 娑堟伅
+	 * 	@value error 閿欒
+	 * @property {String} message 娑堟伅鎻愮ず鏂囧瓧
+	 * @property {String} duration 鏄剧ず鏃堕棿锛岃缃负 0 鍒欎笉浼氳嚜鍔ㄥ叧闂�
+	 */
+
+	export default {
+		name: 'uniPopupMessage',
+		mixins:[popup],
+		props: {
+			/**
+			 * 涓婚 success/warning/info/error	  榛樿 success
+			 */
+			type: {
+				type: String,
+				default: 'success'
+			},
+			/**
+			 * 娑堟伅鏂囧瓧
+			 */
+			message: {
+				type: String,
+				default: ''
+			},
+			/**
+			 * 鏄剧ず鏃堕棿锛岃缃负 0 鍒欎笉浼氳嚜鍔ㄥ叧闂�
+			 */
+			duration: {
+				type: Number,
+				default: 3000
+			},
+			maskShow:{
+				type:Boolean,
+				default:false
+			}
+		},
+		data() {
+			return {}
+		},
+		created() {
+			this.popup.maskShow = this.maskShow
+			this.popup.messageChild = this
+		},
+		methods: {
+			timerClose(){
+				if(this.duration === 0) return
+				clearTimeout(this.timer) 
+				this.timer = setTimeout(()=>{
+					this.popup.close()
+				},this.duration)
+			}
+		}
+	}
+</script>
+<style lang="scss" >
+	.uni-popup-message {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		justify-content: center;
+	}
+
+	.uni-popup-message__box {
+		background-color: #e1f3d8;
+		padding: 10px 15px;
+		border-color: #eee;
+		border-style: solid;
+		border-width: 1px;
+		flex: 1;
+	}
+
+	@media screen and (min-width: 500px) {
+		.fixforpc-width {
+			margin-top: 20px;
+			border-radius: 4px;
+			flex: none;
+			min-width: 380px;
+			/* #ifndef APP-NVUE */
+			max-width: 50%;
+			/* #endif */
+			/* #ifdef APP-NVUE */
+			max-width: 500px;
+			/* #endif */
+		}
+	}
+
+	.uni-popup-message-text {
+		font-size: 14px;
+		padding: 0;
+	}
+
+	.uni-popup__success {
+		background-color: #e1f3d8;
+	}
+
+	.uni-popup__success-text {
+		color: #67C23A;
+	}
+
+	.uni-popup__warn {
+		background-color: #faecd8;
+	}
+
+	.uni-popup__warn-text {
+		color: #E6A23C;
+	}
+
+	.uni-popup__error {
+		background-color: #fde2e2;
+	}
+
+	.uni-popup__error-text {
+		color: #F56C6C;
+	}
+
+	.uni-popup__info {
+		background-color: #F2F6FC;
+	}
+
+	.uni-popup__info-text {
+		color: #909399;
+	}
+</style>
diff --git a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
new file mode 100644
index 0000000..c8945d5
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
@@ -0,0 +1,188 @@
+<template>
+	<view class="uni-popup-share">
+		<view class="uni-share-title"><text class="uni-share-title-text">{{shareTitleText}}</text></view>
+		<view class="uni-share-content">
+			<view class="uni-share-content-box">
+				<view class="uni-share-content-item" v-for="(item,index) in bottomData" :key="index" @click.stop="select(item,index)">
+					<image class="uni-share-image" :src="item.icon" mode="aspectFill"></image>
+					<text class="uni-share-text">{{item.text}}</text>
+				</view>
+
+			</view>
+		</view>
+		<view class="uni-share-button-box">
+			<button class="uni-share-button" @click="close">{{cancelText}}</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import popup from '../uni-popup/popup.js'
+	import {
+	initVueI18n
+	} from '@dcloudio/uni-i18n'
+	import messages from '../uni-popup/i18n/index.js'
+	const {	t	} = initVueI18n(messages)
+	export default {
+		name: 'UniPopupShare',
+		mixins:[popup],
+		emits:['select'],
+		props: {
+			title: {
+				type: String,
+				default: ''
+			},
+			beforeClose: {
+				type: Boolean,
+				default: false
+			}
+		},
+		data() {
+			return {
+				// TODO 鏇挎崲涓鸿嚜宸辩殑鍥炬爣
+				bottomData: [{
+						text: '寰俊',
+						icon: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png',
+						name: 'wx'
+					},
+					{
+						text: '鏀粯瀹�',
+						icon: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png',
+						name: 'ali'
+					},
+					{
+						text: 'QQ',
+						icon: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png',
+						name: 'qq'
+					},
+					{
+						text: '鏂版氮',
+						icon: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png',
+						name: 'sina'
+					},
+					// {
+					// 	text: '鐧惧害',
+					// 	icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/1ec6e920-50bf-11eb-8a36-ebb87efcf8c0.png',
+					// 	name: 'copy'
+					// },
+					// {
+					// 	text: '鍏朵粬',
+					// 	icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/2e0fdfe0-50bf-11eb-b997-9918a5dda011.png',
+					// 	name: 'more'
+					// }
+				]
+			}
+		},
+		created() {},
+		computed: {
+			cancelText() {
+				return t("uni-popup.cancel")
+			},
+		shareTitleText() {
+				return this.title || t("uni-popup.shareTitle")
+			}
+		},
+		methods: {
+			/**
+			 * 閫夋嫨鍐呭
+			 */
+			select(item, index) {
+				this.$emit('select', {
+					item,
+					index
+				})
+				this.close()
+
+			},
+			/**
+			 * 鍏抽棴绐楀彛
+			 */
+			close() {
+				if(this.beforeClose) return
+				this.popup.close()
+			}
+		}
+	}
+</script>
+<style lang="scss" >
+	.uni-popup-share {
+		background-color: #fff;
+		border-top-left-radius: 11px;
+		border-top-right-radius: 11px;
+	}
+	.uni-share-title {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		height: 40px;
+	}
+	.uni-share-title-text {
+		font-size: 14px;
+		color: #666;
+	}
+	.uni-share-content {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		justify-content: center;
+		padding-top: 10px;
+	}
+
+	.uni-share-content-box {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		flex-wrap: wrap;
+		width: 360px;
+	}
+
+	.uni-share-content-item {
+		width: 90px;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		justify-content: center;
+		padding: 10px 0;
+		align-items: center;
+	}
+
+	.uni-share-content-item:active {
+		background-color: #f5f5f5;
+	}
+
+	.uni-share-image {
+		width: 30px;
+		height: 30px;
+	}
+
+	.uni-share-text {
+		margin-top: 10px;
+		font-size: 14px;
+		color: #3B4144;
+	}
+
+	.uni-share-button-box {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		padding: 10px 15px;
+	}
+
+	.uni-share-button {
+		flex: 1;
+		border-radius: 50px;
+		color: #666;
+		font-size: 16px;
+	}
+
+	.uni-share-button::after {
+		border-radius: 50px;
+	}
+</style>
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json
new file mode 100644
index 0000000..7f1bd06
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/en.json
@@ -0,0 +1,7 @@
+{
+	"uni-popup.cancel": "cancel",
+	"uni-popup.ok": "ok",
+	"uni-popup.placeholder": "pleace enter",
+	"uni-popup.title": "Hint",
+	"uni-popup.shareTitle": "Share to"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/uni_modules/uni-popup/components/uni-popup/i18n/index.js
new file mode 100644
index 0000000..de7509c
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/index.js
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+	en,
+	'zh-Hans': zhHans,
+	'zh-Hant': zhHant
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
new file mode 100644
index 0000000..5e3003c
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
@@ -0,0 +1,7 @@
+{
+	"uni-popup.cancel": "鍙栨秷",
+	"uni-popup.ok": "纭畾",
+	"uni-popup.placeholder": "璇疯緭鍏�",
+		"uni-popup.title": "鎻愮ず",
+		"uni-popup.shareTitle": "鍒嗕韩鍒�"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
new file mode 100644
index 0000000..13e39eb
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
@@ -0,0 +1,7 @@
+{
+	"uni-popup.cancel": "鍙栨秷",
+	"uni-popup.ok": "纰哄畾",
+	"uni-popup.placeholder": "璜嬭几鍏�",
+	"uni-popup.title": "鎻愮ず",
+	"uni-popup.shareTitle": "鍒嗕韩鍒�"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni_modules/uni-popup/components/uni-popup/keypress.js
new file mode 100644
index 0000000..62dda46
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/keypress.js
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+  name: 'Keypress',
+  props: {
+    disable: {
+      type: Boolean,
+      default: false
+    }
+  },
+  mounted () {
+    const keyNames = {
+      esc: ['Esc', 'Escape'],
+      tab: 'Tab',
+      enter: 'Enter',
+      space: [' ', 'Spacebar'],
+      up: ['Up', 'ArrowUp'],
+      left: ['Left', 'ArrowLeft'],
+      right: ['Right', 'ArrowRight'],
+      down: ['Down', 'ArrowDown'],
+      delete: ['Backspace', 'Delete', 'Del']
+    }
+    const listener = ($event) => {
+      if (this.disable) {
+        return
+      }
+      const keyName = Object.keys(keyNames).find(key => {
+        const keyName = $event.key
+        const value = keyNames[key]
+        return value === keyName || (Array.isArray(value) && value.includes(keyName))
+      })
+      if (keyName) {
+        // 閬垮厤鍜屽叾浠栨寜閿簨浠跺啿绐�
+        setTimeout(() => {
+          this.$emit(keyName, {})
+        }, 0)
+      }
+    }
+    document.addEventListener('keyup', listener)
+    // this.$once('hook:beforeDestroy', () => {
+    //   document.removeEventListener('keyup', listener)
+    // })
+  },
+	render: () => {}
+}
+// #endif
diff --git a/uni_modules/uni-popup/components/uni-popup/popup.js b/uni_modules/uni-popup/components/uni-popup/popup.js
new file mode 100644
index 0000000..c4e5781
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/popup.js
@@ -0,0 +1,26 @@
+
+export default {
+	data() {
+		return {
+			
+		}
+	},
+	created(){
+		this.popup = this.getParent()
+	},
+	methods:{
+		/**
+		 * 鑾峰彇鐖跺厓绱犲疄渚�
+		 */
+		getParent(name = 'uniPopup') {
+			let parent = this.$parent;
+			let parentName = parent.$options.name;
+			while (parentName !== name) {
+				parent = parent.$parent;
+				if (!parent) return false
+				parentName = parent.$options.name;
+			}
+			return parent;
+		},
+	}
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue b/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue
new file mode 100644
index 0000000..5eb8d5b
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue
@@ -0,0 +1,90 @@
+<template>
+  <view class="popup-root" v-if="isOpen" v-show="isShow" @click="clickMask">
+    <view @click.stop>
+      <slot></slot>
+    </view>
+  </view>
+</template>
+
+<script>
+  type CloseCallBack = ()=> void;
+  let closeCallBack:CloseCallBack = () :void => {};
+  export default {
+    emits:["close","clickMask"],
+    data() {
+      return {
+        isShow:false,
+        isOpen:false
+      }
+    },
+    props: {
+      maskClick: {
+        type: Boolean,
+        default: true
+      },
+    },
+    watch: {
+      // 璁剧疆show = true 鏃讹紝濡傛灉娌℃湁 open 闇�瑕佽缃负 open
+      isShow:{
+        handler(isShow) {
+          // console.log("isShow",isShow)
+          if(isShow && this.isOpen == false){
+            this.isOpen = true
+          }
+        },
+        immediate:true
+      },
+      // 璁剧疆isOpen = true 鏃讹紝濡傛灉娌℃湁 isShow 闇�瑕佽缃负 isShow
+      isOpen:{
+        handler(isOpen) {
+          // console.log("isOpen",isOpen)
+          if(isOpen && this.isShow == false){
+            this.isShow = true
+          }
+        },
+        immediate:true
+      }
+    },
+    methods:{
+      open(){
+        // ...funs : CloseCallBack[]
+        // if(funs.length > 0){
+        //   closeCallBack = funs[0]
+        // }
+        this.isOpen = true;
+      },
+      clickMask(){
+        if(this.maskClick == true){
+          this.$emit('clickMask')
+          this.close()
+        }
+      },
+      close(): void{
+        this.isOpen = false;
+        this.$emit('close')
+        closeCallBack()
+      },
+      hiden(){
+        this.isShow = false
+      },
+      show(){
+        this.isShow = true
+      }
+    }
+  }
+</script>
+
+<style>
+.popup-root {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 750rpx;
+  height: 100%;
+  flex: 1;
+  background-color: rgba(0, 0, 0, 0.3);
+  justify-content: center;
+  align-items: center;
+  z-index: 99;
+}
+</style>
\ No newline at end of file
diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue
new file mode 100644
index 0000000..5af55e0
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue
@@ -0,0 +1,518 @@
+<template>
+	<view v-if="showPopup" class="uni-popup" :class="[popupstyle, isDesktop ? 'fixforpc-z-index' : '']">
+		<view @touchstart="touchstart">
+			<uni-transition key="1" v-if="maskShow" name="mask" mode-class="fade" :styles="maskClass"
+				:duration="duration" :show="showTrans" @click="onTap" />
+			<uni-transition key="2" :mode-class="ani" name="content" :styles="transClass" :duration="duration"
+				:show="showTrans" @click="onTap">
+				<view class="uni-popup__wrapper" :style="getStyles" :class="[popupstyle]" @click="clear">
+					<slot />
+				</view>
+			</uni-transition>
+		</view>
+		<!-- #ifdef H5 -->
+		<keypress v-if="maskShow" @esc="onTap" />
+		<!-- #endif -->
+	</view>
+</template>
+
+<script>
+	// #ifdef H5
+	import keypress from './keypress.js'
+	// #endif
+
+	/**
+	 * PopUp 寮瑰嚭灞�
+	 * @description 寮瑰嚭灞傜粍浠讹紝涓轰簡瑙e喅閬僵寮瑰眰鐨勯棶棰�
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
+	 * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 寮瑰嚭鏂瑰紡
+	 * 	@value top 椤堕儴寮瑰嚭
+	 * 	@value center 涓棿寮瑰嚭
+	 * 	@value bottom 搴曢儴寮瑰嚭
+	 * 	@value left		宸︿晶寮瑰嚭
+	 * 	@value right  鍙充晶寮瑰嚭
+	 * 	@value message 娑堟伅鎻愮ず
+	 * 	@value dialog 瀵硅瘽妗�
+	 * 	@value share 搴曢儴鍒嗕韩绀轰緥
+	 * @property {Boolean} animation = [true|false] 鏄惁寮�鍚姩鐢�
+	 * @property {Boolean} maskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥(搴熷純)
+	 * @property {Boolean} isMaskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥
+	 * @property {String}  backgroundColor 涓荤獥鍙h儗鏅壊
+	 * @property {String}  maskBackgroundColor 钂欑増棰滆壊
+	 * @property {String}  borderRadius 璁剧疆鍦嗚(宸︿笂銆佸彸涓娿�佸彸涓嬪拰宸︿笅) 绀轰緥:"10px 10px 10px 10px"
+	 * @property {Boolean} safeArea		   鏄惁閫傞厤搴曢儴瀹夊叏鍖�
+	 * @event {Function} change 鎵撳紑鍏抽棴寮圭獥瑙﹀彂锛宔={show: false}
+	 * @event {Function} maskClick 鐐瑰嚮閬僵瑙﹀彂
+	 */
+
+	export default {
+		name: 'uniPopup',
+		components: {
+			// #ifdef H5
+			keypress
+			// #endif
+		},
+		emits: ['change', 'maskClick'],
+		props: {
+			// 寮�鍚姩鐢�
+			animation: {
+				type: Boolean,
+				default: true
+			},
+			// 寮瑰嚭灞傜被鍨嬶紝鍙�夊�硷紝top: 椤堕儴寮瑰嚭灞傦紱bottom锛氬簳閮ㄥ脊鍑哄眰锛沜enter锛氬叏灞忓脊鍑哄眰
+			// message: 娑堟伅鎻愮ず ; dialog : 瀵硅瘽妗�
+			type: {
+				type: String,
+				default: 'center'
+			},
+			// maskClick
+			isMaskClick: {
+				type: Boolean,
+				default: null
+			},
+			// TODO 2 涓増鏈悗搴熷純灞炴�� 锛屼娇鐢� isMaskClick
+			maskClick: {
+				type: Boolean,
+				default: null
+			},
+			backgroundColor: {
+				type: String,
+				default: 'none'
+			},
+			safeArea: {
+				type: Boolean,
+				default: true
+			},
+			maskBackgroundColor: {
+				type: String,
+				default: 'rgba(0, 0, 0, 0.4)'
+			},
+			borderRadius:{
+				type: String,
+			}
+		},
+
+		watch: {
+			/**
+			 * 鐩戝惉type绫诲瀷
+			 */
+			type: {
+				handler: function(type) {
+					if (!this.config[type]) return
+					this[this.config[type]](true)
+				},
+				immediate: true
+			},
+			isDesktop: {
+				handler: function(newVal) {
+					if (!this.config[newVal]) return
+					this[this.config[this.type]](true)
+				},
+				immediate: true
+			},
+			/**
+			 * 鐩戝惉閬僵鏄惁鍙偣鍑�
+			 * @param {Object} val
+			 */
+			maskClick: {
+				handler: function(val) {
+					this.mkclick = val
+				},
+				immediate: true
+			},
+			isMaskClick: {
+				handler: function(val) {
+					this.mkclick = val
+				},
+				immediate: true
+			},
+			// H5 涓嬬姝㈠簳閮ㄦ粴鍔�
+			showPopup(show) {
+				// #ifdef H5
+				// fix by mehaotian 澶勭悊 h5 婊氬姩绌块�忕殑闂
+				document.getElementsByTagName('body')[0].style.overflow = show ? 'hidden' : 'visible'
+				// #endif
+			}
+		},
+		data() {
+			return {
+				duration: 300,
+				ani: [],
+				showPopup: false,
+				showTrans: false,
+				popupWidth: 0,
+				popupHeight: 0,
+				config: {
+					top: 'top',
+					bottom: 'bottom',
+					center: 'center',
+					left: 'left',
+					right: 'right',
+					message: 'top',
+					dialog: 'center',
+					share: 'bottom'
+				},
+				maskClass: {
+					position: 'fixed',
+					bottom: 0,
+					top: 0,
+					left: 0,
+					right: 0,
+					backgroundColor: 'rgba(0, 0, 0, 0.4)'
+				},
+				transClass: {
+					backgroundColor: 'transparent',
+					borderRadius: this.borderRadius || "0",
+					position: 'fixed',
+					left: 0,
+					right: 0
+				},
+				maskShow: true,
+				mkclick: true,
+				popupstyle: 'top'
+			}
+		},
+		computed: {
+			getStyles() {
+				let res = { backgroundColor: this.bg };
+				if (this.borderRadius || "0") {
+					res = Object.assign(res, { borderRadius: this.borderRadius })
+				}
+				return res;
+			},
+			isDesktop() {
+				return this.popupWidth >= 500 && this.popupHeight >= 500
+			},
+			bg() {
+				if (this.backgroundColor === '' || this.backgroundColor === 'none') {
+					return 'transparent'
+				}
+				return this.backgroundColor
+			}
+		},
+		mounted() {
+			const fixSize = () => {
+				// #ifdef MP-WEIXIN
+				const {
+					windowWidth,
+					windowHeight,
+					windowTop,
+					safeArea,
+					screenHeight,
+					safeAreaInsets
+				} = uni.getWindowInfo()
+				// #endif
+				// #ifndef MP-WEIXIN
+				const {
+					windowWidth,
+					windowHeight,
+					windowTop,
+					safeArea,
+					screenHeight,
+					safeAreaInsets
+				} = uni.getSystemInfoSync()
+				// #endif
+				this.popupWidth = windowWidth
+				this.popupHeight = windowHeight + (windowTop || 0)
+				// TODO fix by mehaotian 鏄惁閫傞厤搴曢儴瀹夊叏鍖� ,鐩墠寰俊ios 銆佸拰 app ios 璁$畻鏈夊樊寮傦紝闇�瑕佹鏋朵慨澶�
+				if (safeArea && this.safeArea) {
+					// #ifdef MP-WEIXIN
+					this.safeAreaInsets = screenHeight - safeArea.bottom
+					// #endif
+					// #ifndef MP-WEIXIN
+					this.safeAreaInsets = safeAreaInsets.bottom
+					// #endif
+				} else {
+					this.safeAreaInsets = 0
+				}
+			}
+			fixSize()
+			// #ifdef H5
+			// window.addEventListener('resize', fixSize)
+			// this.$once('hook:beforeDestroy', () => {
+			// 	window.removeEventListener('resize', fixSize)
+			// })
+			// #endif
+		},
+		// #ifndef VUE3
+		// TODO vue2
+		destroyed() {
+			this.setH5Visible()
+		},
+		// #endif
+		// #ifdef VUE3
+		// TODO vue3
+		unmounted() {
+			this.setH5Visible()
+		},
+		// #endif
+		activated() {
+   	  this.setH5Visible(!this.showPopup);
+    },
+    deactivated() {
+      this.setH5Visible(true);
+    },
+		created() {
+			// this.mkclick =  this.isMaskClick || this.maskClick
+			if (this.isMaskClick === null && this.maskClick === null) {
+				this.mkclick = true
+			} else {
+				this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick
+			}
+			if (this.animation) {
+				this.duration = 300
+			} else {
+				this.duration = 0
+			}
+			// TODO 澶勭悊 message 缁勪欢鐢熷懡鍛ㄦ湡寮傚父鐨勯棶棰�
+			this.messageChild = null
+			// TODO 瑙e喅澶存潯鍐掓场鐨勯棶棰�
+			this.clearPropagation = false
+			this.maskClass.backgroundColor = this.maskBackgroundColor
+		},
+		methods: {
+			setH5Visible(visible = true) {
+				// #ifdef H5
+				// fix by mehaotian 澶勭悊 h5 婊氬姩绌块�忕殑闂
+				document.getElementsByTagName('body')[0].style.overflow =  visible ? "visible" : "hidden";
+				// #endif
+			},
+			/**
+			 * 鍏敤鏂规硶锛屼笉鏄剧ず閬僵灞�
+			 */
+			closeMask() {
+				this.maskShow = false
+			},
+			/**
+			 * 鍏敤鏂规硶锛岄伄缃╁眰绂佹鐐瑰嚮
+			 */
+			disableMask() {
+				this.mkclick = false
+			},
+			// TODO nvue 鍙栨秷鍐掓场
+			clear(e) {
+				// #ifndef APP-NVUE
+				e.stopPropagation()
+				// #endif
+				this.clearPropagation = true
+			},
+
+			open(direction) {
+				// fix by mehaotian 澶勭悊蹇�熸墦寮�鍏抽棴鐨勬儏鍐�
+				if (this.showPopup) {
+					return
+				}
+				let innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share']
+				if (!(direction && innerType.indexOf(direction) !== -1)) {
+					direction = this.type
+				}
+				if (!this.config[direction]) {
+					console.error('缂哄皯绫诲瀷锛�', direction)
+					return
+				}
+				this[this.config[direction]]()
+				this.$emit('change', {
+					show: true,
+					type: direction
+				})
+			},
+			close(type) {
+				this.showTrans = false
+				this.$emit('change', {
+					show: false,
+					type: this.type
+				})
+				clearTimeout(this.timer)
+				// // 鑷畾涔夊叧闂簨浠�
+				// this.customOpen && this.customClose()
+				this.timer = setTimeout(() => {
+					this.showPopup = false
+				}, 300)
+			},
+			// TODO 澶勭悊鍐掓场浜嬩欢锛屽ご鏉$殑鍐掓场浜嬩欢鏈夐棶棰� 锛屽厛杩欐牱鍏煎
+			touchstart() {
+				this.clearPropagation = false
+			},
+
+			onTap() {
+				if (this.clearPropagation) {
+					// fix by mehaotian 鍏煎 nvue
+					this.clearPropagation = false
+					return
+				}
+				this.$emit('maskClick')
+				if (!this.mkclick) return
+				this.close()
+			},
+			/**
+			 * 椤堕儴寮瑰嚭鏍峰紡澶勭悊
+			 */
+			top(type) {
+				this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top'
+				this.ani = ['slide-top']
+				this.transClass = {
+					position: 'fixed',
+					left: 0,
+					right: 0,
+					backgroundColor: this.bg,
+					borderRadius:this.borderRadius || "0"
+				}
+				// TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純
+				if (type) return
+				this.showPopup = true
+				this.showTrans = true
+				this.$nextTick(() => {
+					this.showPoptrans()
+					if (this.messageChild && this.type === 'message') {
+						this.messageChild.timerClose()
+					}
+				})
+			},
+			/**
+			 * 搴曢儴寮瑰嚭鏍峰紡澶勭悊
+			 */
+			bottom(type) {
+				this.popupstyle = 'bottom'
+				this.ani = ['slide-bottom']
+				this.transClass = {
+					position: 'fixed',
+					left: 0,
+					right: 0,
+					bottom: 0,
+					paddingBottom: this.safeAreaInsets + 'px',
+					backgroundColor: this.bg,
+					borderRadius:this.borderRadius || "0",
+				}
+				// TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純
+				if (type) return
+				this.showPoptrans()
+			},
+			/**
+			 * 涓棿寮瑰嚭鏍峰紡澶勭悊
+			 */
+			center(type) {
+				this.popupstyle = 'center'
+				//寰俊灏忕▼搴忎笅锛岀粍鍚堝姩鐢讳細鍑虹幇鏂囧瓧鍚戜笂闂姩闂锛屽啀姝ゅ仛鐗规畩澶勭悊
+				// #ifdef MP-WEIXIN
+					this.ani = ['fade']
+				// #endif
+				// #ifndef MP-WEIXIN
+					this.ani = ['zoom-out', 'fade']
+				// #endif
+				this.transClass = {
+					position: 'fixed',
+					/* #ifndef APP-NVUE */
+					display: 'flex',
+					flexDirection: 'column',
+					/* #endif */
+					bottom: 0,
+					left: 0,
+					right: 0,
+					top: 0,
+					justifyContent: 'center',
+					alignItems: 'center',
+					borderRadius:this.borderRadius || "0"
+				}
+				// TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純
+				if (type) return
+				this.showPoptrans()
+			},
+			left(type) {
+				this.popupstyle = 'left'
+				this.ani = ['slide-left']
+				this.transClass = {
+					position: 'fixed',
+					left: 0,
+					bottom: 0,
+					top: 0,
+					backgroundColor: this.bg,
+					borderRadius:this.borderRadius || "0",
+					/* #ifndef APP-NVUE */
+					display: 'flex',
+					flexDirection: 'column'
+					/* #endif */
+				}
+				// TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純
+				if (type) return
+				this.showPoptrans()
+			},
+			right(type) {
+				this.popupstyle = 'right'
+				this.ani = ['slide-right']
+				this.transClass = {
+					position: 'fixed',
+					bottom: 0,
+					right: 0,
+					top: 0,
+					backgroundColor: this.bg,
+					borderRadius:this.borderRadius || "0",
+					/* #ifndef APP-NVUE */
+					display: 'flex',
+					flexDirection: 'column'
+					/* #endif */
+				}
+				// TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純
+				if (type) return
+				this.showPoptrans()
+			},
+			showPoptrans(){
+				this.$nextTick(()=>{
+					this.showPopup = true
+					this.showTrans = true
+				})
+			}
+		}
+	}
+</script>
+<style lang="scss">
+	.uni-popup {
+		position: fixed;
+		/* #ifndef APP-NVUE */
+		z-index: 99;
+
+		/* #endif */
+		&.top,
+		&.left,
+		&.right {
+			/* #ifdef H5 */
+			top: var(--window-top);
+			/* #endif */
+			/* #ifndef H5 */
+			top: 0;
+			/* #endif */
+		}
+
+		.uni-popup__wrapper {
+			/* #ifndef APP-NVUE */
+			display: block;
+			/* #endif */
+			position: relative;
+
+			/* iphonex 绛夊畨鍏ㄥ尯璁剧疆锛屽簳閮ㄥ畨鍏ㄥ尯閫傞厤 */
+			/* #ifndef APP-NVUE */
+			// padding-bottom: constant(safe-area-inset-bottom);
+			// padding-bottom: env(safe-area-inset-bottom);
+			/* #endif */
+			&.left,
+			&.right {
+				/* #ifdef H5 */
+				padding-top: var(--window-top);
+				/* #endif */
+				/* #ifndef H5 */
+				padding-top: 0;
+				/* #endif */
+				flex: 1;
+			}
+		}
+	}
+
+	.fixforpc-z-index {
+		/* #ifndef APP-NVUE */
+		z-index: 999;
+		/* #endif */
+	}
+
+	.fixforpc-top {
+		top: 0;
+	}
+</style>
diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json
new file mode 100644
index 0000000..d8bfb9f
--- /dev/null
+++ b/uni_modules/uni-popup/package.json
@@ -0,0 +1,90 @@
+{
+	"id": "uni-popup",
+	"displayName": "uni-popup 寮瑰嚭灞�",
+	"version": "1.9.8",
+	"description": " Popup 缁勪欢锛屾彁渚涘父鐢ㄧ殑寮瑰眰",
+	"keywords": [
+        "uni-ui",
+        "寮瑰嚭灞�",
+        "寮圭獥",
+        "popup",
+        "寮规"
+    ],
+	"repository": "https://github.com/dcloudio/uni-ui",
+	"engines": {
+		"HBuilderX": ""
+	},
+	"directories": {
+		"example": "../../temps/example_temps"
+	},
+    "dcloudext": {
+        "sale": {
+			"regular": {
+				"price": "0.00"
+			},
+			"sourcecode": {
+				"price": "0.00"
+			}
+		},
+		"contact": {
+			"qq": ""
+		},
+		"declaration": {
+			"ads": "鏃�",
+			"data": "鏃�",
+			"permissions": "鏃�"
+		},
+        "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+        "type": "component-vue"
+	},
+	"uni_modules": {
+		"dependencies": [
+			"uni-scss",
+			"uni-transition"
+		],
+		"encrypt": [],
+		"platforms": {
+			"cloud": {
+				"tcb": "y",
+                "aliyun": "y",
+                "alipay": "n"
+			},
+			"client": {
+				"App": {
+                    "app-vue": "y",
+                    "app-nvue": "y",
+                    "app-harmony": "u",
+                    "app-uvue": "u"
+                },
+				"H5-mobile": {
+					"Safari": "y",
+					"Android Browser": "y",
+					"寰俊娴忚鍣�(Android)": "y",
+					"QQ娴忚鍣�(Android)": "y"
+				},
+				"H5-pc": {
+					"Chrome": "y",
+					"IE": "y",
+					"Edge": "y",
+					"Firefox": "y",
+					"Safari": "y"
+				},
+				"灏忕▼搴�": {
+					"寰俊": "y",
+					"闃块噷": "y",
+					"鐧惧害": "y",
+					"瀛楄妭璺冲姩": "y",
+					"QQ": "y"
+				},
+				"蹇簲鐢�": {
+					"鍗庝负": "u",
+					"鑱旂洘": "u"
+                },
+                "Vue": {
+                    "vue2": "y",
+                    "vue3": "y"
+                }
+			}
+		}
+	}
+}
diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md
new file mode 100644
index 0000000..fdad4b3
--- /dev/null
+++ b/uni_modules/uni-popup/readme.md
@@ -0,0 +1,17 @@
+
+
+## Popup 寮瑰嚭灞�
+> **缁勪欢鍚嶏細uni-popup**
+> 浠g爜鍧楋細 `uPopup`
+> 鍏宠仈缁勪欢锛歚uni-transition`
+
+
+寮瑰嚭灞傜粍浠讹紝鍦ㄥ簲鐢ㄤ腑寮瑰嚭涓�涓秷鎭彁绀虹獥鍙c�佹彁绀烘绛�
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 
+
+
+
+
+
diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md
new file mode 100644
index 0000000..b863bb0
--- /dev/null
+++ b/uni_modules/uni-scss/changelog.md
@@ -0,0 +1,8 @@
+## 1.0.3锛�2022-01-21锛�
+- 浼樺寲 缁勪欢绀轰緥
+## 1.0.2锛�2021-11-22锛�
+- 淇 / 绗﹀彿鍦� vue 涓嶅悓鐗堟湰鍏煎闂寮曡捣鐨勬姤閿欓棶棰�
+## 1.0.1锛�2021-11-22锛�
+- 淇 vue3涓璼css璇硶鍏煎闂
+## 1.0.0锛�2021-11-18锛�
+- init
diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss
new file mode 100644
index 0000000..1744a5f
--- /dev/null
+++ b/uni_modules/uni-scss/index.scss
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json
new file mode 100644
index 0000000..7cc0ccb
--- /dev/null
+++ b/uni_modules/uni-scss/package.json
@@ -0,0 +1,82 @@
+{
+  "id": "uni-scss",
+  "displayName": "uni-scss 杈呭姪鏍峰紡",
+  "version": "1.0.3",
+  "description": "uni-sass鏄痷ni-ui鎻愪緵鐨勪竴濂楀叏灞�鏍峰紡 锛岄�氳繃涓�浜涚畝鍗曠殑绫诲悕鍜宻ass鍙橀噺锛屽疄鐜扮畝鍗曠殑椤甸潰甯冨眬鎿嶄綔锛屾瘮濡傞鑹层�佽竟璺濄�佸渾瑙掔瓑銆�",
+  "keywords": [
+    "uni-scss",
+    "uni-ui",
+    "杈呭姪鏍峰紡"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "category": [
+        "JS SDK",
+        "閫氱敤 SDK"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "u"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "寰俊娴忚鍣�(Android)": "y",
+          "QQ娴忚鍣�(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "y",
+          "闃块噷": "y",
+          "鐧惧害": "y",
+          "瀛楄妭璺冲姩": "y",
+          "QQ": "y"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "n",
+          "鑱旂洘": "n"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}
diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md
new file mode 100644
index 0000000..b7d1c25
--- /dev/null
+++ b/uni_modules/uni-scss/readme.md
@@ -0,0 +1,4 @@
+`uni-sass` 鏄� `uni-ui`鎻愪緵鐨勪竴濂楀叏灞�鏍峰紡 锛岄�氳繃涓�浜涚畝鍗曠殑绫诲悕鍜宍sass`鍙橀噺锛屽疄鐜扮畝鍗曠殑椤甸潰甯冨眬鎿嶄綔锛屾瘮濡傞鑹层�佽竟璺濄�佸渾瑙掔瓑銆�
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 
\ No newline at end of file
diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss
new file mode 100644
index 0000000..ffac4fe
--- /dev/null
+++ b/uni_modules/uni-scss/styles/index.scss
@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';
diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss
new file mode 100644
index 0000000..12a11c3
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_border.scss
@@ -0,0 +1,3 @@
+.uni-border {
+	border: 1px $uni-border-1 solid;
+}
\ No newline at end of file
diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss
new file mode 100644
index 0000000..1ededd9
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_color.scss
@@ -0,0 +1,66 @@
+
+// TODO 鏆傛椂涓嶉渶瑕� class 锛岄渶瑕佺敤鎴蜂娇鐢ㄥ彉閲忓疄鐜� 锛屽鏋滀娇鐢ㄧ被鍚嶅叾瀹炲苟涓嶆帹鑽�
+// @mixin get-styles($k,$c) {
+// 	@if $k == size or $k == weight{
+// 		font-#{$k}:#{$c}
+// 	}@else{
+// 		#{$k}:#{$c}
+// 	}
+// }
+$uni-ui-color:(
+	// 涓昏壊
+	primary: $uni-primary,
+	primary-disable: $uni-primary-disable,
+	primary-light: $uni-primary-light,
+	// 杈呭姪鑹�
+	success: $uni-success,
+	success-disable: $uni-success-disable,
+	success-light: $uni-success-light,
+	warning: $uni-warning,
+	warning-disable: $uni-warning-disable,
+	warning-light: $uni-warning-light,
+	error: $uni-error,
+	error-disable: $uni-error-disable,
+	error-light: $uni-error-light,
+	info: $uni-info,
+	info-disable: $uni-info-disable,
+	info-light: $uni-info-light,
+	// 涓�ц壊
+	main-color: $uni-main-color,
+	base-color: $uni-base-color,
+	secondary-color: $uni-secondary-color,
+	extra-color: $uni-extra-color,
+	// 鑳屾櫙鑹�
+	bg-color: $uni-bg-color,
+	// 杈规棰滆壊
+	border-1: $uni-border-1,
+	border-2: $uni-border-2,
+	border-3: $uni-border-3,
+	border-4: $uni-border-4,
+	// 榛戣壊
+	black:$uni-black,
+	// 鐧借壊
+	white:$uni-white,
+	// 閫忔槑
+	transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+	.uni-#{"" + $key} {
+		color: $child;
+	}
+	.uni-#{"" + $key}-bg {
+		background-color: $child;
+	}
+}
+.uni-shadow-sm {
+	box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+	box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+	box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+	background-color:$uni-mask;
+}
diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss
new file mode 100644
index 0000000..9a0428b
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_radius.scss
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+  $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+  // Key exists within the $uni-radius variable
+  @if (map-has-key($uni-radius, $r) and  $d){
+		@if $d == t {
+				border-top-left-radius:$radius-value;
+				border-top-right-radius:$radius-value;
+		}@else if $d == r {
+				border-top-right-radius:$radius-value;
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == b {
+				border-bottom-left-radius:$radius-value;
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == l {
+				border-top-left-radius:$radius-value;
+				border-bottom-left-radius:$radius-value;
+		}@else if $d == tl {
+				border-top-left-radius:$radius-value;
+		}@else if $d == tr {
+				border-top-right-radius:$radius-value;
+		}@else if $d == br {
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == bl {
+				border-bottom-left-radius:$radius-value;
+		}
+  }@else{
+		border-radius:$radius-value;
+  }
+}
+
+@each $key, $child in $uni-radius {
+	@if($key){
+		.uni-radius-#{"" + $key} {
+				@include radius($key)
+		}
+	}@else{
+		.uni-radius {
+				@include radius($key)
+		}
+	}
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+	@each $key, $child in $uni-radius {
+		@if($key){
+			.uni-radius-#{"" + $direction}-#{"" + $key} {
+				@include radius($key,$direction,false)
+			}
+		}@else{
+			.uni-radius-#{$direction} {
+				@include radius($key,$direction,false)
+			}
+		}
+	}
+}
diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss
new file mode 100644
index 0000000..3c89528
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_space.scss
@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+	@if $n {
+		#{$space}-#{$direction}: #{$size*$uni-space-root}px
+	} @else {
+		 #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+	}
+}
+@mixin get-styles($direction,$i,$space,$n){
+	@if $direction == t {
+		@include fn($space, top,$i,$n);
+	} 
+	@if $direction == r {
+		@include fn($space, right,$i,$n);
+	} 
+	@if $direction == b {
+		@include fn($space, bottom,$i,$n);
+	} 
+	@if $direction == l {
+	 @include fn($space, left,$i,$n);
+	} 
+	@if $direction == x {
+		@include fn($space, left,$i,$n);
+		@include fn($space, right,$i,$n);
+	} 
+	@if $direction == y {
+		@include fn($space, top,$i,$n);
+		@include fn($space, bottom,$i,$n);
+	} 
+	@if $direction == a {
+		@if $n {
+			#{$space}:#{$i*$uni-space-root}px;
+		} @else {
+			#{$space}:#{-$i*$uni-space-root}px;
+		}
+	} 
+}
+
+@each $orientation in m,p {
+	$space: margin;
+	@if $orientation == m {
+		$space: margin;
+	} @else {
+		$space: padding;
+	}
+	@for $i from 0 through 16 {
+		@each $direction in t, r, b, l, x, y, a {
+			.uni-#{$orientation}#{$direction}-#{$i} { 
+				@include  get-styles($direction,$i,$space,true);
+			} 
+			.uni-#{$orientation}#{$direction}-n#{$i} { 
+				@include  get-styles($direction,$i,$space,false);
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss
new file mode 100644
index 0000000..689afec
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_styles.scss
@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+	color: #fff;
+	background-color: $color;
+	border-color: mix($-color-black, $color, 8%);
+	&:not([hover-class]):active {
+		background: mix($-color-black, $color, 10%);
+		border-color: mix($-color-black, $color, 20%);
+		color: $-color-white;
+		outline: none;
+	}
+}
+@mixin is-color($color) {
+	@include base-style($color);
+	&[loading] {
+		@include base-style($color);
+		&::before {
+			margin-right:5px;
+		}
+	}
+	&[disabled] {
+	  &,
+		&[loading],
+	  &:not([hover-class]):active {
+	    color: $-color-white;
+			border-color: mix(darken($color,10%), $-color-white);
+	    background-color: mix($color, $-color-white);
+	  }
+	}
+
+}
+@mixin base-plain-style($color) {
+	color:$color;
+	background-color: mix($-color-white, $color, 90%);
+	border-color: mix($-color-white, $color, 70%);
+	&:not([hover-class]):active {
+	  background: mix($-color-white, $color, 80%);
+	  color: $color;
+	  outline: none;
+		border-color: mix($-color-white, $color, 50%);
+	}
+}
+@mixin is-plain($color){
+	&[plain] {
+		@include base-plain-style($color);
+		&[loading] {
+			@include base-plain-style($color);
+			&::before {
+				margin-right:5px;
+			}
+		}
+		&[disabled] {
+		  &,
+		  &:active {
+		    color: mix($-color-white, $color, 40%);
+		    background-color: mix($-color-white, $color, 90%);
+				border-color: mix($-color-white, $color, 80%);
+		  }
+		}
+	}
+}
+
+
+.uni-btn {
+	margin: 5px;
+	color: #393939;
+	border:1px solid #ccc;
+	font-size: 16px;
+	font-weight: 200;
+	background-color: #F9F9F9;
+	// TODO 鏆傛椂澶勭悊杈规闅愯棌涓�杈圭殑闂
+	overflow: visible;
+	&::after{
+		border: none;
+	}
+
+	&:not([type]),&[type=default] {
+		color: #999;
+		&[loading] {
+			background: none;
+			&::before {
+				margin-right:5px;
+			}
+		}
+
+
+
+		&[disabled]{
+			color: mix($-color-white, #999, 60%);
+		  &,
+			&[loading],
+		  &:active {
+				color: mix($-color-white, #999, 60%);
+		    background-color: mix($-color-white,$-color-black , 98%);
+				border-color: mix($-color-white,  #999, 85%);
+		  }
+		}
+
+		&[plain] {
+			color: #999;
+			background: none;
+			border-color: $uni-border-1;
+			&:not([hover-class]):active {
+				background: none;
+			  color: mix($-color-white, $-color-black, 80%);
+				border-color: mix($-color-white, $-color-black, 90%);
+			  outline: none;
+			}
+			&[disabled]{
+			  &,
+				&[loading],
+			  &:active {
+			    background: none;
+					color: mix($-color-white, #999, 60%);
+					border-color: mix($-color-white,  #999, 85%);
+			  }
+			}
+		}
+	}
+
+	&:not([hover-class]):active {
+	  color: mix($-color-white, $-color-black, 50%);
+	}
+
+	&[size=mini] {
+		font-size: 16px;
+		font-weight: 200;
+		border-radius: 8px;
+	}
+
+
+
+	&.uni-btn-small {
+		font-size: 14px;
+	}
+	&.uni-btn-mini {
+		font-size: 12px;
+	}
+
+	&.uni-btn-radius {
+		border-radius: 999px;
+	}
+	&[type=primary] {
+		@include is-color($uni-primary);
+		@include is-plain($uni-primary)
+	}
+	&[type=success] {
+		@include is-color($uni-success);
+		@include is-plain($uni-success)
+	}
+	&[type=error] {
+		@include is-color($uni-error);
+		@include is-plain($uni-error)
+	}
+	&[type=warning] {
+		@include is-color($uni-warning);
+		@include is-plain($uni-warning)
+	}
+	&[type=info] {
+		@include is-color($uni-info);
+		@include is-plain($uni-info)
+	}
+}
+/* #endif */
diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss
new file mode 100644
index 0000000..a34d08f
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_text.scss
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+	@if $k == size or $k == weight{
+		font-#{$k}:#{$c}
+	}@else{
+		#{$k}:#{$c}
+	}
+}
+
+@each $key, $child in $uni-headings {
+	/* #ifndef APP-NVUE */
+	.uni-#{$key} {
+		@each $k, $c in $child {
+			@include get-styles($k,$c)
+		}
+	}
+	/* #endif */
+	/* #ifdef APP-NVUE */
+	.container .uni-#{$key} {
+		@each $k, $c in $child {
+			@include get-styles($k,$c)
+		}
+	}
+	/* #endif */
+}
diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss
new file mode 100644
index 0000000..557d3d7
--- /dev/null
+++ b/uni_modules/uni-scss/styles/setting/_variables.scss
@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import  '../tools/functions.scss';
+// 闂磋窛鍩虹鍊嶆暟
+$uni-space-root: 2 !default;
+// 杈规鍗婂緞榛樿鍊�
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 杈规鍗婂緞鏂偣
+$uni-radius: map-deep-merge(
+  (
+    0: 0,
+		// TODO 褰撳墠鐗堟湰鏆傛椂涓嶆敮鎸� sm 灞炴��
+    // 'sm': math.div($uni-radius-root, 2),
+    null: $uni-radius-root,
+    'lg': $uni-radius-root * 2,
+    'xl': $uni-radius-root * 6,
+    'pill': 9999px,
+    'circle': 50%
+  ),
+  $uni-radius
+);
+// 瀛椾綋瀹舵棌
+$body-font-family: 'Roboto', sans-serif !default;
+// 鏂囨湰
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+  (
+    'h1': (
+      size: 32px,
+			weight: 300,
+			line-height: 50px,
+			// letter-spacing:-0.01562em
+    ),
+    'h2': (
+      size: 28px,
+      weight: 300,
+      line-height: 40px,
+      // letter-spacing: -0.00833em
+    ),
+    'h3': (
+      size: 24px,
+      weight: 400,
+      line-height: 32px,
+      // letter-spacing: normal
+    ),
+    'h4': (
+      size: 20px,
+      weight: 400,
+      line-height: 30px,
+      // letter-spacing: 0.00735em
+    ),
+    'h5': (
+      size: 16px,
+      weight: 400,
+      line-height: 24px,
+      // letter-spacing: normal
+    ),
+    'h6': (
+      size: 14px,
+      weight: 500,
+      line-height: 18px,
+      // letter-spacing: 0.0125em
+    ),
+    'subtitle': (
+      size: 12px,
+      weight: 400,
+      line-height: 20px,
+      // letter-spacing: 0.00937em
+    ),
+    'body': (
+      font-size: 14px,
+			font-weight: 400,
+			line-height: 22px,
+			// letter-spacing: 0.03125em
+    ),
+    'caption': (
+      'size': 12px,
+      'weight': 400,
+      'line-height': 20px,
+      // 'letter-spacing': 0.03333em,
+      // 'text-transform': false
+    )
+  ),
+  $uni-headings
+);
+
+
+
+// 涓昏壊
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 杈呭姪鑹�
+// 闄や簡涓昏壊澶栫殑鍦烘櫙鑹诧紝闇�瑕佸湪涓嶅悓鐨勫満鏅腑浣跨敤锛堜緥濡傚嵄闄╄壊琛ㄧず鍗遍櫓鐨勬搷浣滐級銆�
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 涓�ц壊
+// 涓�ц壊鐢ㄤ簬鏂囨湰銆佽儗鏅拰杈规棰滆壊銆傞�氳繃杩愮敤涓嶅悓鐨勪腑鎬ц壊锛屾潵琛ㄧ幇灞傛缁撴瀯銆�
+$uni-main-color: #3a3a3a !default; 			// 涓昏鏂囧瓧
+$uni-base-color: #6a6a6a !default;			// 甯歌鏂囧瓧
+$uni-secondary-color: #909399 !default;	// 娆¤鏂囧瓧
+$uni-extra-color: #c7c7c7 !default;			// 杈呭姪璇存槑
+
+// 杈规棰滆壊
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 甯歌鑹�
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 鑳屾櫙鑹�
+$uni-bg-color: #f7f7f7 !default;
+
+/* 姘村钩闂磋窛 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 闃村奖
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 钂欑増
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss
new file mode 100644
index 0000000..ac6f63e
--- /dev/null
+++ b/uni_modules/uni-scss/styles/tools/functions.scss
@@ -0,0 +1,19 @@
+// 鍚堝苟 map
+@function map-deep-merge($parent-map, $child-map){
+	$result: $parent-map;
+	@each $key, $child in $child-map {
+		$parent-has-key: map-has-key($result, $key);
+		$parent-value: map-get($result, $key);
+		$parent-type: type-of($parent-value);
+		$child-type: type-of($child);
+		$parent-is-map: $parent-type == map;
+		$child-is-map: $child-type == map;
+			
+		@if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+			$result: map-merge($result, ( $key: $child ));
+		}@else {
+			$result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+		}
+	}
+	@return $result;
+};
diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss
new file mode 100644
index 0000000..80ee62f
--- /dev/null
+++ b/uni_modules/uni-scss/theme.scss
@@ -0,0 +1,31 @@
+// 闂磋窛鍩虹鍊嶆暟
+$uni-space-root: 2;
+// 杈规鍗婂緞榛樿鍊�
+$uni-radius-root:5px;
+// 涓昏壊
+$uni-primary: #2979ff;
+// 杈呭姪鑹�
+$uni-success: #4cd964;
+// 璀﹀憡鑹�
+$uni-warning: #f0ad4e;
+// 閿欒鑹�
+$uni-error: #dd524d;
+// 鎻忚堪鑹�
+$uni-info: #909399;
+// 涓�ц壊
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 鑳屾櫙鑹�
+$uni-bg-color: #f5f5f5;
+// 杈规棰滆壊
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 甯歌鑹�
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss
new file mode 100644
index 0000000..1c062d4
--- /dev/null
+++ b/uni_modules/uni-scss/variables.scss
@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 闂磋窛鍩虹鍊嶆暟
+$uni-space-root: 2;
+// 杈规鍗婂緞榛樿鍊�
+$uni-radius-root:5px;
+
+// 涓昏壊
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 杈呭姪鑹�
+// 闄や簡涓昏壊澶栫殑鍦烘櫙鑹诧紝闇�瑕佸湪涓嶅悓鐨勫満鏅腑浣跨敤锛堜緥濡傚嵄闄╄壊琛ㄧず鍗遍櫓鐨勬搷浣滐級銆�
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 涓�ц壊
+// 涓�ц壊鐢ㄤ簬鏂囨湰銆佽儗鏅拰杈规棰滆壊銆傞�氳繃杩愮敤涓嶅悓鐨勪腑鎬ц壊锛屾潵琛ㄧ幇灞傛缁撴瀯銆�
+$uni-main-color: #3a3a3a; 			// 涓昏鏂囧瓧
+$uni-base-color: #6a6a6a;			// 甯歌鏂囧瓧
+$uni-secondary-color: #909399;	// 娆¤鏂囧瓧
+$uni-extra-color: #c7c7c7;			// 杈呭姪璇存槑
+
+// 杈规棰滆壊
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 甯歌鑹�
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 鑳屾櫙鑹�
+$uni-bg-color: #f7f7f7;
+
+/* 姘村钩闂磋窛 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 闃村奖
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 钂欑増
+$uni-mask: rgba($color: #000000, $alpha: 0.4);
diff --git a/uni_modules/uni-transition/changelog.md b/uni_modules/uni-transition/changelog.md
new file mode 100644
index 0000000..2f2b10d
--- /dev/null
+++ b/uni_modules/uni-transition/changelog.md
@@ -0,0 +1,27 @@
+## 1.3.4锛�2025-04-16锛�
+- 淇 椤甸潰鏁版嵁鏇存柊鍒板簳鍔ㄧ敾澶嶅師鐨勯棶棰�
+- 淇 绀轰緥椤甸潰鎵撳紑鎶ラ敊鐨勯棶棰�
+## 1.3.3锛�2024-04-23锛�
+- 淇 褰撳厓绱犱細鍙楀彉閲忓奖鍝嶈嚜鍔ㄩ殣钘忕殑bug
+## 1.3.2锛�2023-05-04锛�
+- 淇 NVUE 骞冲彴鎶ラ敊鐨勯棶棰�
+## 1.3.1锛�2021-11-23锛�
+- 淇 init 鏂规硶鍒濆鍖栭棶棰�
+## 1.3.0锛�2021-11-19锛�
+- 浼樺寲 缁勪欢UI锛屽苟鎻愪緵璁捐璧勬簮锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 鏂囨。杩佺Щ锛岃瑙�:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
+## 1.2.1锛�2021-09-27锛�
+- 淇 init 鏂规硶涓嶇敓鏁堢殑 Bug
+## 1.2.0锛�2021-07-30锛�
+- 缁勪欢鍏煎 vue3锛屽浣曞垱寤� vue3 椤圭洰锛岃瑙� [uni-app 椤圭洰鏀寔 vue3 浠嬬粛](https://ask.dcloud.net.cn/article/37834)
+## 1.1.1锛�2021-05-12锛�
+- 鏂板 绀轰緥鍦板潃
+- 淇 绀轰緥椤圭洰缂哄皯缁勪欢鐨� Bug
+## 1.1.0锛�2021-04-22锛�
+- 鏂板 閫氳繃鏂规硶鑷畾涔夊姩鐢�
+- 鏂板 custom-class 闈� NVUE 骞冲彴鏀寔鑷畾涔� class 瀹氬埗鏍峰紡
+- 浼樺寲 鍔ㄧ敾瑙﹀彂閫昏緫锛屼娇鍔ㄧ敾鏇存祦鐣�
+- 浼樺寲 鏀寔鍗曠嫭鐨勫姩鐢荤被鍨�
+- 浼樺寲 鏂囨。绀轰緥
+## 1.0.2锛�2021-02-05锛�
+- 璋冩暣涓� uni_modules 鐩綍瑙勮寖
diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
new file mode 100644
index 0000000..8f89b18
--- /dev/null
+++ b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
@@ -0,0 +1,131 @@
+// const defaultOption = {
+// 	duration: 300,
+// 	timingFunction: 'linear',
+// 	delay: 0,
+// 	transformOrigin: '50% 50% 0'
+// }
+// #ifdef APP-NVUE
+const nvueAnimation = uni.requireNativePlugin('animation')
+// #endif
+class MPAnimation {
+	constructor(options, _this) {
+		this.options = options
+		// 鍦╥OS10+QQ灏忕▼搴忓钩鍙颁笅锛屼紶缁欏師鐢熺殑瀵硅薄涓�瀹氭槸涓櫘閫氬璞¤�屼笉鏄疨roxy瀵硅薄锛屽惁鍒欎細鎶arameter should be Object instead of ProxyObject鐨勯敊璇�
+		this.animation = uni.createAnimation({
+			...options
+		})
+		this.currentStepAnimates = {}
+		this.next = 0
+		this.$ = _this
+
+	}
+
+	_nvuePushAnimates(type, args) {
+		let aniObj = this.currentStepAnimates[this.next]
+		let styles = {}
+		if (!aniObj) {
+			styles = {
+				styles: {},
+				config: {}
+			}
+		} else {
+			styles = aniObj
+		}
+		if (animateTypes1.includes(type)) {
+			if (!styles.styles.transform) {
+				styles.styles.transform = ''
+			}
+			let unit = ''
+			if(type === 'rotate'){
+				unit = 'deg'
+			}
+			styles.styles.transform += `${type}(${args+unit}) `
+		} else {
+			styles.styles[type] = `${args}`
+		}
+		this.currentStepAnimates[this.next] = styles
+	}
+	_animateRun(styles = {}, config = {}) {
+		let ref = this.$.$refs['ani'].ref
+		if (!ref) return
+		return new Promise((resolve, reject) => {
+			nvueAnimation.transition(ref, {
+				styles,
+				...config
+			}, res => {
+				resolve()
+			})
+		})
+	}
+
+	_nvueNextAnimate(animates, step = 0, fn) {
+		let obj = animates[step]
+		if (obj) {
+			let {
+				styles,
+				config
+			} = obj
+			this._animateRun(styles, config).then(() => {
+				step += 1
+				this._nvueNextAnimate(animates, step, fn)
+			})
+		} else {
+			this.currentStepAnimates = {}
+			typeof fn === 'function' && fn()
+			this.isEnd = true
+		}
+	}
+
+	step(config = {}) {
+		// #ifndef APP-NVUE
+		this.animation.step(config)
+		// #endif
+		// #ifdef APP-NVUE
+		this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
+		this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
+		this.next++
+		// #endif
+		return this
+	}
+
+	run(fn) {
+		// #ifndef APP-NVUE
+		this.$.animationData = this.animation.export()
+		this.$.timer = setTimeout(() => {
+			typeof fn === 'function' && fn()
+		}, this.$.durationTime)
+		// #endif
+		// #ifdef APP-NVUE
+		this.isEnd = false
+		let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
+		if(!ref) return
+		this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
+		this.next = 0
+		// #endif
+	}
+}
+
+
+const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
+	'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
+	'translateZ'
+]
+const animateTypes2 = ['opacity', 'backgroundColor']
+const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
+	MPAnimation.prototype[type] = function(...args) {
+		// #ifndef APP-NVUE
+		this.animation[type](...args)
+		// #endif
+		// #ifdef APP-NVUE
+		this._nvuePushAnimates(type, args)
+		// #endif
+		return this
+	}
+})
+
+export function createAnimation(option, _this) {
+	if(!_this) return
+	clearTimeout(_this.timer)
+	return new MPAnimation(option, _this)
+}
diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
new file mode 100644
index 0000000..8772572
--- /dev/null
+++ b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
@@ -0,0 +1,289 @@
+<template>
+  <!-- #ifndef APP-NVUE -->
+  <view v-show="isShow" ref="ani" :animation="animationData" :class="customClass" :style="transformStyles" @click="onClick"><slot></slot></view>
+  <!-- #endif -->
+  <!-- #ifdef APP-NVUE -->
+  <view v-if="isShow" ref="ani" :animation="animationData" :class="customClass" :style="transformStyles" @click="onClick"><slot></slot></view>
+  <!-- #endif -->
+</template>
+
+<script>
+import { createAnimation } from './createAnimation'
+
+/**
+ * Transition 杩囨浮鍔ㄧ敾
+ * @description 绠�鍗曡繃娓″姩鐢荤粍浠�
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=985
+ * @property {Boolean} show = [false|true] 鎺у埗缁勪欢鏄剧ず鎴栭殣钘�
+ * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 杩囨浮鍔ㄧ敾绫诲瀷
+ *  @value fade 娓愰殣娓愬嚭杩囨浮
+ *  @value slide-top 鐢变笂鑷充笅杩囨浮
+ *  @value slide-right 鐢卞彸鑷冲乏杩囨浮
+ *  @value slide-bottom 鐢变笅鑷充笂杩囨浮
+ *  @value slide-left 鐢卞乏鑷冲彸杩囨浮
+ *  @value zoom-in 鐢卞皬鍒板ぇ杩囨浮
+ *  @value zoom-out 鐢卞ぇ鍒板皬杩囨浮
+ * @property {Number} duration 杩囨浮鍔ㄧ敾鎸佺画鏃堕棿
+ * @property {Object} styles 缁勪欢鏍峰紡锛屽悓 css 鏍峰紡锛屾敞鎰忓甫鈥�-鈥樿繛鎺ョ鐨勫睘鎬ч渶瑕佷娇鐢ㄥ皬椹煎嘲鍐欐硶濡傦細`backgroundColor:red`
+ */
+export default {
+	name: 'uniTransition',
+	emits:['click','change'],
+	props: {
+		show: {
+			type: Boolean,
+			default: false
+		},
+		modeClass: {
+			type: [Array, String],
+			default() {
+				return 'fade'
+			}
+		},
+		duration: {
+			type: Number,
+			default: 300
+		},
+		styles: {
+			type: Object,
+			default() {
+				return {}
+			}
+		},
+		customClass:{
+			type: String,
+			default: ''
+		},
+		onceRender:{
+			type:Boolean,
+			default:false
+		},
+	},
+	data() {
+		return {
+			isShow: false,
+			transform: '',
+			opacity: 1,
+			animationData: {},
+			durationTime: 300,
+			config: {}
+		}
+	},
+	watch: {
+		show: {
+			handler(newVal) {
+				if (newVal) {
+					this.open()
+				} else {
+					// 閬垮厤涓婃潵灏辨墽琛� close,瀵艰嚧鍔ㄧ敾閿欎贡
+					if (this.isShow) {
+						this.close()
+					}
+				}
+			},
+			immediate: true
+		}
+	},
+	computed: {
+		// 鐢熸垚鏍峰紡鏁版嵁
+		stylesObject() {
+			let styles = {
+				...this.styles,
+				'transition-duration': this.duration / 1000 + 's'
+			}
+			let transform = ''
+			for (let i in styles) {
+				let line = this.toLine(i)
+				transform += line + ':' + styles[i] + ';'
+			}
+			return transform
+		},
+		// 鍒濆鍖栧姩鐢绘潯浠�
+		transformStyles() {
+			return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject
+		}
+	},
+	created() {
+		// 鍔ㄧ敾榛樿閰嶇疆
+		this.config = {
+			duration: this.duration,
+			timingFunction: 'ease',
+			transformOrigin: '50% 50%',
+			delay: 0
+		}
+		this.durationTime = this.duration
+	},
+	methods: {
+		/**
+		 *  ref 瑙﹀彂 鍒濆鍖栧姩鐢�
+		 */
+		init(obj = {}) {
+			if (obj.duration) {
+				this.durationTime = obj.duration
+			}
+			this.animation = createAnimation(Object.assign(this.config, obj),this)
+		},
+		/**
+		 * 鐐瑰嚮缁勪欢瑙﹀彂鍥炶皟
+		 */
+		onClick() {
+			this.$emit('click', {
+				detail: this.isShow
+			})
+		},
+		/**
+		 * ref 瑙﹀彂 鍔ㄧ敾鍒嗙粍
+		 * @param {Object} obj
+		 */
+		step(obj, config = {}) {
+			if (!this.animation) return
+			for (let i in obj) {
+				try {
+					if(typeof obj[i] === 'object'){
+						this.animation[i](...obj[i])
+					}else{
+						this.animation[i](obj[i])
+					}
+				} catch (e) {
+					console.error(`鏂规硶 ${i} 涓嶅瓨鍦╜)
+				}
+			}
+			this.animation.step(config)
+			return this
+		},
+		/**
+		 *  ref 瑙﹀彂 鎵ц鍔ㄧ敾
+		 */
+		run(fn) {
+			if (!this.animation) return
+			this.animation.run(fn)
+		},
+		// 寮�濮嬭繃搴﹀姩鐢�
+		open() {
+			clearTimeout(this.timer)
+			this.transform = ''
+			this.isShow = true
+			let { opacity, transform } = this.styleInit(false)
+			if (typeof opacity !== 'undefined') {
+				this.opacity = opacity
+			}
+			this.transform = transform
+			// 纭繚鍔ㄦ�佹牱寮忓凡缁忕敓鏁堝悗锛屾墽琛屽姩鐢伙紝濡傛灉涓嶅姞 nextTick 锛屼細瀵艰嚧 wx 鍔ㄧ敾鎵ц寮傚父
+			this.$nextTick(() => {
+				// TODO 瀹氭椂鍣ㄤ繚璇佸姩鐢诲畬鍏ㄦ墽琛岋紝鐩墠鏈変簺闂锛屽悗闈細鍙栨秷瀹氭椂鍣�
+				this.timer = setTimeout(() => {
+					this.animation = createAnimation(this.config, this)
+					this.tranfromInit(false).step()
+					this.animation.run(() => {
+						this.transform = ''
+						this.opacity = opacity || 1
+					})
+					this.$emit('change', {
+						detail: this.isShow
+					})
+				}, 20)
+			})
+		},
+		// 鍏抽棴杩囧害鍔ㄧ敾
+		close(type) {
+			if (!this.animation) return
+			this.tranfromInit(true)
+				.step()
+				.run(() => {
+					this.isShow = false
+					this.animationData = null
+					this.animation = null
+					let { opacity, transform } = this.styleInit(false)
+					this.opacity = opacity || 1
+					this.transform = transform
+					this.$emit('change', {
+						detail: this.isShow
+					})
+				})
+		},
+		// 澶勭悊鍔ㄧ敾寮�濮嬪墠鐨勯粯璁ゆ牱寮�
+		styleInit(type) {
+			let styles = {
+				transform: ''
+			}
+			let buildStyle = (type, mode) => {
+				if (mode === 'fade') {
+					styles.opacity = this.animationType(type)[mode]
+				} else {
+					styles.transform += this.animationType(type)[mode] + ' '
+				}
+			}
+			if (typeof this.modeClass === 'string') {
+				buildStyle(type, this.modeClass)
+			} else {
+				this.modeClass.forEach(mode => {
+					buildStyle(type, mode)
+				})
+			}
+			return styles
+		},
+		// 澶勭悊鍐呯疆缁勫悎鍔ㄧ敾
+		tranfromInit(type) {
+			let buildTranfrom = (type, mode) => {
+				let aniNum = null
+				if (mode === 'fade') {
+					aniNum = type ? 0 : 1
+				} else {
+					aniNum = type ? '-100%' : '0'
+					if (mode === 'zoom-in') {
+						aniNum = type ? 0.8 : 1
+					}
+					if (mode === 'zoom-out') {
+						aniNum = type ? 1.2 : 1
+					}
+					if (mode === 'slide-right') {
+						aniNum = type ? '100%' : '0'
+					}
+					if (mode === 'slide-bottom') {
+						aniNum = type ? '100%' : '0'
+					}
+				}
+				this.animation[this.animationMode()[mode]](aniNum)
+			}
+			if (typeof this.modeClass === 'string') {
+				buildTranfrom(type, this.modeClass)
+			} else {
+				this.modeClass.forEach(mode => {
+					buildTranfrom(type, mode)
+				})
+			}
+
+			return this.animation
+		},
+		animationType(type) {
+			return {
+				fade: type ? 0 : 1,
+				'slide-top': `translateY(${type ? '0' : '-100%'})`,
+				'slide-right': `translateX(${type ? '0' : '100%'})`,
+				'slide-bottom': `translateY(${type ? '0' : '100%'})`,
+				'slide-left': `translateX(${type ? '0' : '-100%'})`,
+				'zoom-in': `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`,
+				'zoom-out': `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})`
+			}
+		},
+		// 鍐呯疆鍔ㄧ敾绫诲瀷涓庡疄闄呭姩鐢诲搴斿瓧鍏�
+		animationMode() {
+			return {
+				fade: 'opacity',
+				'slide-top': 'translateY',
+				'slide-right': 'translateX',
+				'slide-bottom': 'translateY',
+				'slide-left': 'translateX',
+				'zoom-in': 'scale',
+				'zoom-out': 'scale'
+			}
+		},
+		// 椹煎嘲杞腑妯嚎
+		toLine(name) {
+			return name.replace(/([A-Z])/g, '-$1').toLowerCase()
+		}
+	}
+}
+</script>
+
+<style></style>
diff --git a/uni_modules/uni-transition/package.json b/uni_modules/uni-transition/package.json
new file mode 100644
index 0000000..b76a3ab
--- /dev/null
+++ b/uni_modules/uni-transition/package.json
@@ -0,0 +1,87 @@
+{
+  "id": "uni-transition",
+  "displayName": "uni-transition 杩囨浮鍔ㄧ敾",
+  "version": "1.3.4",
+  "description": "鍏冪礌鐨勭畝鍗曡繃娓″姩鐢�",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "鍔ㄧ敾",
+    "杩囨浮",
+    "杩囨浮鍔ㄧ敾"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+"dcloudext": {
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+    "type": "component-vue"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y",
+        "alipay": "n"
+      },
+      "client": {
+        "App": {
+            "app-vue": "y",
+            "app-nvue": "y",
+            "app-harmony": "u",
+            "app-uvue": "n"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "寰俊娴忚鍣�(Android)": "y",
+          "QQ娴忚鍣�(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "y",
+          "闃块噷": "y",
+          "鐧惧害": "y",
+          "瀛楄妭璺冲姩": "y",
+          "QQ": "y"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "u",
+          "鑱旂洘": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-transition/readme.md b/uni_modules/uni-transition/readme.md
new file mode 100644
index 0000000..2f8a77e
--- /dev/null
+++ b/uni_modules/uni-transition/readme.md
@@ -0,0 +1,11 @@
+
+
+## Transition 杩囨浮鍔ㄧ敾
+> **缁勪欢鍚嶏細uni-transition**
+> 浠g爜鍧楋細 `uTransition`
+
+
+鍏冪礌杩囨浮鍔ㄧ敾
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-transition)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 
\ No newline at end of file
diff --git a/uview-components/pages/empty-page/empty-page.vue b/uview-components/pages/empty-page/empty-page.vue
new file mode 100644
index 0000000..8183fd0
--- /dev/null
+++ b/uview-components/pages/empty-page/empty-page.vue
@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>
diff --git a/uview-ui/LICENSE b/uview-components/uview-ui/LICENSE
similarity index 100%
rename from uview-ui/LICENSE
rename to uview-components/uview-ui/LICENSE
diff --git a/uview-ui/README.md b/uview-components/uview-ui/README.md
similarity index 100%
rename from uview-ui/README.md
rename to uview-components/uview-ui/README.md
diff --git a/uview-ui/changelog.md b/uview-components/uview-ui/changelog.md
similarity index 100%
rename from uview-ui/changelog.md
rename to uview-components/uview-ui/changelog.md
diff --git a/uview-ui/components/u--form/u--form.vue b/uview-components/uview-ui/components/u--form/u--form.vue
similarity index 100%
rename from uview-ui/components/u--form/u--form.vue
rename to uview-components/uview-ui/components/u--form/u--form.vue
diff --git a/uview-ui/components/u--image/u--image.vue b/uview-components/uview-ui/components/u--image/u--image.vue
similarity index 100%
rename from uview-ui/components/u--image/u--image.vue
rename to uview-components/uview-ui/components/u--image/u--image.vue
diff --git a/uview-ui/components/u--input/u--input.vue b/uview-components/uview-ui/components/u--input/u--input.vue
similarity index 100%
rename from uview-ui/components/u--input/u--input.vue
rename to uview-components/uview-ui/components/u--input/u--input.vue
diff --git a/uview-ui/components/u--text/u--text.vue b/uview-components/uview-ui/components/u--text/u--text.vue
similarity index 100%
rename from uview-ui/components/u--text/u--text.vue
rename to uview-components/uview-ui/components/u--text/u--text.vue
diff --git a/uview-ui/components/u--textarea/u--textarea.vue b/uview-components/uview-ui/components/u--textarea/u--textarea.vue
similarity index 100%
rename from uview-ui/components/u--textarea/u--textarea.vue
rename to uview-components/uview-ui/components/u--textarea/u--textarea.vue
diff --git a/uview-ui/components/u-action-sheet/props.js b/uview-components/uview-ui/components/u-action-sheet/props.js
similarity index 100%
rename from uview-ui/components/u-action-sheet/props.js
rename to uview-components/uview-ui/components/u-action-sheet/props.js
diff --git a/uview-ui/components/u-action-sheet/u-action-sheet.vue b/uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue
similarity index 100%
rename from uview-ui/components/u-action-sheet/u-action-sheet.vue
rename to uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue
diff --git a/uview-ui/components/u-album/props.js b/uview-components/uview-ui/components/u-album/props.js
similarity index 100%
rename from uview-ui/components/u-album/props.js
rename to uview-components/uview-ui/components/u-album/props.js
diff --git a/uview-ui/components/u-album/u-album.vue b/uview-components/uview-ui/components/u-album/u-album.vue
similarity index 100%
rename from uview-ui/components/u-album/u-album.vue
rename to uview-components/uview-ui/components/u-album/u-album.vue
diff --git a/uview-ui/components/u-alert-tips/u-alert-tips.vue b/uview-components/uview-ui/components/u-alert-tips/u-alert-tips.vue
similarity index 100%
rename from uview-ui/components/u-alert-tips/u-alert-tips.vue
rename to uview-components/uview-ui/components/u-alert-tips/u-alert-tips.vue
diff --git a/uview-ui/components/u-alert/props.js b/uview-components/uview-ui/components/u-alert/props.js
similarity index 100%
rename from uview-ui/components/u-alert/props.js
rename to uview-components/uview-ui/components/u-alert/props.js
diff --git a/uview-ui/components/u-alert/u-alert.vue b/uview-components/uview-ui/components/u-alert/u-alert.vue
similarity index 100%
rename from uview-ui/components/u-alert/u-alert.vue
rename to uview-components/uview-ui/components/u-alert/u-alert.vue
diff --git a/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue b/uview-components/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue
similarity index 100%
rename from uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue
rename to uview-components/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue
diff --git a/uview-ui/components/u-avatar-cropper/weCropper.js b/uview-components/uview-ui/components/u-avatar-cropper/weCropper.js
similarity index 100%
rename from uview-ui/components/u-avatar-cropper/weCropper.js
rename to uview-components/uview-ui/components/u-avatar-cropper/weCropper.js
diff --git a/uview-ui/components/u-avatar-group/props.js b/uview-components/uview-ui/components/u-avatar-group/props.js
similarity index 100%
rename from uview-ui/components/u-avatar-group/props.js
rename to uview-components/uview-ui/components/u-avatar-group/props.js
diff --git a/uview-ui/components/u-avatar-group/u-avatar-group.vue b/uview-components/uview-ui/components/u-avatar-group/u-avatar-group.vue
similarity index 100%
rename from uview-ui/components/u-avatar-group/u-avatar-group.vue
rename to uview-components/uview-ui/components/u-avatar-group/u-avatar-group.vue
diff --git a/uview-ui/components/u-avatar/props.js b/uview-components/uview-ui/components/u-avatar/props.js
similarity index 100%
rename from uview-ui/components/u-avatar/props.js
rename to uview-components/uview-ui/components/u-avatar/props.js
diff --git a/uview-ui/components/u-avatar/u-avatar.vue b/uview-components/uview-ui/components/u-avatar/u-avatar.vue
similarity index 100%
rename from uview-ui/components/u-avatar/u-avatar.vue
rename to uview-components/uview-ui/components/u-avatar/u-avatar.vue
diff --git a/uview-ui/components/u-back-top/props.js b/uview-components/uview-ui/components/u-back-top/props.js
similarity index 100%
rename from uview-ui/components/u-back-top/props.js
rename to uview-components/uview-ui/components/u-back-top/props.js
diff --git a/uview-ui/components/u-back-top/u-back-top.vue b/uview-components/uview-ui/components/u-back-top/u-back-top.vue
similarity index 100%
rename from uview-ui/components/u-back-top/u-back-top.vue
rename to uview-components/uview-ui/components/u-back-top/u-back-top.vue
diff --git a/uview-ui/components/u-badge/props.js b/uview-components/uview-ui/components/u-badge/props.js
similarity index 100%
rename from uview-ui/components/u-badge/props.js
rename to uview-components/uview-ui/components/u-badge/props.js
diff --git a/uview-ui/components/u-badge/u-badge.vue b/uview-components/uview-ui/components/u-badge/u-badge.vue
similarity index 100%
rename from uview-ui/components/u-badge/u-badge.vue
rename to uview-components/uview-ui/components/u-badge/u-badge.vue
diff --git a/uview-ui/components/u-button/nvue.scss b/uview-components/uview-ui/components/u-button/nvue.scss
similarity index 100%
rename from uview-ui/components/u-button/nvue.scss
rename to uview-components/uview-ui/components/u-button/nvue.scss
diff --git a/uview-ui/components/u-button/props.js b/uview-components/uview-ui/components/u-button/props.js
similarity index 100%
rename from uview-ui/components/u-button/props.js
rename to uview-components/uview-ui/components/u-button/props.js
diff --git a/uview-ui/components/u-button/u-button.vue b/uview-components/uview-ui/components/u-button/u-button.vue
similarity index 100%
rename from uview-ui/components/u-button/u-button.vue
rename to uview-components/uview-ui/components/u-button/u-button.vue
diff --git a/uview-ui/components/u-button/vue.scss b/uview-components/uview-ui/components/u-button/vue.scss
similarity index 100%
rename from uview-ui/components/u-button/vue.scss
rename to uview-components/uview-ui/components/u-button/vue.scss
diff --git a/uview-ui/components/u-calendar/header.vue b/uview-components/uview-ui/components/u-calendar/header.vue
similarity index 100%
rename from uview-ui/components/u-calendar/header.vue
rename to uview-components/uview-ui/components/u-calendar/header.vue
diff --git a/uview-ui/components/u-calendar/month.vue b/uview-components/uview-ui/components/u-calendar/month.vue
similarity index 100%
rename from uview-ui/components/u-calendar/month.vue
rename to uview-components/uview-ui/components/u-calendar/month.vue
diff --git a/uview-ui/components/u-calendar/props.js b/uview-components/uview-ui/components/u-calendar/props.js
similarity index 100%
rename from uview-ui/components/u-calendar/props.js
rename to uview-components/uview-ui/components/u-calendar/props.js
diff --git a/uview-ui/components/u-calendar/u-calendar.vue b/uview-components/uview-ui/components/u-calendar/u-calendar.vue
similarity index 100%
rename from uview-ui/components/u-calendar/u-calendar.vue
rename to uview-components/uview-ui/components/u-calendar/u-calendar.vue
diff --git a/uview-ui/components/u-calendar/util.js b/uview-components/uview-ui/components/u-calendar/util.js
similarity index 100%
rename from uview-ui/components/u-calendar/util.js
rename to uview-components/uview-ui/components/u-calendar/util.js
diff --git a/uview-ui/components/u-car-keyboard/props.js b/uview-components/uview-ui/components/u-car-keyboard/props.js
similarity index 100%
rename from uview-ui/components/u-car-keyboard/props.js
rename to uview-components/uview-ui/components/u-car-keyboard/props.js
diff --git a/uview-ui/components/u-car-keyboard/u-car-keyboard.vue b/uview-components/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
similarity index 100%
rename from uview-ui/components/u-car-keyboard/u-car-keyboard.vue
rename to uview-components/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
diff --git a/uview-ui/components/u-card/u-card.vue b/uview-components/uview-ui/components/u-card/u-card.vue
similarity index 100%
rename from uview-ui/components/u-card/u-card.vue
rename to uview-components/uview-ui/components/u-card/u-card.vue
diff --git a/uview-ui/components/u-cell-group/props.js b/uview-components/uview-ui/components/u-cell-group/props.js
similarity index 100%
rename from uview-ui/components/u-cell-group/props.js
rename to uview-components/uview-ui/components/u-cell-group/props.js
diff --git a/uview-ui/components/u-cell-group/u-cell-group.vue b/uview-components/uview-ui/components/u-cell-group/u-cell-group.vue
similarity index 100%
rename from uview-ui/components/u-cell-group/u-cell-group.vue
rename to uview-components/uview-ui/components/u-cell-group/u-cell-group.vue
diff --git a/uview-ui/components/u-cell-item/u-cell-item.vue b/uview-components/uview-ui/components/u-cell-item/u-cell-item.vue
similarity index 100%
rename from uview-ui/components/u-cell-item/u-cell-item.vue
rename to uview-components/uview-ui/components/u-cell-item/u-cell-item.vue
diff --git a/uview-ui/components/u-cell/props.js b/uview-components/uview-ui/components/u-cell/props.js
similarity index 100%
rename from uview-ui/components/u-cell/props.js
rename to uview-components/uview-ui/components/u-cell/props.js
diff --git a/uview-ui/components/u-cell/u-cell.vue b/uview-components/uview-ui/components/u-cell/u-cell.vue
similarity index 100%
rename from uview-ui/components/u-cell/u-cell.vue
rename to uview-components/uview-ui/components/u-cell/u-cell.vue
diff --git a/uview-ui/components/u-checkbox-group/props.js b/uview-components/uview-ui/components/u-checkbox-group/props.js
similarity index 100%
rename from uview-ui/components/u-checkbox-group/props.js
rename to uview-components/uview-ui/components/u-checkbox-group/props.js
diff --git a/uview-ui/components/u-checkbox-group/u-checkbox-group.vue b/uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
similarity index 100%
rename from uview-ui/components/u-checkbox-group/u-checkbox-group.vue
rename to uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
diff --git a/uview-ui/components/u-checkbox/props.js b/uview-components/uview-ui/components/u-checkbox/props.js
similarity index 100%
rename from uview-ui/components/u-checkbox/props.js
rename to uview-components/uview-ui/components/u-checkbox/props.js
diff --git a/uview-ui/components/u-checkbox/u-checkbox.vue b/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue
similarity index 100%
rename from uview-ui/components/u-checkbox/u-checkbox.vue
rename to uview-components/uview-ui/components/u-checkbox/u-checkbox.vue
diff --git a/uview-ui/components/u-circle-progress/props.js b/uview-components/uview-ui/components/u-circle-progress/props.js
similarity index 100%
rename from uview-ui/components/u-circle-progress/props.js
rename to uview-components/uview-ui/components/u-circle-progress/props.js
diff --git a/uview-ui/components/u-circle-progress/u-circle-progress.vue b/uview-components/uview-ui/components/u-circle-progress/u-circle-progress.vue
similarity index 100%
rename from uview-ui/components/u-circle-progress/u-circle-progress.vue
rename to uview-components/uview-ui/components/u-circle-progress/u-circle-progress.vue
diff --git a/uview-ui/components/u-code-input/props.js b/uview-components/uview-ui/components/u-code-input/props.js
similarity index 100%
rename from uview-ui/components/u-code-input/props.js
rename to uview-components/uview-ui/components/u-code-input/props.js
diff --git a/uview-ui/components/u-code-input/u-code-input.vue b/uview-components/uview-ui/components/u-code-input/u-code-input.vue
similarity index 100%
rename from uview-ui/components/u-code-input/u-code-input.vue
rename to uview-components/uview-ui/components/u-code-input/u-code-input.vue
diff --git a/uview-ui/components/u-code/props.js b/uview-components/uview-ui/components/u-code/props.js
similarity index 100%
rename from uview-ui/components/u-code/props.js
rename to uview-components/uview-ui/components/u-code/props.js
diff --git a/uview-ui/components/u-code/u-code.vue b/uview-components/uview-ui/components/u-code/u-code.vue
similarity index 100%
rename from uview-ui/components/u-code/u-code.vue
rename to uview-components/uview-ui/components/u-code/u-code.vue
diff --git a/uview-ui/components/u-col/props.js b/uview-components/uview-ui/components/u-col/props.js
similarity index 100%
rename from uview-ui/components/u-col/props.js
rename to uview-components/uview-ui/components/u-col/props.js
diff --git a/uview-ui/components/u-col/u-col.vue b/uview-components/uview-ui/components/u-col/u-col.vue
similarity index 100%
rename from uview-ui/components/u-col/u-col.vue
rename to uview-components/uview-ui/components/u-col/u-col.vue
diff --git a/uview-ui/components/u-collapse-item/props.js b/uview-components/uview-ui/components/u-collapse-item/props.js
similarity index 100%
rename from uview-ui/components/u-collapse-item/props.js
rename to uview-components/uview-ui/components/u-collapse-item/props.js
diff --git a/uview-ui/components/u-collapse-item/u-collapse-item.vue b/uview-components/uview-ui/components/u-collapse-item/u-collapse-item.vue
similarity index 100%
rename from uview-ui/components/u-collapse-item/u-collapse-item.vue
rename to uview-components/uview-ui/components/u-collapse-item/u-collapse-item.vue
diff --git a/uview-ui/components/u-collapse/props.js b/uview-components/uview-ui/components/u-collapse/props.js
similarity index 100%
rename from uview-ui/components/u-collapse/props.js
rename to uview-components/uview-ui/components/u-collapse/props.js
diff --git a/uview-ui/components/u-collapse/u-collapse.vue b/uview-components/uview-ui/components/u-collapse/u-collapse.vue
similarity index 100%
rename from uview-ui/components/u-collapse/u-collapse.vue
rename to uview-components/uview-ui/components/u-collapse/u-collapse.vue
diff --git a/uview-ui/components/u-column-notice/props.js b/uview-components/uview-ui/components/u-column-notice/props.js
similarity index 100%
rename from uview-ui/components/u-column-notice/props.js
rename to uview-components/uview-ui/components/u-column-notice/props.js
diff --git a/uview-ui/components/u-column-notice/u-column-notice.vue b/uview-components/uview-ui/components/u-column-notice/u-column-notice.vue
similarity index 100%
rename from uview-ui/components/u-column-notice/u-column-notice.vue
rename to uview-components/uview-ui/components/u-column-notice/u-column-notice.vue
diff --git a/uview-ui/components/u-count-down/props.js b/uview-components/uview-ui/components/u-count-down/props.js
similarity index 100%
rename from uview-ui/components/u-count-down/props.js
rename to uview-components/uview-ui/components/u-count-down/props.js
diff --git a/uview-ui/components/u-count-down/u-count-down.vue b/uview-components/uview-ui/components/u-count-down/u-count-down.vue
similarity index 100%
rename from uview-ui/components/u-count-down/u-count-down.vue
rename to uview-components/uview-ui/components/u-count-down/u-count-down.vue
diff --git a/uview-ui/components/u-count-down/utils.js b/uview-components/uview-ui/components/u-count-down/utils.js
similarity index 100%
rename from uview-ui/components/u-count-down/utils.js
rename to uview-components/uview-ui/components/u-count-down/utils.js
diff --git a/uview-ui/components/u-count-to/props.js b/uview-components/uview-ui/components/u-count-to/props.js
similarity index 100%
rename from uview-ui/components/u-count-to/props.js
rename to uview-components/uview-ui/components/u-count-to/props.js
diff --git a/uview-ui/components/u-count-to/u-count-to.vue b/uview-components/uview-ui/components/u-count-to/u-count-to.vue
similarity index 100%
rename from uview-ui/components/u-count-to/u-count-to.vue
rename to uview-components/uview-ui/components/u-count-to/u-count-to.vue
diff --git a/uview-ui/components/u-datetime-picker/props.js b/uview-components/uview-ui/components/u-datetime-picker/props.js
similarity index 100%
rename from uview-ui/components/u-datetime-picker/props.js
rename to uview-components/uview-ui/components/u-datetime-picker/props.js
diff --git a/uview-ui/components/u-datetime-picker/u-datetime-picker.vue b/uview-components/uview-ui/components/u-datetime-picker/u-datetime-picker.vue
similarity index 100%
rename from uview-ui/components/u-datetime-picker/u-datetime-picker.vue
rename to uview-components/uview-ui/components/u-datetime-picker/u-datetime-picker.vue
diff --git a/uview-ui/components/u-divider/props.js b/uview-components/uview-ui/components/u-divider/props.js
similarity index 100%
rename from uview-ui/components/u-divider/props.js
rename to uview-components/uview-ui/components/u-divider/props.js
diff --git a/uview-ui/components/u-divider/u-divider.vue b/uview-components/uview-ui/components/u-divider/u-divider.vue
similarity index 100%
rename from uview-ui/components/u-divider/u-divider.vue
rename to uview-components/uview-ui/components/u-divider/u-divider.vue
diff --git a/uview-ui/components/u-dropdown-item/props.js b/uview-components/uview-ui/components/u-dropdown-item/props.js
similarity index 100%
rename from uview-ui/components/u-dropdown-item/props.js
rename to uview-components/uview-ui/components/u-dropdown-item/props.js
diff --git a/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/uview-components/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
similarity index 100%
rename from uview-ui/components/u-dropdown-item/u-dropdown-item.vue
rename to uview-components/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
diff --git a/uview-ui/components/u-dropdown-list/u-dropdown-list.vue b/uview-components/uview-ui/components/u-dropdown-list/u-dropdown-list.vue
similarity index 100%
rename from uview-ui/components/u-dropdown-list/u-dropdown-list.vue
rename to uview-components/uview-ui/components/u-dropdown-list/u-dropdown-list.vue
diff --git a/uview-ui/components/u-dropdown/props.js b/uview-components/uview-ui/components/u-dropdown/props.js
similarity index 100%
rename from uview-ui/components/u-dropdown/props.js
rename to uview-components/uview-ui/components/u-dropdown/props.js
diff --git a/uview-ui/components/u-dropdown/u-dropdown.vue b/uview-components/uview-ui/components/u-dropdown/u-dropdown.vue
similarity index 100%
rename from uview-ui/components/u-dropdown/u-dropdown.vue
rename to uview-components/uview-ui/components/u-dropdown/u-dropdown.vue
diff --git a/uview-ui/components/u-empty/props.js b/uview-components/uview-ui/components/u-empty/props.js
similarity index 100%
rename from uview-ui/components/u-empty/props.js
rename to uview-components/uview-ui/components/u-empty/props.js
diff --git a/uview-ui/components/u-empty/u-empty.vue b/uview-components/uview-ui/components/u-empty/u-empty.vue
similarity index 100%
rename from uview-ui/components/u-empty/u-empty.vue
rename to uview-components/uview-ui/components/u-empty/u-empty.vue
diff --git a/uview-ui/components/u-field/u-field.vue b/uview-components/uview-ui/components/u-field/u-field.vue
similarity index 100%
rename from uview-ui/components/u-field/u-field.vue
rename to uview-components/uview-ui/components/u-field/u-field.vue
diff --git a/uview-ui/components/u-form-item/props.js b/uview-components/uview-ui/components/u-form-item/props.js
similarity index 100%
rename from uview-ui/components/u-form-item/props.js
rename to uview-components/uview-ui/components/u-form-item/props.js
diff --git a/uview-ui/components/u-form-item/u-form-item.vue b/uview-components/uview-ui/components/u-form-item/u-form-item.vue
similarity index 100%
rename from uview-ui/components/u-form-item/u-form-item.vue
rename to uview-components/uview-ui/components/u-form-item/u-form-item.vue
diff --git a/uview-ui/components/u-form/props.js b/uview-components/uview-ui/components/u-form/props.js
similarity index 100%
rename from uview-ui/components/u-form/props.js
rename to uview-components/uview-ui/components/u-form/props.js
diff --git a/uview-ui/components/u-form/u-form.vue b/uview-components/uview-ui/components/u-form/u-form.vue
similarity index 100%
rename from uview-ui/components/u-form/u-form.vue
rename to uview-components/uview-ui/components/u-form/u-form.vue
diff --git a/uview-ui/components/u-full-screen/u-full-screen.vue b/uview-components/uview-ui/components/u-full-screen/u-full-screen.vue
similarity index 100%
rename from uview-ui/components/u-full-screen/u-full-screen.vue
rename to uview-components/uview-ui/components/u-full-screen/u-full-screen.vue
diff --git a/uview-ui/components/u-gap/props.js b/uview-components/uview-ui/components/u-gap/props.js
similarity index 100%
rename from uview-ui/components/u-gap/props.js
rename to uview-components/uview-ui/components/u-gap/props.js
diff --git a/uview-ui/components/u-gap/u-gap.vue b/uview-components/uview-ui/components/u-gap/u-gap.vue
similarity index 100%
rename from uview-ui/components/u-gap/u-gap.vue
rename to uview-components/uview-ui/components/u-gap/u-gap.vue
diff --git a/uview-ui/components/u-grid-item/props.js b/uview-components/uview-ui/components/u-grid-item/props.js
similarity index 100%
rename from uview-ui/components/u-grid-item/props.js
rename to uview-components/uview-ui/components/u-grid-item/props.js
diff --git a/uview-ui/components/u-grid-item/u-grid-item.vue b/uview-components/uview-ui/components/u-grid-item/u-grid-item.vue
similarity index 100%
rename from uview-ui/components/u-grid-item/u-grid-item.vue
rename to uview-components/uview-ui/components/u-grid-item/u-grid-item.vue
diff --git a/uview-ui/components/u-grid/props.js b/uview-components/uview-ui/components/u-grid/props.js
similarity index 100%
rename from uview-ui/components/u-grid/props.js
rename to uview-components/uview-ui/components/u-grid/props.js
diff --git a/uview-ui/components/u-grid/u-grid.vue b/uview-components/uview-ui/components/u-grid/u-grid.vue
similarity index 100%
rename from uview-ui/components/u-grid/u-grid.vue
rename to uview-components/uview-ui/components/u-grid/u-grid.vue
diff --git a/uview-ui/components/u-icon/icons.js b/uview-components/uview-ui/components/u-icon/icons.js
similarity index 100%
rename from uview-ui/components/u-icon/icons.js
rename to uview-components/uview-ui/components/u-icon/icons.js
diff --git a/uview-ui/components/u-icon/props.js b/uview-components/uview-ui/components/u-icon/props.js
similarity index 100%
rename from uview-ui/components/u-icon/props.js
rename to uview-components/uview-ui/components/u-icon/props.js
diff --git a/uview-ui/components/u-icon/u-icon.vue b/uview-components/uview-ui/components/u-icon/u-icon.vue
similarity index 100%
rename from uview-ui/components/u-icon/u-icon.vue
rename to uview-components/uview-ui/components/u-icon/u-icon.vue
diff --git a/uview-ui/components/u-image/props.js b/uview-components/uview-ui/components/u-image/props.js
similarity index 100%
rename from uview-ui/components/u-image/props.js
rename to uview-components/uview-ui/components/u-image/props.js
diff --git a/uview-ui/components/u-image/u-image.vue b/uview-components/uview-ui/components/u-image/u-image.vue
similarity index 100%
rename from uview-ui/components/u-image/u-image.vue
rename to uview-components/uview-ui/components/u-image/u-image.vue
diff --git a/uview-ui/components/u-index-anchor/props.js b/uview-components/uview-ui/components/u-index-anchor/props.js
similarity index 100%
rename from uview-ui/components/u-index-anchor/props.js
rename to uview-components/uview-ui/components/u-index-anchor/props.js
diff --git a/uview-ui/components/u-index-anchor/u-index-anchor.vue b/uview-components/uview-ui/components/u-index-anchor/u-index-anchor.vue
similarity index 100%
rename from uview-ui/components/u-index-anchor/u-index-anchor.vue
rename to uview-components/uview-ui/components/u-index-anchor/u-index-anchor.vue
diff --git a/uview-ui/components/u-index-item/props.js b/uview-components/uview-ui/components/u-index-item/props.js
similarity index 100%
rename from uview-ui/components/u-index-item/props.js
rename to uview-components/uview-ui/components/u-index-item/props.js
diff --git a/uview-ui/components/u-index-item/u-index-item.vue b/uview-components/uview-ui/components/u-index-item/u-index-item.vue
similarity index 100%
rename from uview-ui/components/u-index-item/u-index-item.vue
rename to uview-components/uview-ui/components/u-index-item/u-index-item.vue
diff --git a/uview-ui/components/u-index-list/props.js b/uview-components/uview-ui/components/u-index-list/props.js
similarity index 100%
rename from uview-ui/components/u-index-list/props.js
rename to uview-components/uview-ui/components/u-index-list/props.js
diff --git a/uview-ui/components/u-index-list/u-index-list.vue b/uview-components/uview-ui/components/u-index-list/u-index-list.vue
similarity index 100%
rename from uview-ui/components/u-index-list/u-index-list.vue
rename to uview-components/uview-ui/components/u-index-list/u-index-list.vue
diff --git a/uview-ui/components/u-input/props.js b/uview-components/uview-ui/components/u-input/props.js
similarity index 100%
rename from uview-ui/components/u-input/props.js
rename to uview-components/uview-ui/components/u-input/props.js
diff --git a/uview-ui/components/u-input/u-input.vue b/uview-components/uview-ui/components/u-input/u-input.vue
similarity index 100%
rename from uview-ui/components/u-input/u-input.vue
rename to uview-components/uview-ui/components/u-input/u-input.vue
diff --git a/uview-ui/components/u-keyboard/props.js b/uview-components/uview-ui/components/u-keyboard/props.js
similarity index 100%
rename from uview-ui/components/u-keyboard/props.js
rename to uview-components/uview-ui/components/u-keyboard/props.js
diff --git a/uview-ui/components/u-keyboard/u-keyboard.vue b/uview-components/uview-ui/components/u-keyboard/u-keyboard.vue
similarity index 100%
rename from uview-ui/components/u-keyboard/u-keyboard.vue
rename to uview-components/uview-ui/components/u-keyboard/u-keyboard.vue
diff --git a/uview-ui/components/u-lazy-load/u-lazy-load.vue b/uview-components/uview-ui/components/u-lazy-load/u-lazy-load.vue
similarity index 100%
rename from uview-ui/components/u-lazy-load/u-lazy-load.vue
rename to uview-components/uview-ui/components/u-lazy-load/u-lazy-load.vue
diff --git a/uview-ui/components/u-line-progress/props.js b/uview-components/uview-ui/components/u-line-progress/props.js
similarity index 100%
rename from uview-ui/components/u-line-progress/props.js
rename to uview-components/uview-ui/components/u-line-progress/props.js
diff --git a/uview-ui/components/u-line-progress/u-line-progress.vue b/uview-components/uview-ui/components/u-line-progress/u-line-progress.vue
similarity index 100%
rename from uview-ui/components/u-line-progress/u-line-progress.vue
rename to uview-components/uview-ui/components/u-line-progress/u-line-progress.vue
diff --git a/uview-ui/components/u-line/props.js b/uview-components/uview-ui/components/u-line/props.js
similarity index 100%
rename from uview-ui/components/u-line/props.js
rename to uview-components/uview-ui/components/u-line/props.js
diff --git a/uview-ui/components/u-line/u-line.vue b/uview-components/uview-ui/components/u-line/u-line.vue
similarity index 100%
rename from uview-ui/components/u-line/u-line.vue
rename to uview-components/uview-ui/components/u-line/u-line.vue
diff --git a/uview-ui/components/u-link/props.js b/uview-components/uview-ui/components/u-link/props.js
similarity index 100%
rename from uview-ui/components/u-link/props.js
rename to uview-components/uview-ui/components/u-link/props.js
diff --git a/uview-ui/components/u-link/u-link.vue b/uview-components/uview-ui/components/u-link/u-link.vue
similarity index 100%
rename from uview-ui/components/u-link/u-link.vue
rename to uview-components/uview-ui/components/u-link/u-link.vue
diff --git a/uview-ui/components/u-list-item/props.js b/uview-components/uview-ui/components/u-list-item/props.js
similarity index 100%
rename from uview-ui/components/u-list-item/props.js
rename to uview-components/uview-ui/components/u-list-item/props.js
diff --git a/uview-ui/components/u-list-item/u-list-item.vue b/uview-components/uview-ui/components/u-list-item/u-list-item.vue
similarity index 100%
rename from uview-ui/components/u-list-item/u-list-item.vue
rename to uview-components/uview-ui/components/u-list-item/u-list-item.vue
diff --git a/uview-ui/components/u-list/props.js b/uview-components/uview-ui/components/u-list/props.js
similarity index 100%
rename from uview-ui/components/u-list/props.js
rename to uview-components/uview-ui/components/u-list/props.js
diff --git a/uview-ui/components/u-list/u-list.vue b/uview-components/uview-ui/components/u-list/u-list.vue
similarity index 100%
rename from uview-ui/components/u-list/u-list.vue
rename to uview-components/uview-ui/components/u-list/u-list.vue
diff --git a/uview-ui/components/u-loading-icon/props.js b/uview-components/uview-ui/components/u-loading-icon/props.js
similarity index 100%
rename from uview-ui/components/u-loading-icon/props.js
rename to uview-components/uview-ui/components/u-loading-icon/props.js
diff --git a/uview-ui/components/u-loading-icon/u-loading-icon.vue b/uview-components/uview-ui/components/u-loading-icon/u-loading-icon.vue
similarity index 100%
rename from uview-ui/components/u-loading-icon/u-loading-icon.vue
rename to uview-components/uview-ui/components/u-loading-icon/u-loading-icon.vue
diff --git a/uview-ui/components/u-loading-page/props.js b/uview-components/uview-ui/components/u-loading-page/props.js
similarity index 100%
rename from uview-ui/components/u-loading-page/props.js
rename to uview-components/uview-ui/components/u-loading-page/props.js
diff --git a/uview-ui/components/u-loading-page/u-loading-page.vue b/uview-components/uview-ui/components/u-loading-page/u-loading-page.vue
similarity index 100%
rename from uview-ui/components/u-loading-page/u-loading-page.vue
rename to uview-components/uview-ui/components/u-loading-page/u-loading-page.vue
diff --git a/uview-ui/components/u-loading/u-loading.vue b/uview-components/uview-ui/components/u-loading/u-loading.vue
similarity index 100%
rename from uview-ui/components/u-loading/u-loading.vue
rename to uview-components/uview-ui/components/u-loading/u-loading.vue
diff --git a/uview-ui/components/u-loadmore/props.js b/uview-components/uview-ui/components/u-loadmore/props.js
similarity index 100%
rename from uview-ui/components/u-loadmore/props.js
rename to uview-components/uview-ui/components/u-loadmore/props.js
diff --git a/uview-ui/components/u-loadmore/u-loadmore.vue b/uview-components/uview-ui/components/u-loadmore/u-loadmore.vue
similarity index 100%
rename from uview-ui/components/u-loadmore/u-loadmore.vue
rename to uview-components/uview-ui/components/u-loadmore/u-loadmore.vue
diff --git a/uview-ui/components/u-mask/u-mask.vue b/uview-components/uview-ui/components/u-mask/u-mask.vue
similarity index 100%
rename from uview-ui/components/u-mask/u-mask.vue
rename to uview-components/uview-ui/components/u-mask/u-mask.vue
diff --git a/uview-ui/components/u-message-input/u-message-input.vue b/uview-components/uview-ui/components/u-message-input/u-message-input.vue
similarity index 100%
rename from uview-ui/components/u-message-input/u-message-input.vue
rename to uview-components/uview-ui/components/u-message-input/u-message-input.vue
diff --git a/uview-ui/components/u-modal/props.js b/uview-components/uview-ui/components/u-modal/props.js
similarity index 100%
rename from uview-ui/components/u-modal/props.js
rename to uview-components/uview-ui/components/u-modal/props.js
diff --git a/uview-ui/components/u-modal/u-modal.vue b/uview-components/uview-ui/components/u-modal/u-modal.vue
similarity index 100%
rename from uview-ui/components/u-modal/u-modal.vue
rename to uview-components/uview-ui/components/u-modal/u-modal.vue
diff --git a/uview-ui/components/u-navbar/props.js b/uview-components/uview-ui/components/u-navbar/props.js
similarity index 100%
rename from uview-ui/components/u-navbar/props.js
rename to uview-components/uview-ui/components/u-navbar/props.js
diff --git a/uview-ui/components/u-navbar/u-navbar.vue b/uview-components/uview-ui/components/u-navbar/u-navbar.vue
similarity index 100%
rename from uview-ui/components/u-navbar/u-navbar.vue
rename to uview-components/uview-ui/components/u-navbar/u-navbar.vue
diff --git a/uview-ui/components/u-no-network/props.js b/uview-components/uview-ui/components/u-no-network/props.js
similarity index 100%
rename from uview-ui/components/u-no-network/props.js
rename to uview-components/uview-ui/components/u-no-network/props.js
diff --git a/uview-ui/components/u-no-network/u-no-network.vue b/uview-components/uview-ui/components/u-no-network/u-no-network.vue
similarity index 100%
rename from uview-ui/components/u-no-network/u-no-network.vue
rename to uview-components/uview-ui/components/u-no-network/u-no-network.vue
diff --git a/uview-ui/components/u-notice-bar/props.js b/uview-components/uview-ui/components/u-notice-bar/props.js
similarity index 100%
rename from uview-ui/components/u-notice-bar/props.js
rename to uview-components/uview-ui/components/u-notice-bar/props.js
diff --git a/uview-ui/components/u-notice-bar/u-notice-bar.vue b/uview-components/uview-ui/components/u-notice-bar/u-notice-bar.vue
similarity index 100%
rename from uview-ui/components/u-notice-bar/u-notice-bar.vue
rename to uview-components/uview-ui/components/u-notice-bar/u-notice-bar.vue
diff --git a/uview-ui/components/u-notify/props.js b/uview-components/uview-ui/components/u-notify/props.js
similarity index 100%
rename from uview-ui/components/u-notify/props.js
rename to uview-components/uview-ui/components/u-notify/props.js
diff --git a/uview-ui/components/u-notify/u-notify.vue b/uview-components/uview-ui/components/u-notify/u-notify.vue
similarity index 100%
rename from uview-ui/components/u-notify/u-notify.vue
rename to uview-components/uview-ui/components/u-notify/u-notify.vue
diff --git a/uview-ui/components/u-number-box/props.js b/uview-components/uview-ui/components/u-number-box/props.js
similarity index 100%
rename from uview-ui/components/u-number-box/props.js
rename to uview-components/uview-ui/components/u-number-box/props.js
diff --git a/uview-ui/components/u-number-box/u-number-box.vue b/uview-components/uview-ui/components/u-number-box/u-number-box.vue
similarity index 100%
rename from uview-ui/components/u-number-box/u-number-box.vue
rename to uview-components/uview-ui/components/u-number-box/u-number-box.vue
diff --git a/uview-ui/components/u-number-keyboard/props.js b/uview-components/uview-ui/components/u-number-keyboard/props.js
similarity index 100%
rename from uview-ui/components/u-number-keyboard/props.js
rename to uview-components/uview-ui/components/u-number-keyboard/props.js
diff --git a/uview-ui/components/u-number-keyboard/u-number-keyboard.vue b/uview-components/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
similarity index 100%
rename from uview-ui/components/u-number-keyboard/u-number-keyboard.vue
rename to uview-components/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
diff --git a/uview-ui/components/u-overlay/props.js b/uview-components/uview-ui/components/u-overlay/props.js
similarity index 100%
rename from uview-ui/components/u-overlay/props.js
rename to uview-components/uview-ui/components/u-overlay/props.js
diff --git a/uview-ui/components/u-overlay/u-overlay.vue b/uview-components/uview-ui/components/u-overlay/u-overlay.vue
similarity index 100%
rename from uview-ui/components/u-overlay/u-overlay.vue
rename to uview-components/uview-ui/components/u-overlay/u-overlay.vue
diff --git a/uview-ui/components/u-parse/libs/CssHandler.js b/uview-components/uview-ui/components/u-parse/libs/CssHandler.js
similarity index 100%
rename from uview-ui/components/u-parse/libs/CssHandler.js
rename to uview-components/uview-ui/components/u-parse/libs/CssHandler.js
diff --git a/uview-ui/components/u-parse/libs/MpHtmlParser.js b/uview-components/uview-ui/components/u-parse/libs/MpHtmlParser.js
similarity index 100%
rename from uview-ui/components/u-parse/libs/MpHtmlParser.js
rename to uview-components/uview-ui/components/u-parse/libs/MpHtmlParser.js
diff --git a/uview-ui/components/u-parse/libs/config.js b/uview-components/uview-ui/components/u-parse/libs/config.js
similarity index 100%
rename from uview-ui/components/u-parse/libs/config.js
rename to uview-components/uview-ui/components/u-parse/libs/config.js
diff --git a/uview-ui/components/u-parse/libs/handler.wxs b/uview-components/uview-ui/components/u-parse/libs/handler.wxs
similarity index 100%
rename from uview-ui/components/u-parse/libs/handler.wxs
rename to uview-components/uview-ui/components/u-parse/libs/handler.wxs
diff --git a/uview-ui/components/u-parse/libs/trees.vue b/uview-components/uview-ui/components/u-parse/libs/trees.vue
similarity index 100%
rename from uview-ui/components/u-parse/libs/trees.vue
rename to uview-components/uview-ui/components/u-parse/libs/trees.vue
diff --git a/uview-ui/components/u-parse/node/node.vue b/uview-components/uview-ui/components/u-parse/node/node.vue
similarity index 100%
rename from uview-ui/components/u-parse/node/node.vue
rename to uview-components/uview-ui/components/u-parse/node/node.vue
diff --git a/uview-ui/components/u-parse/parser.js b/uview-components/uview-ui/components/u-parse/parser.js
similarity index 100%
rename from uview-ui/components/u-parse/parser.js
rename to uview-components/uview-ui/components/u-parse/parser.js
diff --git a/uview-ui/components/u-parse/props.js b/uview-components/uview-ui/components/u-parse/props.js
similarity index 100%
rename from uview-ui/components/u-parse/props.js
rename to uview-components/uview-ui/components/u-parse/props.js
diff --git a/uview-ui/components/u-parse/u-parse.vue b/uview-components/uview-ui/components/u-parse/u-parse.vue
similarity index 100%
rename from uview-ui/components/u-parse/u-parse.vue
rename to uview-components/uview-ui/components/u-parse/u-parse.vue
diff --git a/uview-ui/components/u-picker-column/props.js b/uview-components/uview-ui/components/u-picker-column/props.js
similarity index 100%
rename from uview-ui/components/u-picker-column/props.js
rename to uview-components/uview-ui/components/u-picker-column/props.js
diff --git a/uview-ui/components/u-picker-column/u-picker-column.vue b/uview-components/uview-ui/components/u-picker-column/u-picker-column.vue
similarity index 100%
rename from uview-ui/components/u-picker-column/u-picker-column.vue
rename to uview-components/uview-ui/components/u-picker-column/u-picker-column.vue
diff --git a/uview-ui/components/u-picker/props.js b/uview-components/uview-ui/components/u-picker/props.js
similarity index 100%
rename from uview-ui/components/u-picker/props.js
rename to uview-components/uview-ui/components/u-picker/props.js
diff --git a/uview-ui/components/u-picker/u-picker.vue b/uview-components/uview-ui/components/u-picker/u-picker.vue
similarity index 100%
rename from uview-ui/components/u-picker/u-picker.vue
rename to uview-components/uview-ui/components/u-picker/u-picker.vue
diff --git a/uview-ui/components/u-popup/props.js b/uview-components/uview-ui/components/u-popup/props.js
similarity index 100%
rename from uview-ui/components/u-popup/props.js
rename to uview-components/uview-ui/components/u-popup/props.js
diff --git a/uview-ui/components/u-popup/u-popup.vue b/uview-components/uview-ui/components/u-popup/u-popup.vue
similarity index 100%
rename from uview-ui/components/u-popup/u-popup.vue
rename to uview-components/uview-ui/components/u-popup/u-popup.vue
diff --git a/uview-ui/components/u-radio-group/props.js b/uview-components/uview-ui/components/u-radio-group/props.js
similarity index 100%
rename from uview-ui/components/u-radio-group/props.js
rename to uview-components/uview-ui/components/u-radio-group/props.js
diff --git a/uview-ui/components/u-radio-group/u-radio-group.vue b/uview-components/uview-ui/components/u-radio-group/u-radio-group.vue
similarity index 100%
rename from uview-ui/components/u-radio-group/u-radio-group.vue
rename to uview-components/uview-ui/components/u-radio-group/u-radio-group.vue
diff --git a/uview-ui/components/u-radio/props.js b/uview-components/uview-ui/components/u-radio/props.js
similarity index 100%
rename from uview-ui/components/u-radio/props.js
rename to uview-components/uview-ui/components/u-radio/props.js
diff --git a/uview-ui/components/u-radio/u-radio.vue b/uview-components/uview-ui/components/u-radio/u-radio.vue
similarity index 100%
rename from uview-ui/components/u-radio/u-radio.vue
rename to uview-components/uview-ui/components/u-radio/u-radio.vue
diff --git a/uview-ui/components/u-rate/props.js b/uview-components/uview-ui/components/u-rate/props.js
similarity index 100%
rename from uview-ui/components/u-rate/props.js
rename to uview-components/uview-ui/components/u-rate/props.js
diff --git a/uview-ui/components/u-rate/u-rate.vue b/uview-components/uview-ui/components/u-rate/u-rate.vue
similarity index 100%
rename from uview-ui/components/u-rate/u-rate.vue
rename to uview-components/uview-ui/components/u-rate/u-rate.vue
diff --git a/uview-ui/components/u-read-more/props.js b/uview-components/uview-ui/components/u-read-more/props.js
similarity index 100%
rename from uview-ui/components/u-read-more/props.js
rename to uview-components/uview-ui/components/u-read-more/props.js
diff --git a/uview-ui/components/u-read-more/u-read-more.vue b/uview-components/uview-ui/components/u-read-more/u-read-more.vue
similarity index 100%
rename from uview-ui/components/u-read-more/u-read-more.vue
rename to uview-components/uview-ui/components/u-read-more/u-read-more.vue
diff --git a/uview-ui/components/u-row-notice/props.js b/uview-components/uview-ui/components/u-row-notice/props.js
similarity index 100%
rename from uview-ui/components/u-row-notice/props.js
rename to uview-components/uview-ui/components/u-row-notice/props.js
diff --git a/uview-ui/components/u-row-notice/u-row-notice.vue b/uview-components/uview-ui/components/u-row-notice/u-row-notice.vue
similarity index 100%
rename from uview-ui/components/u-row-notice/u-row-notice.vue
rename to uview-components/uview-ui/components/u-row-notice/u-row-notice.vue
diff --git a/uview-ui/components/u-row/props.js b/uview-components/uview-ui/components/u-row/props.js
similarity index 100%
rename from uview-ui/components/u-row/props.js
rename to uview-components/uview-ui/components/u-row/props.js
diff --git a/uview-ui/components/u-row/u-row.vue b/uview-components/uview-ui/components/u-row/u-row.vue
similarity index 100%
rename from uview-ui/components/u-row/u-row.vue
rename to uview-components/uview-ui/components/u-row/u-row.vue
diff --git a/uview-ui/components/u-safe-bottom/props.js b/uview-components/uview-ui/components/u-safe-bottom/props.js
similarity index 100%
rename from uview-ui/components/u-safe-bottom/props.js
rename to uview-components/uview-ui/components/u-safe-bottom/props.js
diff --git a/uview-ui/components/u-safe-bottom/u-safe-bottom.vue b/uview-components/uview-ui/components/u-safe-bottom/u-safe-bottom.vue
similarity index 100%
rename from uview-ui/components/u-safe-bottom/u-safe-bottom.vue
rename to uview-components/uview-ui/components/u-safe-bottom/u-safe-bottom.vue
diff --git a/uview-ui/components/u-scroll-list/nvue.js b/uview-components/uview-ui/components/u-scroll-list/nvue.js
similarity index 100%
rename from uview-ui/components/u-scroll-list/nvue.js
rename to uview-components/uview-ui/components/u-scroll-list/nvue.js
diff --git a/uview-ui/components/u-scroll-list/other.js b/uview-components/uview-ui/components/u-scroll-list/other.js
similarity index 100%
rename from uview-ui/components/u-scroll-list/other.js
rename to uview-components/uview-ui/components/u-scroll-list/other.js
diff --git a/uview-ui/components/u-scroll-list/props.js b/uview-components/uview-ui/components/u-scroll-list/props.js
similarity index 100%
rename from uview-ui/components/u-scroll-list/props.js
rename to uview-components/uview-ui/components/u-scroll-list/props.js
diff --git a/uview-ui/components/u-scroll-list/scrollWxs.wxs b/uview-components/uview-ui/components/u-scroll-list/scrollWxs.wxs
similarity index 100%
rename from uview-ui/components/u-scroll-list/scrollWxs.wxs
rename to uview-components/uview-ui/components/u-scroll-list/scrollWxs.wxs
diff --git a/uview-ui/components/u-scroll-list/u-scroll-list.vue b/uview-components/uview-ui/components/u-scroll-list/u-scroll-list.vue
similarity index 100%
rename from uview-ui/components/u-scroll-list/u-scroll-list.vue
rename to uview-components/uview-ui/components/u-scroll-list/u-scroll-list.vue
diff --git a/uview-ui/components/u-search/props.js b/uview-components/uview-ui/components/u-search/props.js
similarity index 100%
rename from uview-ui/components/u-search/props.js
rename to uview-components/uview-ui/components/u-search/props.js
diff --git a/uview-ui/components/u-search/u-search.vue b/uview-components/uview-ui/components/u-search/u-search.vue
similarity index 100%
rename from uview-ui/components/u-search/u-search.vue
rename to uview-components/uview-ui/components/u-search/u-search.vue
diff --git a/uview-ui/components/u-section/u-section.vue b/uview-components/uview-ui/components/u-section/u-section.vue
similarity index 100%
rename from uview-ui/components/u-section/u-section.vue
rename to uview-components/uview-ui/components/u-section/u-section.vue
diff --git a/uview-ui/components/u-select/u-select.vue b/uview-components/uview-ui/components/u-select/u-select.vue
similarity index 100%
rename from uview-ui/components/u-select/u-select.vue
rename to uview-components/uview-ui/components/u-select/u-select.vue
diff --git a/uview-ui/components/u-skeleton/props.js b/uview-components/uview-ui/components/u-skeleton/props.js
similarity index 100%
rename from uview-ui/components/u-skeleton/props.js
rename to uview-components/uview-ui/components/u-skeleton/props.js
diff --git a/uview-ui/components/u-skeleton/u-skeleton.vue b/uview-components/uview-ui/components/u-skeleton/u-skeleton.vue
similarity index 100%
rename from uview-ui/components/u-skeleton/u-skeleton.vue
rename to uview-components/uview-ui/components/u-skeleton/u-skeleton.vue
diff --git a/uview-ui/components/u-slider/mpother.js b/uview-components/uview-ui/components/u-slider/mpother.js
similarity index 100%
rename from uview-ui/components/u-slider/mpother.js
rename to uview-components/uview-ui/components/u-slider/mpother.js
diff --git a/uview-ui/components/u-slider/mpwxs.js b/uview-components/uview-ui/components/u-slider/mpwxs.js
similarity index 100%
rename from uview-ui/components/u-slider/mpwxs.js
rename to uview-components/uview-ui/components/u-slider/mpwxs.js
diff --git a/uview-ui/components/u-slider/mpwxs.wxs b/uview-components/uview-ui/components/u-slider/mpwxs.wxs
similarity index 100%
rename from uview-ui/components/u-slider/mpwxs.wxs
rename to uview-components/uview-ui/components/u-slider/mpwxs.wxs
diff --git "a/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js" "b/uview-components/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js"
similarity index 100%
rename from "uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js"
rename to "uview-components/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js"
diff --git a/uview-ui/components/u-slider/nvue.js b/uview-components/uview-ui/components/u-slider/nvue.js
similarity index 100%
rename from uview-ui/components/u-slider/nvue.js
rename to uview-components/uview-ui/components/u-slider/nvue.js
diff --git a/uview-ui/components/u-slider/props.js b/uview-components/uview-ui/components/u-slider/props.js
similarity index 100%
rename from uview-ui/components/u-slider/props.js
rename to uview-components/uview-ui/components/u-slider/props.js
diff --git a/uview-ui/components/u-slider/u-slider.vue b/uview-components/uview-ui/components/u-slider/u-slider.vue
similarity index 100%
rename from uview-ui/components/u-slider/u-slider.vue
rename to uview-components/uview-ui/components/u-slider/u-slider.vue
diff --git a/uview-ui/components/u-status-bar/props.js b/uview-components/uview-ui/components/u-status-bar/props.js
similarity index 100%
rename from uview-ui/components/u-status-bar/props.js
rename to uview-components/uview-ui/components/u-status-bar/props.js
diff --git a/uview-ui/components/u-status-bar/u-status-bar.vue b/uview-components/uview-ui/components/u-status-bar/u-status-bar.vue
similarity index 100%
rename from uview-ui/components/u-status-bar/u-status-bar.vue
rename to uview-components/uview-ui/components/u-status-bar/u-status-bar.vue
diff --git a/uview-ui/components/u-steps-item/props.js b/uview-components/uview-ui/components/u-steps-item/props.js
similarity index 100%
rename from uview-ui/components/u-steps-item/props.js
rename to uview-components/uview-ui/components/u-steps-item/props.js
diff --git a/uview-ui/components/u-steps-item/u-steps-item.vue b/uview-components/uview-ui/components/u-steps-item/u-steps-item.vue
similarity index 100%
rename from uview-ui/components/u-steps-item/u-steps-item.vue
rename to uview-components/uview-ui/components/u-steps-item/u-steps-item.vue
diff --git a/uview-ui/components/u-steps/props.js b/uview-components/uview-ui/components/u-steps/props.js
similarity index 100%
rename from uview-ui/components/u-steps/props.js
rename to uview-components/uview-ui/components/u-steps/props.js
diff --git a/uview-ui/components/u-steps/u-steps.vue b/uview-components/uview-ui/components/u-steps/u-steps.vue
similarity index 100%
rename from uview-ui/components/u-steps/u-steps.vue
rename to uview-components/uview-ui/components/u-steps/u-steps.vue
diff --git a/uview-ui/components/u-sticky/props.js b/uview-components/uview-ui/components/u-sticky/props.js
similarity index 100%
rename from uview-ui/components/u-sticky/props.js
rename to uview-components/uview-ui/components/u-sticky/props.js
diff --git a/uview-ui/components/u-sticky/u-sticky.vue b/uview-components/uview-ui/components/u-sticky/u-sticky.vue
similarity index 100%
rename from uview-ui/components/u-sticky/u-sticky.vue
rename to uview-components/uview-ui/components/u-sticky/u-sticky.vue
diff --git a/uview-ui/components/u-subsection/props.js b/uview-components/uview-ui/components/u-subsection/props.js
similarity index 100%
rename from uview-ui/components/u-subsection/props.js
rename to uview-components/uview-ui/components/u-subsection/props.js
diff --git a/uview-ui/components/u-subsection/u-subsection.vue b/uview-components/uview-ui/components/u-subsection/u-subsection.vue
similarity index 100%
rename from uview-ui/components/u-subsection/u-subsection.vue
rename to uview-components/uview-ui/components/u-subsection/u-subsection.vue
diff --git a/uview-ui/components/u-swipe-action-item/index - backup.wxs b/uview-components/uview-ui/components/u-swipe-action-item/index - backup.wxs
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/index - backup.wxs
rename to uview-components/uview-ui/components/u-swipe-action-item/index - backup.wxs
diff --git a/uview-ui/components/u-swipe-action-item/index.wxs b/uview-components/uview-ui/components/u-swipe-action-item/index.wxs
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/index.wxs
rename to uview-components/uview-ui/components/u-swipe-action-item/index.wxs
diff --git a/uview-ui/components/u-swipe-action-item/nvue - backup.js b/uview-components/uview-ui/components/u-swipe-action-item/nvue - backup.js
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/nvue - backup.js
rename to uview-components/uview-ui/components/u-swipe-action-item/nvue - backup.js
diff --git a/uview-ui/components/u-swipe-action-item/nvue.js b/uview-components/uview-ui/components/u-swipe-action-item/nvue.js
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/nvue.js
rename to uview-components/uview-ui/components/u-swipe-action-item/nvue.js
diff --git a/uview-ui/components/u-swipe-action-item/props.js b/uview-components/uview-ui/components/u-swipe-action-item/props.js
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/props.js
rename to uview-components/uview-ui/components/u-swipe-action-item/props.js
diff --git a/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue b/uview-components/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
rename to uview-components/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
diff --git a/uview-ui/components/u-swipe-action-item/wxs.js b/uview-components/uview-ui/components/u-swipe-action-item/wxs.js
similarity index 100%
rename from uview-ui/components/u-swipe-action-item/wxs.js
rename to uview-components/uview-ui/components/u-swipe-action-item/wxs.js
diff --git a/uview-ui/components/u-swipe-action/props.js b/uview-components/uview-ui/components/u-swipe-action/props.js
similarity index 100%
rename from uview-ui/components/u-swipe-action/props.js
rename to uview-components/uview-ui/components/u-swipe-action/props.js
diff --git a/uview-ui/components/u-swipe-action/u-swipe-action.vue b/uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue
similarity index 100%
rename from uview-ui/components/u-swipe-action/u-swipe-action.vue
rename to uview-components/uview-ui/components/u-swipe-action/u-swipe-action.vue
diff --git a/uview-ui/components/u-swiper-indicator/props.js b/uview-components/uview-ui/components/u-swiper-indicator/props.js
similarity index 100%
rename from uview-ui/components/u-swiper-indicator/props.js
rename to uview-components/uview-ui/components/u-swiper-indicator/props.js
diff --git a/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue b/uview-components/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
similarity index 100%
rename from uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
rename to uview-components/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
diff --git a/uview-ui/components/u-swiper/props.js b/uview-components/uview-ui/components/u-swiper/props.js
similarity index 100%
rename from uview-ui/components/u-swiper/props.js
rename to uview-components/uview-ui/components/u-swiper/props.js
diff --git a/uview-ui/components/u-swiper/u-swiper.vue b/uview-components/uview-ui/components/u-swiper/u-swiper.vue
similarity index 100%
rename from uview-ui/components/u-swiper/u-swiper.vue
rename to uview-components/uview-ui/components/u-swiper/u-swiper.vue
diff --git a/uview-ui/components/u-switch/props.js b/uview-components/uview-ui/components/u-switch/props.js
similarity index 100%
rename from uview-ui/components/u-switch/props.js
rename to uview-components/uview-ui/components/u-switch/props.js
diff --git a/uview-ui/components/u-switch/u-switch.vue b/uview-components/uview-ui/components/u-switch/u-switch.vue
similarity index 100%
rename from uview-ui/components/u-switch/u-switch.vue
rename to uview-components/uview-ui/components/u-switch/u-switch.vue
diff --git a/uview-ui/components/u-tabbar-item/props.js b/uview-components/uview-ui/components/u-tabbar-item/props.js
similarity index 100%
rename from uview-ui/components/u-tabbar-item/props.js
rename to uview-components/uview-ui/components/u-tabbar-item/props.js
diff --git a/uview-ui/components/u-tabbar-item/u-tabbar-item.vue b/uview-components/uview-ui/components/u-tabbar-item/u-tabbar-item.vue
similarity index 100%
rename from uview-ui/components/u-tabbar-item/u-tabbar-item.vue
rename to uview-components/uview-ui/components/u-tabbar-item/u-tabbar-item.vue
diff --git a/uview-ui/components/u-tabbar/props.js b/uview-components/uview-ui/components/u-tabbar/props.js
similarity index 100%
rename from uview-ui/components/u-tabbar/props.js
rename to uview-components/uview-ui/components/u-tabbar/props.js
diff --git a/uview-ui/components/u-tabbar/u-tabbar.vue b/uview-components/uview-ui/components/u-tabbar/u-tabbar.vue
similarity index 100%
rename from uview-ui/components/u-tabbar/u-tabbar.vue
rename to uview-components/uview-ui/components/u-tabbar/u-tabbar.vue
diff --git a/uview-ui/components/u-table/props.js b/uview-components/uview-ui/components/u-table/props.js
similarity index 100%
rename from uview-ui/components/u-table/props.js
rename to uview-components/uview-ui/components/u-table/props.js
diff --git a/uview-ui/components/u-table/u-table.vue b/uview-components/uview-ui/components/u-table/u-table.vue
similarity index 100%
rename from uview-ui/components/u-table/u-table.vue
rename to uview-components/uview-ui/components/u-table/u-table.vue
diff --git a/uview-ui/components/u-tabs-item/props.js b/uview-components/uview-ui/components/u-tabs-item/props.js
similarity index 100%
rename from uview-ui/components/u-tabs-item/props.js
rename to uview-components/uview-ui/components/u-tabs-item/props.js
diff --git a/uview-ui/components/u-tabs-item/u-tabs-item.vue b/uview-components/uview-ui/components/u-tabs-item/u-tabs-item.vue
similarity index 100%
rename from uview-ui/components/u-tabs-item/u-tabs-item.vue
rename to uview-components/uview-ui/components/u-tabs-item/u-tabs-item.vue
diff --git a/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue b/uview-components/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue
similarity index 100%
rename from uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue
rename to uview-components/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue
diff --git a/uview-ui/components/u-tabs/props.js b/uview-components/uview-ui/components/u-tabs/props.js
similarity index 100%
rename from uview-ui/components/u-tabs/props.js
rename to uview-components/uview-ui/components/u-tabs/props.js
diff --git a/uview-ui/components/u-tabs/u-tabs.vue b/uview-components/uview-ui/components/u-tabs/u-tabs.vue
similarity index 100%
rename from uview-ui/components/u-tabs/u-tabs.vue
rename to uview-components/uview-ui/components/u-tabs/u-tabs.vue
diff --git a/uview-ui/components/u-tag/props.js b/uview-components/uview-ui/components/u-tag/props.js
similarity index 100%
rename from uview-ui/components/u-tag/props.js
rename to uview-components/uview-ui/components/u-tag/props.js
diff --git a/uview-ui/components/u-tag/u-tag.vue b/uview-components/uview-ui/components/u-tag/u-tag.vue
similarity index 100%
rename from uview-ui/components/u-tag/u-tag.vue
rename to uview-components/uview-ui/components/u-tag/u-tag.vue
diff --git a/uview-ui/components/u-td/props.js b/uview-components/uview-ui/components/u-td/props.js
similarity index 100%
rename from uview-ui/components/u-td/props.js
rename to uview-components/uview-ui/components/u-td/props.js
diff --git a/uview-ui/components/u-td/u-td.vue b/uview-components/uview-ui/components/u-td/u-td.vue
similarity index 100%
rename from uview-ui/components/u-td/u-td.vue
rename to uview-components/uview-ui/components/u-td/u-td.vue
diff --git a/uview-ui/components/u-text/props.js b/uview-components/uview-ui/components/u-text/props.js
similarity index 100%
rename from uview-ui/components/u-text/props.js
rename to uview-components/uview-ui/components/u-text/props.js
diff --git a/uview-ui/components/u-text/u-text.vue b/uview-components/uview-ui/components/u-text/u-text.vue
similarity index 100%
rename from uview-ui/components/u-text/u-text.vue
rename to uview-components/uview-ui/components/u-text/u-text.vue
diff --git a/uview-ui/components/u-text/value.js b/uview-components/uview-ui/components/u-text/value.js
similarity index 100%
rename from uview-ui/components/u-text/value.js
rename to uview-components/uview-ui/components/u-text/value.js
diff --git a/uview-ui/components/u-textarea/props.js b/uview-components/uview-ui/components/u-textarea/props.js
similarity index 100%
rename from uview-ui/components/u-textarea/props.js
rename to uview-components/uview-ui/components/u-textarea/props.js
diff --git a/uview-ui/components/u-textarea/u-textarea.vue b/uview-components/uview-ui/components/u-textarea/u-textarea.vue
similarity index 100%
rename from uview-ui/components/u-textarea/u-textarea.vue
rename to uview-components/uview-ui/components/u-textarea/u-textarea.vue
diff --git a/uview-ui/components/u-th/u-th.vue b/uview-components/uview-ui/components/u-th/u-th.vue
similarity index 100%
rename from uview-ui/components/u-th/u-th.vue
rename to uview-components/uview-ui/components/u-th/u-th.vue
diff --git a/uview-ui/components/u-time-line-item/u-time-line-item.vue b/uview-components/uview-ui/components/u-time-line-item/u-time-line-item.vue
similarity index 100%
rename from uview-ui/components/u-time-line-item/u-time-line-item.vue
rename to uview-components/uview-ui/components/u-time-line-item/u-time-line-item.vue
diff --git a/uview-ui/components/u-time-line/u-time-line.vue b/uview-components/uview-ui/components/u-time-line/u-time-line.vue
similarity index 100%
rename from uview-ui/components/u-time-line/u-time-line.vue
rename to uview-components/uview-ui/components/u-time-line/u-time-line.vue
diff --git a/uview-ui/components/u-toast/u-toast.vue b/uview-components/uview-ui/components/u-toast/u-toast.vue
similarity index 100%
rename from uview-ui/components/u-toast/u-toast.vue
rename to uview-components/uview-ui/components/u-toast/u-toast.vue
diff --git a/uview-ui/components/u-toolbar/props.js b/uview-components/uview-ui/components/u-toolbar/props.js
similarity index 100%
rename from uview-ui/components/u-toolbar/props.js
rename to uview-components/uview-ui/components/u-toolbar/props.js
diff --git a/uview-ui/components/u-toolbar/u-toolbar.vue b/uview-components/uview-ui/components/u-toolbar/u-toolbar.vue
similarity index 100%
rename from uview-ui/components/u-toolbar/u-toolbar.vue
rename to uview-components/uview-ui/components/u-toolbar/u-toolbar.vue
diff --git a/uview-ui/components/u-tooltip/clipboard.min.js b/uview-components/uview-ui/components/u-tooltip/clipboard.min.js
similarity index 100%
rename from uview-ui/components/u-tooltip/clipboard.min.js
rename to uview-components/uview-ui/components/u-tooltip/clipboard.min.js
diff --git a/uview-ui/components/u-tooltip/props.js b/uview-components/uview-ui/components/u-tooltip/props.js
similarity index 100%
rename from uview-ui/components/u-tooltip/props.js
rename to uview-components/uview-ui/components/u-tooltip/props.js
diff --git a/uview-ui/components/u-tooltip/u-tooltip.vue b/uview-components/uview-ui/components/u-tooltip/u-tooltip.vue
similarity index 100%
rename from uview-ui/components/u-tooltip/u-tooltip.vue
rename to uview-components/uview-ui/components/u-tooltip/u-tooltip.vue
diff --git a/uview-ui/components/u-top-tips/u-top-tips.vue b/uview-components/uview-ui/components/u-top-tips/u-top-tips.vue
similarity index 100%
rename from uview-ui/components/u-top-tips/u-top-tips.vue
rename to uview-components/uview-ui/components/u-top-tips/u-top-tips.vue
diff --git a/uview-ui/components/u-tr/props.js b/uview-components/uview-ui/components/u-tr/props.js
similarity index 100%
rename from uview-ui/components/u-tr/props.js
rename to uview-components/uview-ui/components/u-tr/props.js
diff --git a/uview-ui/components/u-tr/u-tr.vue b/uview-components/uview-ui/components/u-tr/u-tr.vue
similarity index 100%
rename from uview-ui/components/u-tr/u-tr.vue
rename to uview-components/uview-ui/components/u-tr/u-tr.vue
diff --git a/uview-ui/components/u-transition/nvue.ani-map.js b/uview-components/uview-ui/components/u-transition/nvue.ani-map.js
similarity index 100%
rename from uview-ui/components/u-transition/nvue.ani-map.js
rename to uview-components/uview-ui/components/u-transition/nvue.ani-map.js
diff --git a/uview-ui/components/u-transition/props.js b/uview-components/uview-ui/components/u-transition/props.js
similarity index 100%
rename from uview-ui/components/u-transition/props.js
rename to uview-components/uview-ui/components/u-transition/props.js
diff --git a/uview-ui/components/u-transition/transition.js b/uview-components/uview-ui/components/u-transition/transition.js
similarity index 100%
rename from uview-ui/components/u-transition/transition.js
rename to uview-components/uview-ui/components/u-transition/transition.js
diff --git a/uview-ui/components/u-transition/u-transition.vue b/uview-components/uview-ui/components/u-transition/u-transition.vue
similarity index 100%
rename from uview-ui/components/u-transition/u-transition.vue
rename to uview-components/uview-ui/components/u-transition/u-transition.vue
diff --git a/uview-ui/components/u-transition/vue.ani-style.scss b/uview-components/uview-ui/components/u-transition/vue.ani-style.scss
similarity index 100%
rename from uview-ui/components/u-transition/vue.ani-style.scss
rename to uview-components/uview-ui/components/u-transition/vue.ani-style.scss
diff --git a/uview-ui/components/u-upload/mixin.js b/uview-components/uview-ui/components/u-upload/mixin.js
similarity index 100%
rename from uview-ui/components/u-upload/mixin.js
rename to uview-components/uview-ui/components/u-upload/mixin.js
diff --git a/uview-ui/components/u-upload/props.js b/uview-components/uview-ui/components/u-upload/props.js
similarity index 100%
rename from uview-ui/components/u-upload/props.js
rename to uview-components/uview-ui/components/u-upload/props.js
diff --git a/uview-ui/components/u-upload/u-upload.vue b/uview-components/uview-ui/components/u-upload/u-upload.vue
similarity index 100%
rename from uview-ui/components/u-upload/u-upload.vue
rename to uview-components/uview-ui/components/u-upload/u-upload.vue
diff --git a/uview-ui/components/u-upload/utils.js b/uview-components/uview-ui/components/u-upload/utils.js
similarity index 100%
rename from uview-ui/components/u-upload/utils.js
rename to uview-components/uview-ui/components/u-upload/utils.js
diff --git a/uview-ui/components/u-verification-code/u-verification-code.vue b/uview-components/uview-ui/components/u-verification-code/u-verification-code.vue
similarity index 100%
rename from uview-ui/components/u-verification-code/u-verification-code.vue
rename to uview-components/uview-ui/components/u-verification-code/u-verification-code.vue
diff --git a/uview-ui/components/u-waterfall/u-waterfall.vue b/uview-components/uview-ui/components/u-waterfall/u-waterfall.vue
similarity index 100%
rename from uview-ui/components/u-waterfall/u-waterfall.vue
rename to uview-components/uview-ui/components/u-waterfall/u-waterfall.vue
diff --git a/uview-ui/components/uview-ui/uview-ui.vue b/uview-components/uview-ui/components/uview-ui/uview-ui.vue
similarity index 100%
rename from uview-ui/components/uview-ui/uview-ui.vue
rename to uview-components/uview-ui/components/uview-ui/uview-ui.vue
diff --git a/uview-ui/iconfont.css b/uview-components/uview-ui/iconfont.css
similarity index 100%
rename from uview-ui/iconfont.css
rename to uview-components/uview-ui/iconfont.css
diff --git a/uview-ui/index.js b/uview-components/uview-ui/index.js
similarity index 98%
rename from uview-ui/index.js
rename to uview-components/uview-ui/index.js
index 932d14d..6ee037f 100644
--- a/uview-ui/index.js
+++ b/uview-components/uview-ui/index.js
@@ -1,3 +1,4 @@
+import '../../uview-components/uview-ui/theme.scss'
 // 寮曞叆鍏ㄥ眬mixin
 import mixin from './libs/mixin/mixin.js'
 // 寮曞叆鍏充簬鏄惁mixin闆嗘垚灏忕▼搴忓垎浜殑閰嶇疆
diff --git a/uview-ui/index.scss b/uview-components/uview-ui/index.scss
similarity index 100%
rename from uview-ui/index.scss
rename to uview-components/uview-ui/index.scss
diff --git a/uview-ui/libs/config/color.js b/uview-components/uview-ui/libs/config/color.js
similarity index 100%
rename from uview-ui/libs/config/color.js
rename to uview-components/uview-ui/libs/config/color.js
diff --git a/uview-ui/libs/config/config.js b/uview-components/uview-ui/libs/config/config.js
similarity index 100%
rename from uview-ui/libs/config/config.js
rename to uview-components/uview-ui/libs/config/config.js
diff --git a/uview-ui/libs/config/props.js b/uview-components/uview-ui/libs/config/props.js
similarity index 100%
rename from uview-ui/libs/config/props.js
rename to uview-components/uview-ui/libs/config/props.js
diff --git a/uview-ui/libs/config/props/actionSheet.js b/uview-components/uview-ui/libs/config/props/actionSheet.js
similarity index 100%
rename from uview-ui/libs/config/props/actionSheet.js
rename to uview-components/uview-ui/libs/config/props/actionSheet.js
diff --git a/uview-ui/libs/config/props/album.js b/uview-components/uview-ui/libs/config/props/album.js
similarity index 100%
rename from uview-ui/libs/config/props/album.js
rename to uview-components/uview-ui/libs/config/props/album.js
diff --git a/uview-ui/libs/config/props/alert.js b/uview-components/uview-ui/libs/config/props/alert.js
similarity index 100%
rename from uview-ui/libs/config/props/alert.js
rename to uview-components/uview-ui/libs/config/props/alert.js
diff --git a/uview-ui/libs/config/props/avatar.js b/uview-components/uview-ui/libs/config/props/avatar.js
similarity index 100%
rename from uview-ui/libs/config/props/avatar.js
rename to uview-components/uview-ui/libs/config/props/avatar.js
diff --git a/uview-ui/libs/config/props/avatarGroup.js b/uview-components/uview-ui/libs/config/props/avatarGroup.js
similarity index 100%
rename from uview-ui/libs/config/props/avatarGroup.js
rename to uview-components/uview-ui/libs/config/props/avatarGroup.js
diff --git a/uview-ui/libs/config/props/backtop.js b/uview-components/uview-ui/libs/config/props/backtop.js
similarity index 100%
rename from uview-ui/libs/config/props/backtop.js
rename to uview-components/uview-ui/libs/config/props/backtop.js
diff --git a/uview-ui/libs/config/props/badge.js b/uview-components/uview-ui/libs/config/props/badge.js
similarity index 100%
rename from uview-ui/libs/config/props/badge.js
rename to uview-components/uview-ui/libs/config/props/badge.js
diff --git a/uview-ui/libs/config/props/button.js b/uview-components/uview-ui/libs/config/props/button.js
similarity index 100%
rename from uview-ui/libs/config/props/button.js
rename to uview-components/uview-ui/libs/config/props/button.js
diff --git a/uview-ui/libs/config/props/calendar.js b/uview-components/uview-ui/libs/config/props/calendar.js
similarity index 100%
rename from uview-ui/libs/config/props/calendar.js
rename to uview-components/uview-ui/libs/config/props/calendar.js
diff --git a/uview-ui/libs/config/props/carKeyboard.js b/uview-components/uview-ui/libs/config/props/carKeyboard.js
similarity index 100%
rename from uview-ui/libs/config/props/carKeyboard.js
rename to uview-components/uview-ui/libs/config/props/carKeyboard.js
diff --git a/uview-ui/libs/config/props/cell.js b/uview-components/uview-ui/libs/config/props/cell.js
similarity index 100%
rename from uview-ui/libs/config/props/cell.js
rename to uview-components/uview-ui/libs/config/props/cell.js
diff --git a/uview-ui/libs/config/props/cellGroup.js b/uview-components/uview-ui/libs/config/props/cellGroup.js
similarity index 100%
rename from uview-ui/libs/config/props/cellGroup.js
rename to uview-components/uview-ui/libs/config/props/cellGroup.js
diff --git a/uview-ui/libs/config/props/checkbox.js b/uview-components/uview-ui/libs/config/props/checkbox.js
similarity index 100%
rename from uview-ui/libs/config/props/checkbox.js
rename to uview-components/uview-ui/libs/config/props/checkbox.js
diff --git a/uview-ui/libs/config/props/checkboxGroup.js b/uview-components/uview-ui/libs/config/props/checkboxGroup.js
similarity index 100%
rename from uview-ui/libs/config/props/checkboxGroup.js
rename to uview-components/uview-ui/libs/config/props/checkboxGroup.js
diff --git a/uview-ui/libs/config/props/circleProgress.js b/uview-components/uview-ui/libs/config/props/circleProgress.js
similarity index 100%
rename from uview-ui/libs/config/props/circleProgress.js
rename to uview-components/uview-ui/libs/config/props/circleProgress.js
diff --git a/uview-ui/libs/config/props/code.js b/uview-components/uview-ui/libs/config/props/code.js
similarity index 100%
rename from uview-ui/libs/config/props/code.js
rename to uview-components/uview-ui/libs/config/props/code.js
diff --git a/uview-ui/libs/config/props/codeInput.js b/uview-components/uview-ui/libs/config/props/codeInput.js
similarity index 100%
rename from uview-ui/libs/config/props/codeInput.js
rename to uview-components/uview-ui/libs/config/props/codeInput.js
diff --git a/uview-ui/libs/config/props/col.js b/uview-components/uview-ui/libs/config/props/col.js
similarity index 100%
rename from uview-ui/libs/config/props/col.js
rename to uview-components/uview-ui/libs/config/props/col.js
diff --git a/uview-ui/libs/config/props/collapse.js b/uview-components/uview-ui/libs/config/props/collapse.js
similarity index 100%
rename from uview-ui/libs/config/props/collapse.js
rename to uview-components/uview-ui/libs/config/props/collapse.js
diff --git a/uview-ui/libs/config/props/collapseItem.js b/uview-components/uview-ui/libs/config/props/collapseItem.js
similarity index 100%
rename from uview-ui/libs/config/props/collapseItem.js
rename to uview-components/uview-ui/libs/config/props/collapseItem.js
diff --git a/uview-ui/libs/config/props/columnNotice.js b/uview-components/uview-ui/libs/config/props/columnNotice.js
similarity index 100%
rename from uview-ui/libs/config/props/columnNotice.js
rename to uview-components/uview-ui/libs/config/props/columnNotice.js
diff --git a/uview-ui/libs/config/props/countDown.js b/uview-components/uview-ui/libs/config/props/countDown.js
similarity index 100%
rename from uview-ui/libs/config/props/countDown.js
rename to uview-components/uview-ui/libs/config/props/countDown.js
diff --git a/uview-ui/libs/config/props/countTo.js b/uview-components/uview-ui/libs/config/props/countTo.js
similarity index 100%
rename from uview-ui/libs/config/props/countTo.js
rename to uview-components/uview-ui/libs/config/props/countTo.js
diff --git a/uview-ui/libs/config/props/datetimePicker.js b/uview-components/uview-ui/libs/config/props/datetimePicker.js
similarity index 100%
rename from uview-ui/libs/config/props/datetimePicker.js
rename to uview-components/uview-ui/libs/config/props/datetimePicker.js
diff --git a/uview-ui/libs/config/props/divider.js b/uview-components/uview-ui/libs/config/props/divider.js
similarity index 100%
rename from uview-ui/libs/config/props/divider.js
rename to uview-components/uview-ui/libs/config/props/divider.js
diff --git a/uview-ui/libs/config/props/empty.js b/uview-components/uview-ui/libs/config/props/empty.js
similarity index 100%
rename from uview-ui/libs/config/props/empty.js
rename to uview-components/uview-ui/libs/config/props/empty.js
diff --git a/uview-ui/libs/config/props/form.js b/uview-components/uview-ui/libs/config/props/form.js
similarity index 100%
rename from uview-ui/libs/config/props/form.js
rename to uview-components/uview-ui/libs/config/props/form.js
diff --git a/uview-ui/libs/config/props/formItem.js b/uview-components/uview-ui/libs/config/props/formItem.js
similarity index 100%
rename from uview-ui/libs/config/props/formItem.js
rename to uview-components/uview-ui/libs/config/props/formItem.js
diff --git a/uview-ui/libs/config/props/gap.js b/uview-components/uview-ui/libs/config/props/gap.js
similarity index 100%
rename from uview-ui/libs/config/props/gap.js
rename to uview-components/uview-ui/libs/config/props/gap.js
diff --git a/uview-ui/libs/config/props/grid.js b/uview-components/uview-ui/libs/config/props/grid.js
similarity index 100%
rename from uview-ui/libs/config/props/grid.js
rename to uview-components/uview-ui/libs/config/props/grid.js
diff --git a/uview-ui/libs/config/props/gridItem.js b/uview-components/uview-ui/libs/config/props/gridItem.js
similarity index 100%
rename from uview-ui/libs/config/props/gridItem.js
rename to uview-components/uview-ui/libs/config/props/gridItem.js
diff --git a/uview-ui/libs/config/props/icon.js b/uview-components/uview-ui/libs/config/props/icon.js
similarity index 100%
rename from uview-ui/libs/config/props/icon.js
rename to uview-components/uview-ui/libs/config/props/icon.js
diff --git a/uview-ui/libs/config/props/image.js b/uview-components/uview-ui/libs/config/props/image.js
similarity index 100%
rename from uview-ui/libs/config/props/image.js
rename to uview-components/uview-ui/libs/config/props/image.js
diff --git a/uview-ui/libs/config/props/indexAnchor.js b/uview-components/uview-ui/libs/config/props/indexAnchor.js
similarity index 100%
rename from uview-ui/libs/config/props/indexAnchor.js
rename to uview-components/uview-ui/libs/config/props/indexAnchor.js
diff --git a/uview-ui/libs/config/props/indexList.js b/uview-components/uview-ui/libs/config/props/indexList.js
similarity index 100%
rename from uview-ui/libs/config/props/indexList.js
rename to uview-components/uview-ui/libs/config/props/indexList.js
diff --git a/uview-ui/libs/config/props/input.js b/uview-components/uview-ui/libs/config/props/input.js
similarity index 100%
rename from uview-ui/libs/config/props/input.js
rename to uview-components/uview-ui/libs/config/props/input.js
diff --git a/uview-ui/libs/config/props/keyboard.js b/uview-components/uview-ui/libs/config/props/keyboard.js
similarity index 100%
rename from uview-ui/libs/config/props/keyboard.js
rename to uview-components/uview-ui/libs/config/props/keyboard.js
diff --git a/uview-ui/libs/config/props/line.js b/uview-components/uview-ui/libs/config/props/line.js
similarity index 100%
rename from uview-ui/libs/config/props/line.js
rename to uview-components/uview-ui/libs/config/props/line.js
diff --git a/uview-ui/libs/config/props/lineProgress.js b/uview-components/uview-ui/libs/config/props/lineProgress.js
similarity index 100%
rename from uview-ui/libs/config/props/lineProgress.js
rename to uview-components/uview-ui/libs/config/props/lineProgress.js
diff --git a/uview-ui/libs/config/props/link.js b/uview-components/uview-ui/libs/config/props/link.js
similarity index 100%
rename from uview-ui/libs/config/props/link.js
rename to uview-components/uview-ui/libs/config/props/link.js
diff --git a/uview-ui/libs/config/props/list.js b/uview-components/uview-ui/libs/config/props/list.js
similarity index 100%
rename from uview-ui/libs/config/props/list.js
rename to uview-components/uview-ui/libs/config/props/list.js
diff --git a/uview-ui/libs/config/props/listItem.js b/uview-components/uview-ui/libs/config/props/listItem.js
similarity index 100%
rename from uview-ui/libs/config/props/listItem.js
rename to uview-components/uview-ui/libs/config/props/listItem.js
diff --git a/uview-ui/libs/config/props/loadingIcon.js b/uview-components/uview-ui/libs/config/props/loadingIcon.js
similarity index 100%
rename from uview-ui/libs/config/props/loadingIcon.js
rename to uview-components/uview-ui/libs/config/props/loadingIcon.js
diff --git a/uview-ui/libs/config/props/loadingPage.js b/uview-components/uview-ui/libs/config/props/loadingPage.js
similarity index 100%
rename from uview-ui/libs/config/props/loadingPage.js
rename to uview-components/uview-ui/libs/config/props/loadingPage.js
diff --git a/uview-ui/libs/config/props/loadmore.js b/uview-components/uview-ui/libs/config/props/loadmore.js
similarity index 100%
rename from uview-ui/libs/config/props/loadmore.js
rename to uview-components/uview-ui/libs/config/props/loadmore.js
diff --git a/uview-ui/libs/config/props/modal.js b/uview-components/uview-ui/libs/config/props/modal.js
similarity index 100%
rename from uview-ui/libs/config/props/modal.js
rename to uview-components/uview-ui/libs/config/props/modal.js
diff --git a/uview-ui/libs/config/props/navbar.js b/uview-components/uview-ui/libs/config/props/navbar.js
similarity index 100%
rename from uview-ui/libs/config/props/navbar.js
rename to uview-components/uview-ui/libs/config/props/navbar.js
diff --git a/uview-ui/libs/config/props/noNetwork.js b/uview-components/uview-ui/libs/config/props/noNetwork.js
similarity index 100%
rename from uview-ui/libs/config/props/noNetwork.js
rename to uview-components/uview-ui/libs/config/props/noNetwork.js
diff --git a/uview-ui/libs/config/props/noticeBar.js b/uview-components/uview-ui/libs/config/props/noticeBar.js
similarity index 100%
rename from uview-ui/libs/config/props/noticeBar.js
rename to uview-components/uview-ui/libs/config/props/noticeBar.js
diff --git a/uview-ui/libs/config/props/notify.js b/uview-components/uview-ui/libs/config/props/notify.js
similarity index 100%
rename from uview-ui/libs/config/props/notify.js
rename to uview-components/uview-ui/libs/config/props/notify.js
diff --git a/uview-ui/libs/config/props/numberBox.js b/uview-components/uview-ui/libs/config/props/numberBox.js
similarity index 100%
rename from uview-ui/libs/config/props/numberBox.js
rename to uview-components/uview-ui/libs/config/props/numberBox.js
diff --git a/uview-ui/libs/config/props/numberKeyboard.js b/uview-components/uview-ui/libs/config/props/numberKeyboard.js
similarity index 100%
rename from uview-ui/libs/config/props/numberKeyboard.js
rename to uview-components/uview-ui/libs/config/props/numberKeyboard.js
diff --git a/uview-ui/libs/config/props/overlay.js b/uview-components/uview-ui/libs/config/props/overlay.js
similarity index 100%
rename from uview-ui/libs/config/props/overlay.js
rename to uview-components/uview-ui/libs/config/props/overlay.js
diff --git a/uview-ui/libs/config/props/parse.js b/uview-components/uview-ui/libs/config/props/parse.js
similarity index 100%
rename from uview-ui/libs/config/props/parse.js
rename to uview-components/uview-ui/libs/config/props/parse.js
diff --git a/uview-ui/libs/config/props/picker.js b/uview-components/uview-ui/libs/config/props/picker.js
similarity index 100%
rename from uview-ui/libs/config/props/picker.js
rename to uview-components/uview-ui/libs/config/props/picker.js
diff --git a/uview-ui/libs/config/props/popup.js b/uview-components/uview-ui/libs/config/props/popup.js
similarity index 100%
rename from uview-ui/libs/config/props/popup.js
rename to uview-components/uview-ui/libs/config/props/popup.js
diff --git a/uview-ui/libs/config/props/radio.js b/uview-components/uview-ui/libs/config/props/radio.js
similarity index 100%
rename from uview-ui/libs/config/props/radio.js
rename to uview-components/uview-ui/libs/config/props/radio.js
diff --git a/uview-ui/libs/config/props/radioGroup.js b/uview-components/uview-ui/libs/config/props/radioGroup.js
similarity index 100%
rename from uview-ui/libs/config/props/radioGroup.js
rename to uview-components/uview-ui/libs/config/props/radioGroup.js
diff --git a/uview-ui/libs/config/props/rate.js b/uview-components/uview-ui/libs/config/props/rate.js
similarity index 100%
rename from uview-ui/libs/config/props/rate.js
rename to uview-components/uview-ui/libs/config/props/rate.js
diff --git a/uview-ui/libs/config/props/readMore.js b/uview-components/uview-ui/libs/config/props/readMore.js
similarity index 100%
rename from uview-ui/libs/config/props/readMore.js
rename to uview-components/uview-ui/libs/config/props/readMore.js
diff --git a/uview-ui/libs/config/props/row.js b/uview-components/uview-ui/libs/config/props/row.js
similarity index 100%
rename from uview-ui/libs/config/props/row.js
rename to uview-components/uview-ui/libs/config/props/row.js
diff --git a/uview-ui/libs/config/props/rowNotice.js b/uview-components/uview-ui/libs/config/props/rowNotice.js
similarity index 100%
rename from uview-ui/libs/config/props/rowNotice.js
rename to uview-components/uview-ui/libs/config/props/rowNotice.js
diff --git a/uview-ui/libs/config/props/scrollList.js b/uview-components/uview-ui/libs/config/props/scrollList.js
similarity index 100%
rename from uview-ui/libs/config/props/scrollList.js
rename to uview-components/uview-ui/libs/config/props/scrollList.js
diff --git a/uview-ui/libs/config/props/search.js b/uview-components/uview-ui/libs/config/props/search.js
similarity index 100%
rename from uview-ui/libs/config/props/search.js
rename to uview-components/uview-ui/libs/config/props/search.js
diff --git a/uview-ui/libs/config/props/section.js b/uview-components/uview-ui/libs/config/props/section.js
similarity index 100%
rename from uview-ui/libs/config/props/section.js
rename to uview-components/uview-ui/libs/config/props/section.js
diff --git a/uview-ui/libs/config/props/skeleton.js b/uview-components/uview-ui/libs/config/props/skeleton.js
similarity index 100%
rename from uview-ui/libs/config/props/skeleton.js
rename to uview-components/uview-ui/libs/config/props/skeleton.js
diff --git a/uview-ui/libs/config/props/slider.js b/uview-components/uview-ui/libs/config/props/slider.js
similarity index 100%
rename from uview-ui/libs/config/props/slider.js
rename to uview-components/uview-ui/libs/config/props/slider.js
diff --git a/uview-ui/libs/config/props/statusBar.js b/uview-components/uview-ui/libs/config/props/statusBar.js
similarity index 100%
rename from uview-ui/libs/config/props/statusBar.js
rename to uview-components/uview-ui/libs/config/props/statusBar.js
diff --git a/uview-ui/libs/config/props/steps.js b/uview-components/uview-ui/libs/config/props/steps.js
similarity index 100%
rename from uview-ui/libs/config/props/steps.js
rename to uview-components/uview-ui/libs/config/props/steps.js
diff --git a/uview-ui/libs/config/props/stepsItem.js b/uview-components/uview-ui/libs/config/props/stepsItem.js
similarity index 100%
rename from uview-ui/libs/config/props/stepsItem.js
rename to uview-components/uview-ui/libs/config/props/stepsItem.js
diff --git a/uview-ui/libs/config/props/sticky.js b/uview-components/uview-ui/libs/config/props/sticky.js
similarity index 100%
rename from uview-ui/libs/config/props/sticky.js
rename to uview-components/uview-ui/libs/config/props/sticky.js
diff --git a/uview-ui/libs/config/props/subsection.js b/uview-components/uview-ui/libs/config/props/subsection.js
similarity index 100%
rename from uview-ui/libs/config/props/subsection.js
rename to uview-components/uview-ui/libs/config/props/subsection.js
diff --git a/uview-ui/libs/config/props/swipeAction.js b/uview-components/uview-ui/libs/config/props/swipeAction.js
similarity index 100%
rename from uview-ui/libs/config/props/swipeAction.js
rename to uview-components/uview-ui/libs/config/props/swipeAction.js
diff --git a/uview-ui/libs/config/props/swipeActionItem.js b/uview-components/uview-ui/libs/config/props/swipeActionItem.js
similarity index 100%
rename from uview-ui/libs/config/props/swipeActionItem.js
rename to uview-components/uview-ui/libs/config/props/swipeActionItem.js
diff --git a/uview-ui/libs/config/props/swiper.js b/uview-components/uview-ui/libs/config/props/swiper.js
similarity index 100%
rename from uview-ui/libs/config/props/swiper.js
rename to uview-components/uview-ui/libs/config/props/swiper.js
diff --git a/uview-ui/libs/config/props/swipterIndicator.js b/uview-components/uview-ui/libs/config/props/swipterIndicator.js
similarity index 100%
rename from uview-ui/libs/config/props/swipterIndicator.js
rename to uview-components/uview-ui/libs/config/props/swipterIndicator.js
diff --git a/uview-ui/libs/config/props/switch.js b/uview-components/uview-ui/libs/config/props/switch.js
similarity index 100%
rename from uview-ui/libs/config/props/switch.js
rename to uview-components/uview-ui/libs/config/props/switch.js
diff --git a/uview-ui/libs/config/props/tabbar.js b/uview-components/uview-ui/libs/config/props/tabbar.js
similarity index 100%
rename from uview-ui/libs/config/props/tabbar.js
rename to uview-components/uview-ui/libs/config/props/tabbar.js
diff --git a/uview-ui/libs/config/props/tabbarItem.js b/uview-components/uview-ui/libs/config/props/tabbarItem.js
similarity index 100%
rename from uview-ui/libs/config/props/tabbarItem.js
rename to uview-components/uview-ui/libs/config/props/tabbarItem.js
diff --git a/uview-ui/libs/config/props/tabs.js b/uview-components/uview-ui/libs/config/props/tabs.js
similarity index 100%
rename from uview-ui/libs/config/props/tabs.js
rename to uview-components/uview-ui/libs/config/props/tabs.js
diff --git a/uview-ui/libs/config/props/tag.js b/uview-components/uview-ui/libs/config/props/tag.js
similarity index 100%
rename from uview-ui/libs/config/props/tag.js
rename to uview-components/uview-ui/libs/config/props/tag.js
diff --git a/uview-ui/libs/config/props/text.js b/uview-components/uview-ui/libs/config/props/text.js
similarity index 100%
rename from uview-ui/libs/config/props/text.js
rename to uview-components/uview-ui/libs/config/props/text.js
diff --git a/uview-ui/libs/config/props/textarea.js b/uview-components/uview-ui/libs/config/props/textarea.js
similarity index 100%
rename from uview-ui/libs/config/props/textarea.js
rename to uview-components/uview-ui/libs/config/props/textarea.js
diff --git a/uview-ui/libs/config/props/toast.js b/uview-components/uview-ui/libs/config/props/toast.js
similarity index 100%
rename from uview-ui/libs/config/props/toast.js
rename to uview-components/uview-ui/libs/config/props/toast.js
diff --git a/uview-ui/libs/config/props/toolbar.js b/uview-components/uview-ui/libs/config/props/toolbar.js
similarity index 100%
rename from uview-ui/libs/config/props/toolbar.js
rename to uview-components/uview-ui/libs/config/props/toolbar.js
diff --git a/uview-ui/libs/config/props/tooltip.js b/uview-components/uview-ui/libs/config/props/tooltip.js
similarity index 100%
rename from uview-ui/libs/config/props/tooltip.js
rename to uview-components/uview-ui/libs/config/props/tooltip.js
diff --git a/uview-ui/libs/config/props/transition.js b/uview-components/uview-ui/libs/config/props/transition.js
similarity index 100%
rename from uview-ui/libs/config/props/transition.js
rename to uview-components/uview-ui/libs/config/props/transition.js
diff --git a/uview-ui/libs/config/props/upload.js b/uview-components/uview-ui/libs/config/props/upload.js
similarity index 100%
rename from uview-ui/libs/config/props/upload.js
rename to uview-components/uview-ui/libs/config/props/upload.js
diff --git a/uview-ui/libs/config/zIndex.js b/uview-components/uview-ui/libs/config/zIndex.js
similarity index 100%
rename from uview-ui/libs/config/zIndex.js
rename to uview-components/uview-ui/libs/config/zIndex.js
diff --git a/uview-ui/libs/css/color.scss b/uview-components/uview-ui/libs/css/color.scss
similarity index 100%
rename from uview-ui/libs/css/color.scss
rename to uview-components/uview-ui/libs/css/color.scss
diff --git a/uview-ui/libs/css/common.scss b/uview-components/uview-ui/libs/css/common.scss
similarity index 100%
rename from uview-ui/libs/css/common.scss
rename to uview-components/uview-ui/libs/css/common.scss
diff --git a/uview-ui/libs/css/components.scss b/uview-components/uview-ui/libs/css/components.scss
similarity index 100%
rename from uview-ui/libs/css/components.scss
rename to uview-components/uview-ui/libs/css/components.scss
diff --git a/uview-ui/libs/css/flex.scss b/uview-components/uview-ui/libs/css/flex.scss
similarity index 100%
rename from uview-ui/libs/css/flex.scss
rename to uview-components/uview-ui/libs/css/flex.scss
diff --git a/uview-ui/libs/css/h5.scss b/uview-components/uview-ui/libs/css/h5.scss
similarity index 100%
rename from uview-ui/libs/css/h5.scss
rename to uview-components/uview-ui/libs/css/h5.scss
diff --git a/uview-ui/libs/css/mixin.scss b/uview-components/uview-ui/libs/css/mixin.scss
similarity index 100%
rename from uview-ui/libs/css/mixin.scss
rename to uview-components/uview-ui/libs/css/mixin.scss
diff --git a/uview-ui/libs/css/mp.scss b/uview-components/uview-ui/libs/css/mp.scss
similarity index 100%
rename from uview-ui/libs/css/mp.scss
rename to uview-components/uview-ui/libs/css/mp.scss
diff --git a/uview-ui/libs/css/nvue.scss b/uview-components/uview-ui/libs/css/nvue.scss
similarity index 100%
rename from uview-ui/libs/css/nvue.scss
rename to uview-components/uview-ui/libs/css/nvue.scss
diff --git a/uview-ui/libs/css/style.components.scss b/uview-components/uview-ui/libs/css/style.components.scss
similarity index 100%
rename from uview-ui/libs/css/style.components.scss
rename to uview-components/uview-ui/libs/css/style.components.scss
diff --git a/uview-ui/libs/css/style.h5.scss b/uview-components/uview-ui/libs/css/style.h5.scss
similarity index 100%
rename from uview-ui/libs/css/style.h5.scss
rename to uview-components/uview-ui/libs/css/style.h5.scss
diff --git a/uview-ui/libs/css/style.mp.scss b/uview-components/uview-ui/libs/css/style.mp.scss
similarity index 100%
rename from uview-ui/libs/css/style.mp.scss
rename to uview-components/uview-ui/libs/css/style.mp.scss
diff --git a/uview-ui/libs/css/style.nvue.scss b/uview-components/uview-ui/libs/css/style.nvue.scss
similarity index 100%
rename from uview-ui/libs/css/style.nvue.scss
rename to uview-components/uview-ui/libs/css/style.nvue.scss
diff --git a/uview-ui/libs/css/style.vue.scss b/uview-components/uview-ui/libs/css/style.vue.scss
similarity index 100%
rename from uview-ui/libs/css/style.vue.scss
rename to uview-components/uview-ui/libs/css/style.vue.scss
diff --git a/uview-ui/libs/css/vue.scss b/uview-components/uview-ui/libs/css/vue.scss
similarity index 100%
rename from uview-ui/libs/css/vue.scss
rename to uview-components/uview-ui/libs/css/vue.scss
diff --git a/uview-ui/libs/function/$parent.js b/uview-components/uview-ui/libs/function/$parent.js
similarity index 100%
rename from uview-ui/libs/function/$parent.js
rename to uview-components/uview-ui/libs/function/$parent.js
diff --git a/uview-ui/libs/function/addUnit.js b/uview-components/uview-ui/libs/function/addUnit.js
similarity index 100%
rename from uview-ui/libs/function/addUnit.js
rename to uview-components/uview-ui/libs/function/addUnit.js
diff --git a/uview-ui/libs/function/bem.js b/uview-components/uview-ui/libs/function/bem.js
similarity index 100%
rename from uview-ui/libs/function/bem.js
rename to uview-components/uview-ui/libs/function/bem.js
diff --git a/uview-ui/libs/function/color.js b/uview-components/uview-ui/libs/function/color.js
similarity index 100%
rename from uview-ui/libs/function/color.js
rename to uview-components/uview-ui/libs/function/color.js
diff --git a/uview-ui/libs/function/colorGradient.js b/uview-components/uview-ui/libs/function/colorGradient.js
similarity index 100%
rename from uview-ui/libs/function/colorGradient.js
rename to uview-components/uview-ui/libs/function/colorGradient.js
diff --git a/uview-ui/libs/function/debounce.js b/uview-components/uview-ui/libs/function/debounce.js
similarity index 100%
rename from uview-ui/libs/function/debounce.js
rename to uview-components/uview-ui/libs/function/debounce.js
diff --git a/uview-ui/libs/function/deepClone.js b/uview-components/uview-ui/libs/function/deepClone.js
similarity index 100%
rename from uview-ui/libs/function/deepClone.js
rename to uview-components/uview-ui/libs/function/deepClone.js
diff --git a/uview-ui/libs/function/deepMerge.js b/uview-components/uview-ui/libs/function/deepMerge.js
similarity index 100%
rename from uview-ui/libs/function/deepMerge.js
rename to uview-components/uview-ui/libs/function/deepMerge.js
diff --git a/uview-ui/libs/function/digit.js b/uview-components/uview-ui/libs/function/digit.js
similarity index 100%
rename from uview-ui/libs/function/digit.js
rename to uview-components/uview-ui/libs/function/digit.js
diff --git a/uview-ui/libs/function/getParent.js b/uview-components/uview-ui/libs/function/getParent.js
similarity index 100%
rename from uview-ui/libs/function/getParent.js
rename to uview-components/uview-ui/libs/function/getParent.js
diff --git a/uview-ui/libs/function/guid.js b/uview-components/uview-ui/libs/function/guid.js
similarity index 100%
rename from uview-ui/libs/function/guid.js
rename to uview-components/uview-ui/libs/function/guid.js
diff --git a/uview-ui/libs/function/index.js b/uview-components/uview-ui/libs/function/index.js
similarity index 100%
rename from uview-ui/libs/function/index.js
rename to uview-components/uview-ui/libs/function/index.js
diff --git a/uview-ui/libs/function/md5.js b/uview-components/uview-ui/libs/function/md5.js
similarity index 100%
rename from uview-ui/libs/function/md5.js
rename to uview-components/uview-ui/libs/function/md5.js
diff --git a/uview-ui/libs/function/platform.js b/uview-components/uview-ui/libs/function/platform.js
similarity index 100%
rename from uview-ui/libs/function/platform.js
rename to uview-components/uview-ui/libs/function/platform.js
diff --git a/uview-ui/libs/function/queryParams.js b/uview-components/uview-ui/libs/function/queryParams.js
similarity index 100%
rename from uview-ui/libs/function/queryParams.js
rename to uview-components/uview-ui/libs/function/queryParams.js
diff --git a/uview-ui/libs/function/random.js b/uview-components/uview-ui/libs/function/random.js
similarity index 100%
rename from uview-ui/libs/function/random.js
rename to uview-components/uview-ui/libs/function/random.js
diff --git a/uview-ui/libs/function/randomArray.js b/uview-components/uview-ui/libs/function/randomArray.js
similarity index 100%
rename from uview-ui/libs/function/randomArray.js
rename to uview-components/uview-ui/libs/function/randomArray.js
diff --git a/uview-ui/libs/function/route.js b/uview-components/uview-ui/libs/function/route.js
similarity index 100%
rename from uview-ui/libs/function/route.js
rename to uview-components/uview-ui/libs/function/route.js
diff --git a/uview-ui/libs/function/sys.js b/uview-components/uview-ui/libs/function/sys.js
similarity index 100%
rename from uview-ui/libs/function/sys.js
rename to uview-components/uview-ui/libs/function/sys.js
diff --git a/uview-ui/libs/function/test.js b/uview-components/uview-ui/libs/function/test.js
similarity index 100%
rename from uview-ui/libs/function/test.js
rename to uview-components/uview-ui/libs/function/test.js
diff --git a/uview-ui/libs/function/throttle.js b/uview-components/uview-ui/libs/function/throttle.js
similarity index 100%
rename from uview-ui/libs/function/throttle.js
rename to uview-components/uview-ui/libs/function/throttle.js
diff --git a/uview-ui/libs/function/timeFormat.js b/uview-components/uview-ui/libs/function/timeFormat.js
similarity index 100%
rename from uview-ui/libs/function/timeFormat.js
rename to uview-components/uview-ui/libs/function/timeFormat.js
diff --git a/uview-ui/libs/function/timeFrom.js b/uview-components/uview-ui/libs/function/timeFrom.js
similarity index 100%
rename from uview-ui/libs/function/timeFrom.js
rename to uview-components/uview-ui/libs/function/timeFrom.js
diff --git a/uview-ui/libs/function/toast.js b/uview-components/uview-ui/libs/function/toast.js
similarity index 100%
rename from uview-ui/libs/function/toast.js
rename to uview-components/uview-ui/libs/function/toast.js
diff --git a/uview-ui/libs/function/trim.js b/uview-components/uview-ui/libs/function/trim.js
similarity index 100%
rename from uview-ui/libs/function/trim.js
rename to uview-components/uview-ui/libs/function/trim.js
diff --git a/uview-ui/libs/function/type2icon.js b/uview-components/uview-ui/libs/function/type2icon.js
similarity index 100%
rename from uview-ui/libs/function/type2icon.js
rename to uview-components/uview-ui/libs/function/type2icon.js
diff --git a/uview-ui/libs/luch-request/adapters/index.js b/uview-components/uview-ui/libs/luch-request/adapters/index.js
similarity index 100%
rename from uview-ui/libs/luch-request/adapters/index.js
rename to uview-components/uview-ui/libs/luch-request/adapters/index.js
diff --git a/uview-ui/libs/luch-request/core/InterceptorManager.js b/uview-components/uview-ui/libs/luch-request/core/InterceptorManager.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/InterceptorManager.js
rename to uview-components/uview-ui/libs/luch-request/core/InterceptorManager.js
diff --git a/uview-ui/libs/luch-request/core/Request.js b/uview-components/uview-ui/libs/luch-request/core/Request.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/Request.js
rename to uview-components/uview-ui/libs/luch-request/core/Request.js
diff --git a/uview-ui/libs/luch-request/core/buildFullPath.js b/uview-components/uview-ui/libs/luch-request/core/buildFullPath.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/buildFullPath.js
rename to uview-components/uview-ui/libs/luch-request/core/buildFullPath.js
diff --git a/uview-ui/libs/luch-request/core/defaults.js b/uview-components/uview-ui/libs/luch-request/core/defaults.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/defaults.js
rename to uview-components/uview-ui/libs/luch-request/core/defaults.js
diff --git a/uview-ui/libs/luch-request/core/dispatchRequest.js b/uview-components/uview-ui/libs/luch-request/core/dispatchRequest.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/dispatchRequest.js
rename to uview-components/uview-ui/libs/luch-request/core/dispatchRequest.js
diff --git a/uview-ui/libs/luch-request/core/mergeConfig.js b/uview-components/uview-ui/libs/luch-request/core/mergeConfig.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/mergeConfig.js
rename to uview-components/uview-ui/libs/luch-request/core/mergeConfig.js
diff --git a/uview-ui/libs/luch-request/core/settle.js b/uview-components/uview-ui/libs/luch-request/core/settle.js
similarity index 100%
rename from uview-ui/libs/luch-request/core/settle.js
rename to uview-components/uview-ui/libs/luch-request/core/settle.js
diff --git a/uview-ui/libs/luch-request/helpers/buildURL.js b/uview-components/uview-ui/libs/luch-request/helpers/buildURL.js
similarity index 100%
rename from uview-ui/libs/luch-request/helpers/buildURL.js
rename to uview-components/uview-ui/libs/luch-request/helpers/buildURL.js
diff --git a/uview-ui/libs/luch-request/helpers/combineURLs.js b/uview-components/uview-ui/libs/luch-request/helpers/combineURLs.js
similarity index 100%
rename from uview-ui/libs/luch-request/helpers/combineURLs.js
rename to uview-components/uview-ui/libs/luch-request/helpers/combineURLs.js
diff --git a/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js b/uview-components/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
similarity index 100%
rename from uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
rename to uview-components/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
diff --git a/uview-ui/libs/luch-request/index.d.ts b/uview-components/uview-ui/libs/luch-request/index.d.ts
similarity index 100%
rename from uview-ui/libs/luch-request/index.d.ts
rename to uview-components/uview-ui/libs/luch-request/index.d.ts
diff --git a/uview-ui/libs/luch-request/index.js b/uview-components/uview-ui/libs/luch-request/index.js
similarity index 100%
rename from uview-ui/libs/luch-request/index.js
rename to uview-components/uview-ui/libs/luch-request/index.js
diff --git a/uview-ui/libs/luch-request/utils.js b/uview-components/uview-ui/libs/luch-request/utils.js
similarity index 100%
rename from uview-ui/libs/luch-request/utils.js
rename to uview-components/uview-ui/libs/luch-request/utils.js
diff --git a/uview-ui/libs/luch-request/utils/clone.js b/uview-components/uview-ui/libs/luch-request/utils/clone.js
similarity index 100%
rename from uview-ui/libs/luch-request/utils/clone.js
rename to uview-components/uview-ui/libs/luch-request/utils/clone.js
diff --git a/uview-ui/libs/mixin/button.js b/uview-components/uview-ui/libs/mixin/button.js
similarity index 100%
rename from uview-ui/libs/mixin/button.js
rename to uview-components/uview-ui/libs/mixin/button.js
diff --git a/uview-ui/libs/mixin/mixin.js b/uview-components/uview-ui/libs/mixin/mixin.js
similarity index 100%
rename from uview-ui/libs/mixin/mixin.js
rename to uview-components/uview-ui/libs/mixin/mixin.js
diff --git a/uview-ui/libs/mixin/mpMixin.js b/uview-components/uview-ui/libs/mixin/mpMixin.js
similarity index 100%
rename from uview-ui/libs/mixin/mpMixin.js
rename to uview-components/uview-ui/libs/mixin/mpMixin.js
diff --git a/uview-ui/libs/mixin/mpShare.js b/uview-components/uview-ui/libs/mixin/mpShare.js
similarity index 100%
rename from uview-ui/libs/mixin/mpShare.js
rename to uview-components/uview-ui/libs/mixin/mpShare.js
diff --git a/uview-ui/libs/mixin/openType.js b/uview-components/uview-ui/libs/mixin/openType.js
similarity index 100%
rename from uview-ui/libs/mixin/openType.js
rename to uview-components/uview-ui/libs/mixin/openType.js
diff --git a/uview-ui/libs/mixin/style.js b/uview-components/uview-ui/libs/mixin/style.js
similarity index 100%
rename from uview-ui/libs/mixin/style.js
rename to uview-components/uview-ui/libs/mixin/style.js
diff --git a/uview-ui/libs/mixin/touch.js b/uview-components/uview-ui/libs/mixin/touch.js
similarity index 100%
rename from uview-ui/libs/mixin/touch.js
rename to uview-components/uview-ui/libs/mixin/touch.js
diff --git a/uview-ui/libs/request/index.js b/uview-components/uview-ui/libs/request/index.js
similarity index 100%
rename from uview-ui/libs/request/index.js
rename to uview-components/uview-ui/libs/request/index.js
diff --git a/uview-ui/libs/store/index.js b/uview-components/uview-ui/libs/store/index.js
similarity index 100%
rename from uview-ui/libs/store/index.js
rename to uview-components/uview-ui/libs/store/index.js
diff --git a/uview-ui/libs/util/area.js b/uview-components/uview-ui/libs/util/area.js
similarity index 100%
rename from uview-ui/libs/util/area.js
rename to uview-components/uview-ui/libs/util/area.js
diff --git a/uview-ui/libs/util/async-validator.js b/uview-components/uview-ui/libs/util/async-validator.js
similarity index 100%
rename from uview-ui/libs/util/async-validator.js
rename to uview-components/uview-ui/libs/util/async-validator.js
diff --git a/uview-ui/libs/util/calendar.js b/uview-components/uview-ui/libs/util/calendar.js
similarity index 100%
rename from uview-ui/libs/util/calendar.js
rename to uview-components/uview-ui/libs/util/calendar.js
diff --git a/uview-ui/libs/util/city.js b/uview-components/uview-ui/libs/util/city.js
similarity index 100%
rename from uview-ui/libs/util/city.js
rename to uview-components/uview-ui/libs/util/city.js
diff --git a/uview-ui/libs/util/dayjs.js b/uview-components/uview-ui/libs/util/dayjs.js
similarity index 100%
rename from uview-ui/libs/util/dayjs.js
rename to uview-components/uview-ui/libs/util/dayjs.js
diff --git a/uview-ui/libs/util/emitter.js b/uview-components/uview-ui/libs/util/emitter.js
similarity index 100%
rename from uview-ui/libs/util/emitter.js
rename to uview-components/uview-ui/libs/util/emitter.js
diff --git a/uview-ui/libs/util/province.js b/uview-components/uview-ui/libs/util/province.js
similarity index 100%
rename from uview-ui/libs/util/province.js
rename to uview-components/uview-ui/libs/util/province.js
diff --git a/uview-ui/libs/util/route.js b/uview-components/uview-ui/libs/util/route.js
similarity index 100%
rename from uview-ui/libs/util/route.js
rename to uview-components/uview-ui/libs/util/route.js
diff --git a/uview-ui/package.json b/uview-components/uview-ui/package.json
similarity index 100%
rename from uview-ui/package.json
rename to uview-components/uview-ui/package.json
diff --git a/uview-ui/theme.scss b/uview-components/uview-ui/theme.scss
similarity index 100%
rename from uview-ui/theme.scss
rename to uview-components/uview-ui/theme.scss

--
Gitblit v1.8.0