tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 28.6 kB
Source Map (JSON)
{"version":3,"file":"transfer-list.mjs","sources":["../../../../components/transfer/components/transfer-list.tsx"],"sourcesContent":["import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType<CheckboxProps>,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType<Array<TransferItemOption>>,\n default(): Array<TransferItemOption> {\n return [];\n },\n },\n listType: {\n type: String as PropType<TransferListType>,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType<Array<TransferValue>>,\n default(): Array<TransferValue> {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType<SearchOption>,\n default: false,\n },\n transferItem: Function as PropType<TdTransferProps['transferItem']>,\n empty: {\n type: [Function, String] as PropType<EmptyType>,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array<TransferValue>) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array<TransferValue>, movedValue: Array<TransferValue>) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType<Array<TransferValue>>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array<TransferValue>) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? <template>{props.title}</template> : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return <span>{titleNode}</span>;\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: VNode = null;\n if (!isDraggable) {\n defaultNode = (\n <TCheckboxGroup value={props.checkedValue} onChange={handleCheckedChange}>\n {curPageData.value.map((item, index) => (\n <TCheckbox\n disabled={props.disabled || item.disabled}\n value={item.value}\n needRipple={true}\n class={[\n `${classPrefix.value}-transfer__list-item`,\n props.checkedValue.includes(item.value) ? `${classPrefix.value}-is-checked` : '',\n ]}\n key={item.key}\n {...props.checkboxProps}\n >\n {renderTNodeJSX('transferItem', {\n defaultNode: <span>{item.label}</span>,\n params: { data: item.data, index, type: props.listType },\n })}\n </TCheckbox>\n ))}\n </TCheckboxGroup>\n );\n } else {\n defaultNode = (\n <TCheckboxGroup value={props.checkedValue} onChange={handleCheckedChange}>\n {curPageData.value.map((item, index) => (\n <div\n draggable={isDraggable}\n onDragend={onDragEnd}\n onDragstart={onDragStart}\n onDragover={onDragOver}\n onDragleave={onDragLeave}\n onDrop={onDrop}\n data-index={index}\n >\n <TCheckbox\n disabled={props.disabled || item.disabled}\n value={item.value}\n needRipple={true}\n class={[\n `${classPrefix.value}-transfer__list-item`,\n props.checkedValue.includes(item.value) ? `${classPrefix.value}-is-checked` : '',\n ]}\n key={item.key}\n {...props.checkboxProps}\n >\n {renderTNodeJSX('transferItem', {\n defaultNode: <span>{item.label}</span>,\n params: { data: item.data, index, type: props.listType },\n })}\n </TCheckbox>\n </div>\n ))}\n </TCheckboxGroup>\n );\n }\n\n return (\n <div class={[`${classPrefix.value}-transfer__list-content`, 'narrow-scrollbar']} onScroll={handleScroll}>\n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n </div>\n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? <span>{empty}</span> : null;\n return (\n <div class={`${classPrefix.value}-transfer__empty`}>\n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n </div>\n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n <div class={`${classPrefix.value}-transfer__footer`}>{props.footer}</div>\n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n <div class={[`${classPrefix.value}-transfer__list`, `${classPrefix.value}-transfer__list-${props.listType}`]}>\n <div class={`${classPrefix.value}-transfer__list-header`}>\n <div>\n {props.checkAll && (\n <TCheckbox\n disabled={props.disabled || !props.dataSource.length}\n checked={isAllChecked.value}\n indeterminate={indeterminate.value}\n onChange={handleCheckedAllChange}\n />\n )}\n <span>\n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n </span>\n </div>\n {renderTitle()}\n </div>\n <div\n class={[\n `${classPrefix.value}-transfer__list-body`,\n props.search ? `${classPrefix.value}-transfer__list--with-search` : '',\n ]}\n >\n {props.search && (\n <Search\n value={filterValue.value}\n placeholder={t(globalConfig.value.placeholder)}\n onChange={handleSearch}\n search={props.search}\n />\n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n </div>\n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n <div class={`${classPrefix.value}-transfer__list-pagination`}>\n <Pagination {...paginationProps.value} onChange={handlePaginationChange} />\n </div>\n )}\n {renderFooter()}\n </div>\n );\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","props","checkboxProps","type","default","dataSource","Array","listType","String","title","Function","checkedValue","disabled","Boolean","search","transferItem","empty","pagination","footer","checkAll","isTreeMode","onCheckedChange","onPageChange","onScroll","onSearch","onDataChange","draggable","currentValue","defineComponent","name","setup","classPrefix","usePrefixClass","_toRefs","toRefs","_useConfig","useConfig","t","globalConfig","filterValue","ref","defaultCurrent","defaultPageSize","currentPage","computed","current","value","pageSize","filteredData","isTreeData","some","item","children","length","filter","label","toLowerCase","indexOf","filteredTreeData","pageTotal","curPageData","pageData","startIndex","endIndex","slice","paginationProps","defaultPaginationProps","totalContent","pageSizeOptions","_typeof","_objectSpread","size","theme","total","_useDragSort","useDragSort","onDragStart","onDragEnd","onDrop","onDragOver","onDragLeave","isAllChecked","allValue","getDataValues","include","every","includes","indeterminate","totalCount","getLefCount","watch","val","lastPage","Math","ceil","list","keyword","res","cloneDeep","node","handlePaginationChange","pageInfo","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","checked","handleScroll","e","_props2$onScroll","handleSearch","_props2$onSearch","event","query","trigger","renderTNodeJSX","useTNodeDefault","renderTitle","defaultNode","isString","_createVNode","titleNode","params","renderContent","isDraggable","TARGET","_slot2","TCheckboxGroup","map","index","concat","key","_slot","data","_default","_slot4","_slot3","onChange","renderEmpty","renderFooter","TCheckbox","Search","placeholder"],"mappings":"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"}