diff --git a/packages/coreui-vue/src/components/table/CTable.ts b/packages/coreui-vue/src/components/table/CTable.ts index 563f6ac8..72898c6a 100644 --- a/packages/coreui-vue/src/components/table/CTable.ts +++ b/packages/coreui-vue/src/components/table/CTable.ts @@ -238,7 +238,7 @@ const CTable = defineComponent({ default: () => [ columnNames.value && columnNames.value.map( - (colName: string) => + (colName: string, idx: number) => item[colName] !== undefined && h( CTableDataCell, @@ -251,7 +251,14 @@ const CTable = defineComponent({ }), }, { - default: () => item[colName], + default: () => { + const column = props.columns![idx]; + const value = item[colName]; + + return typeof column === "object" && column.formatter + ? column.formatter(value) + : value; + } }, ), ), diff --git a/packages/coreui-vue/src/components/table/types.ts b/packages/coreui-vue/src/components/table/types.ts index 8f96b27b..fbb6d2ce 100644 --- a/packages/coreui-vue/src/components/table/types.ts +++ b/packages/coreui-vue/src/components/table/types.ts @@ -4,7 +4,8 @@ export type Column = { // eslint-disable-next-line @typescript-eslint/no-explicit-any _style?: any // eslint-disable-next-line @typescript-eslint/no-explicit-any - _props?: any + _props?: any, + formatter?: (value: unknown) => string } export type FooterItem = {
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: