增加老厂排程单页面的物料编号缺料变红的显示和去除物料幅宽的小数点
增加老厂排程单页面的物料编号缺料变红的显示和去除物料幅宽的小数点
| | |
| | | {{ getDictionary(scoped.row, item) }} |
| | | </el-tag> |
| | | </div> |
| | | |
| | | <div v-else> |
| | | <!-- ç©æç¼å·åç¹æ®å¤çï¼ç¼ºææ¶æ¾ç¤ºçº¢è² --> |
| | | <span v-if="item.prop == 'materialNo'" :style="{color: isMaterialShortage(scoped.row) ? 'red' : ''}"> |
| | | {{ scoped.row[item.prop] }} |
| | | </span> |
| | | <!-- å
¶ä»æ®éå --> |
| | | <span v-else> |
| | | {{ scoped.row[item.prop] }} |
| | | </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | } |
| | | return ''; // é»è®¤æ é¢è² |
| | | }, |
| | | isMaterialShortage(row) { |
| | | // å¤æç©ææ¯å¦ç¼ºæï¼ä¸ä¸»é¡µé¢é»è¾ä¿æä¸è´ |
| | | // æç»ç¶æä¸º3表示缺æï¼æisLackMaterial为true/"æ¯" |
| | | return row.outSGOrderDetailStatus === 3 || |
| | | (row.isLackMaterial && (typeof row.isLackMaterial === 'boolean' ? row.isLackMaterial : row.isLackMaterial === 'æ¯')); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | 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", |
| | |
| | | align: "left", |
| | | edit: { type: "string" }, |
| | | required: true, |
| | | |
| | | }, |
| | | { |
| | | field: "xqLen", |
| | |
| | | /// </summary> |
| | | [Navigate(NavigateType.OneToMany, nameof(Dt_OutSGOrderDetail.OutSGOrderId), nameof(Id))] |
| | | public List<Dt_OutSGOrderDetail> Details { get; set; } |
| | | public string MaterialLackStatus { get; set; } |
| | | } |
| | | } |
| | |
| | | // 设置æ¯å¦ç¼ºæï¼å¦ææä»»ä½ä¸ä¸ªæç»æ¯ç¼ºæç¶æï¼å°±è®¾ç½®ä¸ºtrue |
| | | // å¼ç¨WIDESEA_Common.OrderEnumå½åç©ºé´æ¥ä½¿ç¨OutOrderStatusEnumæä¸¾ |
| | | order.IsLackMaterial = details.Any(d => d.OutSGOrderDetailStatus == 3); // 3æ¯ç¼ºæç¶æçæä¸¾å¼ |
| | | |
| | | // çæç©æç¼ºæç¶æå符串ï¼ç©æç¼å·:ç¶æ,ç©æç¼å·:ç¶æ |
| | | var materialLackStatus = new List<string>(); |
| | | foreach (var detail in details) |
| | | { |
| | | var isLack = detail.OutSGOrderDetailStatus == 3; |
| | | materialLackStatus.Add($"{detail.MaterialNo}:{isLack.ToString().ToLower()}"); |
| | | } |
| | | order.MaterialLackStatus = string.Join(",", materialLackStatus); |
| | | } |
| | | else |
| | | { |
| | | order.MaterialNos = ""; |
| | | order.MaterialWides = ""; |
| | | order.IsLackMaterial = false; |
| | | order.MaterialLackStatus = ""; |
| | | } |
| | | } |
| | | } |