import { LightningElement, wire, api, track } from 'lwc'; import init from '@salesforce/apex/LexOverdueStockController.init'; import barcodeEntry from '@salesforce/apex/LexOverdueStockController.searchorderBean'; import save from '@salesforce/apex/LexOverdueStockController.save'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { NavigationMixin } from 'lightning/navigation'; //table css import { loadStyle } from "lightning/platformResourceLoader"; import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable"; //过期库存一览 const columns = [ { label: '是否销存', fieldName: 'iscount', type: 'checkbox', hideDefaultActions: true, initialWidth: 80, }, { label: '消耗品名称', fieldName: 'prodname', type: 'prodname', wrapText: true, initialWidth: 350, hideDefaultActions: true }, { label: '单位', fieldName: 'boxPiece', hideDefaultActions: true, // initialWidth: 250, }, { label: '过期数量', fieldName: 'overlimitCount', hideDefaultActions: true, cellAttributes: { alignment: 'right' } // initialWidth: 250, }, { label: '销存数量', fieldName: 'pandian', hideDefaultActions: true, cellAttributes: { alignment: 'right' } // initialWidth: 250, // cellAttributes: { alignment: 'center' } } ]; //销存明细 const column = [ { label: '消耗品名称', fieldName: 'Name__c', type: 'Name', wrapText: true, // initialWidth : 300, hideDefaultActions: true, cellAttributes: { alignment: 'left' } }, { label: '单位', fieldName: 'Box_Piece__c', initialWidth: 80, hideDefaultActions: true }, { label: 'BarCode', fieldName: 'Bar_Code__c', wrapText: true, hideDefaultActions: true, // initialWidth: 500, }, { label: '使用期限', fieldName: 'Sterilization_limit__c', hideDefaultActions: true, // initialWidth : 250 } , { label: '销存原因', fieldName: 'diffReason', hideDefaultActions: true, wrapText: true, initialWidth: 160 } ]; export default class LexOverdueStock extends NavigationMixin(LightningElement) { columns = columns column = column @track data = []; @track overduePageRecords = []; @track iSinventory = false //加载框 // @track casesSpinner = true; @track showSpinner = true; //显示口 @track showbutton = false @track showTable = false; @track showTables = false; //销存一览数据 @track accountName; @track agencyProType; @track userWorkLocation; @track barcode = '' @track orderDetZaiku @track selectedRows = []; @track codPageRecordsLWC; @track Id; @track overdueList = []; renderedCallback() { if (!this.stylesLoaded) { Promise.all([loadStyle(this, WrappedHeaderTable)]) .then(() => { console.log("Custom styles loaded"); this.stylesLoaded = true; }) .catch((error) => { console.error("Error loading custom styles"); }); } } //初始化 connectedCallback() { console.log('初始化'); this.showSpinner = true; init().then((result) => { result = JSON.parse(JSON.stringify(result)); console.log('result =' + JSON.stringify(result)); console.log('result 1=' + result.entity.codPageRecords); if (result.status = 'Success') { this.data = JSON.parse(result.entity.codPageRecords); this.codPageRecordsLWC = result.entity.codPageRecords; console.log('this.data' + this.data); this.accountName = result.entity.accountName; this.agencyProType = result.entity.agencyProType; this.userWorkLocation = result.entity.userWorkLocation; for (var i in this.data) { this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"]; } this.showTable = true; // this.casesSpinner = false; this.showSpinner = false; } else { this.showMyToast('初始化失败', result.msg, 'error'); this.showSpinner = false; } }).catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showSpinner = false; }); } //barcode录入 barcodeEntrys() { this.showSpinner = true; this.showTable = false; console.log('code' + this.barcode); console.log(' this.accountName' + this.accountName); console.log(' this.barcode' + this.barcode); const selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows(); console.log('selectedRows========> ' + JSON.stringify(selectedRows)); for (var i in this.data) { this.data[i]["check"] = false; } for (var i in this.data) { for (var j in selectedRows) { if (this.data[i].prodid + this.data[i]["boxPiece"] == selectedRows[j].prodid + selectedRows[j]["boxPiece"]) { this.data[i]["check"] = true; } } } barcodeEntry({ accountNameLWC: this.accountName, agencyProTypeLWC: this.agencyProType, userWorkLocationLWC: this.userWorkLocation, barcodeLWC: this.barcode, codPageRecordsLWC: JSON.stringify(this.data) }).then((result) => { result = JSON.parse(JSON.stringify(result)); if (result.status == 'Success') { this.overduePageRecords = JSON.parse(result.entity.overduePageRecords); this.overdueList = result.entity.overdueList; this.iSinventory = result.entity.iSinventory; console.log('result录入' + JSON.stringify(result)); console.log('overdueList==>' + JSON.stringify(this.overdueList)); for (let i in this.overduePageRecords) { if (this.overduePageRecords[i].Prod != null) { this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c; } this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c; this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c; this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c; } this.data = JSON.parse(result.entity.codPageRecords); console.log(' this.data' + JSON.stringify(this.data)); for (var i in this.data) { this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"]; } for (var i in this.data) { if (this.data[i]['check']) { this.selectedRows.push(this.data[i].prodid + this.data[i]["boxPiece"]); console.log("selectedRows:" + this.selectedRows); } } this.showSpinner = false; this.showTable = true; } else { if (result.status == 'Success1') { this.overduePageRecords = JSON.parse(result.entity.overduePageRecords); this.overdueList = result.entity.overdueList; this.iSinventory = result.entity.iSinventory; console.log('result录入' + JSON.stringify(result)); console.log('overdueList==>' + JSON.stringify(this.overdueList)); for (let i in this.overduePageRecords) { if (this.overduePageRecords[i].Prod != null) { this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c; } this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c; this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c; this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c; } this.data = JSON.parse(result.entity.codPageRecords); console.log(' this.data' + JSON.stringify(this.data)); for (var i in this.data) { this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"]; } for (var i in this.data) { if (this.data[i]['check']) { this.selectedRows.push(this.data[i].prodid + this.data[i]["boxPiece"]); console.log("selectedRows:" + this.selectedRows); } } this.showSpinner = false; // this.showTables = true; this.showTable = true; }else { console.log('Error:' + result.msg); this.showMyToast(result.msg,'','error'); this.showSpinner = false; this.showTable = true; } // this.showMyToast('获取失败', result.msg, 'error'); // this.showSpinner = false; } }).catch((error) => { this.showSpinner = false; console.log('error = ' + JSON.stringify(error)); }); } //获取当前输入值 handleChange(event) { let value = event.detail.value; console.log('value' + value); this.barcode = value; console.log('this.barcode' + this.barcode); } getSelectedRows(event) { let selectedRowsEvent = event.detail.selectedRows; this.selectedRows = []; for (var i in selectedRowsEvent) { this.selectedRows.push(selectedRowsEvent[i].prodid+this.data[i]["boxPiece"]); } console.log('this.selectedRows==>'+this.selectedRows); } //保存 saveConfirm() { console.log('进入销存确认'); this.showSpinner = true; //查询有哪些选择了的然后check const selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows(); console.log('selectedRows========> ' + JSON.stringify(selectedRows)); for (var i in this.data) { this.data[i]["check"] = false; } for (var i in this.data) { for (var j in selectedRows) { if (this.data[i].prodid+this.data[i]["boxPiece"] == selectedRows[j].prodid+ selectedRows[j]["boxPiece"]) { this.data[i]["check"] = true; } } } save({ iSinventory: this.iSinventory, saveCodPageRecords: JSON.stringify(this.data), // saveoverdueList:JSON.stringify(this.overdueList) saveoverdueList: this.overdueList }).then((result) => { result = JSON.parse(JSON.stringify(result)); console.log('result保存 = ' + JSON.stringify(result)); if (result.status == 'Success') { this[NavigationMixin.Navigate]({ type: 'standard__recordPage', attributes: { recordId: result.entity.Id, objectApiName: 'Consumable_order__c', actionName: 'view' } }); this.showSpinner = false; } else { this.showMyToast('销存失败', result.msg, 'error'); this.showSpinner = false; } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showSpinner = false; }); } showMyToast(title, message, variant) { console.log('show custom message'); var iconName = ''; var content = ''; if (variant == 'success') { iconName = 'utility:check'; } else { iconName = 'utility:error'; } if (message != '') { content = '