zs 2 jaren geleden
bovenliggende
commit
a198e1580d

+ 257 - 141
pagesHome/order/order.vue

@@ -27,27 +27,52 @@
 									</view>
 								</view>
 								<view class="list_2" v-for="(tag,index) in item.goods" :key="index">
-									<view class="l">
-										<image class="image" :src="tag.file&&tag.file.length>0?tag.file[0].url:''"
-											mode=""></image>
-									</view>
-									<view class="c">
-										<view class="name">
-											{{tag.goods_name}}
+									<view class="list_2_1">
+										<view class="l">
+											<image class="image" :src="tag.file&&tag.file.length>0?tag.file[0].url:''"
+												mode=""></image>
 										</view>
-										<view class="Spec">
-											规格:{{tag.goodsSpec_name}}
+										<view class="c">
+											<view class="name">
+												{{tag.goods_name}}
+											</view>
+											<view class="Spec">
+												规格:{{tag.goodsSpec_name}}
+											</view>
 										</view>
-									</view>
-									<view class="r">
-										<view class="price" v-if="type=='0'">
-											¥{{tag.price}}
+										<view class="r">
+											<view class="price" v-if="type=='0'">
+												¥{{tag.price}}
+											</view>
+											<view v-else class="price">
+												¥{{tag.group_sell_money}}
+											</view>
+											<view class="num">
+												×{{tag.num}}
+											</view>
 										</view>
-										<view v-else class="price">
-											¥{{tag.group_sell_money}}
+									</view>
+									<view class="list_2_2" v-if="tag.gift.length>0">赠品</view>
+									<view class="list_2_3" v-if="tag.gift.length>0" v-for="(tags,indexx) in tag.gift"
+										:key="indexx">
+										<view class="left">
+											<view class="name">
+												{{tags.goods_name}}
+											</view>
+											<view class="Spec">
+												规格:{{tags.spec_name}}
+											</view>
+											<view class="Spec">
+												说明:{{tags.desc}}
+											</view>
 										</view>
-										<view class="num">
-											×{{tag.num}}
+										<view class="right">
+											<view class="price">
+												¥{{tags.money||0}}
+											</view>
+											<view class="num">
+												×{{tags.num}}
+											</view>
 										</view>
 									</view>
 								</view>
@@ -70,32 +95,9 @@
 									</view>
 								</view>
 							</view>
-							<view class="act" v-if="total>0">
-								<view class="act_1">
-									订单已满<text>{{act.money||0}}</text>元,为你推荐优惠商品搭配
-								</view>
-								<view class="act_2">
-									<checkbox-group @change="checkboxChange">
-										<label class="actList" v-for="(item,index) in actList" :key="index">
-											<image class="image"
-												:src="item.file.length>0?item.file[0].url:item.file[0].url"
-												mode="aspectFill"></image>
-											<view class="name">{{item.goods_name}}</view>
-											<view class="money">
-												<text class="text_1">¥{{item.flow_money}}</text>
-												<text class="text_2">¥{{item.sell_money}}</text>
-											</view>
-											<view class="checkbox">
-												<checkbox color="#FB1438" style="transform:scale(0.7)" :value="item._id"
-													:checked="item.checked" />
-											</view>
-										</label>
-									</checkbox-group>
-									<view class="bottom" @tap="toOpen">
-										<text
-											:class="[change==false?'iconfont icon-xiajiantou-copy':'iconfont icon-shangjiantou-copy']"></text>
-									</view>
-								</view>
+							<view class="other" v-for="(item,index) in total_detail" :key="index">
+								<view class="other_1">{{item.zh}}</view>
+								<view class="other_2">¥{{item.money}}</view>
 							</view>
 							<view class="other" v-if="type=='0'">
 								<view class="other_1">优惠劵</view>
@@ -104,6 +106,10 @@
 								</view>
 								<view class="other_2" v-else>暂无优惠劵使用</view>
 							</view>
+							<view class="other" v-if="total>0&&actInfo" @tap="toAddGoods">
+								<view class="other_1">加购商品</view>
+								<view class="other_4">去加购></view>
+							</view>
 						</view>
 					</view>
 				</scroll-view>
