import { h } from 'vue' import { ElTag } from 'element-plus' import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue' export function createDeptTableColumns({ t, handleEdit, handleDelete }) { return [ { prop: 'name', label: t('pages.system.dept.table.name'), minWidth: 220, showOverflowTooltip: true }, { prop: 'fullName', label: t('pages.system.dept.table.fullName'), minWidth: 220, showOverflowTooltip: true, formatter: (row) => row.fullName || t('common.placeholder.empty') }, { prop: 'leader', label: t('pages.system.dept.table.leader'), minWidth: 140, formatter: (row) => row.leader || t('common.placeholder.empty') }, { prop: 'sort', label: t('table.sort'), width: 90 }, { prop: 'status', label: t('table.status'), width: 100, formatter: (row) => h(ElTag, { type: row.statusType, effect: 'light' }, () => t(row.statusTextKey || 'common.placeholder.empty') ) }, { prop: 'updateTimeText', label: t('table.updateTime'), minWidth: 180, formatter: (row) => row.updateTimeText || t('common.placeholder.empty') }, { prop: 'memo', label: t('table.memo'), minWidth: 180, showOverflowTooltip: true, formatter: (row) => row.memo || t('common.placeholder.empty') }, { prop: 'operation', label: t('table.operation'), width: 140, align: 'right', formatter: (row) => h('div', { class: 'flex justify-end' }, [ h(ArtButtonTable, { type: 'edit', onClick: () => handleEdit(row) }), h(ArtButtonTable, { type: 'delete', onClick: () => handleDelete(row) }) ]) } ] }