소스 검색

fix(table): useTable support onChange

修复useTable无法直接通过设置onChange来注册change事件响应的问题
无木 3 년 전
부모
커밋
9f5085c9f9
2개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 0
      src/components/Table/src/BasicTable.vue
  2. 2 1
      src/views/demo/table/UseTable.vue

+ 4 - 0
src/components/Table/src/BasicTable.vue

@@ -58,6 +58,7 @@
 
   import { omit } from 'lodash-es';
   import { basicProps } from './props';
+  import { isFunction } from '/@/utils/is';
 
   export default defineComponent({
     components: {
@@ -142,6 +143,9 @@
       function handleTableChange(...args) {
         onTableChange.call(undefined, ...args);
         emit('change', ...args);
+        // 解决通过useTable注册onChange时不起作用的问题
+        const { onChange } = unref(getProps);
+        onChange && isFunction(onChange) && onChange.call(undefined, ...args);
       }
 
       const {

+ 2 - 1
src/views/demo/table/UseTable.vue

@@ -15,7 +15,7 @@
       <a-button class="mr-2" @click="clearSelect"> 清空选中行 </a-button>
       <a-button class="mr-2" @click="getPagination"> 获取分页信息 </a-button>
     </div>
-    <BasicTable @register="registerTable" @change="onChange" />
+    <BasicTable @register="registerTable" />
   </div>
 </template>
 <script lang="ts">
@@ -54,6 +54,7 @@
         columns: getBasicColumns(),
         rowKey: 'id',
         showTableSetting: true,
+        onChange,
         rowSelection: {
           type: 'checkbox',
         },