@@ -125,6 +131,36 @@
 				</scroll-view>
 			</view>
 		</uni-popup>
+		<uni-drawer ref="showRight" :mask="false" :width="width" mode="right" :mask-click="false">
+			<scroll-view scroll-y="true" class="scroll-view" @scrolltolower="toPage" @scroll="toScroll">
+				<view class="act">
+					<view class="act_1">
+						订单已满<text>{{actInfo.plus_money}}</text>元,为你推荐优惠商品搭配
+					</view>
+					<view class="act_2">
+						<checkbox-group @change="checkboxChange">
+							<label class="actList" v-for="(item,index) in actList" :key="index">
+								<image class="image" :src="item.file.length>0?item.file[0].url:item.file[0].url"
+									mode="aspectFill"></image>
+								<view class="name">{{item.goods_name}}</view>
+								<view class="money">
+									<text class="text_1">¥{{item.flow_money||0}}</text>
+									<text class="text_2">¥{{item.config.plus_money||item.sell_money}}</text>
+								</view>
+								<view class="checkbox">
+									<checkbox color="#FB1438" style="transform:scale(0.7)" :value="item._id"
+										:checked="item.checked" />
+								</view>
+							</label>
+						</checkbox-group>
+					</view>
+					<view class="bottom">
+						<button @click="closeDrawer('define')" size="mini">确认加购</button>
+						<button @click="closeDrawer('cancel')" size="mini">取消加购</button>
+					</view>
+				</view>
+			</scroll-view>
+		</uni-drawer>
 	</mobile-frame>
 </template>
 
@@ -151,7 +187,7 @@
 				shop: [],
 				goods_total: 0,
 				// 金额明细
-				total_detail: {},
+				total_detail: [],
 				// 收货地址
 				addressList: [],
 				// 优惠劵
@@ -167,11 +203,16 @@
 				inviter: '',
 				// 活动商品
 				actList: [],
+				// 加价购活动
+				actInfo: {},
+				// 加购商品
+				plus_goods: [],
 				total: 0,
 				page: 0,
 				skip: 0,
-				limit: 5,
-				change: false,
+				limit: 20,
+				// 抽屉
+				width: '100%'
 			};
 		},
 		onLoad: function(e) {
@@ -222,7 +263,12 @@
 				})
 				if (arr.errcode == '0') {
 					// 查询活动商品列表
-					that.searchAct();
+					let act;
+					act = arr.data.actList.find(i => i.platform_act_type == '4')
+					if (act) {
+						that.searchAct(act);
+						that.$set(that, `actInfo`, act);
+					}
 					// 分享人id
 					that.$set(that, `inviter`, arr.data.inviter);
 					// 地址
@@ -238,12 +284,13 @@
 				}
 			},
 			// 查询活动商品列表
