Переглянути джерело

feat:返回上一层优化

zhanghui 2 роки тому
батько
коміт
b43f3845af
35 змінених файлів з 380 додано та 45 видалено
  1. 20 2
      common/js/service.js
  2. 9 2
      components/next-swipe-action/next-swipe-action.vue
  3. 2 2
      main.js
  4. 1 1
      pages.json
  5. 1 1
      pages/addGroup/addGroup.vue
  6. 1 1
      pages/addGroup/module/mescrollUni-item.vue
  7. 1 0
      pages/cooperation/cooperation.vue
  8. 4 4
      pages/cooperation/module/index.rpx.css
  9. 17 14
      pages/cooperation/module/mescrollUni-item.vue
  10. 1 0
      pages/directPromotionList/directPromotionList.vue
  11. 1 0
      pages/earningsList/earningsList.vue
  12. 1 1
      pages/earningsList/module/mescrollUni-item.vue
  13. 1 0
      pages/forgetPassword/forgetPassword.vue
  14. 1 1
      pages/groupDetail/groupDetail.vue
  15. 11 0
      pages/index/manager/index.rpx.css
  16. 1 0
      pages/index/manager/manager.vue
  17. 1 1
      pages/indirectPromotionList/indirectPromotionList.vue
  18. 4 4
      pages/login/login.vue
  19. 1 0
      pages/my/index.rpx.css
  20. 13 5
      pages/my/my.vue
  21. 1 0
      pages/myGroup/myGroup.vue
  22. 1 1
      pages/purchaseCoupon/purchaseCoupon.vue
  23. 1 1
      pages/specialistsList/module/mescrollUni-item.vue
  24. 1 0
      pages/specialistsList/specialistsList.vue
  25. 1 0
      pages/todayEarningsList/todayEarningsList.vue
  26. 1 1
      pages/todayPromotionList/todayPromotionList.vue
  27. 1 1
      pages/updateGroup/module/mescrollUni-item.vue
  28. 1 1
      pages/updateGroup/updateGroup.vue
  29. 1 0
      pages/updatePassword/updatePassword.vue
  30. 1 1
      pages/userInfo/userInfo.vue
  31. 12 0
      uni_modules/liu-drag-button/changelog.md
  32. 139 0
      uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue
  33. 6 0
      uni_modules/liu-drag-button/license.md
  34. 85 0
      uni_modules/liu-drag-button/package.json
  35. 36 0
      uni_modules/liu-drag-button/readme.md

+ 20 - 2
common/js/service.js

