import type { TableColumn } from '@/components/core/dynamic-table'; import { ContractStatusEnum } from '@/enums/contractEnum'; import { DictEnum } from '@/enums/dictEnum'; import { useDictStore } from '@/store/modules/dict'; import { formatToDate } from '@/utils/dateUtil'; import { Tag } from 'ant-design-vue'; export type TableListItem = API.MaterialsInventoryEntity; export type TableColumnItem = TableColumn; const dictStore = useDictStore(); export const baseColumns: TableColumnItem[] = [ { title: '产品名称', width: 180, dataIndex: 'product', }, { title: '单位', width: 60, hideInSearch: true, dataIndex: 'unit', formItemProps: { component: 'Select', componentProps: { options: dictStore .getDictItemsByCode(DictEnum.Unit) .map(({ label, id }) => ({ value: id, label })), }, }, customRender: ({ record }) => { return dictStore.getDictItemsByCode(DictEnum.Unit)?.length ? dictStore.getDictItemsByCode(DictEnum.Unit).find((item) => item.id === record.unit) ?.label || '' : ''; }, }, { title: '库存数量', hideInSearch: true, width: 80, dataIndex: 'quantity', }, { title: '库存单价', hideInSearch: true, width: 80, dataIndex: 'unitPrice', }, { title: '备注', width: 80, dataIndex: 'remark', }, ]; export function formatStatus(status: ContractStatusEnum): { color: string; label: string; value: number; } { switch (status) { case ContractStatusEnum.Pending: return { color: '#ccc', label: '待审核', value: ContractStatusEnum.Pending, }; case ContractStatusEnum.Approved: return { color: 'green', label: '已通过', value: ContractStatusEnum.Approved, }; case ContractStatusEnum.Rejected: return { color: 'red', label: '已拒绝', value: ContractStatusEnum.Rejected, }; default: return { color: '#ccc', label: '待审核', value: ContractStatusEnum.Pending, }; } }