88 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
| <docs>
 | ||
| ---
 | ||
| order: 5
 | ||
| title:
 | ||
|   zh-CN: 多层抽屉
 | ||
|   en-US: Multi-level drawer
 | ||
| ---
 | ||
| 
 | ||
| ## zh-CN
 | ||
| 
 | ||
| 在抽屉内打开新的抽屉,用以解决多分支任务的复杂状况。
 | ||
| 
 | ||
| ## en-US
 | ||
| 
 | ||
| Open a new drawer on top of an existing drawer to handle multi branch tasks.
 | ||
| 
 | ||
| </docs>
 | ||
| 
 | ||
| <template>
 | ||
|   <a-button type="primary" @click="showDrawer">Open</a-button>
 | ||
|   <a-drawer
 | ||
|     title="Multi-level drawer"
 | ||
|     width="520"
 | ||
|     :closable="false"
 | ||
|     :visible="visible"
 | ||
|     @close="onClose"
 | ||
|   >
 | ||
|     <a-button type="primary" @click="showChildrenDrawer">Two-level drawer</a-button>
 | ||
|     <a-drawer
 | ||
|       title="Two-level Drawer"
 | ||
|       width="320"
 | ||
|       :closable="false"
 | ||
|       :visible="childrenDrawer"
 | ||
|       @close="onChildrenDrawerClose"
 | ||
|     >
 | ||
|       <a-button type="primary" @click="showChildrenDrawer">This is two-level drawer</a-button>
 | ||
|     </a-drawer>
 | ||
|     <div
 | ||
|       :style="{
 | ||
|         position: 'absolute',
 | ||
|         bottom: 0,
 | ||
|         width: '100%',
 | ||
|         borderTop: '1px solid #e8e8e8',
 | ||
|         padding: '10px 16px',
 | ||
|         textAlign: 'right',
 | ||
|         left: 0,
 | ||
|         background: '#fff',
 | ||
|         borderRadius: '0 0 4px 4px',
 | ||
|       }"
 | ||
|     >
 | ||
|       <a-button style="margin-right: 8px" @click="onClose">Cancel</a-button>
 | ||
|       <a-button type="primary" @click="onClose">Submit</a-button>
 | ||
|     </div>
 | ||
|   </a-drawer>
 | ||
| </template>
 | ||
| <script lang="ts">
 | ||
| import { defineComponent, ref } from 'vue';
 | ||
| 
 | ||
| export default defineComponent({
 | ||
|   setup() {
 | ||
|     const visible = ref<boolean>(false);
 | ||
| 
 | ||
|     const childrenDrawer = ref<boolean>(false);
 | ||
| 
 | ||
|     const showDrawer = () => {
 | ||
|       visible.value = true;
 | ||
|     };
 | ||
|     const onClose = () => {
 | ||
|       visible.value = false;
 | ||
|     };
 | ||
|     const showChildrenDrawer = () => {
 | ||
|       childrenDrawer.value = true;
 | ||
|     };
 | ||
|     const onChildrenDrawerClose = () => {
 | ||
|       childrenDrawer.value = false;
 | ||
|     };
 | ||
|     return {
 | ||
|       visible,
 | ||
|       childrenDrawer,
 | ||
|       showDrawer,
 | ||
|       onClose,
 | ||
|       showChildrenDrawer,
 | ||
|       onChildrenDrawerClose,
 | ||
|     };
 | ||
|   },
 | ||
| });
 | ||
| </script>
 |