diff --git a/src/hooks/useTableSelectionWithPagination.ts b/src/hooks/useTableSelectionWithPagination.ts index ebc6b22..0c30800 100644 --- a/src/hooks/useTableSelectionWithPagination.ts +++ b/src/hooks/useTableSelectionWithPagination.ts @@ -1,4 +1,6 @@ import { ref, computed } from 'vue'; +import { merge } from 'lodash-es'; +import { cloneDeep } from 'lodash-es'; interface UseTableSelectionWithPaginationOptions { rowKey?: string; // 主键字段名,默认 'id' @@ -60,18 +62,27 @@ export function useTableSelectionWithPagination(options: UseTableSelectionWithPa options.onSelectChange?.(); }; + // 选择变更处理 + const handleSelectChange = (keys: Array, rows: Array) => { + selectedRowKeys.value = keys; + selectedRows.value = rows; + options.onSelectChange?.(); + }; + const onPageChange = (page: number, pageSize: number) => { // console.log('onPageChange', page, pageSize); pageInfo.value.page = page; pageInfo.value.page_size = pageSize; options.onPageChange?.(page); }; + const onPageSizeChange = (current: number, size: number) => { // console.log('onPageSizeChange', current, size); // pageInfo.value.page_size = size; // pageInfo.value.page = 1; // options.onPageSizeChange?.(size); }; + const resetPageInfo = () => { pageInfo.value = cloneDeep(DEFAULT_PAGE_INFO); }; @@ -80,6 +91,8 @@ export function useTableSelectionWithPagination(options: UseTableSelectionWithPa type: 'checkbox', showCheckedAll: true, width: 48, + selectedRowKeys: selectedRowKeys.value, + onChange: handleSelectChange })); return { @@ -92,7 +105,8 @@ export function useTableSelectionWithPagination(options: UseTableSelectionWithPa rowSelection, handleSelect, handleSelectAll, + handleSelectChange, resetPageInfo, DEFAULT_PAGE_INFO, }; -} +} \ No newline at end of file diff --git a/src/views/property-marketing/assignment-management/components/draw-popup.vue b/src/views/property-marketing/assignment-management/components/draw-popup.vue index 63953c0..c8ac6d3 100644 --- a/src/views/property-marketing/assignment-management/components/draw-popup.vue +++ b/src/views/property-marketing/assignment-management/components/draw-popup.vue @@ -145,8 +145,8 @@ bordered :columns="columns" :pagination="false" - :row-selection="true" - @onSelect="handleSelectRow" + row-key="id" + :row-selection="rowSelection" >