@@ -3,6 +3,24 @@ import request from '../js/request.js';
 
 export default {
 
+    // 统计
+    exStatistics(data) {
+        return request({
+            url: '/member/wechat/exStatistics',
+            method: 'POST',
+            data: data
+        })
+    },
+
+    // 拓客经理查询合作伙伴
+    getMyExpandPartnerList(data) {
+        return request({
+            url: '/member/wechat/getMyExpandPartnerList',
+            method: 'GET',
+            data: data
+        })
+    },
+
 
     idCardAndName(data) {
         return request({
@@ -22,9 +40,9 @@ export default {
         })
     },
 
-    getMyExpandUserList(data) {
+    getMyExpandAttacheList(data) {
         return request({
-            url: '/member/wechat/getMyExpandUserList',
+            url: '/member/wechat/getMyExpandAttacheList',
             method: 'GET',
             data:data
 

+ 9 - 2
components/next-swipe-action/next-swipe-action.vue

@@ -6,10 +6,9 @@
 		</view>
 		<view class="next-slide-right">
 			<view
-					class="next-btn-item"
+					class="next-btn-item defBtnStyle"
 					v-for="(item,index) in btnGroup"
 					:key="index"
-					:style="getStyle(item)"
 					@click.stop="btnClick(item)">
 				{{item.name}}
 			</view>
@@ -175,4 +174,12 @@
 		align-items: center;
 		justify-content: center;
 	}
+
+	.defBtnStyle{
+		width: 100rpx;
+		background-color: #f9ae3d;
+		color: #FFFFFF;
+		font-size: 28rpx;
+		font-weight: 300
+	}
 </style>

+ 2 - 2
main.js

@@ -7,8 +7,8 @@ import './uni.promisify.adaptor'
 import uView from "uview-ui";
 // #ifdef H5
 // 提交前需要注释  本地调试使用 使用vconsole
-const vconsole = require('vconsole')
-Vue.prototype.$vconsole = new vconsole()
+// const vconsole = require('vconsole')
+// Vue.prototype.$vconsole = new vconsole()
 // #endif
 import api from './common/js/api'
 import env from './common/js/env.js';

+ 1 - 1
pages.json

@@ -177,7 +177,7 @@
 	"globalStyle": {
 		"navigationStyle": "custom",
 		"navigationBarTextStyle": "black",
-		//		"navigationBarTitleText": "加载中",
+//		"navigationBarTitleText": "加载中",
 		"navigationBarBackgroundColor": "#FFE05C",
 		"backgroundColor": "#FFE05C"
 	},

+ 1 - 1
pages/addGroup/addGroup.vue

@@ -27,6 +27,7 @@
 		<view class="addGroup" @click="addGroup">
 			<text>新增</text>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 
 
 		<uni-popup ref="selectPersonPopup" type="bottom">
@@ -42,7 +43,6 @@
 				</view>
 			</view>
 		</uni-popup>
-
 	</view>
 </template>
 

+ 1 - 1
pages/addGroup/module/mescrollUni-item.vue

@@ -91,7 +91,7 @@
 					pageSize:10
 				}
 
-				this.$api.service.getMyExpandUserList(httpData).then((res) => {
+				this.$api.service.getMyExpandAttacheList(httpData).then((res) => {
 					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
 					this.mescroll.endSuccess(res.data.data.length,res.data.data.length === 10);
 					//设置列表数据

+ 1 - 0
pages/cooperation/cooperation.vue

@@ -4,6 +4,7 @@
 			<mescroll-item ref="MescrollItem" :i="0"  :index="0"  :height="height">
 			</mescroll-item>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 4 - 4
pages/cooperation/module/index.rpx.css

@@ -1,10 +1,10 @@
 .item{
     width: 638rpx;
-    height: 280rpx;
+    /*height: 280rpx;*/
     background: #FFFFFF;
     border-radius: 16rpx;
     margin-top: 24rpx;
-    padding: 0 24rpx;
+    padding: 24rpx 24rpx;
     position: relative;
 }
 .storeName{
@@ -16,12 +16,12 @@
     margin-top: 24rpx;
 }
 .time{
-    height: 48rpx;
+    /*height: 48rpx;*/
     font-size: 28rpx;
     font-weight: 400;
     color: #999999;
     line-height: 48rpx;
-    margin-top: 24rpx;
+    /*margin-top: 24rpx;*/
 }
 .name{
     height: 48rpx;

+ 17 - 14
pages/cooperation/module/mescrollUni-item.vue

@@ -8,25 +8,28 @@
 	<mescroll-uni :ref="'mescrollRef' + i" @init="mescrollInit" :height="height" :down="downOption" @down="downCallback"
 		:up="upOption" @up="upCallback" @emptyclick="emptyClick">
 		<view>
-			<view class="item" v-for="(item,index) in 10" :key="index">
+			<view class="item" v-for="(item,index) in list" :key="index">
 				<view class="flex-row justify-between">
-					<text class="storeName">好又多母婴店</text>
-					<text class="time">2023-01-05</text>
-				</view>
-				<view class="flex-row justify-between">
-					<text class="name">张三</text>
+<!--					<text class="storeName">好又多母婴店</text>-->
+					<text class="name">{{item.name}}</text>
+					<text class="time">{{item.createTime}}</text>
 				</view>
+<!--				<view class="flex-row justify-between">-->
+<!--					<text class="name">张三</text>-->
+<!--				</view>-->
 				<view class="flex-row icon-num">
 					<u-icon size="24" name="/static/group/zhituirenshu.png"></u-icon>
 					<text class="key">直推人数:</text>
-					<text class="number">300人</text>
-				</view>
-				<view class="flex-row icon-num">
-					<u-icon size="24" name="/static/group/xiaofeijine.png"></u-icon>
-					<text class="key">消费金额:</text>
-					<text class="number">300元</text>
+					<text class="number">{{item.num}}人</text>
 				</view>
-				<u-icon size="30" name="/static/group/xiugai.png" class="xiugai"></u-icon>
+<!--				<view class="flex-row icon-num">-->
+<!--					<u-icon size="24" name="/static/group/xiaofeijine.png"></u-icon>-->
+<!--					<text class="key">消费金额:</text>-->
+<!--					<text class="number">300元</text>-->
+<!--				</view>-->
+<!--				<view class="xiugai">-->
+<!--					<u-icon size="30" name="/static/group/xiugai.png" ></u-icon>-->
+<!--				</view>-->
 			</view>
 		</view>
 
@@ -103,7 +106,7 @@
 					pageSize:10
 				}
 
-				this.$api.service.getRecord(httpData).then((res) => {
+				this.$api.service.getMyExpandPartnerList(httpData).then((res) => {
 					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
 					this.mescroll.endSuccess(res.data.data.length,res.data.data.length === 10);
 					//设置列表数据

+ 1 - 0
pages/directPromotionList/directPromotionList.vue

@@ -4,6 +4,7 @@
 			<mescroll-item ref="MescrollItem" :i="0"  :index="0"  :height="height">
 			</mescroll-item>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 0
pages/earningsList/earningsList.vue

@@ -4,6 +4,7 @@
 			<mescroll-item ref="MescrollItem" :i="0"  :index="0"  :height="height">
 			</mescroll-item>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 1
pages/earningsList/module/mescrollUni-item.vue

@@ -22,7 +22,7 @@
 						</view>
 						<view class=" flex-row justify-between">
 							<text class="text3">{{item.createTime}}</text>
-							<!--									<text class="text3">账户余额:{{item.afterAmount || 0}}</text>-->
+							<text class="text3">来源:{{item.memberName}}</text>
 						</view>
 					</view>
 				</view>

+ 1 - 0
pages/forgetPassword/forgetPassword.vue

@@ -29,6 +29,7 @@
 			</view>
 		</view>
 		<u-code ref="uCode" @change="codeChange" seconds="60" @start="disabled1 = true" @end="disabled1 = false"></u-code>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 <script>

+ 1 - 1
pages/groupDetail/groupDetail.vue

@@ -57,7 +57,7 @@
 		<view class="addGroup" @click="updateGroupUser">
 			<text>提交</text>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 		<uni-popup ref="selectPersonPopup" type="bottom">
 			<view class="selectMemberPopup">
 				<view class="flex-row justify-around popupTitle">

+ 11 - 0
pages/index/manager/index.rpx.css

@@ -126,3 +126,14 @@
     border: 4rpx solid #FFE05C;
     box-sizing:border-box
 }
+.tag{
+    background: #FFF6CE;
+    border-radius: 8rpx;
+    border: 2rpx solid #FFE05C;
+    font-size: 20rpx;
+    font-weight: 400;
+    color: #333333;
+    line-height: 48rpx;
+    padding: 0rpx 15rpx;
+    margin-left: 10rpx;
+}

+ 1 - 0
pages/index/manager/manager.vue

@@ -128,6 +128,7 @@
 				<scroll-view scroll-y class="scroll-Y2">
 					<view class="roleName1" :class="{selectRoleName1: selectRoleIndex === index }" v-for="(item,index) in roleList" :key="index" @click="selectRoleIndex = index">
 						<text>{{item.name}}</text>
+						<text class="tag">{{item.tag=='0'?'拓客专员':'合作伙伴'}}</text>
 					</view>
 				</scroll-view>
 				<view class="confirmButton" @click="confirmRole">

+ 1 - 1
pages/indirectPromotionList/indirectPromotionList.vue

@@ -20,7 +20,7 @@
 				</view>
 			</mescroll-uni>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 
 	</view>
 </template>

+ 4 - 4
pages/login/login.vue

@@ -42,9 +42,9 @@
 					<text>登录</text>
 				</view>
 
-				<view class="loginButton" @click="getWxCosde">
-					<text>获取微信code</text>
-				</view>
+<!--				<view class="loginButton" @click="getWxCosde">-->
+<!--					<text>获取微信code</text>-->
+<!--				</view>-->
 
 			</u--form>
 
@@ -62,7 +62,7 @@
 		data() {
 			return {
 				requestStatus:false,
-				savePassword:false,
+				savePassword:true,
 				form: {
 					username: '',
 					password: ''

+ 1 - 0
pages/my/index.rpx.css

@@ -16,6 +16,7 @@
 	box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,0,0,0.1);
 	border: 2rpx solid #FFFFFF;
 	border-radius: 50%;
+	overflow: hidden;
 }
 .avatar image{
 	width: 152rpx;

+ 13 - 5
pages/my/my.vue

@@ -25,7 +25,7 @@
 							<image src="/static/my/fuwuNmber.png" class="statisticsImg"></image>
 						</view>
 						<text class="statisticsKey">我的专员(人)</text>
-						<text class="statisticsValue">0</text>
+						<text class="statisticsValue">{{statistics.myAttache}}</text>
 					</view>
 				</view>
 				<view class="flex-row justify-center out leftBorder">
@@ -34,7 +34,7 @@
 							<image src="/static/my/hezuohuoban.png" class="statisticsImg"></image>
 						</view>
 						<text class="statisticsKey">合作伙伴(人)</text>
-						<text class="statisticsValue">0</text>
+						<text class="statisticsValue">{{statistics.myPartner}}</text>
 					</view>
 				</view>
 			</view>
@@ -47,7 +47,7 @@
 							<image src="/static/my/fuwuTimeLong.png" class="statisticsImg"></image>
 						</view>
 						<text class="statisticsKey">我的直推(人)</text>
-						<text class="statisticsValue">0</text>
+						<text class="statisticsValue">{{statistics.myMember}}</text>
 					</view>
 				</view>
 				<view class="flex-row justify-center out leftBorder">
@@ -56,7 +56,7 @@
 							<image src="/static/my/benyuerenwu.png" class="statisticsImg"></image>
 						</view>
 						<text class="statisticsKey">推广收益(人)</text>
-						<text class="statisticsValue">0</text>
+						<text class="statisticsValue">{{statistics.myEarning}}</text>
 					</view>
 				</view>
 			</view>
@@ -80,7 +80,8 @@
 			return {
 				staticsData: {},
 				userInfo: {},
-				height: ''
+				height: '',
+				statistics:{},
 			}
 		},
 		onLoad() {
@@ -91,10 +92,17 @@
 		onShow() {
 			this.userInfo = uni.getStorageSync('spreadUserInfo')
 			this.getImgUrlByOssId(this.userInfo.img)
+			this.exStatistics()
 		},
 
 		methods: {
 
+			exStatistics(){
+				this.$api.service.exStatistics().then(res=>{
+					this.statistics = res.data.data
+				})
+			},
+
 			navigateTo(url) {
 				uni.navigateTo({
 					url: url

+ 1 - 0
pages/myGroup/myGroup.vue

@@ -7,6 +7,7 @@
 		<view class="addGroup" @click="goAddGroup">
 			<text>新增分组</text>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 1
pages/purchaseCoupon/purchaseCoupon.vue

@@ -39,7 +39,7 @@
 				</view>
 			</view>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 		<uni-popup ref="purchasePopup" type="bottom">
 			<view class="purchasePopup">
 				<view class="flex-row justify-between">

+ 1 - 1
pages/specialistsList/module/mescrollUni-item.vue

@@ -102,7 +102,7 @@
 					pageSize:10
 				}
 
-				this.$api.service.getMyExpandUserList(httpData).then((res) => {
+				this.$api.service.getMyExpandAttacheList(httpData).then((res) => {
 					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
 					this.mescroll.endSuccess(res.data.data.length,res.data.data.length === 10);
 					//设置列表数据

+ 1 - 0
pages/specialistsList/specialistsList.vue

@@ -4,6 +4,7 @@
 			<mescroll-item ref="MescrollItem" :i="0"  :index="0"  :height="height">
 			</mescroll-item>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 0
pages/todayEarningsList/todayEarningsList.vue

@@ -23,6 +23,7 @@
 				</view>
 			</mescroll-uni>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 1
pages/todayPromotionList/todayPromotionList.vue

@@ -19,7 +19,7 @@
 				</view>
 			</mescroll-uni>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 
 	</view>
 </template>

+ 1 - 1
pages/updateGroup/module/mescrollUni-item.vue

@@ -91,7 +91,7 @@
 					pageSize:10
 				}
 
-				this.$api.service.getMyExpandUserList(httpData).then((res) => {
+				this.$api.service.getMyExpandAttacheList(httpData).then((res) => {
 					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
 					this.mescroll.endSuccess(res.data.data.length,res.data.data.length === 10);
 					//设置列表数据

+ 1 - 1
pages/updateGroup/updateGroup.vue

@@ -28,7 +28,7 @@
 		<view class="addGroup" @click="updateGroup">
 			<text>修改</text>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 
 		<uni-popup ref="selectPersonPopup" type="bottom">
 			<view class="selectMemberPopup">

+ 1 - 0
pages/updatePassword/updatePassword.vue

@@ -21,6 +21,7 @@
 				<button class="customStyle"  @click="updatePassword">提交</button>
 			</view>
 		</view>
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 	</view>
 </template>
 

+ 1 - 1
pages/userInfo/userInfo.vue

@@ -59,7 +59,7 @@
 		<view  class="logoutButton">
 			<u-button type="error" text="退出登录" @click="logout"></u-button>
 		</view>
-
+		<liu-drag-button @clickBtn="back">返回</liu-drag-button>
 		<u-action-sheet
 				:show="showSex"
 				:actions="actions"

+ 12 - 0
uni_modules/liu-drag-button/changelog.md

@@ -0,0 +1,12 @@
+## 1.0.5(2023-07-13)
+优化
+## 1.0.4(2023-06-08)
+增加预览二维码
+## 1.0.3(2023-05-31)
+增加license
+## 1.0.2(2023-04-28)
+优化
+## 1.0.1(2023-04-26)
+增加示例
+## 1.0.0(2023-04-26)
+初始化发布

+ 139 - 0
uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue

@@ -0,0 +1,139 @@
+<template>
+	<view>
+		<movable-area class="movable-area" :scale-area="false">
+			<movable-view class="movable-view" :class="!isRemove?'animation-info':''" style="pointer-events: auto;"
+				@click="clickBtn" @touchstart="touchstart" @touchend="touchend" @change="onChange" direction="all"
+				inertia="true" :x="x" :y="y" :disabled="disabled" :out-of-bounds="true" :damping="200" :friction="100">
+				<slot></slot>
+			</movable-view>
+		</movable-area>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			//是否禁用拖动
+			disabled: {
+				type: Boolean,
+				default: false
+			},
+			//是否自动停靠
+			canDocking: {
+				type: Boolean,
+				default: true
+			},
+			//按钮默认位置离底部距离(px)
+			bottomPx: {
+				type: Number,
+				default: 90
+			},
+			//按钮默认位置离右边距离(px)
+			rightPx: {
+				type: Number,
+				default: 0
+			},
+		},
+		data() {
+			return {
+				left: 0,
+				top: 0,
+				isRemove: true,
+				windowWidth: 0,
+				windowHeight: 0,
+				btnWidth: 0,
+				btnHeight: 0,
+				x: 10000,
+				y: 10000,
+				old: {
+					x: 0,
+					y: 0
+				}
+			};
+		},
+		mounted() {
+			this.getSysInfo()
+		},
+		methods: {
+			getSysInfo() {
+				let sysInfo = uni.getSystemInfoSync()
+				this.windowWidth = sysInfo.windowWidth
+				this.windowHeight = sysInfo.windowHeight
+				let view = uni.createSelectorQuery().in(this).select(".movable-view")
+				view.boundingClientRect(rect => {
+					this.btnWidth = rect.width
+					this.btnHeight = rect.height
+					this.x = this.old.x
+					this.y = this.old.y
+					this.$nextTick(res => {
+						this.x = this.windowWidth - this.btnWidth - this.rightPx
+						this.y = this.windowHeight - this.btnHeight - this.bottomPx
+					})
+				}).exec()
+			},
+			//移动按钮
+			onChange(e) {
+				this.old.x = e.detail.x
+				this.old.y = e.detail.y
+			},
+			//开始移动
+			touchstart(e) {
+				this.isRemove = true
+			},
+			//结束移动
+			touchend(e) {
+				if (this.canDocking && this.old.x) {
+					this.x = this.old.x
+					this.y = this.old.y
+					let bWidth = (this.windowWidth - this.btnWidth) / 2
+					if (this.x < 0 || (this.x > 0 && this.x <= bWidth)) {
+						this.$nextTick(res => {
+							this.x = 0
+						})
+					} else {
+						this.$nextTick(res => {
+							this.x = this.windowWidth - this.btnWidth
+						})
+					}
+					this.isRemove = false
+				}
+			},
+			//点击按钮
+			clickBtn() {
+				this.$emit('clickBtn')
+			}
+		}
+	};
+</script>
+
+<style scoped>
+	.movable-view {
+		width: 100rpx;
+		height: 100rpx;
+		background: linear-gradient(360deg, #287BF8 0%, #6EA8FF 100%);
+		box-shadow: 0px 4rpx 12rpx 0px #ADC3F8;
+		border-radius: 50rpx;
+		color: #FFFFFF;
+		font-size: 26rpx;
+		touch-action: none;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.animation-info {
+		transition: left .25s ease;
+	}
+
+	.movable-area {
+		width: 100%;
+		height: 100%;
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		z-index: 999999 !important;
+		pointer-events: none;
+	}
+</style>

+ 6 - 0
uni_modules/liu-drag-button/license.md

@@ -0,0 +1,6 @@
+### 1、本插件可免费下载使用;
+### 2、未经许可,严禁复制本插件派生同类插件上传插件市场;
+### 3、未经许可,严禁在插件市场恶意复制抄袭本插件进行违规获利;
+### 4、对本软件的任何使用都必须遵守这些条款,违反这些条款的个人或组织将面临法律追究。
+
+

+ 85 - 0
uni_modules/liu-drag-button/package.json

@@ -0,0 +1,85 @@
+{
+	"id": "liu-drag-button",
+	"displayName": "可拖动悬浮按钮",
+	"version": "1.0.5",
+	"description": "可拖动的悬浮按钮,兼容小程序、H5,支持自动停靠,支持自定义样式,使用相当简单,源码简单易修改。",
+	"keywords": [
+        "悬浮按钮",
+        "拖拽按钮",
+        "拖动",
+        "按钮",
+        "拖拽"
+    ],
+	"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": [],
+		"encrypt": [],
+		"platforms": {
+			"cloud": {
+				"tcb": "y",
+				"aliyun": "y"
+			},
+			"client": {
+				"Vue": {
+					"vue2": "y",
+					"vue3": "u"
+				},
+				"App": {
+					"app-vue": "u",
+					"app-nvue": "u"
+				},
+				"H5-mobile": {
+					"Safari": "y",
+					"Android Browser": "y",
+					"微信浏览器(Android)": "y",
+					"QQ浏览器(Android)": "y"
+				},
+				"H5-pc": {
+					"Chrome": "u",
+					"IE": "u",
+					"Edge": "u",
+					"Firefox": "u",
+					"Safari": "u"
+				},
+				"小程序": {
+					"微信": "y",
+					"阿里": "u",
+					"百度": "u",
+					"字节跳动": "u",
+					"QQ": "u",
+					"钉钉": "u",
+					"快手": "u",
+					"飞书": "u",
+					"京东": "u"
+				},
+				"快应用": {
+					"华为": "u",
+					"联盟": "u"
+				}
+			}
+		}
+	}
+}

+ 36 - 0
uni_modules/liu-drag-button/readme.md

@@ -0,0 +1,36 @@
+# liu-drag-button适用于uni-app项目的可拖动悬浮按钮组件
+### 本组件目前兼容微信小程序、H5
+### 本组件是可拖动的悬浮按钮,兼容小程序、H5,支持自动停靠,支持自定义样式,源码简单易修改
+# --- 扫码预览、关注我们 ---
+
+## 扫码关注公众号,查看更多插件信息,预览插件效果! 
+
+![](https://uni.ckapi.pro/uniapp/publicize.png)
+
+### 使用方式	
+``` html
+<liu-drag-button @clickBtn="clickBtn">按钮</liu-drag-button>
+```
+``` javascript
+export default {
+	data() {
+		return {
+			
+		};
+	},
+	methods: {
+		//点击按钮
+		clickBtn(){
+			console.log('按钮被点击了')
+		},
+	}
+}
+```
+
+### 属性说明
+| 名称                         | 类型            | 默认值                | 描述             |
+| ----------------------------|--------------- | ------------------ | ---------------|
+| disabled                    | Boolean        | false              | 是否禁用拖动
+| canDocking                  | Boolean        | true               | 是否自动停靠
+| bottomPx                    | Number         | 30                 | 按钮默认位置离底部距离(px)
+| rightPx                     | Number         | 0                  | 按钮默认位置离右边距离(px)