Files
klp-oa/klp-ui/src/views/aps/sheets/templates.js

69 lines
3.3 KiB
JavaScript
Raw Normal View History

2026-03-08 16:02:44 +08:00
/**
* 统一排产表模板配置
*
* 设计目标
* - 用同一套 UI 渲染不同机组的排产表样式多级表头/字段差异
* - 后端返回统一的 rowModel行数据前端仅做字段映射和展示
*
* 约定
* - columns 支持多级{ label, children } 或叶子列 { label, prop, width, minWidth, fixed, align }
* - summary用于底部合计显示哪些字段求和
*/
export const APS_SHEET_TEMPLATES = [
{
key: 'unified',
name: '统一排产表',
columns: [
2026-03-14 15:06:18 +08:00
{ label: '产线', prop: 'lineName', minWidth: 140 },
{ label: '排产单号', prop: 'planCode', minWidth: 140 },
{ label: '排产类型', prop: 'planType', width: 100 },
{ label: '排产人', prop: 'scheduler', width: 100 },
{ label: '修改人', prop: 'updateBy', width: 100 },
{ label: '备注', prop: 'remark', minWidth: 160 },
{ label: '内容序号', prop: 'bizSeqNo', width: 110 },
{ label: '销售内容', prop: 'orderCode', minWidth: 140 },
{ label: '订单合同号', prop: 'contractCode', minWidth: 140 },
2026-03-08 16:02:44 +08:00
{ label: '客户', prop: 'customerName', minWidth: 140 },
{ label: '业务员', prop: 'salesman', width: 100 },
{ label: '成品名称', prop: 'productName', minWidth: 140 },
{ label: '材质', prop: 'productMaterial', width: 100 },
{ label: '镀层g', prop: 'coatingG', width: 90, align: 'right' },
{ label: '成品宽度', prop: 'productWidth', width: 100, align: 'right' },
{ label: '扎制厚度', prop: 'rollingThick', width: 100, align: 'right' },
{ label: '标丝厚度', prop: 'markCoatThick', width: 100, align: 'right' },
{ label: '吨钢长度区间m', prop: 'tonSteelLengthRange', minWidth: 130 },
{ label: '数量', prop: 'planQty', width: 90, align: 'right' },
{ label: '重量', prop: 'planWeight', width: 100, align: 'right' },
{ label: '表面处理', prop: 'surfaceTreatment', width: 110 },
{ label: '切边要求', prop: 'widthReq', width: 110 },
{ label: '宽度要求', prop: 'rawEdgeReq', width: 110 },
{ label: '用途', prop: 'usageReq', width: 100 },
{ label: '后处理', prop: 'postProcess', width: 100 },
{ label: '下工序', prop: 'nextProcess', width: 100 },
{ label: '取样', prop: 'sampleReq', width: 90 },
{ label: '开始时间', prop: 'startTime', width: 170 },
{ label: '结束时间', prop: 'endTime', width: 170 },
{ label: '厂家', prop: 'rawManufacturer', width: 100 },
{ label: '原料信息', prop: 'rawMaterial', minWidth: 140 },
{ label: '原料厚度mm', prop: 'rawThick', width: 110, align: 'right' },
{ label: '宽度mm', prop: 'rawWidth', width: 100, align: 'right' },
2026-03-08 16:02:44 +08:00
{ label: '原料钢卷', prop: 'rawMaterialId', minWidth: 220 },
{ label: '原料卷号', prop: 'rawCoilNos', minWidth: 220 },
{ label: '钢卷位置', prop: 'rawLocation', minWidth: 140 },
{ label: '包装要求', prop: 'rawPackaging', minWidth: 140 },
{ label: '镀层种类', prop: 'rawCoatingType', width: 110 },
{ label: '原料净重', prop: 'rawNetWeight', width: 110, align: 'right' }
2026-03-08 16:02:44 +08:00
],
summary: { sumFields: ['planQty', 'rawNetWeight'] }
}
]
export function getTemplateByKey(key) {
return APS_SHEET_TEMPLATES.find(t => t.key === key) || APS_SHEET_TEMPLATES[0]
}