mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-16 02:11:48 +08:00
984e0c2578
* feat: [el-drawer]add footer slot * feat(components): [el-drawer]add footer slot * feat(components): [el-drawer]add cancel and confirm function
77 lines
1.9 KiB
Vue
77 lines
1.9 KiB
Vue
<template>
|
|
<el-radio-group v-model="direction">
|
|
<el-radio label="ltr">left to right</el-radio>
|
|
<el-radio label="rtl">right to left</el-radio>
|
|
<el-radio label="ttb">top to bottom</el-radio>
|
|
<el-radio label="btt">bottom to top</el-radio>
|
|
</el-radio-group>
|
|
|
|
<el-button type="primary" style="margin-left: 16px" @click="drawer = true">
|
|
open
|
|
</el-button>
|
|
<el-button type="primary" style="margin-left: 16px" @click="drawer2 = true">
|
|
with footer
|
|
</el-button>
|
|
|
|
<el-drawer
|
|
v-model="drawer"
|
|
title="I am the title"
|
|
:direction="direction"
|
|
:before-close="handleClose"
|
|
>
|
|
<span>Hi, there!</span>
|
|
</el-drawer>
|
|
<el-drawer v-model="drawer2" :direction="direction">
|
|
<template #title>
|
|
<h4>set title by slot</h4>
|
|
</template>
|
|
<template #default>
|
|
<div>
|
|
<el-radio v-model="radio1" label="Option 1" size="large"
|
|
>Option 1</el-radio
|
|
>
|
|
<el-radio v-model="radio1" label="Option 2" size="large"
|
|
>Option 2</el-radio
|
|
>
|
|
</div>
|
|
</template>
|
|
<template #footer>
|
|
<div style="flex: auto">
|
|
<el-button @click="cancelClick">cancel</el-button>
|
|
<el-button type="primary" @click="confirmClick">confirm</el-button>
|
|
</div>
|
|
</template>
|
|
</el-drawer>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { ref } from 'vue'
|
|
import { ElMessageBox } from 'element-plus'
|
|
|
|
const drawer = ref(false)
|
|
const drawer2 = ref(false)
|
|
const direction = ref('rtl')
|
|
const radio1 = ref('Option 1')
|
|
const handleClose = (done: () => void) => {
|
|
ElMessageBox.confirm('Are you sure you want to close this?')
|
|
.then(() => {
|
|
done()
|
|
})
|
|
.catch(() => {
|
|
// catch error
|
|
})
|
|
}
|
|
function cancelClick() {
|
|
drawer2.value = false
|
|
}
|
|
function confirmClick() {
|
|
ElMessageBox.confirm(`Are you confirm to chose ${radio1.value} ?`)
|
|
.then(() => {
|
|
drawer2.value = false
|
|
})
|
|
.catch(() => {
|
|
// catch error
|
|
})
|
|
}
|
|
</script>
|