| | |
| | | handleEditAuth, |
| | | handleDeleteAuth, |
| | | handleEditMenu, |
| | | handleDeleteMenu |
| | | handleDeleteMenu, |
| | | t = $t |
| | | }) { |
| | | return [ |
| | | { |
| | | prop: 'meta.title', |
| | | label: $t('pages.system.menu.search.name'), |
| | | label: t('pages.system.menu.search.name'), |
| | | minWidth: 180, |
| | | formatter: (row) => getMenuDisplayTitle(row, titleFormatter) |
| | | }, |
| | | { |
| | | prop: 'meta.icon', |
| | | label: $t('table.iconPreview'), |
| | | label: t('table.iconPreview'), |
| | | width: 96, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | |
| | | }, |
| | | { |
| | | prop: 'type', |
| | | label: $t('table.menuType'), |
| | | label: t('table.menuType'), |
| | | width: 110, |
| | | formatter: (row) => |
| | | h(ElTag, { type: getMenuTypeTag(row), effect: 'light' }, () => getMenuTypeText(row)) |
| | | h(ElTag, { type: getMenuTypeTag(row), effect: 'light' }, () => getMenuTypeText(row, t)) |
| | | }, |
| | | { |
| | | prop: 'route', |
| | | label: $t('pages.system.menu.search.route'), |
| | | label: t('pages.system.menu.search.route'), |
| | | minWidth: 180, |
| | | formatter: (row) => { |
| | | if (row.meta?.isAuthButton) return '' |
| | |
| | | }, |
| | | { |
| | | prop: 'component', |
| | | label: $t('table.componentKey'), |
| | | label: t('table.componentKey'), |
| | | minWidth: 160, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => { |
| | |
| | | }, |
| | | { |
| | | prop: 'authority', |
| | | label: $t('table.permissionKey'), |
| | | label: t('table.permissionKey'), |
| | | minWidth: 180, |
| | | formatter: (row) => { |
| | | if (row.meta?.isAuthButton) { |
| | | return row.authority || row.meta?.authMark || '' |
| | | } |
| | | if (!row.meta?.authList?.length) return row.authority || '' |
| | | return $t('pages.system.menu.messages.authCount', { |
| | | return t('pages.system.menu.messages.authCount', { |
| | | count: row.meta.authList.length |
| | | }) |
| | | } |
| | | }, |
| | | { |
| | | prop: 'sort', |
| | | label: $t('table.sort'), |
| | | label: t('table.sort'), |
| | | width: 90 |
| | | }, |
| | | { |
| | | prop: 'id', |
| | | label: $t('table.id'), |
| | | label: t('table.id'), |
| | | width: 96, |
| | | align: 'center' |
| | | }, |
| | | { |
| | | prop: 'status', |
| | | label: $t('table.status'), |
| | | label: t('table.status'), |
| | | width: 100, |
| | | formatter: (row) => { |
| | | const statusMeta = getMenuStatusMeta(row.status) |
| | | const statusMeta = getMenuStatusMeta(row.status, t) |
| | | return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) |
| | | } |
| | | }, |
| | | { |
| | | prop: 'memo', |
| | | label: $t('table.remark'), |
| | | label: t('table.remark'), |
| | | minWidth: 180, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.memo || '-' |
| | | }, |
| | | { |
| | | prop: 'operation', |
| | | label: $t('table.operation'), |
| | | label: t('table.operation'), |
| | | width: 180, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | |
| | | h(ArtButtonTable, { |
| | | type: 'add', |
| | | onClick: () => handleAddAuth(row), |
| | | title: $t('pages.system.menu.actions.addAuth') |
| | | title: t('pages.system.menu.actions.addAuth') |
| | | }), |
| | | h(ArtButtonTable, { |
| | | type: 'edit', |