commit 977c7c012e41f39f8e4b9f28181ec1dc07d832e1
Author: huliyong <2783385703@qq.com>
Date: Fri Sep 13 15:54:00 2024 +0800
上传
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e23bc12
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+.idea
+package-lock.json
+node_modules/
+unpackage/
+.hbuilderx
+.vite
\ No newline at end of file
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..5676699
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,22 @@
+
+
+
diff --git a/README.en.md b/README.en.md
new file mode 100644
index 0000000..fff4890
--- /dev/null
+++ b/README.en.md
@@ -0,0 +1,36 @@
+# uniapp项目开发模板
+
+#### Description
+{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Instructions
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Contribution
+
+1. Fork the repository
+2. Create Feat_xxx branch
+3. Commit your code
+4. Create Pull Request
+
+
+#### Gitee Feature
+
+1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4. The most valuable open source project [GVP](https://gitee.com/gvp)
+5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7008566
--- /dev/null
+++ b/README.md
@@ -0,0 +1,13 @@
+#酒店桌布小程序
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/api.js b/api/api.js
new file mode 100644
index 0000000..a91ebb0
--- /dev/null
+++ b/api/api.js
@@ -0,0 +1,59 @@
+import http from './http.js'
+
+const config = {
+ // 示例
+ // wxLogin : {url : '/api/wxLogin', method : 'POST',
+ // auth : false, showLoading : true, loadingTitle : '加载中...',
+ // limit : 1000
+ // },
+
+ getConfig : {url : '/api/getConfig', method : 'GET', limit : 500},
+}
+
+
+
+export function api(key, data, callback, loadingTitle){
+ let req = config[key]
+
+ if (!req) {
+ console.error('无效key' + key);
+ return
+ }
+
+ if(typeof callback == 'string'){
+ loadingTitle = callback
+ }
+
+ if(typeof data == 'function'){
+ callback = data
+ data = {}
+ }
+
+ // 接口限流
+ if(req.limit){
+ let storageKey = 'limit:' + req.url
+ let storage = uni.getStorageSync(storageKey)
+ if(storage && new Date().getTime() - parseInt(storage) < req.limit){
+ return
+ }
+ uni.setStorageSync(storageKey, new Date().getTime())
+ }
+
+ //必须登录
+ if (req.auth) {
+ if (!uni.getStorageSync('token')) {
+ uni.navigateTo({
+ url: '/pages/login/mobile'
+ })
+ console.error('需要登录')
+ return
+ }
+ }
+
+ http.http(req.url, data, callback, req.method,
+ loadingTitle || req.showLoading, loadingTitle || req.loadingTitle)
+}
+
+
+
+export default api
\ No newline at end of file
diff --git a/api/http.js b/api/http.js
new file mode 100644
index 0000000..7ccb930
--- /dev/null
+++ b/api/http.js
@@ -0,0 +1,135 @@
+
+import Vue from 'vue'
+
+
+function http(uri, data, callback, method = 'GET', showLoading, title) {
+
+ if(showLoading){
+ uni.showLoading({
+ title: title || '加载中...'
+ });
+ }
+
+ uni.request({
+ url: Vue.prototype.$config.baseUrl + uri,
+ data: enhanceData(data),
+ method: method,
+ header: {
+ 'X-Access-Token': uni.getStorageSync('token'),
+ 'Content-Type' : method == 'POST' ? 'application/x-www-form-urlencoded' : 'application/json'
+ },
+ success: (res) => {
+
+ if(showLoading){
+ uni.hideLoading();
+ }
+
+ if(res.statusCode == 401 ||
+ res.data.message == '操作失败,token非法无效!'){
+ uni.removeStorageSync('token')
+ console.error('登录过期');
+ uni.navigateTo({
+ url: '/pages/auth/login'
+ })
+ }
+
+ if(res.statusCode == 200 && res.data.code != 200){
+ uni.showToast({
+ mask: true,
+ duration: 1000,
+ title: res.data.message,
+ icon:'none'
+ });
+ }
+
+ callback(res.data)
+ },
+
+ fail: () => {
+ uni.showLoading({})
+ setTimeout(()=>{
+ uni.hideLoading()
+ uni.showToast({icon:"none", title:"网络异常"})
+ }, 3000)
+
+ if(showLoading){
+ uni.hideLoading();
+ }
+ }
+ });
+}
+
+function deleted(uri, data, callback) {
+ http(uri, data, callback, 'DELETE')
+}
+
+function post(uri, data, callback) {
+ http(uri, data, callback, 'POST')
+}
+
+function get(uri, data, callback) {
+ http(uri, data, callback, 'GET')
+}
+
+function enhanceData(data) {
+ const userid = uni.getStorageSync("userid")
+ if (!data) {
+ data = {}
+ }
+ if (userid) {
+ data.userid = userid
+ }
+ return data
+}
+
+
+
+
+
+function sync(method, uri, data) {
+ return new Promise((resolve, reject) => {
+ uni.request({
+ url: uri,
+ data: data,
+ method: method,
+ header: {
+ 'auth': '1AS9F1HPC4FBC9EN00J7KX2L5RJ99XHZ'
+ },
+ success: (res) => {
+ resolve(res.data)
+ },
+ fail: (err) => {
+ reject(err);
+ }
+ })
+ })
+}
+
+
+let cache = null
+
+function async (method, uri, data) {
+ const promise = sync(method, uri, data).then(res => {
+ cache = res
+ }).catch(err => {
+
+ })
+}
+
+
+function syncHttp(uri, data, method = 'GET') {
+ async (method, uri, data)
+}
+
+
+
+
+
+
+export default {
+ http: http,
+ delete: deleted,
+ post: post,
+ get: get,
+ syncHttp: syncHttp
+}
\ No newline at end of file
diff --git a/components/base/navbar.vue b/components/base/navbar.vue
new file mode 100644
index 0000000..a7526b9
--- /dev/null
+++ b/components/base/navbar.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+ {{ moreText }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/base/tabbar.vue b/components/base/tabbar.vue
new file mode 100644
index 0000000..7807784
--- /dev/null
+++ b/components/base/tabbar.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/bottom/bottomBtn.vue b/components/bottom/bottomBtn.vue
new file mode 100644
index 0000000..eb9ddf1
--- /dev/null
+++ b/components/bottom/bottomBtn.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/config/PrivacyAgreementPoup.vue b/components/config/PrivacyAgreementPoup.vue
new file mode 100644
index 0000000..6eda2c6
--- /dev/null
+++ b/components/config/PrivacyAgreementPoup.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/config/configPopup.vue b/components/config/configPopup.vue
new file mode 100644
index 0000000..4f70dd3
--- /dev/null
+++ b/components/config/configPopup.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/user/productList.vue b/components/user/productList.vue
new file mode 100644
index 0000000..ad16f79
--- /dev/null
+++ b/components/user/productList.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ 桌布租赁
+
+
+ ¥58元/起
+
+
+
+ 限时优惠
+
+
+ ¥48
+
+
+
+ 已售卖5000+件
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/userShop/userShopCommission.vue b/components/userShop/userShopCommission.vue
new file mode 100644
index 0000000..be66e89
--- /dev/null
+++ b/components/userShop/userShopCommission.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+ 总佣金(元)
+
+
+ 7890.34元
+
+
+
+
+
+
+ 提现
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config.js b/config.js
new file mode 100644
index 0000000..bc0bb92
--- /dev/null
+++ b/config.js
@@ -0,0 +1,56 @@
+
+import Vue from 'vue'
+import api from '@/api/api.js'
+import utils from './utils/utils.js'
+
+import uvUI from '@/uni_modules/uv-ui-tools'
+Vue.use(uvUI);
+
+// 当前环境
+const type = 'dev'
+
+
+// 环境配置
+const config = {
+ dev : {
+ baseUrl : 'http://www.gcosc.fun:82',
+ },
+ prod : {
+ baseUrl : 'http://xxx.xxx.xxx/xxx',
+ }
+}
+
+
+// 默认配置
+const defaultConfig = {
+ mapKey : 'XMBBZ-BCPCV-SXPPQ-5Y7MY-PHZXK-YFFVU',
+ aliOss : {
+ url : 'https://tennis-oss.xzaiyp.top/',
+ config : {
+ //桶的地址
+ region: 'oss-cn-guangzhou',
+ //id
+ accessKeyId:'LTAI5tNycA46YTwm383dRvMV',
+ //密钥
+ accessKeySecret:'tAdbYQCmdur6jbZ8hjvgB7T1Z52mIG',
+ //桶的名字
+ bucket: 'zhuoqiu-image',
+ endpoint:'oss-cn-guangzhou.aliyuncs.com',
+ }
+ },
+}
+
+
+uni.$uv.setConfig({
+ // 修改$uv.config对象的属性
+ config: {
+ // 修改默认单位为rpx,相当于执行 uni.$uv.config.unit = 'rpx'
+ unit: 'rpx'
+ },
+})
+
+Vue.prototype.$config = utils.deepMergeObject(defaultConfig, config[type])
+
+Vue.prototype.$api = api
+
+export default Vue.prototype.$config
\ No newline at end of file
diff --git a/doc/address.png b/doc/address.png
new file mode 100644
index 0000000..90d2487
Binary files /dev/null and b/doc/address.png differ
diff --git a/doc/c.png b/doc/c.png
new file mode 100644
index 0000000..c5e7e67
Binary files /dev/null and b/doc/c.png differ
diff --git a/doc/cart.png b/doc/cart.png
new file mode 100644
index 0000000..4dab96f
Binary files /dev/null and b/doc/cart.png differ
diff --git a/doc/category.png b/doc/category.png
new file mode 100644
index 0000000..335c270
Binary files /dev/null and b/doc/category.png differ
diff --git a/doc/center.png b/doc/center.png
new file mode 100644
index 0000000..4c72a48
Binary files /dev/null and b/doc/center.png differ
diff --git a/doc/editAddress.png b/doc/editAddress.png
new file mode 100644
index 0000000..de90d40
Binary files /dev/null and b/doc/editAddress.png differ
diff --git a/doc/home-s.png b/doc/home-s.png
new file mode 100644
index 0000000..394de5f
Binary files /dev/null and b/doc/home-s.png differ
diff --git a/doc/home.png b/doc/home.png
new file mode 100644
index 0000000..564a41d
Binary files /dev/null and b/doc/home.png differ
diff --git a/doc/order.png b/doc/order.png
new file mode 100644
index 0000000..1a218e6
Binary files /dev/null and b/doc/order.png differ
diff --git a/doc/productDetail.png b/doc/productDetail.png
new file mode 100644
index 0000000..0bd6dab
Binary files /dev/null and b/doc/productDetail.png differ
diff --git a/doc/productUnit.png b/doc/productUnit.png
new file mode 100644
index 0000000..348b83b
Binary files /dev/null and b/doc/productUnit.png differ
diff --git a/doc/purse.png b/doc/purse.png
new file mode 100644
index 0000000..6f091b4
Binary files /dev/null and b/doc/purse.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..84751ca
--- /dev/null
+++ b/main.js
@@ -0,0 +1,41 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+
+import './uni.promisify.adaptor'
+
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+
+import store from '@/store/store'
+
+import './config'
+import './utils/index.js'
+
+//组件注册
+import configPopup from '@/components/config/configPopup.vue'
+import navbar from '@/components/base/navbar.vue'
+
+Vue.component('configPopup',configPopup)
+Vue.component('navbar',navbar)
+
+const app = new Vue({
+ ...App,
+ store,
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import {
+ createSSRApp
+} from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..ea42a21
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,105 @@
+{
+ "name" : "unapp模板",
+ "appid" : "__UNI__197A38F",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "maps" : {}
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wxe7ae8cbe1673834c",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true,
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "你的位置信息将用于小程序位置接口的效果展示"
+ },
+ "scope.userFuzzyLocation" : {
+ "desc" : "你的位置信息将用于小程序位置接口的效果展示"
+ }
+ },
+ "requiredPrivateInfos" : [ "chooseLocation", "getLocation" ]
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "2",
+ "h5" : {
+ "sdkConfigs" : {
+ "maps" : {
+ "qqmap" : {
+ "key" : "XMBBZ-BCPCV-SXPPQ-5Y7MY-PHZXK-YFFVU"
+ }
+ }
+ },
+ "devServer" : {
+ "https" : false,
+ "proxy" : {
+ "/ws/geocoder/v1/" : {
+ "target" : "https://apis.map.qq.com",
+ "changeOrigin" : true
+ },
+ "/ws/location/v1/" : {
+ "target" : "https://apis.map.qq.com",
+ "changeOrigin" : true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..136edbc
--- /dev/null
+++ b/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "uniapp-project-templates",
+ "version": "1.0.0",
+ "description": "{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}",
+ "main": "main.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://gitee.com/huliyong/uniapp-project-templates.git"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "ali-oss": "^6.21.0",
+ "dayjs": "^1.11.12"
+ }
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..42e5874
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,78 @@
+{
+ "pages": [{
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/index/order",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/index/category",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/index/center",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/index/cart",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ }
+ ],
+ "preloadRule": {
+ "pages/index/index": {
+ "network": "all",
+ "packages": ["pages_order"]
+ }
+ },
+ "subPackages": [{
+ "root": "pages_order",
+ "pages": [{
+ "path": "order/orderDetail"
+ },
+ {
+ "path": "mine/purse"
+ },
+ {
+ "path": "mine/runningWater"
+ },
+ {
+ "path": "mine/address"
+ },
+ {
+ "path": "product/productDetail"
+ },
+ {
+ "path": "order/refundsOrExchange"
+ },
+ {
+ "path": "auth/wxLogin"
+ },
+ {
+ "path": "auth/wxUserInfo"
+ },
+ {
+ "path": "auth/loginAndRegisterAndForgetPassword"
+ }
+ ]
+ }],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "酒店桌布",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8",
+ "navigationStyle": "custom"
+ },
+ "uniIdRouter": {}
+}
\ No newline at end of file
diff --git a/pages/index/cart.vue b/pages/index/cart.vue
new file mode 100644
index 0000000..7641341
--- /dev/null
+++ b/pages/index/cart.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+ 规格:{{ item.unit }}
+
+
+
+ ¥{{ item.price }}元
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ checkboxValue.length }}
+
+
+
+
+ 合计
+
+ ¥{{ totalPrice }}
+
+
+
+ 共{{ checkboxValue.length }}件,已享受更低优惠
+
+
+
+ 去结算
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/category.vue b/pages/index/category.vue
new file mode 100644
index 0000000..17ab40d
--- /dev/null
+++ b/pages/index/category.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+ 租赁
+
+
+
+
+
+
+
+ {{item.unit}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/center.vue b/pages/index/center.vue
new file mode 100644
index 0000000..037fe9c
--- /dev/null
+++ b/pages/index/center.vue
@@ -0,0 +1,421 @@
+
+
+
+
+
+
+
+
+
+
+
+ 倾心.
+
+
+
+ 今天是您来的的第32天
+
+
+
+ 角色切换
+
+
+
+
+
+
+
+
+
+
+
+ 我的用户
+
+
+
+
+ 客户:王生
+
+
+ 剩余水洗布:198
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 余额¥3000
+
+
+
+
+
+
+
+ 押金¥30000
+
+
+
+
+
+ 常用功能
+
+
+
+
+
+ 地址管理
+
+
+
+
+ 订单管理
+
+
+
+
+ 换货
+
+
+
+
+ 退货
+
+
+
+
+
+
+
+
+ 联系客服
+
+
+
+
+ 我的租赁
+
+
+
+
+ 租赁车
+
+
+
+
+ 申请成为水洗店
+
+
+
+
+
+
+
+
+
+ 联系客服
+ 确定拨打客服电话?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..6710415
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,413 @@
+
+
+
+
+
+
+
+
+
+ {{ area }}
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 我的客户
+
+
+ {{ 30 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HOUS水洗店
+
+
+
+ 桌布水洗
+
+
+ 桌布租赁
+
+
+
+ 9:00-18:00
+
+
+ 长沙市天心区桂花坪街道231号
+
+
+
+
+ 我要水洗
+
+
+
+
+ 关联门店:主信门店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/order.vue b/pages/index/order.vue
new file mode 100644
index 0000000..ae02a47
--- /dev/null
+++ b/pages/index/order.vue
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.projectId_dictText}}
+ {{item.type_dictText}}
+
+
+ {{item.state_dictText}}
+
+
+
+
+
+
+
+
+
+
+
+ 客户姓名:{{item.name}}
+
+
+ 产品规格:{{item.unit}}
+
+
+ 租赁地址:{{item.address}}
+
+
+
+
+
+
+
+
+
+ 总价格:{{item.money}}元
+
+
+ 查看物流
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/auth/loginAndRegisterAndForgetPassword.vue b/pages_order/auth/loginAndRegisterAndForgetPassword.vue
new file mode 100644
index 0000000..a9fbf75
--- /dev/null
+++ b/pages_order/auth/loginAndRegisterAndForgetPassword.vue
@@ -0,0 +1,401 @@
+
+
+
+
+
+
+
+
+ {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请你阅读并同意我们的《隐私条款》和《服务协议》
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注册账号
+ |
+ 账号登录
+ |
+ 忘记密码
+
+
+
+
+
+
+
+ {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{tips}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注册账号
+ |
+ 账号登录
+ |
+ 忘记密码
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/auth/wxLogin.vue b/pages_order/auth/wxLogin.vue
new file mode 100644
index 0000000..ed985d7
--- /dev/null
+++ b/pages_order/auth/wxLogin.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ 欢迎使用酒店桌布租赁平台
+
+
+
+
+
+
+ 微信授权登录
+
+
+
+
+
+
+
+
+
+
+
+
+ 阅读并同意我们的“服务协议与隐私条款”
+
+
+ 以及个人信息保护指引
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/auth/wxUserInfo.vue b/pages_order/auth/wxUserInfo.vue
new file mode 100644
index 0000000..f72f89c
--- /dev/null
+++ b/pages_order/auth/wxUserInfo.vue
@@ -0,0 +1,133 @@
+
+
+
+ 酒店桌布租赁平台
+
+
+ 申请获取你的头像、昵称
+
+
+
+
+
+ 昵称
+
+
+
+
+
+
+ 确认
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/components/address/addressList.vue b/pages_order/components/address/addressList.vue
new file mode 100644
index 0000000..489449f
--- /dev/null
+++ b/pages_order/components/address/addressList.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.phone }}
+ 默认
+
+
+
+ {{ item.address + " " + item.addressDetail }}
+
+
+
+
+
+
+
+
+ 默认地址
+
+
+
+
+
+ 编辑
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/components/address/redactAddress.vue b/pages_order/components/address/redactAddress.vue
new file mode 100644
index 0000000..1775a92
--- /dev/null
+++ b/pages_order/components/address/redactAddress.vue
@@ -0,0 +1,206 @@
+
+
+ {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 定位
+
+
+
+
+
+
+
+
+
+
+ {{ addressDetail.id ? '修改地址' : '新增地址'}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/components/commodity/commoditySelect.vue b/pages_order/components/commodity/commoditySelect.vue
new file mode 100644
index 0000000..c068258
--- /dev/null
+++ b/pages_order/components/commodity/commoditySelect.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+ {{ item.title }}
+ {{ item.smallTitle }}
+
+ ×{{item.total}}
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/components/product/submit.vue b/pages_order/components/product/submit.vue
new file mode 100644
index 0000000..e874e59
--- /dev/null
+++ b/pages_order/components/product/submit.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+ 分享
+
+
+
+
+
+ 购物车
+
+
+
+ {{ submiitTitle }}
+
+
+
+
+
+
+
diff --git a/pages_order/components/product/submitUnitSelect.vue b/pages_order/components/product/submitUnitSelect.vue
new file mode 100644
index 0000000..cc32f99
--- /dev/null
+++ b/pages_order/components/product/submitUnitSelect.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+ {{ address.name }}
+
+
+ {{ address.addressDetail }}
+
+
+
+
+
+
+
+
+
+ 桌布租赁
+
+
+
+
+
+
+ ¥299元
+
+
+ 请选择规格
+
+
+
+
+
+
+
+
+
+
+
+ 规格选择
+
+
+
+ 120*40*75【桌子尺寸】
+
+
+
+
+
+
+
+
+
+ 费用明细
+
+
+ 押金:¥200
+
+
+
+
+
+ {{ submiitTitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/mine/address.vue b/pages_order/mine/address.vue
new file mode 100644
index 0000000..c5f9ba8
--- /dev/null
+++ b/pages_order/mine/address.vue
@@ -0,0 +1,506 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增地址
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/mine/purse.vue b/pages_order/mine/purse.vue
new file mode 100644
index 0000000..fe7dd19
--- /dev/null
+++ b/pages_order/mine/purse.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+ 我要提现
+
+
+
+
+
+
+
+
+
+
+
+
+ 提现说明
+
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/mine/runningWater.vue b/pages_order/mine/runningWater.vue
new file mode 100644
index 0000000..a14a621
--- /dev/null
+++ b/pages_order/mine/runningWater.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/order/orderDetail.vue b/pages_order/order/orderDetail.vue
new file mode 100644
index 0000000..8ca27b7
--- /dev/null
+++ b/pages_order/order/orderDetail.vue
@@ -0,0 +1,567 @@
+
+
+
+
+
+
+
+
+
+ 服务完成
+
+
+ 待送回
+
+
+
+ 快递寄回
+
+
+ 线下配送
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 服务项目
+
+
+
+
+
+
+
+
+
+
+
+
+ {{msgOrder.projectName}}
+
+
+
+
+ ¥{{msgOrder.money}}
+
+
+
+ 规格:{{msgOrder.unit}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{msgOrder.name}} {{msgOrder.phone}}
+ {{msgOrder.address}}
+
+
+
+
+
+
+
+ 实付款
+
+
+ ¥{{ msgOrder.money }}
+
+
+
+
+ 租赁费用
+
+
+ ¥{{ msgOrder.price }}
+
+
+
+
+ 水洗费用
+
+
+ ¥{{ msgOrder.price}}
+
+
+
+
+ 押金
+
+
+ ¥{{ msgOrder.price }}
+
+
+
+
+
+
+
+
+ 订单信息
+
+
+
+
+ 订单编号
+
+
+ {{msgOrder.id}}
+
+
+
+
+ 下单时间
+
+
+ {{msgOrder.createTime}}
+
+
+
+
+
+
+
+
+
+ 下单须知
+
+
+
+ {{msgShop.projectExplain}}
+
+
+
+ 联系客服
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/order/refundsOrExchange.vue b/pages_order/order/refundsOrExchange.vue
new file mode 100644
index 0000000..3bce4d8
--- /dev/null
+++ b/pages_order/order/refundsOrExchange.vue
@@ -0,0 +1,366 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ commodity.title }}
+ {{ commodity.smallTitle }}
+
+ ×{{ commodity.total }}
+
+
+
+
+
+
+
+
+ 申请类型
+ 退货退款
+
+
+
+ 申请原因
+
+
+
+
+
+
+
+
+
+ {{ titleIndex == 0 ? '退货数量' : '换货数量' }}
+
+
+
+
+
+
+ 申请原因
+
+
+
+
+
+
+
+
+ 申请说明(选填)
+
+
+
+
+
+
+
+
+
+
+
+
+ 联系电话
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/product/productDetail.vue b/pages_order/product/productDetail.vue
new file mode 100644
index 0000000..43d797e
--- /dev/null
+++ b/pages_order/product/productDetail.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+ 桌布租赁
+
+
+
+ ¥45.9起
+
+
+ 已售1000+
+
+
+
+
+
+ 专业设备
+
+
+ 科学流程
+
+
+ 质量保证
+
+
+
+
+
+
+
+ 桌布
+
+
+
+
+
+ 规格
+
+
+
+
+
+ 上门取件·送货上门
+
+
+
+
+
+
+ 商品详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/static/address/icon.png b/pages_order/static/address/icon.png
new file mode 100644
index 0000000..6395501
Binary files /dev/null and b/pages_order/static/address/icon.png differ
diff --git a/pages_order/static/address/selectIcon.png b/pages_order/static/address/selectIcon.png
new file mode 100644
index 0000000..1251474
Binary files /dev/null and b/pages_order/static/address/selectIcon.png differ
diff --git a/pages_order/static/auth/headImage.png b/pages_order/static/auth/headImage.png
new file mode 100644
index 0000000..7d9bdd0
Binary files /dev/null and b/pages_order/static/auth/headImage.png differ
diff --git a/pages_order/static/auth/wx.png b/pages_order/static/auth/wx.png
new file mode 100644
index 0000000..38858c0
Binary files /dev/null and b/pages_order/static/auth/wx.png differ
diff --git a/pages_order/static/order/icon.png b/pages_order/static/order/icon.png
new file mode 100644
index 0000000..a8deeda
Binary files /dev/null and b/pages_order/static/order/icon.png differ
diff --git a/pages_order/static/product/like.png b/pages_order/static/product/like.png
new file mode 100644
index 0000000..fecdaef
Binary files /dev/null and b/pages_order/static/product/like.png differ
diff --git a/static/image/PrivacyAgreementPoup/icon.png b/static/image/PrivacyAgreementPoup/icon.png
new file mode 100644
index 0000000..5592c61
Binary files /dev/null and b/static/image/PrivacyAgreementPoup/icon.png differ
diff --git a/static/image/cart/1.png b/static/image/cart/1.png
new file mode 100644
index 0000000..9807f34
Binary files /dev/null and b/static/image/cart/1.png differ
diff --git a/static/image/cart/2.png b/static/image/cart/2.png
new file mode 100644
index 0000000..64b1c45
Binary files /dev/null and b/static/image/cart/2.png differ
diff --git a/static/image/center/1.png b/static/image/center/1.png
new file mode 100644
index 0000000..264e553
Binary files /dev/null and b/static/image/center/1.png differ
diff --git a/static/image/center/10.png b/static/image/center/10.png
new file mode 100644
index 0000000..151633f
Binary files /dev/null and b/static/image/center/10.png differ
diff --git a/static/image/center/11.svg b/static/image/center/11.svg
new file mode 100644
index 0000000..99950a8
--- /dev/null
+++ b/static/image/center/11.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/image/center/2.png b/static/image/center/2.png
new file mode 100644
index 0000000..5e0bedc
Binary files /dev/null and b/static/image/center/2.png differ
diff --git a/static/image/center/3.png b/static/image/center/3.png
new file mode 100644
index 0000000..8b521ac
Binary files /dev/null and b/static/image/center/3.png differ
diff --git a/static/image/center/4.png b/static/image/center/4.png
new file mode 100644
index 0000000..5ad41ea
Binary files /dev/null and b/static/image/center/4.png differ
diff --git a/static/image/center/5.png b/static/image/center/5.png
new file mode 100644
index 0000000..4f4a8ac
Binary files /dev/null and b/static/image/center/5.png differ
diff --git a/static/image/center/6.png b/static/image/center/6.png
new file mode 100644
index 0000000..9208b06
Binary files /dev/null and b/static/image/center/6.png differ
diff --git a/static/image/center/7.png b/static/image/center/7.png
new file mode 100644
index 0000000..ea1a427
Binary files /dev/null and b/static/image/center/7.png differ
diff --git a/static/image/center/8.png b/static/image/center/8.png
new file mode 100644
index 0000000..856616c
Binary files /dev/null and b/static/image/center/8.png differ
diff --git a/static/image/center/9.png b/static/image/center/9.png
new file mode 100644
index 0000000..5a4b2bd
Binary files /dev/null and b/static/image/center/9.png differ
diff --git a/static/image/home/0.png b/static/image/home/0.png
new file mode 100644
index 0000000..e221211
Binary files /dev/null and b/static/image/home/0.png differ
diff --git a/static/image/home/1.png b/static/image/home/1.png
new file mode 100644
index 0000000..0b7d3dc
Binary files /dev/null and b/static/image/home/1.png differ
diff --git a/static/image/home/2.png b/static/image/home/2.png
new file mode 100644
index 0000000..8ba997f
Binary files /dev/null and b/static/image/home/2.png differ
diff --git a/static/image/home/3.png b/static/image/home/3.png
new file mode 100644
index 0000000..a7f85f3
Binary files /dev/null and b/static/image/home/3.png differ
diff --git a/static/image/home/address-icon.png b/static/image/home/address-icon.png
new file mode 100644
index 0000000..51a11d2
Binary files /dev/null and b/static/image/home/address-icon.png differ
diff --git a/static/image/home/arrow-icon.png b/static/image/home/arrow-icon.png
new file mode 100644
index 0000000..9f3431a
Binary files /dev/null and b/static/image/home/arrow-icon.png differ
diff --git a/static/image/home/search-icon.png b/static/image/home/search-icon.png
new file mode 100644
index 0000000..58bde8a
Binary files /dev/null and b/static/image/home/search-icon.png differ
diff --git a/static/image/product/favorable.png b/static/image/product/favorable.png
new file mode 100644
index 0000000..edae056
Binary files /dev/null and b/static/image/product/favorable.png differ
diff --git a/static/image/tabbar/cart-a.png b/static/image/tabbar/cart-a.png
new file mode 100644
index 0000000..b48261c
Binary files /dev/null and b/static/image/tabbar/cart-a.png differ
diff --git a/static/image/tabbar/cart.png b/static/image/tabbar/cart.png
new file mode 100644
index 0000000..d211ea1
Binary files /dev/null and b/static/image/tabbar/cart.png differ
diff --git a/static/image/tabbar/category-a.png b/static/image/tabbar/category-a.png
new file mode 100644
index 0000000..6dd7bc6
Binary files /dev/null and b/static/image/tabbar/category-a.png differ
diff --git a/static/image/tabbar/category.png b/static/image/tabbar/category.png
new file mode 100644
index 0000000..f667e88
Binary files /dev/null and b/static/image/tabbar/category.png differ
diff --git a/static/image/tabbar/center-a.png b/static/image/tabbar/center-a.png
new file mode 100644
index 0000000..61df5ef
Binary files /dev/null and b/static/image/tabbar/center-a.png differ
diff --git a/static/image/tabbar/center.png b/static/image/tabbar/center.png
new file mode 100644
index 0000000..74f685c
Binary files /dev/null and b/static/image/tabbar/center.png differ
diff --git a/static/image/tabbar/home-a.png b/static/image/tabbar/home-a.png
new file mode 100644
index 0000000..5388253
Binary files /dev/null and b/static/image/tabbar/home-a.png differ
diff --git a/static/image/tabbar/home.png b/static/image/tabbar/home.png
new file mode 100644
index 0000000..6f7accb
Binary files /dev/null and b/static/image/tabbar/home.png differ
diff --git a/static/image/tabbar/order-a.png b/static/image/tabbar/order-a.png
new file mode 100644
index 0000000..6192093
Binary files /dev/null and b/static/image/tabbar/order-a.png differ
diff --git a/static/image/tabbar/order.png b/static/image/tabbar/order.png
new file mode 100644
index 0000000..df9eeb8
Binary files /dev/null and b/static/image/tabbar/order.png differ
diff --git a/static/logo.png b/static/logo.png
new file mode 100644
index 0000000..b5771e2
Binary files /dev/null and b/static/logo.png differ
diff --git a/store/store.js b/store/store.js
new file mode 100644
index 0000000..8218f65
--- /dev/null
+++ b/store/store.js
@@ -0,0 +1,33 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex); //vue的插件机制
+
+import api from '@/api/api.js'
+
+//Vuex.Store 构造器选项
+const store = new Vuex.Store({
+ state: {
+ configList: [], //配置列表
+ shop : false
+ },
+ getters: {
+ // 角色 true为水洗店 false为酒店
+ userShop(state){
+ return state.shop
+ }
+ },
+ mutations: {
+ // 初始化配置
+ initConfig(state){
+ api('getConfig', res => {
+ if(res.code == 200){
+ state.configList = res.result
+ }
+ })
+ },
+ },
+ actions: {},
+})
+
+export default store
\ No newline at end of file
diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js
new file mode 100644
index 0000000..47fbce1
--- /dev/null
+++ b/uni.promisify.adaptor.js
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..6e2d4c6
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+$uni-color: #FD5100;
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git a/uni_modules/uv-action-sheet/changelog.md b/uni_modules/uv-action-sheet/changelog.md
new file mode 100644
index 0000000..ab3545e
--- /dev/null
+++ b/uni_modules/uv-action-sheet/changelog.md
@@ -0,0 +1,7 @@
+## 1.0.2(2023-07-02)
+uv-action-sheet 由于弹出层uv-popup的修改,打开和关闭方法更改,详情参考文档:https://www.uvui.cn/components/actionSheet.html
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-action-sheet 底部操作菜单
diff --git a/uni_modules/uv-action-sheet/components/uv-action-sheet/props.js b/uni_modules/uv-action-sheet/components/uv-action-sheet/props.js
new file mode 100644
index 0000000..8adffee
--- /dev/null
+++ b/uni_modules/uv-action-sheet/components/uv-action-sheet/props.js
@@ -0,0 +1,50 @@
+export default {
+ props: {
+ // 标题,有值则显示,同时会显示关闭按钮
+ title: {
+ type: String,
+ default: ''
+ },
+ // 选项上方的描述信息
+ description: {
+ type: String,
+ default: ''
+ },
+ // 数据
+ actions: {
+ type: Array,
+ default: () => []
+ },
+ // 取消按钮的文字,不为空时显示按钮
+ cancelText: {
+ type: String,
+ default: ''
+ },
+ // 点击某个菜单项时是否关闭弹窗
+ closeOnClickAction: {
+ type: Boolean,
+ default: true
+ },
+ // 处理底部安全区(默认true)
+ safeAreaInsetBottom: {
+ type: Boolean,
+ default: true
+ },
+ // 小程序的打开方式
+ openType: {
+ type: String,
+ default: ''
+ },
+ // 点击遮罩是否允许关闭 (默认true)
+ closeOnClickOverlay: {
+ type: Boolean,
+ default: true
+ },
+ // 圆角值
+ round: {
+ type: [Boolean, String, Number],
+ default: 0
+ },
+ ...uni.$uv?.props?.actionSheet
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-action-sheet/components/uv-action-sheet/uv-action-sheet.vue b/uni_modules/uv-action-sheet/components/uv-action-sheet/uv-action-sheet.vue
new file mode 100644
index 0000000..edca089
--- /dev/null
+++ b/uni_modules/uv-action-sheet/components/uv-action-sheet/uv-action-sheet.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+ {{description}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{cancelText}}
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uv-action-sheet/package.json b/uni_modules/uv-action-sheet/package.json
new file mode 100644
index 0000000..e7b6173
--- /dev/null
+++ b/uni_modules/uv-action-sheet/package.json
@@ -0,0 +1,92 @@
+{
+ "id": "uv-action-sheet",
+ "displayName": "uv-action-sheet 底部操作菜单 全面兼容小程序、nvue、vue2、vue3等多端",
+ "version": "1.0.2",
+ "description": "该组件用于从底部弹出一个操作菜单,供用户选择并返回结果。本组件功能类似于uni的uni.showActionSheet API,配置更加灵活,所有平台都表现一致。",
+ "keywords": [
+ "action-sheet",
+ "uvui",
+ "uv-ui",
+ "操作菜单",
+ "菜单选择"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-popup",
+ "uv-icon",
+ "uv-line",
+ "uv-loading-icon",
+ "uv-gap"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-action-sheet/readme.md b/uni_modules/uv-action-sheet/readme.md
new file mode 100644
index 0000000..9ea5487
--- /dev/null
+++ b/uni_modules/uv-action-sheet/readme.md
@@ -0,0 +1,13 @@
+## ActionSheet 操作菜单
+
+> **组件名:uv-action-sheet**
+
+本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。
+
+本组件功能类似于uni的uni.showActionSheet API,配置更加灵活,所有平台都表现一致。
+
+### 查看文档
+
+### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui、官方QQ群
diff --git a/uni_modules/uv-album/changelog.md b/uni_modules/uv-album/changelog.md
new file mode 100644
index 0000000..42ab5e2
--- /dev/null
+++ b/uni_modules/uv-album/changelog.md
@@ -0,0 +1,10 @@
+## 1.0.4(2023-12-06)
+1. 阻止事件冒泡处理
+## 1.0.3(2023-10-23)
+1. 修复报错的BUG
+## 1.0.2(2023-10-23)
+1. 修复设置singleSize、multipleSize、space等值带单位,存在不显示的BUG
+## 1.0.1(2023-09-13)
+1. 添加依赖
+## 1.0.0(2023-08-30)
+1. 新增uv-album相册组件
diff --git a/uni_modules/uv-album/components/uv-album/uv-album.vue b/uni_modules/uv-album/components/uv-album/uv-album.vue
new file mode 100644
index 0000000..835d792
--- /dev/null
+++ b/uni_modules/uv-album/components/uv-album/uv-album.vue
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uv-album/package.json b/uni_modules/uv-album/package.json
new file mode 100644
index 0000000..700602f
--- /dev/null
+++ b/uni_modules/uv-album/package.json
@@ -0,0 +1,88 @@
+{
+ "id": "uv-album",
+ "displayName": "uv-album 相册 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.0.4",
+ "description": "本组件提供一个类似相册的功能,让开发者开发起来更加得心应手,功能齐全,灵活配置可以,开箱即用。减少重复的模板代码",
+ "keywords": [
+ "album",
+ "uv-ui",
+ "uvui",
+ "相册",
+ "图片"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-text"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-album/readme.md b/uni_modules/uv-album/readme.md
new file mode 100644
index 0000000..edd2f0b
--- /dev/null
+++ b/uni_modules/uv-album/readme.md
@@ -0,0 +1,21 @@
+# Album 相册
+
+> **组件名:uv-album**
+
+本组件提供一个类似相册的功能,让开发者开发起来更加得心应手。
+
+功能齐全,灵活配置可以,开箱即用。减少重复的模板代码。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
\ No newline at end of file
diff --git a/uni_modules/uv-alert/changelog.md b/uni_modules/uv-alert/changelog.md
new file mode 100644
index 0000000..71cca03
--- /dev/null
+++ b/uni_modules/uv-alert/changelog.md
@@ -0,0 +1,7 @@
+## 1.0.2(2023-06-01)
+1. 修复点击触发两次实践的BUG
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-alert 警告提示组件
diff --git a/uni_modules/uv-alert/components/uv-alert/props.js b/uni_modules/uv-alert/components/uv-alert/props.js
new file mode 100644
index 0000000..cc8edc1
--- /dev/null
+++ b/uni_modules/uv-alert/components/uv-alert/props.js
@@ -0,0 +1,45 @@
+export default {
+ props: {
+ // 显示文字
+ title: {
+ type: String,
+ default: ''
+ },
+ // 主题,success/warning/info/error
+ type: {
+ type: String,
+ default: 'warning'
+ },
+ // 辅助性文字
+ description: {
+ type: String,
+ default: ''
+ },
+ // 是否可关闭
+ closable: {
+ type: Boolean,
+ default: false
+ },
+ // 是否显示图标
+ showIcon: {
+ type: Boolean,
+ default: false
+ },
+ // 浅或深色调,light-浅色,dark-深色
+ effect: {
+ type: String,
+ default: 'light'
+ },
+ // 文字是否居中
+ center: {
+ type: Boolean,
+ default: false
+ },
+ // 字体大小
+ fontSize: {
+ type: [String, Number],
+ default: 14
+ },
+ ...uni.$uv?.props?.alert
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-alert/components/uv-alert/uv-alert.vue b/uni_modules/uv-alert/components/uv-alert/uv-alert.vue
new file mode 100644
index 0000000..ba3965e
--- /dev/null
+++ b/uni_modules/uv-alert/components/uv-alert/uv-alert.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+ {{ title }}
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uv-alert/package.json b/uni_modules/uv-alert/package.json
new file mode 100644
index 0000000..34bec20
--- /dev/null
+++ b/uni_modules/uv-alert/package.json
@@ -0,0 +1,88 @@
+{
+ "id": "uv-alert",
+ "displayName": "uv-alert 警告提示 全面兼容小程序、nvue、vue2、vue3等多端",
+ "version": "1.0.2",
+ "description": "uv-alert 警告提示,展现需要关注的信息。灵活配置,功能齐全,兼容全端",
+ "keywords": [
+ "alert",
+ "uvui",
+ "uv-ui",
+ "警告提示"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-transition",
+ "uv-icon"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-alert/readme.md b/uni_modules/uv-alert/readme.md
new file mode 100644
index 0000000..63dda76
--- /dev/null
+++ b/uni_modules/uv-alert/readme.md
@@ -0,0 +1,15 @@
+## Alert 警告提示
+
+> **组件名:uv-alert**
+
+警告提示,展现需要关注的信息。
+
+当某个页面需要向用户显示警告的信息时。
+
+非浮层的静态展现形式,始终展现,不会自动消失,用户可以点击关闭。
+
+### 查看文档
+
+### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui、官方QQ群
diff --git a/uni_modules/uv-avatar/changelog.md b/uni_modules/uv-avatar/changelog.md
new file mode 100644
index 0000000..8631c86
--- /dev/null
+++ b/uni_modules/uv-avatar/changelog.md
@@ -0,0 +1,13 @@
+## 1.0.5(2023-12-06)
+1. 优化
+## 1.0.4(2023-12-06)
+1. 优化
+## 1.0.3(2023-12-06)
+1. 阻止事件冒泡处理,单个头像模式
+## 1.0.2(2023-12-06)
+1. 阻止事件冒泡处理
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-avatar 头像组件
diff --git a/uni_modules/uv-avatar/components/uv-avatar-group/props.js b/uni_modules/uv-avatar/components/uv-avatar-group/props.js
new file mode 100644
index 0000000..a610ab4
--- /dev/null
+++ b/uni_modules/uv-avatar/components/uv-avatar-group/props.js
@@ -0,0 +1,53 @@
+export default {
+ props: {
+ // 头像图片组
+ urls: {
+ type: Array,
+ default: () => []
+ },
+ // 最多展示的头像数量
+ maxCount: {
+ type: [String, Number],
+ default: 5
+ },
+ // 头像形状
+ shape: {
+ type: String,
+ default: 'circle'
+ },
+ // 图片裁剪模式
+ mode: {
+ type: String,
+ default: 'scaleToFill'
+ },
+ // 超出maxCount时是否显示查看更多的提示
+ showMore: {
+ type: Boolean,
+ default: true
+ },
+ // 头像大小
+ size: {
+ type: [String, Number],
+ default: 40
+ },
+ // 指定从数组的对象元素中读取哪个属性作为图片地址
+ keyName: {
+ type: String,
+ default: ''
+ },
+ // 头像之间的遮挡比例
+ gap: {
+ type: [String, Number],
+ validator(value) {
+ return value >= 0 && value <= 1
+ },
+ default: 0.5
+ },
+ // 需额外显示的值
+ extraValue: {
+ type: [Number, String],
+ default: 0
+ },
+ ...uni.$uv?.props?.avatarGroup
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-avatar/components/uv-avatar-group/uv-avatar-group.vue b/uni_modules/uv-avatar/components/uv-avatar-group/uv-avatar-group.vue
new file mode 100644
index 0000000..59481f6
--- /dev/null
+++ b/uni_modules/uv-avatar/components/uv-avatar-group/uv-avatar-group.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uv-avatar/components/uv-avatar/props.js b/uni_modules/uv-avatar/components/uv-avatar/props.js
new file mode 100644
index 0000000..6c8d725
--- /dev/null
+++ b/uni_modules/uv-avatar/components/uv-avatar/props.js
@@ -0,0 +1,80 @@
+import { range } from '@/uni_modules/uv-ui-tools/libs/function/test.js'
+export default {
+ props: {
+ // 头像图片路径(不能为相对路径)
+ src: {
+ type: String,
+ default: ''
+ },
+ // 头像形状,circle-圆形,square-方形
+ shape: {
+ type: String,
+ default: 'circle'
+ },
+ // 头像尺寸
+ size: {
+ type: [String, Number],
+ default: 40
+ },
+ // 裁剪模式
+ mode: {
+ type: String,
+ default: 'scaleToFill'
+ },
+ // 显示的文字
+ text: {
+ type: String,
+ default: ''
+ },
+ // 背景色
+ bgColor: {
+ type: String,
+ default: '#c0c4cc'
+ },
+ // 文字颜色
+ color: {
+ type: String,
+ default: '#fff'
+ },
+ // 文字大小
+ fontSize: {
+ type: [String, Number],
+ default: 18
+ },
+ // 显示的图标
+ icon: {
+ type: String,
+ default: ''
+ },
+ // 显示小程序头像,只对百度,微信,QQ小程序有效
+ mpAvatar: {
+ type: Boolean,
+ default: false
+ },
+ // 是否使用随机背景色
+ randomBgColor: {
+ type: Boolean,
+ default: false
+ },
+ // 加载失败的默认头像(组件有内置默认图片)
+ defaultUrl: {
+ type: String,
+ default: ''
+ },
+ // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
+ colorIndex: {
+ type: [String, Number],
+ // 校验参数规则,索引在0-19之间
+ validator(n) {
+ return range(n, [0, 19]) || n === ''
+ },
+ default: ''
+ },
+ // 组件标识符
+ name: {
+ type: String,
+ default: ''
+ },
+ ...uni.$uv?.props?.avatar
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-avatar/components/uv-avatar/uv-avatar.vue b/uni_modules/uv-avatar/components/uv-avatar/uv-avatar.vue
new file mode 100644
index 0000000..0959d6a
--- /dev/null
+++ b/uni_modules/uv-avatar/components/uv-avatar/uv-avatar.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uv-avatar/package.json b/uni_modules/uv-avatar/package.json
new file mode 100644
index 0000000..e77ab68
--- /dev/null
+++ b/uni_modules/uv-avatar/package.json
@@ -0,0 +1,89 @@
+{
+ "id": "uv-avatar",
+ "displayName": "uv-avatar 头像 全面兼容小程序、nvue、vue2、vue3等多端",
+ "version": "1.0.5",
+ "description": "uv-avatar 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。",
+ "keywords": [
+ "uv-avatar",
+ "uvui",
+ "uv-ui",
+ "avatar",
+ "头像"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-icon",
+ "uv-text"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-avatar/readme.md b/uni_modules/uv-avatar/readme.md
new file mode 100644
index 0000000..1f068eb
--- /dev/null
+++ b/uni_modules/uv-avatar/readme.md
@@ -0,0 +1,11 @@
+## Avatar 头像
+
+> **组件名:uv-avatar**
+
+本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
+
+### 查看文档
+
+### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui、官方QQ群
diff --git a/uni_modules/uv-back-top/changelog.md b/uni_modules/uv-back-top/changelog.md
new file mode 100644
index 0000000..9772262
--- /dev/null
+++ b/uni_modules/uv-back-top/changelog.md
@@ -0,0 +1,8 @@
+## 1.0.2(2023-07-03)
+1. 优化插槽自定义内容部分
+2. 增加backToTop方法说明
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-back-top 返回顶部
diff --git a/uni_modules/uv-back-top/components/uv-back-top/props.js b/uni_modules/uv-back-top/components/uv-back-top/props.js
new file mode 100644
index 0000000..74daff4
--- /dev/null
+++ b/uni_modules/uv-back-top/components/uv-back-top/props.js
@@ -0,0 +1,58 @@
+export default {
+ props: {
+ // 返回顶部的形状,circle-圆形,square-方形
+ mode: {
+ type: String,
+ default: 'circle'
+ },
+ // 自定义图标
+ icon: {
+ type: String,
+ default: 'arrow-upward'
+ },
+ // 提示文字
+ text: {
+ type: String,
+ default: ''
+ },
+ // 返回顶部滚动时间
+ duration: {
+ type: [String, Number],
+ default: 100
+ },
+ // 滚动距离
+ scrollTop: {
+ type: [String, Number],
+ default: 0
+ },
+ // 距离顶部多少距离显示,单位px
+ top: {
+ type: [String, Number],
+ default: 400
+ },
+ // 返回顶部按钮到底部的距离,单位px
+ bottom: {
+ type: [String, Number],
+ default: 100
+ },
+ // 返回顶部按钮到右边的距离,单位px
+ right: {
+ type: [String, Number],
+ default: 20
+ },
+ // 层级
+ zIndex: {
+ type: [String, Number],
+ default: 9
+ },
+ // 图标的样式,对象形式
+ iconStyle: {
+ type: Object,
+ default: () => ({
+ color: '#909399',
+ fontSize: '19px'
+ })
+ },
+ ...uni.$uv?.props?.backtop
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-back-top/components/uv-back-top/uv-back-top.vue b/uni_modules/uv-back-top/components/uv-back-top/uv-back-top.vue
new file mode 100644
index 0000000..fad73d4
--- /dev/null
+++ b/uni_modules/uv-back-top/components/uv-back-top/uv-back-top.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+ {{text}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uv-back-top/package.json b/uni_modules/uv-back-top/package.json
new file mode 100644
index 0000000..a2035a5
--- /dev/null
+++ b/uni_modules/uv-back-top/package.json
@@ -0,0 +1,89 @@
+{
+ "id": "uv-back-top",
+ "displayName": "uv-back-top 返回顶部 全面兼容小程序、nvue、vue2、vue3等多端",
+ "version": "1.0.2",
+ "description": "返回顶部 组件一个用于长页面,滑动一定距离后,出现返回顶部按钮,方便快速返回顶部的场景。",
+ "keywords": [
+ "uv-back-top",
+ "uvui",
+ "uv-ui",
+ "avatar",
+ "返回顶部"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-icon",
+ "uv-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-back-top/readme.md b/uni_modules/uv-back-top/readme.md
new file mode 100644
index 0000000..d6a2aec
--- /dev/null
+++ b/uni_modules/uv-back-top/readme.md
@@ -0,0 +1,11 @@
+## BackTop 返回顶部
+
+> **组件名:uv-back-top**
+
+该组件一个用于长页面,滑动一定距离后,出现返回顶部按钮,方便快速返回顶部的场景。
+
+### 查看文档
+
+### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui、官方QQ群
diff --git a/uni_modules/uv-badge/changelog.md b/uni_modules/uv-badge/changelog.md
new file mode 100644
index 0000000..b0ba104
--- /dev/null
+++ b/uni_modules/uv-badge/changelog.md
@@ -0,0 +1,7 @@
+## 1.0.2(2023-06-04)
+1. 修复type等属性为null的时候不显示徽标的BUG
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-badge 徽标数,数字角标
diff --git a/uni_modules/uv-badge/components/uv-badge/props.js b/uni_modules/uv-badge/components/uv-badge/props.js
new file mode 100644
index 0000000..c6369c3
--- /dev/null
+++ b/uni_modules/uv-badge/components/uv-badge/props.js
@@ -0,0 +1,73 @@
+export default {
+ props: {
+ // 是否显示圆点
+ isDot: {
+ type: Boolean,
+ default: false
+ },
+ // 显示的内容
+ value: {
+ type: [Number, String],
+ default: ''
+ },
+ // 是否显示
+ show: {
+ type: Boolean,
+ default: true
+ },
+ // 最大值,超过最大值会显示 '{max}+'
+ max: {
+ type: [Number, String],
+ default: 999
+ },
+ // 主题类型,error|warning|success|primary
+ type: {
+ type: [String,undefined,null],
+ default: 'error'
+ },
+ // 当数值为 0 时,是否展示 Badge
+ showZero: {
+ type: Boolean,
+ default: false
+ },
+ // 背景颜色,优先级比type高,如设置,type参数会失效
+ bgColor: {
+ type: [String, null],
+ default: null
+ },
+ // 字体颜色
+ color: {
+ type: [String, null],
+ default: null
+ },
+ // 徽标形状,circle-四角均为圆角,horn-左下角为直角
+ shape: {
+ type: [String,undefined,null],
+ default: 'circle'
+ },
+ // 设置数字的显示方式,overflow|ellipsis|limit
+ // overflow会根据max字段判断,超出显示`${max}+`
+ // ellipsis会根据max判断,超出显示`${max}...`
+ // limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数
+ numberType: {
+ type: [String,undefined,null],
+ default: 'overflow'
+ },
+ // 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效
+ offset: {
+ type: Array,
+ default: () => []
+ },
+ // 是否反转背景和字体颜色
+ inverted: {
+ type: Boolean,
+ default: false
+ },
+ // 是否绝对定位
+ absolute: {
+ type: Boolean,
+ default: false
+ },
+ ...uni.$uv?.props?.badge
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-badge/components/uv-badge/uv-badge.vue b/uni_modules/uv-badge/components/uv-badge/uv-badge.vue
new file mode 100644
index 0000000..f7d3911
--- /dev/null
+++ b/uni_modules/uv-badge/components/uv-badge/uv-badge.vue
@@ -0,0 +1,176 @@
+
+ {{ isDot ? '' :showValue }}
+
+
+
+
+
diff --git a/uni_modules/uv-badge/package.json b/uni_modules/uv-badge/package.json
new file mode 100644
index 0000000..5a81386
--- /dev/null
+++ b/uni_modules/uv-badge/package.json
@@ -0,0 +1,87 @@
+{
+ "id": "uv-badge",
+ "displayName": "uv-badge 徽标数,数字角标 全面兼容小程序、nvue、vue2、vue3等多端",
+ "version": "1.0.2",
+ "description": "徽标数一般用于图标右上角显示未读的消息数量,提示用户点击,有圆点和圆包含文字两种形式。",
+ "keywords": [
+ "uv-badge",
+ "uvui",
+ "uv-ui",
+ "徽标数",
+ "数字角标"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-badge/readme.md b/uni_modules/uv-badge/readme.md
new file mode 100644
index 0000000..cf597eb
--- /dev/null
+++ b/uni_modules/uv-badge/readme.md
@@ -0,0 +1,11 @@
+## Badge 徽标数
+
+> **组件名:uv-badge**
+
+该组件一般用于图标右上角显示未读的消息数量,提示用户点击,有圆点和圆包含文字两种形式。
+
+### 查看文档
+
+### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui、官方QQ群
diff --git a/uni_modules/uv-button/changelog.md b/uni_modules/uv-button/changelog.md
new file mode 100644
index 0000000..11e954e
--- /dev/null
+++ b/uni_modules/uv-button/changelog.md
@@ -0,0 +1,33 @@
+## 1.0.15(2023-12-20)
+1. 优化
+## 1.0.14(2023-12-06)
+1. 优化
+## 1.0.13(2023-12-06)
+1. 阻止事件冒泡处理
+## 1.0.12(2023-10-19)
+1. 增加后置插槽
+## 1.0.11(2023-09-21)
+1. 修复通过customStyle修改按钮宽度,组件中最外层节点不改变的问题
+## 1.0.10(2023-09-15)
+1. 按钮支持open-type="agreePrivacyAuthorization"
+## 1.0.9(2023-09-11)
+1. 增加参数iconSize,用于控制图标的大小
+## 1.0.8(2023-09-10)
+1. 修复多个按钮在一行宽度不正常的BUG
+## 1.0.7(2023-09-07)
+1. 修复warning颜色对应错误的BUG
+## 1.0.6(2023-07-25)
+1. 增加customTextStyle属性,方便自定义文字样式
+## 1.0.5(2023-07-20)
+1. 解决微信小程序动态设置hover-class点击态不消失的BUG
+## 1.0.4(2023-06-29)
+1. 修改上次更新出现nvue报错异常
+## 1.0.3(2023-06-28)
+ 修复:设置open-type="chooseAvatar"等值不生效的BUG
+## 1.0.2(2023-06-01)
+1. 修复按钮点击触发两次的BUG
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-button 按钮
diff --git a/uni_modules/uv-button/components/uv-button/nvue.scss b/uni_modules/uv-button/components/uv-button/nvue.scss
new file mode 100644
index 0000000..be6c16e
--- /dev/null
+++ b/uni_modules/uv-button/components/uv-button/nvue.scss
@@ -0,0 +1,46 @@
+$uv-button-active-opacity:0.75 !default;
+$uv-button-loading-text-margin-left:4px !default;
+$uv-button-text-color: #FFFFFF !default;
+$uv-button-text-plain-error-color:$uv-error !default;
+$uv-button-text-plain-warning-color:$uv-warning !default;
+$uv-button-text-plain-success-color:$uv-success !default;
+$uv-button-text-plain-info-color:$uv-info !default;
+$uv-button-text-plain-primary-color:$uv-primary !default;
+.uv-button {
+ &--active {
+ opacity: $uv-button-active-opacity;
+ }
+
+ &--active--plain {
+ background-color: rgb(217, 217, 217);
+ }
+
+ &__loading-text {
+ margin-left:$uv-button-loading-text-margin-left;
+ }
+
+ &__text,
+ &__loading-text {
+ color:$uv-button-text-color;
+ }
+
+ &__text--plain--error {
+ color:$uv-button-text-plain-error-color;
+ }
+
+ &__text--plain--warning {
+ color:$uv-button-text-plain-warning-color;
+ }
+
+ &__text--plain--success{
+ color:$uv-button-text-plain-success-color;
+ }
+
+ &__text--plain--info {
+ color:$uv-button-text-plain-info-color;
+ }
+
+ &__text--plain--primary {
+ color:$uv-button-text-plain-primary-color;
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uv-button/components/uv-button/props.js b/uni_modules/uv-button/components/uv-button/props.js
new file mode 100644
index 0000000..6275ad5
--- /dev/null
+++ b/uni_modules/uv-button/components/uv-button/props.js
@@ -0,0 +1,163 @@
+export default {
+ props: {
+ // 是否细边框
+ hairline: {
+ type: Boolean,
+ default: true
+ },
+ // 按钮的预置样式,info,primary,error,warning,success
+ type: {
+ type: String,
+ default: 'info'
+ },
+ // 按钮尺寸,large,normal,small,mini
+ size: {
+ type: String,
+ default: 'normal'
+ },
+ // 按钮形状,circle(两边为半圆),square(带圆角)
+ shape: {
+ type: String,
+ default: 'square'
+ },
+ // 按钮是否镂空
+ plain: {
+ type: Boolean,
+ default: false
+ },
+ // 是否禁止状态
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ // 是否加载中
+ loading: {
+ type: Boolean,
+ default: false
+ },
+ // 加载中提示文字
+ loadingText: {
+ type: [String, Number],
+ default: ''
+ },
+ // 加载状态图标类型
+ loadingMode: {
+ type: String,
+ default: 'spinner'
+ },
+ // 加载图标大小
+ loadingSize: {
+ type: [String, Number],
+ default: 14
+ },
+ // 开放能力,具体请看uniapp稳定关于button组件部分说明
+ // https://uniapp.dcloud.io/component/button
+ openType: {
+ type: String,
+ default: ''
+ },
+ // 用于