| | |
| | | }, |
| | | { |
| | | field: "orderId", |
| | | title: "䏿¸¸ç产åå·", |
| | | title: "æç¨å·", |
| | | type: "string", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "number", |
| | | title: "ç¨çº¸åºå·", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | |
| | | { |
| | | field: "outSGOrderStatus", |
| | | title: "åºåºåç¶æ", |
| | | type: "string", |
| | | type: "tag", |
| | | width: 110, |
| | | align: "left", |
| | | bind: { key: "outboundStatusEnum", data: [] }, |
| | | getColor: (row) => { |
| | | const status = row.outSGOrderStatus; |
| | | if (status === 3) { // 缺æ |
| | | return 'danger'; // çº¢è² |
| | | } else if (status === 0) { // æªå¼å§ |
| | | return 'success'; // ç»¿è² |
| | | } else if (status === 1) { // åºåºä¸ |
| | | return 'primary'; // èè² |
| | | } |
| | | return ''; // é»è®¤æ é¢è² |
| | | } |
| | | }, |
| | | { |
| | | field: "createDate", |
| | |
| | | type: "string", |
| | | width: 160, |
| | | align: "left", |
| | | formatter: (row) => { |
| | | const materialNos = row.materialNos; |
| | | if (!materialNos) return materialNos; |
| | | |
| | | // æå»ºç©æç¼ºæç¶ææ å° |
| | | const lackStatusMap = new Map(); |
| | | |
| | | // 注æï¼å段åå·²ç»è¢«è½¬æ¢ä¸ºé©¼å³°å½åæ³ |
| | | const statusField = row.materialLackStatus; |
| | | if (statusField) { |
| | | const statusPairs = statusField.split(','); |
| | | statusPairs.forEach(pair => { |
| | | const [materialNo, isLack] = pair.split(':'); |
| | | lackStatusMap.set(materialNo.trim(), isLack.trim() === 'true'); |
| | | }); |
| | | } |
| | | |
| | | // å¤çç©æç¼å·ï¼æ ¹æ®ç¶æè®¾ç½®é¢è² |
| | | const materialList = materialNos.split('/'); |
| | | const formattedMaterials = materialList.map(materialNo => { |
| | | const trimmedMaterialNo = materialNo.trim(); |
| | | const isLack = lackStatusMap.get(trimmedMaterialNo) || false; |
| | | if (isLack) { |
| | | return `<span style="color: red;">${trimmedMaterialNo}</span>`; |
| | | } |
| | | return trimmedMaterialNo; |
| | | }); |
| | | |
| | | return formattedMaterials.join('/'); |
| | | } |
| | | }, |
| | | { |
| | | field: "materialWides", |
| | |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | formatter: (row) => { |
| | | const value = row.materialWides; |
| | | if (value && typeof value === 'string') { |
| | | return value.replace(/\.\d+$/, ''); |
| | | } |
| | | return value; |
| | | } |
| | | }, |
| | | { |
| | | field: "isLackMaterial", |
| | | title: "æ¯å¦ç¼ºæ", |
| | | type: "string", |
| | | width: 100, |
| | | align: "center", |
| | | formatter: (row) => { |
| | | const isLack = Boolean(row.isLackMaterial); |
| | | const text = isLack ? "æ¯" : "å¦"; |
| | | const bgColor = isLack ? '#ff4d4f' : '#52c41a'; |
| | | return `<div style="background-color: ${bgColor}; color: #ffffff; text-align: center; font-weight: bold; width: 100%; height: 100%; padding: 10px 0; display: flex; justify-content: center; align-items: center;">${text}</div>`; |
| | | } |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | |
| | | align: "left", |
| | | edit: { type: "string" }, |
| | | required: true, |
| | | |
| | | }, |
| | | { |
| | | field: "xqLen", |
| | |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "outBSTOrderDetailStatus", |
| | | field: "outSGOrderDetailStatus", |
| | | title: "订åæç»ç¶æ", |
| | | type: "string", |
| | | type: "tag", |
| | | width: 180, |
| | | align: "left", |
| | | bind: { key: "outboundStatusEnum", data: [] }, |
| | | getColor: (row) => { |
| | | const status = row.outSGOrderDetailStatus; |
| | | if (status === 3) { // 缺æ |
| | | return 'danger'; // çº¢è² |
| | | } else if (status === 0) { // æªå¼å§ |
| | | return 'success'; // ç»¿è² |
| | | } else if (status === 1) { // åºåºä¸ |
| | | return 'primary'; // èè² |
| | | } |
| | | return ''; // é»è®¤æ é¢è² |
| | | } |
| | | }, |
| | | { |
| | | field: "createDate", |