-			async searchAct() {
+			async searchAct(e) {
 				const that = this;
+				let platform_act = e.platform_act;
 				let info = {
 					skip: that.skip,
 					limit: that.limit,
-					platform_act: '6371dad40aa8e005d5a47832',
+					platform_act: platform_act,
 					goods_type: 'plus'
 				}
 				let res = await that.$api(`/goodsJoinAct`, 'GET', {
@@ -261,7 +308,7 @@
 				that.$set(that, 'coupon_name', e.name)
 				that.coupon.push(e._id)
 				that.$refs.popup.close();
-				this.computedTotal();
+				that.computedTotal();
 			},
 			// 选择收货地址
 			toChoose() {
@@ -294,10 +341,35 @@
 					else that.$set(item, 'checked', false)
 				}
 			},
-			// 展开更多
-			toOpen() {
+			// 选择加购产品
+			toAddGoods() {
+				const that = this;
+				that.$set(that, 'plus_goods', [])
+				that.$refs.showRight.open();
+			},
+			// 关闭抽屉
+			closeDrawer(e) {
+				const that = this;
+				if (e == 'cancel') {
+					for (let val of that.actList) {
+						if (val.checked == true) val.checked = false
+					}
+					that.$set(that, 'plus_goods', []);
+					that.computedTotal();
+					that.$refs.showRight.close();
+				} else {
+					// 选购中商品
+					let plus_goods = that.actList.filter(item => item.checked == true)
+					that.$set(that, 'plus_goods', plus_goods);
+					that.computedTotal();
+					that.$refs.showRight.close();
+				}
+			},
+			// 分页
+			toPage() {
 				const that = this;
 				let list = that.actList;
+				let actInfo = that.actInfo;
 				let limit = that.limit;
 				if (that.total > list.length) {
 					uni.showLoading({
@@ -308,16 +380,13 @@
 					that.$set(that, `page`, page)
 					let skip = page * limit;
 					that.$set(that, `skip`, skip)
-					that.searchAct();
+					that.searchAct(actInfo);
 					uni.hideLoading();
-					that.$set(that, 'change', true);
-				} else if (that.total == list.length) {
-					that.$set(that, `actList`, [])
-					that.$set(that, `skip`, 0)
-					that.$set(that, `limit`, 5)
-					that.$set(that, `page`, 0)
-					that.$set(that, `change`, false)
-					that.searchAct();
+				} else {
+					uni.showToast({
+						title: `没有更多商品了`,
+						icon: 'none'
+					})
 				}
 			},
 			// 提交订单
@@ -331,7 +400,8 @@
 						total_detail: that.total_detail,
 						coupon: that.coupon,
 						type: that.type,
-						inviter: that.inviter
+						inviter: that.inviter,
+						plus_goods: that.plus_goods
 					}
 					if (that.group_id) obj.group = that.group_id;
 					// 创建订单
@@ -421,10 +491,19 @@
 					})
 				}
 			},
