|  |  | 
 |  |  |  | 
 |  |  | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæçä»£ç  | 
 |  |  |  | 
 |  |  | import { el } from "element-plus/es/locales.mjs"; | 
 |  |  |  | 
 |  |  | let extension = { | 
 |  |  |     components: { | 
 |  |  |       //æ¥è¯¢ç颿©å±ç»ä»¶ | 
 |  |  |       gridHeader: '', | 
 |  |  |       gridBody: '', | 
 |  |  |       gridFooter: '', | 
 |  |  |       //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ | 
 |  |  |       modelHeader: '', | 
 |  |  |       modelBody: '', | 
 |  |  |       modelFooter: '' | 
 |  |  |   components: { | 
 |  |  |     //æ¥è¯¢ç颿©å±ç»ä»¶ | 
 |  |  |     gridHeader: '', | 
 |  |  |     gridBody: '', | 
 |  |  |     gridFooter: '', | 
 |  |  |     //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ | 
 |  |  |     modelHeader: '', | 
 |  |  |     modelBody: '', | 
 |  |  |     modelFooter: '' | 
 |  |  |   }, | 
 |  |  |   tableAction: '', //æå®æå¼ è¡¨çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) | 
 |  |  |   buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® | 
 |  |  |   methods: { | 
 |  |  |     //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ | 
 |  |  |     onInit() { | 
 |  |  |       // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); | 
 |  |  |       // if (InOrder) { | 
 |  |  |       //   InOrder.onClick = function () { | 
 |  |  |       //     let rows = this.$refs.table.getSelected(); | 
 |  |  |       //     if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); | 
 |  |  |       //     if (rows.length > 1) return this.$error("è¯·éæ©åæ¡æ°æ®!"); | 
 |  |  |       //     var keys = rows.map(x => { return x.stockId }); | 
 |  |  |       //     this.http | 
 |  |  |       //       .post("api/Task/Outbound?id="+keys[0], null, "æ°æ®å¤çä¸") | 
 |  |  |       //       .then((x) => { | 
 |  |  |       //         if (!x.status) return this.$message.error(x.message); | 
 |  |  |       //         this.$message.success("æä½æå"); | 
 |  |  |       //         this.refresh(); | 
 |  |  |       //       }); | 
 |  |  |       //   } | 
 |  |  |       // } | 
 |  |  |       this.columns.forEach(column => { | 
 |  |  |         if (column.field == 'materielCode') { | 
 |  |  |           column.formatter = (row) => { | 
 |  |  |             var str = ''; | 
 |  |  |             var list = row.materielCode.split(','); | 
 |  |  |             for (let index = 0; index < list.length; index++) { | 
 |  |  |               str += list[index] + '<br>'; | 
 |  |  |             } | 
 |  |  |             return str = list[0] == "" ? "空箱" : str; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         if (column.field == 'batchNo') { | 
 |  |  |           column.formatter = (row) => { | 
 |  |  |             var str = ''; | 
 |  |  |             var list = row.batchNo.split(','); | 
 |  |  |             for (let index = 0; index < list.length; index++) { | 
 |  |  |               str += list[index] + '<br>'; | 
 |  |  |             } | 
 |  |  |             return str = list[0] == "" ? "æ " : str; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         if (column.field == 'materielInfo') { | 
 |  |  |           const today = new Date() | 
 |  |  |           column.formatter = (row) => { | 
 |  |  |             if (row.details.length > 0) { | 
 |  |  |               const today = new Date(); | 
 |  |  |               const closestDate = row.details | 
 |  |  |                 .map(x => { | 
 |  |  |                   const date = new Date(x.effectiveDate); | 
 |  |  |                   const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24))); | 
 |  |  |                   return { date, diffInDays }; | 
 |  |  |                 }) | 
 |  |  |                 .reduce((closest, current) => (current.diffInDays < closest.diffInDays ? current : closest)) | 
 |  |  |                 .date; | 
 |  |  |  | 
 |  |  |               const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24))); | 
 |  |  |               return '<span style="color: #F56C6C">' + daysSinceClosest + "天" + '</span>'; | 
 |  |  |             } else { | 
 |  |  |               return '<span style="color: #F56C6C">' + "æ ä¿è´¨æ" + '</span>'; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         if (column.field == 'sumStock') { | 
 |  |  |           column.formatter = (row) => { | 
 |  |  |             if (row.details.length > 0) { | 
 |  |  |               var sum = 0; | 
 |  |  |               const closestDate = row.details | 
 |  |  |                 .map(x => { | 
 |  |  |                   sum += (x.stockQuantity) | 
 |  |  |                 }) | 
 |  |  |               return '<span style="color: #F56C6C">' + sum + row.details[0].unit + '</span>'; | 
 |  |  |             } else { | 
 |  |  |               return '<span style="color: #F56C6C">' + "1个" + '</span>'; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     tableAction: '', //æå®æå¼ è¡¨çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) | 
 |  |  |     buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® | 
 |  |  |     methods: { | 
 |  |  |        //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ | 
 |  |  |       onInit() {   | 
 |  |  |       }, | 
 |  |  |       onInited() { | 
 |  |  |         //æ¡æ¶åå§åé
ç½®å | 
 |  |  |         //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ | 
 |  |  |         //this.detailOptions.columns.forEach(column=>{ }); | 
 |  |  |       }, | 
 |  |  |       searchBefore(param) { | 
 |  |  |         //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° | 
 |  |  |         //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ | 
 |  |  |         return true; | 
 |  |  |       }, | 
 |  |  |       searchAfter(result) { | 
 |  |  |         //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤ç表格çå¼ | 
 |  |  |         return true; | 
 |  |  |       }, | 
 |  |  |       addBefore(formData) { | 
 |  |  |         //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ | 
 |  |  |         return true; | 
 |  |  |       }, | 
 |  |  |       updateBefore(formData) { | 
 |  |  |         //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId | 
 |  |  |         return true; | 
 |  |  |       }, | 
 |  |  |       rowClick({ row, column, event }) { | 
 |  |  |         //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ | 
 |  |  |         this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; | 
 |  |  |       }, | 
 |  |  |       modelOpenAfter(row) { | 
 |  |  |         //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® | 
 |  |  |         //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; | 
 |  |  |         //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ | 
 |  |  |         //(3)this.editFormFields.åæ®µ='xxx'; | 
 |  |  |         //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ | 
 |  |  |         //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) | 
 |  |  |       } | 
 |  |  |     onInited() { | 
 |  |  |       //æ¡æ¶åå§åé
ç½®å | 
 |  |  |       //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ | 
 |  |  |       //this.detailOptions.columns.forEach(column=>{ }); | 
 |  |  |     }, | 
 |  |  |     searchBefore(param) { | 
 |  |  |       //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° | 
 |  |  |       //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ | 
 |  |  |       return true; | 
 |  |  |     }, | 
 |  |  |     searchAfter(result) { | 
 |  |  |       //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤ç表格çå¼ | 
 |  |  |       return true; | 
 |  |  |     }, | 
 |  |  |     addBefore(formData) { | 
 |  |  |       //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ | 
 |  |  |       return true; | 
 |  |  |     }, | 
 |  |  |     updateBefore(formData) { | 
 |  |  |       //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId | 
 |  |  |       return true; | 
 |  |  |     }, | 
 |  |  |     rowClick({ row, column, event }) { | 
 |  |  |       //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ | 
 |  |  |       this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; | 
 |  |  |     }, | 
 |  |  |     modelOpenAfter(row) { | 
 |  |  |       //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® | 
 |  |  |       //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; | 
 |  |  |       //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ | 
 |  |  |       //(3)this.editFormFields.åæ®µ='xxx'; | 
 |  |  |       //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ | 
 |  |  |       //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) | 
 |  |  |     } | 
 |  |  |   }; | 
 |  |  |   export default extension; | 
 |  |  |    | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | export default extension; |