79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Vue
		
	
	
| <docs>
 | ||
| ---
 | ||
| order: 0
 | ||
| title:
 | ||
|   zh-CN: 基本用法
 | ||
|   en-US: Basic usage
 | ||
| ---
 | ||
| 
 | ||
| ## zh-CN
 | ||
| 
 | ||
| 最基本的用法,展示了 `dataSource`、`targetKeys`、每行的渲染函数 `render` 以及回调函数 `change` `selectChange` `scroll` 的用法。
 | ||
| 
 | ||
| ## en-US
 | ||
| 
 | ||
| The most basic usage of `Transfer` involves providing the source data and target keys arrays, plus the rendering and some callback functions.
 | ||
| 
 | ||
| </docs>
 | ||
| 
 | ||
| <template>
 | ||
|   <div>
 | ||
|     <a-transfer
 | ||
|       v-model:target-keys="targetKeys"
 | ||
|       v-model:selected-keys="selectedKeys"
 | ||
|       :data-source="mockData"
 | ||
|       :titles="['Source', 'Target']"
 | ||
|       :render="item => item.title"
 | ||
|       :disabled="disabled"
 | ||
|       @change="handleChange"
 | ||
|       @selectChange="handleSelectChange"
 | ||
|       @scroll="handleScroll"
 | ||
|     />
 | ||
|     <a-switch
 | ||
|       v-model:checked="disabled"
 | ||
|       un-checked-children="enabled"
 | ||
|       checked-children="disabled"
 | ||
|       style="margin-top: 16px"
 | ||
|     />
 | ||
|   </div>
 | ||
| </template>
 | ||
| <script lang="ts" setup>
 | ||
| import { ref } from 'vue';
 | ||
| interface MockData {
 | ||
|   key: string;
 | ||
|   title: string;
 | ||
|   description: string;
 | ||
|   disabled: boolean;
 | ||
| }
 | ||
| const mockData: MockData[] = [];
 | ||
| for (let i = 0; i < 20; i++) {
 | ||
|   mockData.push({
 | ||
|     key: i.toString(),
 | ||
|     title: `content${i + 1}`,
 | ||
|     description: `description of content${i + 1}`,
 | ||
|     disabled: i % 3 < 1,
 | ||
|   });
 | ||
| }
 | ||
| 
 | ||
| const oriTargetKeys = mockData.filter(item => +item.key % 3 > 1).map(item => item.key);
 | ||
| const disabled = ref<boolean>(false);
 | ||
| 
 | ||
| const targetKeys = ref<string[]>(oriTargetKeys);
 | ||
| 
 | ||
| const selectedKeys = ref<string[]>(['1', '4']);
 | ||
| 
 | ||
| const handleChange = (nextTargetKeys: string[], direction: string, moveKeys: string[]) => {
 | ||
|   console.log('targetKeys: ', nextTargetKeys);
 | ||
|   console.log('direction: ', direction);
 | ||
|   console.log('moveKeys: ', moveKeys);
 | ||
| };
 | ||
| const handleSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => {
 | ||
|   console.log('sourceSelectedKeys: ', sourceSelectedKeys);
 | ||
|   console.log('targetSelectedKeys: ', targetSelectedKeys);
 | ||
| };
 | ||
| const handleScroll = (direction: string, e: Event) => {
 | ||
|   console.log('direction:', direction);
 | ||
|   console.log('target:', e.target);
 | ||
| };
 | ||
| </script>
 |