Commit af55511bd6e533ab68356aa9038f80f50f53cf26

Authored by vben
1 parent aa596af6

fix(table): table columns setting error

CHANGELOG.zh_CN.md
... ... @@ -4,6 +4,10 @@
4 4  
5 5 - 新增`mixSideTrigger`配置。用于配置左侧混合模式菜单打开方式。可选`hover`,默认`click`
6 6  
  7 +### 🐛 Bug Fixes
  8 +
  9 +- 修复表格列配置已知问题
  10 +
7 11 ## 2.0.0-rc.15 (2020-12-31)
8 12  
9 13 ### ✨ 表格破坏性更新
... ...
src/components/Table/src/hooks/useColumns.ts
1 1 import type { BasicColumn, BasicTableProps, CellFormat, GetColumnsParams } from '../types/table';
2 2 import type { PaginationProps } from '../types/pagination';
3   -import { unref, ComputedRef, Ref, computed, watchEffect, ref, toRaw } from 'vue';
  3 +import { unref, ComputedRef, Ref, computed, watch, ref, toRaw } from 'vue';
4 4 import { isBoolean, isArray, isString, isObject } from '/@/utils/is';
5 5 import { DEFAULT_ALIGN, PAGE_SIZE, INDEX_COLUMN_FLAG, ACTION_COLUMN_FLAG } from '../const';
6 6 import { useI18n } from '/@/hooks/web/useI18n';
... ... @@ -156,11 +156,22 @@ export function useColumns(
156 156 return viewColumns;
157 157 });
158 158  
159   - watchEffect(() => {
160   - const columns = toRaw(unref(propsRef).columns);
161   - columnsRef.value = columns;
162   - cacheColumns = columns?.filter((item) => !item.flag) ?? [];
163   - });
  159 + watch(
  160 + () => unref(propsRef).columns,
  161 + (columns) => {
  162 + columnsRef.value = columns;
  163 + cacheColumns = columns?.filter((item) => !item.flag) ?? [];
  164 + }
  165 + );
  166 +
  167 + // watchEffect(() => {
  168 + // const columns = toRaw(unref(propsRef).columns);
  169 + // console.log('======================');
  170 + // console.log(111);
  171 + // console.log('======================');
  172 + // columnsRef.value = columns;
  173 + // cacheColumns = columns?.filter((item) => !item.flag) ?? [];
  174 + // });
164 175  
165 176 /**
166 177 * set columns
... ...
src/components/Table/src/hooks/useTable.ts
... ... @@ -3,11 +3,10 @@ import type { PaginationProps } from '../types/pagination';
3 3 import type { DynamicProps } from '/@/types/utils';
4 4 import { getDynamicProps } from '/@/utils';
5 5  
6   -import { ref, onUnmounted, unref } from 'vue';
  6 +import { ref, onUnmounted, unref, watch } from 'vue';
7 7 import { isProdMode } from '/@/utils/env';
8 8 import { isInSetup } from '/@/utils/helper/vueHelper';
9 9 import { error } from '/@/utils/log';
10   -import { watchEffect } from 'vue';
11 10 import type { FormActionType } from '/@/components/Form';
12 11  
13 12 type Props = Partial<DynamicProps<BasicTableProps>>;
... ... @@ -33,12 +32,18 @@ export function useTable(
33 32 }
34 33 tableRef.value = instance;
35 34 formRef.value = formInstance;
36   - // tableProps && instance.setProps(tableProps);
  35 + tableProps && instance.setProps(getDynamicProps(tableProps));
37 36 loadedRef.value = true;
38 37  
39   - watchEffect(() => {
40   - tableProps && instance.setProps(getDynamicProps(tableProps));
41   - });
  38 + watch(
  39 + () => tableProps,
  40 + () => {
  41 + tableProps && instance.setProps(getDynamicProps(tableProps));
  42 + },
  43 + {
  44 + immediate: true,
  45 + }
  46 + );
42 47 }
43 48  
44 49 function getTableInstance(): TableActionType {
... ...