UNPKG

kui-vue

Version:

A lightweight desktop UI component library suitable for Vue.js 2.

80 lines (74 loc) 1.75 kB
<cn> ### 自定义 自定义 `Modal` </cn> ```vue <template> <Space vertical> <Button @click="visible1 = true" type="primary">宽300px</Button> <Button @click="visible2 = true" type="primary">自定义页脚</Button> <Button @click="visible3 = true" type="primary">国际化</Button> <Button @click="visible4 = true" type="primary">异步关闭</Button> <Modal title="Width 300px" v-model="visible1" :width="300" @ok="visible1 = false" > <p>content</p> </Modal> <Modal title="Custom footer" v-model="visible2"> <p>content</p> <template #footer> <Button :icon="Save" @click="visible2 = false" type="primary" >Save</Button > </template> </Modal> <Modal title="Are you ok ?" v-model="visible3" ok-text="Ok" cancel-text="Cancel" @ok="okHandle" > <p>Yes , I'm fine !</p> </Modal> <Modal title="提交表单" v-model="visible4" :loading="loading" @ok="submit" @close="close" > <p> Name:<Input placeholder="Please input your name" style="width:200px" /> </p> </Modal> </Space> </template> <script setup> import { Save } from "kui-icons"; import { ref } from "vue"; const visible1 = ref(false); const visible2 = ref(false); const visible3 = ref(false); const visible4 = ref(false); const loading = ref(false); const timer = ref(); const okHandle = () => { visible3.value = false; }; const submit = () => { loading.value = true; timer.value = setTimeout((e) => { loading.value = false; visible4.value = false; }, 2000); }; const close = () => { loading.value = false; clearTimeout(timer.value); }; </script> ```