| | |
| | | import { h } from 'vue' |
| | | import { ElTag } from 'element-plus' |
| | | import ArtButtonMore from '@/components/core/forms/art-button-more/index.vue' |
| | | import { $t } from '@/locales' |
| | | import { getDeviceSiteStatusMeta } from './deviceSitePage.helpers' |
| | | |
| | | export function createDeviceSiteTableColumns({ |
| | |
| | | canEdit = true, |
| | | canDelete = true |
| | | } = {}) { |
| | | const operations = [{ key: 'view', label: '详情', icon: 'ri:eye-line' }] |
| | | const operations = [{ key: 'view', label: $t('common.actions.detail'), icon: 'ri:eye-line' }] |
| | | |
| | | if (handleInit) { |
| | | operations.push({ key: 'init', label: '初始化', icon: 'ri:route-line' }) |
| | | operations.push({ key: 'init', label: $t('common.actions.initialize'), icon: 'ri:route-line' }) |
| | | } |
| | | |
| | | if (canEdit && handleEdit) { |
| | | operations.push({ key: 'edit', label: '编辑', icon: 'ri:pencil-line' }) |
| | | operations.push({ key: 'edit', label: $t('common.actions.edit'), icon: 'ri:pencil-line' }) |
| | | } |
| | | |
| | | if (canDelete && handleDelete) { |
| | | operations.push({ key: 'delete', label: '删除', icon: 'ri:delete-bin-5-line', color: 'var(--art-error)' }) |
| | | operations.push({ key: 'delete', label: $t('common.actions.delete'), icon: 'ri:delete-bin-5-line', color: 'var(--art-error)' }) |
| | | } |
| | | |
| | | return [ |
| | | { type: 'selection', width: 48, align: 'center' }, |
| | | { type: 'globalIndex', label: '序号', width: 72, align: 'center' }, |
| | | { type: 'globalIndex', label: $t('table.index'), width: 72, align: 'center' }, |
| | | { |
| | | prop: 'typeText', |
| | | label: '站点类型', |
| | | label: $t('pages.basicInfo.deviceSite.table.type'), |
| | | minWidth: 170, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.typeText || row.type$ || '--' |
| | | }, |
| | | { |
| | | prop: 'site', |
| | | label: '作业站点', |
| | | label: $t('pages.basicInfo.deviceSite.table.site'), |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.site || '--' |
| | | }, |
| | | { |
| | | prop: 'name', |
| | | label: '名称', |
| | | label: $t('pages.basicInfo.deviceSite.table.name'), |
| | | minWidth: 160, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.name || '--' |
| | | }, |
| | | { |
| | | prop: 'target', |
| | | label: '目标站点', |
| | | label: $t('pages.basicInfo.deviceSite.table.target'), |
| | | minWidth: 160, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.target || '--' |
| | | }, |
| | | { |
| | | prop: 'label', |
| | | label: '站点标签', |
| | | label: $t('pages.basicInfo.deviceSite.table.label'), |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.label || '--' |
| | | }, |
| | | { |
| | | prop: 'deviceText', |
| | | label: '设备类型', |
| | | label: $t('pages.basicInfo.deviceSite.table.deviceType'), |
| | | minWidth: 140, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.deviceText || row.device$ || row.device || '--' |
| | | }, |
| | | { |
| | | prop: 'deviceCode', |
| | | label: '设备编号', |
| | | label: $t('pages.basicInfo.deviceSite.table.deviceCode'), |
| | | minWidth: 140, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.deviceCode || '--' |
| | | }, |
| | | { |
| | | prop: 'deviceSite', |
| | | label: '设备站点', |
| | | label: $t('pages.basicInfo.deviceSite.table.deviceSite'), |
| | | minWidth: 150, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.deviceSite || '--' |
| | | }, |
| | | { |
| | | prop: 'channel', |
| | | label: '巷道', |
| | | label: $t('pages.basicInfo.deviceSite.table.channel'), |
| | | width: 90, |
| | | align: 'center', |
| | | formatter: (row) => row.channel ?? '--' |
| | | }, |
| | | { |
| | | prop: 'areaIdStart', |
| | | label: '源库区', |
| | | label: $t('pages.basicInfo.deviceSite.table.areaStart'), |
| | | width: 100, |
| | | align: 'center', |
| | | formatter: (row) => row.areaIdStart ?? '--' |
| | | }, |
| | | { |
| | | prop: 'areaIdEnd', |
| | | label: '目标库区', |
| | | label: $t('pages.basicInfo.deviceSite.table.areaEnd'), |
| | | width: 100, |
| | | align: 'center', |
| | | formatter: (row) => row.areaIdEnd ?? '--' |
| | | }, |
| | | { |
| | | prop: 'status', |
| | | label: '状态', |
| | | label: $t('table.status'), |
| | | width: 100, |
| | | align: 'center', |
| | | formatter: (row) => { |
| | |
| | | }, |
| | | { |
| | | prop: 'updateTimeText', |
| | | label: '更新时间', |
| | | label: $t('table.updateTime'), |
| | | minWidth: 170, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.updateTimeText || row.updateTime$ || '--' |
| | | }, |
| | | { |
| | | prop: 'memo', |
| | | label: '备注', |
| | | label: $t('table.remark'), |
| | | minWidth: 180, |
| | | showOverflowTooltip: true, |
| | | formatter: (row) => row.memo || '--' |
| | | }, |
| | | { |
| | | prop: 'operation', |
| | | label: '操作', |
| | | label: $t('table.operation'), |
| | | width: 120, |
| | | align: 'center', |
| | | fixed: 'right', |