-
+			// 计算优惠券
 			async computedTotal() {
 				const total_detail = this.total_detail;
-				let total = this.$plus(total_detail.freight_total, total_detail.goods_total)
+				let total = 0;
+				for (let val of total_detail) total = this.$plus(total, val.money)
+				if (this.plus_goods.length > 0) {
+					let plus_total = 0;
+					for (let val of this.plus_goods) {
+						if (val.config.plus_money) plus_total = this.$plus(plus_total, val.config.plus_money)
+						else plus_total = this.$plus(plus_total, val.sell_money)
+					}
+					total = this.$plus(plus_total, total)
+				}
 				if (this.coupon.length > 0) {
 					let discount = 0;
 					for (const coupon of this.coupon) {
@@ -533,32 +612,60 @@
 
 					.list_2 {
 						padding: 2vw;
-						display: flex;
 						background-color: var(--mainColor);
 
-						.l {
-							width: 20vw;
+						.list_2_1 {
+							display: flex;
+
+							.l {
+								width: 20vw;
 
-							.image {
-								width: 100%;
-								height: 20vw;
-								border-radius: 5px;
+								.image {
+									width: 100%;
+									height: 20vw;
+									border-radius: 5px;
+								}
 							}
-						}
 
-						.c {
-							width: 60vw;
-							padding: 0 2vw;
+							.c {
+								width: 60vw;
+								padding: 0 2vw;
 
-							.Spec {
-								font-size: var(--font12Size);
-								color: var(--f85Color);
+								.Spec {
+									font-size: var(--font12Size);
+									color: var(--f85Color);
+								}
+							}
+
+							.r {
+								width: 15vw;
+								text-align: right;
 							}
 						}
 
-						.r {
-							width: 15vw;
-							text-align: right;
+						.list_2_2 {
+							padding: 0 1vw 1vw 0;
+							font-size: var(--font14Size);
+						}
+
+						.list_2_3 {
+							display: flex;
+							justify-content: space-between;
+							border: 1px solid var(--fcColor);
+							border-radius: 5px;
+							margin: 0 0 1vw 0;
+							padding: 1vw;
+
+							.left {
+								.name {
+									font-size: 14px;
+								}
+
+								.Spec {
+									font-size: var(--font12Size);
+									color: var(--f85Color);
+								}
+							}
 						}
 					}
 
@@ -593,71 +700,11 @@
 					}
 				}
 
-				.act {
-					background-color: var(--mainColor);
-					border-bottom: 0.1vw solid var(--fcColor);
-					margin: 0 0 2vw 0;
-					width: 96vw;
-					padding: 2vw;
-
-					.act_1 {
-						font-size: var(--font14Size);
-						font-weight: bold;
-
-						text {
-							color: #FFA500;
-						}
-					}
-
-					.act_2 {
-						.actList {
-							display: flex;
-							margin: 2vw 0;
-
-							.image {
-								width: 12vw;
-								height: 10vw;
-								border: 1px solid #ffffff;
-							}
-
-							.name {
-								width: 52vw;
-								font-size: 12px;
-								margin: 0 0 0 1vw;
-							}
-
-							.money {
-								width: 25vw;
-
-								.text_1 {
-									font-size: 12px;
-									color: #858585;
-									text-decoration: line-through;
-								}
-
-								.text_2 {
-									font-size: 14px;
-									color: #ff0000;
-								}
-							}
-
-							.checkbox {
-								width: 7vw;
-							}
-						}
-					}
-
-					.bottom {
-						text-align: center;
-					}
-				}
-
 				.other {
 					display: flex;
 					justify-content: space-between;
 					background-color: var(--mainColor);
 					border-bottom: 0.1vw solid var(--fcColor);
-					margin: 0 0 2vw 0;
 					width: 96vw;
 					padding: 2vw;
 
@@ -672,6 +719,10 @@
 						font-size: var(--font12Size);
 					}
 
+					.other_4 {
+						color: var(--fFB1Color);
+					}
+
 					text {
 						padding: 0 1vw 0 0;
 						font-size: var(--font20Szie);
@@ -770,4 +821,69 @@
 			}
 		}
 	}
+
+	.act {
+		background-color: var(--mainColor);
+		width: 96vw;
+		padding: 2vw;
+
+		.act_1 {
+			font-size: var(--font14Size);
+			font-weight: bold;
+
+			text {
+				color: #FFA500;
+			}
+		}
+
+		.act_2 {
+			margin: 1vw 0;
+
+			.actList {
+				display: flex;
+				margin: 2vw 0;
+
+				.image {
+					width: 12vw;
+					height: 10vw;
+					border: 1px solid #ffffff;
+				}
+
+				.name {
+					width: 52vw;
+					font-size: 12px;
+					margin: 0 0 0 1vw;
+				}
+
+				.money {
+					width: 20vw;
+
+					.text_1 {
+						font-size: 12px;
+						color: #858585;
+						text-decoration: line-through;
+					}
+
+					.text_2 {
+						font-size: 13px;
+						color: #ff0000;
+					}
+				}
+
+				.checkbox {
+					width: 7vw;
+				}
+			}
+		}
+
+		.bottom {
+			text-align: center;
+
+			button:first-child {
+				margin: 0 1vw 0 0;
+				background-color: #ff0000;
+				color: #ffffff;
+			}
+		}
+	}
 </style>

+ 13 - 0
uni_modules/uni-drawer/changelog.md

@@ -0,0 +1,13 @@
+## 1.2.1(2021-11-22)
+- 修复 vue3中个别scss变量无法找到的问题
+## 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-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer)
+## 1.1.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.1.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7(2021-05-12)
+- 新增 组件示例地址
+## 1.0.6(2021-02-04)
+- 调整为uni_modules目录规范

+ 45 - 0
uni_modules/uni-drawer/components/uni-drawer/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

+ 187 - 0
uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue

@@ -0,0 +1,187 @@
+<template>
+	<view v-if="visibleSync" :class="{ 'uni-drawer--visible': showDrawer }" class="uni-drawer"
+		@touchmove.stop.prevent="clear">
+		<view class="uni-drawer__mask" :class="{ 'uni-drawer__mask--visible': showDrawer && mask }"
+			@tap="close('mask')" />
+		<view class="uni-drawer__content"
+			:class="{'uni-drawer--right': rightMode,'uni-drawer--left': !rightMode, 'uni-drawer__content--visible': showDrawer}"
+			:style="{width:drawerWidth}">
+			<slot />
+		</view>
+		<!-- #ifdef H5 -->
+		<keypress @esc="close('mask')" />
+		<!-- #endif -->
+	</view>
+</template>
+
+<script>
+	// #ifdef H5
+	import keypress from './keypress.js'
+	// #endif
+	/**
+	 * Drawer 抽屉
+	 * @description 抽屉侧滑菜单
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=26
+	 * @property {Boolean} mask = [true | false] 是否显示遮罩
+	 * @property {Boolean} maskClick = [true | false] 点击遮罩是否关闭
+	 * @property {Boolean} mode = [left | right] Drawer 滑出位置
+	 * 	@value left 从左侧滑出
+	 * 	@value right 从右侧侧滑出
+	 * @property {Number} width 抽屉的宽度 ,仅 vue 页面生效
+	 * @event {Function} close 组件关闭时触发事件
+	 */
+	export default {
+		name: 'UniDrawer',
+		components: {
+			// #ifdef H5
+			keypress
+			// #endif
+		},
+		emits: ['change'],
+		props: {
+			/**
+			 * 显示模式(左、右),只在初始化生效
+			 */
+			mode: {
+				type: String,
+				default: ''
+			},
+			/**
+			 * 蒙层显示状态
+			 */
+			mask: {
+				type: Boolean,
+				default: true
+			},
+			/**
+			 * 遮罩是否可点击关闭
+			 */
+			maskClick: {
+				type: Boolean,
+				default: true
+			},
+			/**
+			 * 抽屉宽度
+			 */
+			width: {
+				type: String,
+				default: '50%'
+			}
+		},
+		data() {
+			return {
+				visibleSync: false,
+				showDrawer: false,
+				rightMode: false,
+				watchTimer: null,
+				drawerWidth: '50%'
+			}
+		},
+		created() {
+			// #ifndef APP-NVUE
+			this.drawerWidth = this.width
+			// #endif
+			this.rightMode = this.mode === 'right'
+		},
+		methods: {
+			clear() {},
+			close(type) {
+				// fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑
+				if ((type === 'mask' && !this.maskClick) || !this.visibleSync) return
+				this._change('showDrawer', 'visibleSync', false)
+			},
+			open() {
+				// fixed by mehaotian 处理重复点击打开的事件
+				if (this.visibleSync) return
+				this._change('visibleSync', 'showDrawer', true)
+			},
+			_change(param1, param2, status) {
+				this[param1] = status
+				if (this.watchTimer) {
+					clearTimeout(this.watchTimer)
+				}
+				this.watchTimer = setTimeout(() => {
+					this[param2] = status
+					this.$emit('change', status)
+				}, status ? 50 : 300)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	$uni-mask: rgba($color: #000000, $alpha: 0.4);
+	// 抽屉宽度
+	$drawer-width: 220px;
+
+	.uni-drawer {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		overflow: hidden;
+		z-index: 999;
+	}
+
+	.uni-drawer__content {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		position: absolute;
+		top: 0;
+		width: $drawer-width;
+		bottom: 0;
+		background-color: $uni-bg-color;
+		transition: transform 0.3s ease;
+	}
+
+	.uni-drawer--left {
+		left: 0;
+		/* #ifdef APP-NVUE */
+		transform: translateX(-$drawer-width);
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		transform: translateX(-100%);
+		/* #endif */
+	}
+
+	.uni-drawer--right {
+		right: 0;
+		/* #ifdef APP-NVUE */
+		transform: translateX($drawer-width);
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		transform: translateX(100%);
+		/* #endif */
+	}
+
+	.uni-drawer__content--visible {
+		transform: translateX(0px);
+	}
+
+
+	.uni-drawer__mask {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		opacity: 0;
+		position: absolute;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		background-color: $uni-mask;
+		transition: opacity 0.3s;
+	}
+
+	.uni-drawer__mask--visible {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		opacity: 1;
+	}
+</style>

+ 87 - 0
uni_modules/uni-drawer/package.json

@@ -0,0 +1,87 @@
+{
+  "id": "uni-drawer",
+  "displayName": "uni-drawer 抽屉",
+  "version": "1.2.1",
+  "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "drawer",
+    "抽屉",
+    "侧滑导航"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "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": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "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"
+        }
+      }
+    }
+  }
+}

+ 10 - 0
uni_modules/uni-drawer/readme.md

@@ -0,0 +1,10 @@
+
+
+## Drawer 抽屉
+> **组件名:uni-drawer**
+> 代码块: `uDrawer`
+
+抽屉侧滑菜单。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839