Appearance
Drawer 抽屉 #
官网上用了很多抽屉的功能这里直接封装了一个抽屉直接调用api使用
TIP
项目中的皆为本地使用路径,自己项目使用请根据快速开始中操作使用
基本用法 #
点击按钮打开Drawer
<template>
<div class="container">
<aux-drawer :position="position" v-model="visible">
<span>加入购物</span>
<button @click="()=>visible=false"> 关闭</button>
</aux-drawer>
<aux-noble-button @click="(e)=>handleClick(e,'top')"> 上</aux-noble-button>
<aux-noble-button @click="(e)=>handleClick(e,'right')"> 右</aux-noble-button>
<aux-noble-button @click="(e)=>handleClick(e,'bottom')"> 下</aux-noble-button>
<aux-noble-button @click="(e)=>handleClick(e,'left')" > 左</aux-noble-button>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { Drawer as AuxDrawer,NobleButton as AuxNobleButton } from "../../../../../aux-ui/main"
import type {DrawerProps} from "../../../../../aux-ui/drawer/index"
const visible=ref(false)
const position= ref<DrawerProps['position']>('right')
const handleClick=(e:MouseEvent,key:DrawerProps['position'])=>{
position.value=key
visible.value=true
}
</script>
<style scoped>
.container {
min-height: 100px;
display: flex;
justify-content: center;
align-items: center;
perspective: 600px;
background-color: #813705;
}
</style>
显示代码
自定义内容 #
通过with-header属性控制是否显示标题
通过title属性或者插槽控制title内容
<template>
<div class="container">
<aux-drawer :position="position" title="打开菜单" v-model="right">
<span>加入购物</span>
</aux-drawer>
<aux-drawer :position="`left`" title="打开菜单" v-model="left" @close="close" @open="open">
<span>加入购物</span>
<template #title >
插槽加入
</template>
</aux-drawer>
<aux-noble-button @click="(e)=>handleClick(e,'right')"> 打开菜单</aux-noble-button>
<aux-noble-button @click="handleRight"> 插槽加入</aux-noble-button>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { Drawer as AuxDrawer,NobleButton as AuxNobleButton } from "../../../../../aux-ui/main"
import type {DrawerProps} from "../../../../../aux-ui/drawer/index"
const left=ref(false)
const right=ref(false)
const position= ref<DrawerProps['position']>('right')
const handleClick=(e:MouseEvent,key:DrawerProps['position'])=>{
position.value=key
right.value=true
}
const handleRight=()=>{
left.value=true
}
const close=()=>{
console.log("关闭");
}
const open =()=>{
console.log("开启");
}
</script>
<style scoped>
.container {
min-height: 100px;
display: flex;
justify-content: center;
align-items: center;
perspective: 600px;
background-color: #813705;
}
</style>
显示代码
自定义样式 #
通过透传属性改变样式,修改closeMode可以取消点击外部关闭抽屉的事件
通过透传属性改变样式,修改closeMode可以取消点击外部关闭抽屉的事件
<template>
<div class="container">
<aux-drawer :position="position" v-model="visible" :with-header="false" :close-mode="`none`" :is-overlay="false" style="background-color:rgb(0, 0, 0,0.3);backdrop-filter: blur(5px);">
<span>加入购物</span>
<button @click="()=>visible=false"> 关闭</button>
</aux-drawer>
<aux-noble-button @click="(e)=>handleClick(e,'right')"> 膜玻璃效果</aux-noble-button>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { Drawer as AuxDrawer,NobleButton as AuxNobleButton } from "../../../../../aux-ui/main"
import type {DrawerProps} from "../../../../../aux-ui/drawer/index"
const visible=ref(false)
const position= ref<DrawerProps['position']>('right')
const handleClick=(e:MouseEvent,key:DrawerProps['position'])=>{
position.value=key
visible.value=true
}
</script>
<style scoped>
.container {
min-height: 100px;
display: flex;
justify-content: center;
align-items: center;
perspective: 600px;
background-color: #813705;
}
</style>
显示代码
Drawer 参数 #
参数名 | 类型 | 默认值 | 说明 | 跳转 Demo |
---|---|---|---|---|
v-model | Boolean | false | 是否显示 | 基本用法 |
size | string | 30% | 样式大小 | |
zIndex | string | 1400 | 显示层级默认即可 | |
title | string | 空 | 标题内容 | 自定义内容 |
withHeader | Boolean | true | 是否显示头标签 | 基本用法 |
position | string | right | 抽屉方向 | 基本用法 |
isOverlay | Boolean | true | 是否打开遮照 | 自定义样式 |
closeMode | none&outside as string | outside | 关闭模式 | 自定义样式 |
Drawer 事件 #
事件名 | 说明 | 参数 |
---|---|---|
close | 关闭回掉 | 无 |
open | 打开回掉 | 无 |
Drawer 插槽 #
插槽名 | 说明 | 跳转 Demo |
---|---|---|
default | 任意内容 | 基本用法 |
title | 标题 | 自定义内容 |