129 lines
3.0 KiB
TypeScript
129 lines
3.0 KiB
TypeScript
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<TableListItem>;
|
|
const dictStore = useDictStore();
|
|
export const baseColumns: TableColumnItem[] = [
|
|
{
|
|
title: '库存编号',
|
|
width: 120,
|
|
dataIndex: 'inventoryNumber',
|
|
fixed: 'left',
|
|
customRender: ({ record }) => {
|
|
return record?.inventoryNumber || '';
|
|
},
|
|
},
|
|
{
|
|
title: '所属项目',
|
|
width: 180,
|
|
dataIndex: 'project',
|
|
customRender: ({ record }) => {
|
|
return record?.project?.name || '';
|
|
},
|
|
},
|
|
{
|
|
title: '所属公司',
|
|
width: 180,
|
|
dataIndex: 'product',
|
|
customRender: ({ record }) => {
|
|
return record?.product?.company?.name || '';
|
|
},
|
|
},
|
|
{
|
|
title: '产品名称',
|
|
width: 180,
|
|
dataIndex: 'product',
|
|
customRender: ({ record }) => {
|
|
return record?.product?.name || '';
|
|
},
|
|
},
|
|
{
|
|
title: '产品规格',
|
|
width: 180,
|
|
dataIndex: 'productSpecification',
|
|
customRender: ({ record }) => {
|
|
return record?.product?.productSpecification || '';
|
|
},
|
|
},
|
|
{
|
|
title: '产品编号',
|
|
width: 180,
|
|
dataIndex: 'productNumber',
|
|
customRender: ({ record }) => {
|
|
return record?.product?.productNumber || '';
|
|
},
|
|
},
|
|
{
|
|
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 record?.product?.unit?.label || '';
|
|
},
|
|
},
|
|
|
|
{
|
|
title: '入库库存单价',
|
|
hideInSearch: true,
|
|
width: 80,
|
|
dataIndex: 'unitPrice',
|
|
customRender: ({ record }) => {
|
|
return parseFloat(record.unitPrice) || 0;
|
|
},
|
|
},
|
|
{
|
|
title: '库存数量',
|
|
hideInSearch: true,
|
|
fixed:'right',
|
|
width: 80,
|
|
dataIndex: 'quantity',
|
|
},
|
|
];
|
|
|
|
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,
|
|
};
|
|
}
|
|
}
|