From 9b2b4d42a6d5fffd5012506b7cac3892774c8595 Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Tue, 9 Jan 2024 15:08:53 +0800 Subject: [PATCH] fix: #396 --- .../Table/src/components/ColumnSetting.vue | 5 +- src/views/Components/Table/UseTableDemo.vue | 164 +++++++++--------- 2 files changed, 89 insertions(+), 80 deletions(-) diff --git a/src/components/Table/src/components/ColumnSetting.vue b/src/components/Table/src/components/ColumnSetting.vue index 5d40b7be3..94eaaf5b2 100644 --- a/src/components/Table/src/components/ColumnSetting.vue +++ b/src/components/Table/src/components/ColumnSetting.vue @@ -69,7 +69,7 @@ const initColumns = (columns: TableColumn[], isReStore = false) => { } return (item.type && !DEFAULT_FILTER_COLUMN.includes(item.type)) || !item.type }) - if (!unref(oldColumns)) { + if (!unref(oldColumns)?.length) { oldColumns.value = cloneDeep(newColumns) } settingColumns.value = cloneDeep(newColumns) @@ -96,7 +96,8 @@ watch( initColumns(columns) }, { - immediate: true + immediate: true, + deep: true } ) diff --git a/src/views/Components/Table/UseTableDemo.vue b/src/views/Components/Table/UseTableDemo.vue index da1a754fa..f4ec9ca0d 100644 --- a/src/views/Components/Table/UseTableDemo.vue +++ b/src/views/Components/Table/UseTableDemo.vue @@ -3,7 +3,7 @@ import { ContentWrap } from '@/components/ContentWrap' import { useI18n } from '@/hooks/web/useI18n' import { Table, TableColumn, TableSlotDefault } from '@/components/Table' import { getTableListApi } from '@/api/table' -import { ref, reactive, unref } from 'vue' +import { ref, reactive, unref, onMounted } from 'vue' import { ElTag } from 'element-plus' import { useTable } from '@/hooks/web/useTable' import { BaseButton } from '@/components/Button' @@ -26,83 +26,91 @@ const { setProps, setColumn, getElTableExpose, addColumn, delColumn, refresh } = const { t } = useI18n() -const columns = reactive([ - { - field: 'expand', - type: 'expand', - slots: { - default: (data: TableSlotDefault) => { - const { row } = data - return ( -
-
- {t('tableDemo.title')}:{row.title} -
-
- {t('tableDemo.author')}:{row.author} -
-
- {t('tableDemo.displayTime')}:{row.display_time} -
-
- ) - } - } - }, - { - field: 'selection', - type: 'selection' - }, - { - field: 'index', - label: t('tableDemo.index'), - type: 'index' - }, - { - field: 'title', - label: t('tableDemo.title') - }, - { - field: 'author', - label: t('tableDemo.author') - }, - { - field: 'display_time', - label: t('tableDemo.displayTime') - }, - { - field: 'importance', - label: t('tableDemo.importance'), - formatter: (_: Recordable, __: TableColumn, cellValue: number) => { - return ( - - {cellValue === 1 - ? t('tableDemo.important') - : cellValue === 2 - ? t('tableDemo.good') - : t('tableDemo.commonly')} - - ) - } - }, - { - field: 'pageviews', - label: t('tableDemo.pageviews') - }, - { - field: 'action', - label: t('tableDemo.action'), - slots: { - default: (data) => { - return ( - actionFn(data)}> - {t('tableDemo.action')} - - ) - } - } - } -]) +const columns = reactive([]) + +onMounted(() => { + setTimeout(() => { + setProps({ + columns: [ + { + field: 'expand', + type: 'expand', + slots: { + default: (data: TableSlotDefault) => { + const { row } = data + return ( +
+
+ {t('tableDemo.title')}:{row.title} +
+
+ {t('tableDemo.author')}:{row.author} +
+
+ {t('tableDemo.displayTime')}:{row.display_time} +
+
+ ) + } + } + }, + { + field: 'selection', + type: 'selection' + }, + { + field: 'index', + label: t('tableDemo.index'), + type: 'index' + }, + { + field: 'title', + label: t('tableDemo.title') + }, + { + field: 'author', + label: t('tableDemo.author') + }, + { + field: 'display_time', + label: t('tableDemo.displayTime') + }, + { + field: 'importance', + label: t('tableDemo.importance'), + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return ( + + {cellValue === 1 + ? t('tableDemo.important') + : cellValue === 2 + ? t('tableDemo.good') + : t('tableDemo.commonly')} + + ) + } + }, + { + field: 'pageviews', + label: t('tableDemo.pageviews') + }, + { + field: 'action', + label: t('tableDemo.action'), + slots: { + default: (data) => { + return ( + actionFn(data)}> + {t('tableDemo.action')} + + ) + } + } + } + ] + }) + }, 2000) +}) const actionFn = (data: TableSlotDefault) => { console.log(data)