| | |
| | | } |
| | | ] |
| | | |
| | | function createTextColumn(prop, label, minWidth, extra = {}) { |
| | | return { |
| | | prop, |
| | | label, |
| | | minWidth, |
| | | showOverflowTooltip: true, |
| | | ...extra |
| | | } |
| | | } |
| | | |
| | | function createTagColumn(prop, label, width, resolveMeta) { |
| | | return { |
| | | prop, |
| | | label, |
| | | width, |
| | | formatter: (row) => { |
| | | const statusMeta = resolveMeta(row) |
| | | return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) |
| | | } |
| | | } |
| | | } |
| | | |
| | | export function createRoleTableColumns(handleActionClick) { |
| | | return [ |
| | | { type: 'selection', width: 52, fixed: 'left' }, |
| | | { |
| | | prop: 'name', |
| | | label: '角色名称', |
| | | minWidth: 140, |
| | | showOverflowTooltip: true |
| | | }, |
| | | { |
| | | prop: 'code', |
| | | label: '角色编码', |
| | | minWidth: 140, |
| | | showOverflowTooltip: true |
| | | }, |
| | | { |
| | | prop: 'memo', |
| | | label: '备注', |
| | | minWidth: 180, |
| | | showOverflowTooltip: true |
| | | }, |
| | | { |
| | | prop: 'status', |
| | | label: '状态', |
| | | width: 120, |
| | | formatter: (row) => { |
| | | const statusMeta = getRoleStatusMeta(row.statusBool ?? row.status) |
| | | return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text) |
| | | } |
| | | }, |
| | | { |
| | | prop: 'updateTimeText', |
| | | label: '更新时间', |
| | | minWidth: 180, |
| | | createTextColumn('name', '角色名称', 140), |
| | | createTextColumn('code', '角色编码', 140), |
| | | createTextColumn('memo', '备注', 180), |
| | | createTagColumn('status', '状态', 120, (row) => getRoleStatusMeta(row.statusBool ?? row.status)), |
| | | createTextColumn('updateTimeText', '更新时间', 180, { |
| | | sortable: true, |
| | | formatter: (row) => row.updateTimeText || '-' |
| | | }, |
| | | { |
| | | prop: 'createTimeText', |
| | | label: '创建时间', |
| | | minWidth: 180, |
| | | }), |
| | | createTextColumn('createTimeText', '创建时间', 180, { |
| | | sortable: true, |
| | | formatter: (row) => row.createTimeText || '-' |
| | | }, |
| | | }), |
| | | { |
| | | prop: 'operation', |
| | | label: '操作', |
| | |
| | | align: 'center', |
| | | fixed: 'right', |
| | | formatter: (row) => |
| | | h('div', [ |
| | | h(ArtButtonMore, { |
| | | list: ROLE_MORE_ACTIONS, |
| | | onClick: (item) => handleActionClick(item, row) |
| | | }) |
| | | ]) |
| | | h(ArtButtonMore, { |
| | | list: ROLE_MORE_ACTIONS, |
| | | onClick: (item) => handleActionClick(item, row) |
| | | }) |
| | | } |
| | | ] |
| | | } |