fix
This commit is contained in:
@@ -60,7 +60,12 @@
|
||||
:data="data"
|
||||
:bordered="bordered"
|
||||
:size="size"
|
||||
:row-selection="rowSelection"
|
||||
:scroll="scroll"
|
||||
@page-change="onPageChange"
|
||||
@page-size-change="onPageSizeChange"
|
||||
@selection-change="onSelectionChange"
|
||||
@row-click="onRowClick"
|
||||
>
|
||||
<!-- 动态插槽:根据 columns 的 slotName 动态渲染 -->
|
||||
<template v-for="col in slotColumns" :key="col.dataIndex" #[String(col.slotName)]="slotProps">
|
||||
@@ -72,7 +77,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, watch, nextTick, onUnmounted, PropType } from 'vue'
|
||||
import type { TableColumnData } from '@arco-design/web-vue/es/table/interface'
|
||||
import type { TableColumnData, TableRowSelection } from '@arco-design/web-vue/es/table/interface'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import Sortable from 'sortablejs'
|
||||
|
||||
@@ -107,6 +112,14 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
rowSelection: {
|
||||
type: Object as PropType<TableRowSelection | undefined>,
|
||||
default: undefined,
|
||||
},
|
||||
scroll: {
|
||||
type: Object as PropType<{ x?: number | string; y?: number | string } | undefined>,
|
||||
default: undefined,
|
||||
},
|
||||
showToolbar: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
@@ -147,6 +160,9 @@ const props = defineProps({
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'page-change', current: number): void
|
||||
(e: 'page-size-change', pageSize: number): void
|
||||
(e: 'selection-change', rowKeys: (string | number)[]): void
|
||||
(e: 'row-click', record: any, ev: Event): void
|
||||
(e: 'refresh'): void
|
||||
(e: 'download'): void
|
||||
(e: 'density-change', size: SizeProps): void
|
||||
@@ -178,6 +194,18 @@ const onPageChange = (current: number) => {
|
||||
emit('page-change', current)
|
||||
}
|
||||
|
||||
const onPageSizeChange = (pageSize: number) => {
|
||||
emit('page-size-change', pageSize)
|
||||
}
|
||||
|
||||
const onSelectionChange = (rowKeys: (string | number)[]) => {
|
||||
emit('selection-change', rowKeys)
|
||||
}
|
||||
|
||||
const onRowClick = (record: any, ev: Event) => {
|
||||
emit('row-click', record, ev)
|
||||
}
|
||||
|
||||
const handleRefresh = () => {
|
||||
emit('refresh')
|
||||
}
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
:loading="loading"
|
||||
:pagination="pagination"
|
||||
:bordered="bordered"
|
||||
:row-selection="rowSelection"
|
||||
:scroll="scroll"
|
||||
:show-toolbar="showToolbar"
|
||||
:show-download="showDownload"
|
||||
:show-refresh="showRefresh"
|
||||
@@ -36,6 +38,9 @@
|
||||
:density-tooltip-text="densityTooltipText"
|
||||
:column-setting-tooltip-text="columnSettingTooltipText"
|
||||
@page-change="handlePageChange"
|
||||
@page-size-change="handlePageSizeChange"
|
||||
@selection-change="handleSelectionChange"
|
||||
@row-click="handleRowClick"
|
||||
@refresh="handleRefresh"
|
||||
@download="handleDownload"
|
||||
@density-change="handleDensityChange"
|
||||
@@ -61,7 +66,7 @@ import { computed, PropType } from 'vue'
|
||||
import SearchForm from '../search-form/index.vue'
|
||||
import type { FormItem } from '../search-form/types'
|
||||
import DataTable from '../data-table/index.vue'
|
||||
import type { TableColumnData } from '@arco-design/web-vue/es/table/interface'
|
||||
import type { TableColumnData, TableRowSelection } from '@arco-design/web-vue/es/table/interface'
|
||||
|
||||
type SizeProps = 'mini' | 'small' | 'medium' | 'large'
|
||||
|
||||
@@ -115,6 +120,14 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
rowSelection: {
|
||||
type: Object as PropType<TableRowSelection | undefined>,
|
||||
default: undefined,
|
||||
},
|
||||
scroll: {
|
||||
type: Object as PropType<{ x?: number | string; y?: number | string } | undefined>,
|
||||
default: undefined,
|
||||
},
|
||||
// 工具栏相关
|
||||
showToolbar: {
|
||||
type: Boolean,
|
||||
@@ -164,6 +177,9 @@ const emit = defineEmits<{
|
||||
(e: 'search'): void
|
||||
(e: 'reset'): void
|
||||
(e: 'page-change', current: number): void
|
||||
(e: 'page-size-change', pageSize: number): void
|
||||
(e: 'selection-change', rowKeys: (string | number)[]): void
|
||||
(e: 'row-click', record: any, ev: Event): void
|
||||
(e: 'refresh'): void
|
||||
(e: 'download'): void
|
||||
(e: 'density-change', size: SizeProps): void
|
||||
@@ -192,6 +208,18 @@ const handlePageChange = (current: number) => {
|
||||
emit('page-change', current)
|
||||
}
|
||||
|
||||
const handlePageSizeChange = (pageSize: number) => {
|
||||
emit('page-size-change', pageSize)
|
||||
}
|
||||
|
||||
const handleSelectionChange = (rowKeys: (string | number)[]) => {
|
||||
emit('selection-change', rowKeys)
|
||||
}
|
||||
|
||||
const handleRowClick = (record: any, ev: Event) => {
|
||||
emit('row-click', record, ev)
|
||||
}
|
||||
|
||||
const handleRefresh = () => {
|
||||
emit('refresh')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user