From 3b03f87a02458f719e2eb4bf112a13441b427d14 Mon Sep 17 00:00:00 2001 From: ‘chensiAb’ <‘chenchenco03@163.com’> Date: Tue, 25 Mar 2025 13:54:34 +0800 Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components --- _cursor.ai/layout.doc/drawer.doc/CDrawer.doc.md | 199 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 199 insertions(+), 0 deletions(-) diff --git a/_cursor.ai/layout.doc/drawer.doc/CDrawer.doc.md b/_cursor.ai/layout.doc/drawer.doc/CDrawer.doc.md new file mode 100644 index 0000000..1d8df88 --- /dev/null +++ b/_cursor.ai/layout.doc/drawer.doc/CDrawer.doc.md @@ -0,0 +1,199 @@ +# CDrawer 抽屉 + +## 功能说明 + +抽屉组件,可从页面不同方向滑出,通常用于展示临时的操作面板或内容区域,支持从顶部、左侧、右侧滑入。点击遮罩层可关闭抽屉。 + +## 引用方式 + +```js +import CDrawer from '@components/layout/drawer'; +``` + +## 组件参数 + +- `show` (Boolean,必选):控制抽屉显示或隐藏,默认值为 false +- `direction` (String,可选):抽屉滑出方向,默认值为 'right' + - `top`:从顶部滑出 + - `left`:从左侧滑出 + - `right`:从右侧滑出 +- `onClose` (Function,必选):抽屉关闭时的回调函数,通常用于设置 show 为 false + +## 使用示例 + +### 基础用法 - 从右侧滑出 + +```html +<template> + <view class="page"> + <button @tap="evt => openDrawer()">打开抽屉</button> + + <CDrawer + :show="drawerVisible" + :onClose="closeDrawer" + > + <view class="drawer-content"> + <view class="drawer-title">筛选条件</view> + <view class="drawer-item">选项1</view> + <view class="drawer-item">选项2</view> + <view class="drawer-item">选项3</view> + <button @tap="evt => applyFilter()">确定</button> + </view> + </CDrawer> + </view> +</template> + +<script> +import CDrawer from '@components/layout/drawer'; + +export default { + components: { + CDrawer + }, + data() { + return { + drawerVisible: false + } + }, + methods: { + openDrawer() { + this.drawerVisible = true; + }, + closeDrawer() { + this.drawerVisible = false; + }, + applyFilter() { + // 应用筛选逻辑 + this.closeDrawer(); + } + } +} +</script> + +<style> +.drawer-content { + padding: 20px; +} +.drawer-title { + font-size: 18px; + font-weight: bold; + margin-bottom: 20px; +} +.drawer-item { + padding: 10px 0; +} +</style> +``` + +### 从左侧滑出的抽屉 + +```html +<template> + <view class="page"> + <button @tap="evt => openDrawer()">打开导航菜单</button> + + <CDrawer + :show="drawerVisible" + direction="left" + :onClose="closeDrawer" + > + <view class="menu-content"> + <view class="menu-item" @tap="evt => navigateTo('/pages/home/index')">首页</view> + <view class="menu-item" @tap="evt => navigateTo('/pages/order/list')">订单管理</view> + <view class="menu-item" @tap="evt => navigateTo('/pages/user/index')">用户中心</view> + <view class="menu-item" @tap="evt => navigateTo('/pages/setting/index')">系统设置</view> + </view> + </CDrawer> + </view> +</template> + +<script> +import CDrawer from '@components/layout/drawer'; +import Taro from '@tarojs/taro'; + +export default { + components: { + CDrawer + }, + data() { + return { + drawerVisible: false + } + }, + methods: { + openDrawer() { + this.drawerVisible = true; + }, + closeDrawer() { + this.drawerVisible = false; + }, + navigateTo(url) { + this.closeDrawer(); + Taro.navigateTo({ url }); + } + } +} +</script> +``` + +### 从顶部滑出的抽屉 + +```html +<template> + <view class="page"> + <button @tap="evt => openDrawer()">显示通知</button> + + <CDrawer + :show="drawerVisible" + direction="top" + :onClose="closeDrawer" + > + <view class="notification"> + <view class="notification-title">系统通知</view> + <view class="notification-content"> + 您有3条未读消息,请及时查看处理。 + </view> + <button @tap="evt => viewMessages()">查看详情</button> + </view> + </CDrawer> + </view> +</template> + +<script> +import CDrawer from '@components/layout/drawer'; + +export default { + components: { + CDrawer + }, + data() { + return { + drawerVisible: false + } + }, + methods: { + openDrawer() { + this.drawerVisible = true; + }, + closeDrawer() { + this.drawerVisible = false; + }, + viewMessages() { + this.closeDrawer(); + // 跳转到消息页面 + } + } +} +</script> +``` + +## 注意事项 + +1. 使用抽屉组件时,必须提供 onClose 回调函数,否则点击遮罩层无法关闭抽屉 +2. 抽屉内容通过默认插槽提供,可以根据需要自定义内容和样式 +3. 抽屉组件默认占满整个屏幕,内容区域的样式需要自行定义 +4. 抽屉打开时会添加遮罩层,防止用户与页面其他部分交互 +5. 抽屉内容区宽度固定,左右抽屉为屏幕宽度的80%,顶部抽屉为屏幕高度的40% +6. 当前版本的组件不支持从底部滑出的抽屉,如有需要可考虑扩展组件 + +<!-- 作者:Tevin --> \ No newline at end of file -- Gitblit v1.9.1