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'; //过期库存一览 const columns = [ { label: '是否销存', fieldName: 'iscount', type: 'checkbox', hideDefaultActions: true // initialWidth: 250, }, { label: '消耗品名称', fieldName: 'prodname', type: 'prodname', // initialWidth: 350, hideDefaultActions: true }, { label: '单位', fieldName: 'boxPiece', hideDefaultActions: true, initialWidth: 250 }, { label: '过期数量', fieldName: 'overlimitCount', hideDefaultActions: true, initialWidth: 250 }, { label: '销存数量', fieldName: 'pandian', hideDefaultActions: true, initialWidth: 250 // cellAttributes: { alignment: 'center' } } ]; //销存明细 const column = [ { label: '消耗品名称', fieldName: 'Name__c', type: 'Name', // initialWidth : 300, hideDefaultActions: true, cellAttributes: { alignment: 'left' } }, { label: '单位', fieldName: 'Box_Piece__c', initialWidth: 250, hideDefaultActions: true }, { label: 'BarCode', fieldName: 'Bar_Code__c', hideDefaultActions: true, initialWidth: 250 }, { label: '使用期限', fieldName: 'Sterilization_limit__c', hideDefaultActions: true, initialWidth: 250 }, { label: '销存原因', fieldName: 'diffReason', hideDefaultActions: true, initialWidth: 100 } ]; 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 = []; //初始化 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; this.showTable = true; // this.casesSpinner = false; this.showSpinner = false; } else { console.log('Error:' + result.errorMsg); const evt = new ShowToastEvent({ title: '解析失败', message: result.errorMsg, variant: 'error' }); this.dispatchEvent(evt); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); }); } //barcode录入 barcodeEntrys() { this.showSpinner = true; this.showTable = false; console.log('code' + this.barcode); console.log(' this.accountName' + this.accountName); barcodeEntry({ accountNameLWC: this.accountName, agencyProTypeLWC: this.agencyProType, userWorkLocationLWC: this.userWorkLocation, barcodeLWC: this.barcode, codPageRecordsLWC: this.codPageRecordsLWC }) .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)); 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) { if (this.data[i]['check']) { this.selectedRows.push(this.data[i].prodid); console.log('selectedRows:' + this.selectedRows); } } this.showSpinner = false; // this.showTables = true; this.showTable = true; } else { console.log('result.msg = ' + result.msg); const evt = new ShowToastEvent({ title: '录入失败', message: result.msg, variant: 'error' }); this.dispatchEvent(evt); this.showSpinner = false; } }) .catch((error) => { 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) { console.log('打勾'); const selectedRows = event.detail.selectedRows; console.log('this.selectedRows = ' + this.selectedRows); for (var i in this.data) { this.data[i]['check'] = false; } for (var i in this.data) { for (var j in selectedRows) { console.log('this.selectedRows111 = ' + selectedRows[j].prodid); console.log('this.selectedRows1112 = ' + this.data[i].prodid); if (this.data[i].prodid == selectedRows[j].prodid) { this.data[i]['check'] = true; } } } } //保存 saveConfirm() { console.log('进入销存确认'); var el = this.template.querySelector( 'c-lex-custom-lightning-datatable' ); var selected = el.getSelectedRows(); this.selectedData = selected; console.log('选中数据' + JSON.stringify(this.selectedData)); save({ iSinventory: this.iSinventory, saveCodPageRecords: JSON.stringify(this.selectedData), saveoverdueList: JSON.stringify(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' } }); } else { console.log('result.msg = ' + result.msg); const evt = new ShowToastEvent({ title: '失败', message: result.msg, variant: 'error' }); this.dispatchEvent(evt); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); }); } }