doc: update demo ts type
							parent
							
								
									b25c5cc28e
								
							
						
					
					
						commit
						ce767f2e0d
					
				|  | @ -34,13 +34,14 @@ If you need several buttons, we recommend that you use 1 primary button + n seco | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { DownOutlined } from '@ant-design/icons-vue'; | ||||
| import { MenuProps } from 'ant-design-vue'; | ||||
| import { defineComponent } from 'vue'; | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|     DownOutlined, | ||||
|   }, | ||||
|   setup() { | ||||
|     const handleMenuClick = (e: Event) => { | ||||
|     const handleMenuClick: MenuProps['onClick'] = e => { | ||||
|       console.log('click', e); | ||||
|     }; | ||||
|     return { | ||||
|  |  | |||
|  | @ -64,6 +64,7 @@ If a large or small button is desired, set the `size` property to either `large` | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { DownloadOutlined } from '@ant-design/icons-vue'; | ||||
| import type { SizeType } from 'ant-design-vue/es/config-provider'; | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|  | @ -71,7 +72,7 @@ export default defineComponent({ | |||
|   }, | ||||
|   setup() { | ||||
|     return { | ||||
|       size: ref('large'), | ||||
|       size: ref<SizeType>('large'), | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
|  | @ -31,11 +31,12 @@ There are 4 position options available. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { CarouselProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     return { | ||||
|       dotPosition: ref('top'), | ||||
|       dotPosition: ref<CarouselProps['dotPosition']>('top'), | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
|  | @ -72,7 +72,7 @@ export default defineComponent({ | |||
|     const value = ref<string[]>([]); | ||||
|     const text = ref<string>('Unselect'); | ||||
| 
 | ||||
|     const onChange = (value: string, selectedOptions: Option[]) => { | ||||
|     const onChange = (_value: string, selectedOptions: Option[]) => { | ||||
|       text.value = selectedOptions.map(o => o.label).join(', '); | ||||
|     }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ More than one panel can be expanded at a time, the first panel is initialized to | |||
| <script lang="ts"> | ||||
| import { SettingOutlined } from '@ant-design/icons-vue'; | ||||
| import { defineComponent, ref, watch } from 'vue'; | ||||
| import type { CollapseProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|  | @ -49,7 +50,7 @@ export default defineComponent({ | |||
|   setup() { | ||||
|     const text = `A dog is a type of domesticated animal.Known for its loyalty and faithfulness,it can be found as a welcome guest in many households across the world.`; | ||||
|     const activeKey = ref(['1']); | ||||
|     const expandIconPosition = ref('left'); | ||||
|     const expandIconPosition = ref<CollapseProps['expandIconPosition']>('left'); | ||||
| 
 | ||||
|     const handleClick = (event: MouseEvent) => { | ||||
|       // If you don't want click extra trigger collapse, you can prevent this: | ||||
|  |  | |||
|  | @ -41,10 +41,10 @@ export default defineComponent({ | |||
|       value3: ref<Dayjs>(), | ||||
|       value4: ref<Dayjs>(), | ||||
|       value5: ref<Dayjs>(), | ||||
|       value6: ref<Dayjs[]>([]), | ||||
|       value7: ref<Dayjs[]>([]), | ||||
|       value8: ref<Dayjs[]>([]), | ||||
|       value9: ref<Dayjs[]>([]), | ||||
|       value6: ref<[Dayjs, Dayjs]>(), | ||||
|       value7: ref<[Dayjs, Dayjs]>(), | ||||
|       value8: ref<[Dayjs, Dayjs]>(), | ||||
|       value9: ref<[Dayjs, Dayjs]>(), | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
|  | @ -67,13 +67,11 @@ Custom sizes to fit in a variety of containers. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| // TODO | ||||
| import type { RadioChangeEvent } from 'ant-design-vue/es/radio/interface'; | ||||
| 
 | ||||
| import type { DescriptionsProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const size = ref('default'); | ||||
|     const onChange = (e: RadioChangeEvent) => { | ||||
|     const size = ref<DescriptionsProps['size']>('default'); | ||||
|     const onChange = (e: any) => { | ||||
|       console.log('size checked', e.target.value); | ||||
|       size.value = e.target.value; | ||||
|     }; | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ Simplest Usage. | |||
|     <a-descriptions-item label="UserName">Zhou Maomao</a-descriptions-item> | ||||
|     <a-descriptions-item label="Telephone">1810000000</a-descriptions-item> | ||||
|     <a-descriptions-item label="Live">Hangzhou, Zhejiang</a-descriptions-item> | ||||
|     <a-descriptions-item label="Address" span="2"> | ||||
|     <a-descriptions-item label="Address" :span="2"> | ||||
|       No. 18, Wantang Road, Xihu District, Hangzhou, Zhejiang, China | ||||
|     </a-descriptions-item> | ||||
|     <a-descriptions-item label="Remark">empty</a-descriptions-item> | ||||
|  |  | |||
|  | @ -42,9 +42,10 @@ Extra actions should be placed at corner of drawer in Ant Design, you can using | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { DrawerProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const placement = ref<string>('left'); | ||||
|     const placement = ref<DrawerProps['placement']>('left'); | ||||
|     const visible = ref<boolean>(false); | ||||
| 
 | ||||
|     const showDrawer = () => { | ||||
|  |  | |||
|  | @ -80,7 +80,7 @@ Use form in drawer with submit button. | |||
|             <a-date-picker | ||||
|               v-model:value="form.dateTime" | ||||
|               style="width: 100%" | ||||
|               :get-popup-container="trigger => trigger.parentNode" | ||||
|               :get-popup-container="trigger => trigger.parentElement" | ||||
|             /> | ||||
|           </a-form-item> | ||||
|         </a-col> | ||||
|  | @ -117,7 +117,7 @@ export default defineComponent({ | |||
|       owner: '', | ||||
|       type: '', | ||||
|       approver: '', | ||||
|       dateTime: '', | ||||
|       dateTime: null, | ||||
|       description: '', | ||||
|     }); | ||||
| 
 | ||||
|  |  | |||
|  | @ -38,9 +38,10 @@ The Drawer can appear from any edge of the screen. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { DrawerProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const placement = ref<string>('left'); | ||||
|     const placement = ref<DrawerProps['placement']>('left'); | ||||
|     const visible = ref<boolean>(false); | ||||
| 
 | ||||
|     const showDrawer = () => { | ||||
|  |  | |||
|  | @ -33,12 +33,13 @@ The default width (or height) of Drawer is `378px`, and there is a presetted lar | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { DrawerProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const visible = ref<boolean>(false); | ||||
|     const size = ref<string>('default'); | ||||
|     const size = ref<DrawerProps['size']>('default'); | ||||
| 
 | ||||
|     const showDrawer = (val: string) => { | ||||
|     const showDrawer = (val: DrawerProps['size']) => { | ||||
|       size.value = val; | ||||
|       visible.value = true; | ||||
|     }; | ||||
|  |  | |||
|  | @ -103,6 +103,7 @@ A button is on the left, and a related functional menu is on the right. You can | |||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import { UserOutlined, DownOutlined } from '@ant-design/icons-vue'; | ||||
| import type { MenuProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|  | @ -113,7 +114,7 @@ export default defineComponent({ | |||
|     const handleButtonClick = (e: Event) => { | ||||
|       console.log('click left button', e); | ||||
|     }; | ||||
|     const handleMenuClick = (e: Event) => { | ||||
|     const handleMenuClick: MenuProps['onClick'] = e => { | ||||
|       console.log('click', e); | ||||
|     }; | ||||
|     return { | ||||
|  |  | |||
|  | @ -34,20 +34,14 @@ An event will be triggered when you click menu items, in which you can make diff | |||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import { DownOutlined } from '@ant-design/icons-vue'; | ||||
| 
 | ||||
| interface MenuInfo { | ||||
|   key: string; | ||||
|   keyPath: string[]; | ||||
|   item: any; | ||||
|   domEvent: MouseEvent; | ||||
| } | ||||
| import type { MenuProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|     DownOutlined, | ||||
|   }, | ||||
|   setup() { | ||||
|     const onClick = ({ key }: MenuInfo) => { | ||||
|     const onClick: MenuProps['onClick'] = ({ key }) => { | ||||
|       console.log(`Click on item ${key}`); | ||||
|     }; | ||||
|     return { | ||||
|  |  | |||
|  | @ -34,20 +34,15 @@ The default is to close the menu when you click on menu items, this feature can | |||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import { DownOutlined } from '@ant-design/icons-vue'; | ||||
| import { MenuProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| interface MenuInfo { | ||||
|   key: string; | ||||
|   keyPath: string[]; | ||||
|   item: any; | ||||
|   domEvent: MouseEvent; | ||||
| } | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|     DownOutlined, | ||||
|   }, | ||||
|   setup() { | ||||
|     const visible = ref(false); | ||||
|     const handleMenuClick = (e: MenuInfo) => { | ||||
|     const handleMenuClick: MenuProps['onClick'] = e => { | ||||
|       if (e.key === '3') { | ||||
|         visible.value = false; | ||||
|       } | ||||
|  |  | |||
|  | @ -47,10 +47,18 @@ Support 6 placements. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import type { DropdownProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     return { | ||||
|       placements: ['bottomLeft', 'bottomCenter', 'bottomRight', 'topLeft', 'topCenter', 'topRight'], | ||||
|       placements: [ | ||||
|         'bottomLeft', | ||||
|         'bottomCenter', | ||||
|         'bottomRight', | ||||
|         'topLeft', | ||||
|         'topCenter', | ||||
|         'topRight', | ||||
|       ] as DropdownProps['placement'][], | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ export default defineComponent({ | |||
|   setup() { | ||||
|     const value = ref<string>(''); | ||||
|     const loading = ref<boolean>(false); | ||||
|     const users = ref<string[]>([]); | ||||
|     const users = ref<{ login: string; avatar_url: string }[]>([]); | ||||
|     const search = ref<string>(''); | ||||
|     const loadGithubUsers = debounce((key: string) => { | ||||
|       if (!key) { | ||||
|  |  | |||
|  | @ -69,6 +69,7 @@ Vertical menu with inline submenus. | |||
| <script lang="ts"> | ||||
| import { defineComponent, ref, watch } from 'vue'; | ||||
| import { MailOutlined, QqOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons-vue'; | ||||
| import type { MenuProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|     MailOutlined, | ||||
|  | @ -79,7 +80,7 @@ export default defineComponent({ | |||
|   setup() { | ||||
|     const selectedKeys = ref<string[]>(['1']); | ||||
|     const openKeys = ref<string[]>(['sub1']); | ||||
|     const handleClick = (e: Event) => { | ||||
|     const handleClick: MenuProps['onClick'] = e => { | ||||
|       console.log('click', e); | ||||
|     }; | ||||
|     const titleClick = (e: Event) => { | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ Custom modal content render. use `react-draggable` implements draggable. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { CSSProperties } from 'vue'; | ||||
| import VueDragResize from 'vue-drag-resize'; | ||||
| export default defineComponent({ | ||||
|   components: { | ||||
|  | @ -57,7 +58,7 @@ export default defineComponent({ | |||
|     const visible = ref<boolean>(false); | ||||
|     const draggleRef = ref(); | ||||
|     const disabled = ref(true); | ||||
|     const bounds = ref({ left: 0, top: 0, width: 520, height: 0 }); | ||||
|     const bounds = ref<CSSProperties>({ left: 0, top: 0, width: 520, height: 0 }); | ||||
|     const showModal = () => { | ||||
|       visible.value = true; | ||||
|     }; | ||||
|  | @ -67,7 +68,7 @@ export default defineComponent({ | |||
|       visible.value = false; | ||||
|     }; | ||||
| 
 | ||||
|     const onStart = (event, uiData) => { | ||||
|     const onStart = (_event, uiData) => { | ||||
|       const { clientWidth, clientHeight } = window.document.documentElement; | ||||
|       const targetRect = draggleRef.value?.getBoundingClientRect(); | ||||
|       if (!targetRect) { | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ export default defineComponent({ | |||
|     const pageSizeRef = ref(10); | ||||
|     const total = ref(50); | ||||
|     const onShowSizeChange = (current: number, pageSize: number) => { | ||||
|       console.log(pageSize); | ||||
|       console.log(current, pageSize); | ||||
|       pageSizeRef.value = pageSize; | ||||
|     }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,13 +33,14 @@ Render radios by configuring `options`. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import { RadioGroupProps } from 'ant-design-vue'; | ||||
| const plainOptions = ['Apple', 'Pear', 'Orange']; | ||||
| const options = [ | ||||
|   { label: 'Apple', value: 'Apple' }, | ||||
|   { label: 'Pear', value: 'Pear' }, | ||||
|   { label: 'Orange', value: 'Orange' }, | ||||
| ]; | ||||
| const optionsWithDisabled = [ | ||||
| const optionsWithDisabled: RadioGroupProps['options'] = [ | ||||
|   { label: 'Apple', value: 'Apple' }, | ||||
|   { label: 'Pear', value: 'Pear' }, | ||||
|   { label: 'Orange', value: 'Orange', disabled: true }, | ||||
|  |  | |||
|  | @ -31,11 +31,6 @@ The label of the selected item will be packed as an object for passing to the on | |||
| import type { SelectProps } from 'ant-design-vue'; | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| 
 | ||||
| interface Value { | ||||
|   value?: string; | ||||
|   label?: string; | ||||
| } | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const options = ref<SelectProps['options']>([ | ||||
|  | @ -48,11 +43,11 @@ export default defineComponent({ | |||
|         label: 'Lucy (101)', | ||||
|       }, | ||||
|     ]); | ||||
|     const handleChange = (value: Value) => { | ||||
|     const handleChange: SelectProps['onChange'] = value => { | ||||
|       console.log(value); // { key: "lucy", label: "Lucy (101)" } | ||||
|     }; | ||||
|     return { | ||||
|       value: ref<Value>({ value: 'lucy' }), | ||||
|       value: ref({ value: 'lucy' }), | ||||
|       options, | ||||
|       handleChange, | ||||
|     }; | ||||
|  |  | |||
|  | @ -51,6 +51,7 @@ The height of the input field for the select defaults to 32px. If size is set to | |||
|   </a-space> | ||||
| </template> | ||||
| <script lang="ts"> | ||||
| import type { SelectProps } from 'ant-design-vue'; | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|  | @ -60,7 +61,7 @@ export default defineComponent({ | |||
| 
 | ||||
|     return { | ||||
|       popupScroll, | ||||
|       size: ref('default'), | ||||
|       size: ref<SelectProps['size']>('default'), | ||||
|       value1: ref('a1'), | ||||
|       value2: ref(['a1', 'b2']), | ||||
|       value3: ref(['a1', 'b2']), | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ import { defineComponent, ref } from 'vue'; | |||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value1 = ref<number>(0); | ||||
|     const value2 = ref<number[]>([20, 50]); | ||||
|     const value2 = ref<[number, number]>([20, 50]); | ||||
|     const disabled = ref<boolean>(false); | ||||
| 
 | ||||
|     return { | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ import { defineComponent, ref } from 'vue'; | |||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value1 = ref<number>(30); | ||||
|     const value2 = ref<number[]>([20, 50]); | ||||
|     const value2 = ref<[number, number]>([20, 50]); | ||||
| 
 | ||||
|     const onAfterChange = (value: number) => { | ||||
|       console.log('afterChange: ', value); | ||||
|  |  | |||
|  | @ -72,7 +72,7 @@ import { defineComponent, ref } from 'vue'; | |||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value1 = ref<number>(37); | ||||
|     const value2 = ref<number[]>([26, 37]); | ||||
|     const value2 = ref<[number, number]>([26, 37]); | ||||
|     const value3 = ref<number>(37); | ||||
|     const value4 = ref<number>(37); | ||||
|     const value5 = ref<number>(37); | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ import { defineComponent, ref } from 'vue'; | |||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value1 = ref<number>(30); | ||||
|     const value2 = ref<number[]>([20, 50]); | ||||
|     const value2 = ref<[number, number]>([20, 50]); | ||||
|     const reverse = ref<boolean>(true); | ||||
| 
 | ||||
|     return { | ||||
|  |  | |||
|  | @ -33,8 +33,8 @@ import { defineComponent, ref, createVNode } from 'vue'; | |||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const value1 = ref<number>(30); | ||||
|     const value2 = ref<number[]>([20, 50]); | ||||
|     const value3 = ref<number[]>([26, 37]); | ||||
|     const value2 = ref<[number, number]>([20, 50]); | ||||
|     const value3 = ref<[number, number]>([26, 37]); | ||||
|     const marks = ref<Record<number, any>>({ | ||||
|       0: '0°C', | ||||
|       26: '26°C', | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ Cooperate with the content and buttons, to represent the progress of a process. | |||
|       <a-button | ||||
|         v-if="current == steps.length - 1" | ||||
|         type="primary" | ||||
|         @click="$message.success('Processing complete!')" | ||||
|         @click="message.success('Processing complete!')" | ||||
|       > | ||||
|         Done | ||||
|       </a-button> | ||||
|  | @ -37,6 +37,7 @@ Cooperate with the content and buttons, to represent the progress of a process. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import { message } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|  | @ -48,6 +49,7 @@ export default defineComponent({ | |||
|       current.value--; | ||||
|     }; | ||||
|     return { | ||||
|       message, | ||||
|       current, | ||||
|       steps: [ | ||||
|         { | ||||
|  |  | |||
|  | @ -33,9 +33,10 @@ A Solution for displaying large amounts of data with long columns. | |||
|   </a-table> | ||||
| </template> | ||||
| <script lang="ts"> | ||||
| import type { TableColumnsType } from 'ant-design-vue'; | ||||
| import { defineComponent } from 'vue'; | ||||
| 
 | ||||
| const columns = [ | ||||
| const columns: TableColumnsType = [ | ||||
|   { title: 'Full Name', width: 100, dataIndex: 'name', key: 'name', fixed: 'left' }, | ||||
|   { title: 'Age', width: 100, dataIndex: 'age', key: 'age', fixed: 'left' }, | ||||
|   { title: 'Column 1', dataIndex: 'address', key: '1', width: 150 }, | ||||
|  |  | |||
|  | @ -34,9 +34,10 @@ To fix some columns and scroll inside other columns, and you must set `scroll.x` | |||
|   </a-table> | ||||
| </template> | ||||
| <script lang="ts"> | ||||
| import type { TableColumnsType } from 'ant-design-vue'; | ||||
| import { defineComponent } from 'vue'; | ||||
| 
 | ||||
| const columns = [ | ||||
| const columns: TableColumnsType = [ | ||||
|   { title: 'Full Name', width: 100, dataIndex: 'name', key: 'name', fixed: 'left' }, | ||||
|   { title: 'Age', width: 100, dataIndex: 'age', key: 'age', fixed: 'left' }, | ||||
|   { title: 'Column 1', dataIndex: 'address', key: '1' }, | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ Group table head with `columns[n].children`. | |||
|   /> | ||||
| </template> | ||||
| <script lang="ts"> | ||||
| import type { TableColumnsType } from 'ant-design-vue'; | ||||
| import { defineComponent } from 'vue'; | ||||
| type TableDataType = { | ||||
|   key: number; | ||||
|  | @ -38,7 +39,7 @@ type TableDataType = { | |||
|   companyName: string; | ||||
|   gender: string; | ||||
| }; | ||||
| const columns = [ | ||||
| const columns: TableColumnsType = [ | ||||
|   { | ||||
|     title: 'Name', | ||||
|     dataIndex: 'name', | ||||
|  |  | |||
|  | @ -62,6 +62,7 @@ set resizable for drag column | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { SmileOutlined, DownOutlined } from '@ant-design/icons-vue'; | ||||
| import type { TableColumnsType } from 'ant-design-vue'; | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| 
 | ||||
| const data = [ | ||||
|  | @ -94,9 +95,8 @@ export default defineComponent({ | |||
|     DownOutlined, | ||||
|   }, | ||||
|   setup() { | ||||
|     const columns = ref([ | ||||
|     const columns = ref<TableColumnsType>([ | ||||
|       { | ||||
|         name: 'Name', | ||||
|         dataIndex: 'name', | ||||
|         key: 'name', | ||||
|         resizable: true, | ||||
|  |  | |||
|  | @ -58,11 +58,12 @@ Set summary content by `summary` prop. Sync column fixed status with `a-table-su | |||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import type { TableColumnsType } from 'ant-design-vue'; | ||||
| import { computed, defineComponent, ref } from 'vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const columns = ref([ | ||||
|     const columns = ref<TableColumnsType>([ | ||||
|       { | ||||
|         title: 'Name', | ||||
|         dataIndex: 'name', | ||||
|  | @ -104,7 +105,7 @@ export default defineComponent({ | |||
|       }, | ||||
|     ]); | ||||
| 
 | ||||
|     const fixedColumns = ref([ | ||||
|     const fixedColumns = ref<TableColumnsType>([ | ||||
|       { | ||||
|         title: 'Name', | ||||
|         dataIndex: 'name', | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ Only card type Tabs support adding & closable. | |||
| 
 | ||||
| <template> | ||||
|   <a-tabs v-model:activeKey="activeKey" type="editable-card" @edit="onEdit"> | ||||
|     <a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title" :closable="pane.closable"> | ||||
|     <a-tab-pane v-for="pane in panes" :key="pane.key" :tab="pane.title" :closable="!!pane.closable"> | ||||
|       {{ pane.content }} | ||||
|     </a-tab-pane> | ||||
|   </a-tabs> | ||||
|  | @ -29,7 +29,7 @@ import { defineComponent, ref } from 'vue'; | |||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const panes = ref([ | ||||
|     const panes = ref<{ title: string; content: string; key: string; closable?: boolean }[]>([ | ||||
|       { title: 'Tab 1', content: 'Content of Tab 1', key: '1' }, | ||||
|       { title: 'Tab 2', content: 'Content of Tab 2', key: '2' }, | ||||
|       { title: 'Tab 3', content: 'Content of Tab 3', key: '3', closable: false }, | ||||
|  |  | |||
|  | @ -31,10 +31,11 @@ Tab's position: left, right, top or bottom.  Will auto switch to `top` in mobile | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import { TabsProps } from '..'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const tabPosition = ref('top'); | ||||
|     const tabPosition = ref<TabsProps['tabPosition']>('top'); | ||||
|     const activeKey = ref('1'); | ||||
| 
 | ||||
|     return { | ||||
|  |  | |||
|  | @ -31,10 +31,11 @@ Large size tabs are usally used in page header, and small size could be used in | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { TabsProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const size = ref('small'); | ||||
|     const size = ref<TabsProps['size']>('small'); | ||||
|     const activeKey = ref('1'); | ||||
|     return { | ||||
|       size, | ||||
|  |  | |||
|  | @ -34,10 +34,11 @@ In order to fit in more tabs, they can slide left and right (or up and down). | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { TabsProps } from 'ant-design-vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const mode = ref('top'); | ||||
|     const mode = ref<TabsProps['tabPosition']>('top'); | ||||
|     const activeKey = ref('1'); | ||||
|     const callback = (val: string) => { | ||||
|       console.log(val); | ||||
|  |  | |||
|  | @ -34,10 +34,11 @@ Use `label` show time alone. | |||
| </template> | ||||
| <script lang="ts"> | ||||
| import { defineComponent, ref } from 'vue'; | ||||
| import type { TimelineProps } from 'ant-design-vue'; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     return { | ||||
|       mode: ref('left'), | ||||
|       mode: ref<TimelineProps['mode']>('left'), | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ const treeData = [ | |||
| ]; | ||||
| export default defineComponent({ | ||||
|   setup() { | ||||
|     const onContextMenuClick = (treeKey: string, menuKey: string) => { | ||||
|     const onContextMenuClick = (treeKey: string, menuKey: string | number) => { | ||||
|       console.log(`treeKey: ${treeKey}, menuKey: ${menuKey}`); | ||||
|     }; | ||||
|     const expandedKeys = ref<string[]>(['0-0-0', '0-0-1']); | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ Provide additional interactive capacity of editable and copyable. | |||
|       <span v-else key="copied-tooltip">you clicked!!</span> | ||||
|     </template> | ||||
|   </a-typography-paragraph> | ||||
|   <a-typography-paragraph :copyable="{ tooltips: false }"> | ||||
|   <a-typography-paragraph :copyable="{ tooltip: false }"> | ||||
|     Hide Copy tooltips. | ||||
|   </a-typography-paragraph> | ||||
| </template> | ||||
|  |  | |||
|  | @ -51,6 +51,7 @@ | |||
|     "codecov": "codecov", | ||||
|     "routes": "node site/scripts/genrateRoutes.js", | ||||
|     "tsc": "tsc --noEmit", | ||||
|     "vue-tsc": "vue-tsc --noEmit", | ||||
|     "site": "yarn routes && ./node_modules/vite/bin/vite.js build site --base=https://next.antdv.com/", | ||||
|     "pub:site": "npm run site && node site/scripts/pushToOSS.js", | ||||
|     "prepare": "husky install" | ||||
|  | @ -232,6 +233,7 @@ | |||
|     "vue-router": "^4.0.0", | ||||
|     "vue-server-renderer": "^2.6.11", | ||||
|     "vue-style-loader": "^4.1.2", | ||||
|     "vue-tsc": "^0.30.2", | ||||
|     "vuex": "^4.0.0-beta.2", | ||||
|     "webpack": "^5.0.0", | ||||
|     "webpack-bundle-analyzer": "^4.4.2", | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 tangjinzhou
						tangjinzhou