import { LightningElement, wire, api, track } from "lwc"; import oninit from "@salesforce/apex/LexInventoryController.init"; import barcodeEntry from "@salesforce/apex/LexInventoryController.searchConsumableorderdetails"; // import saveConfirm from '@salesforce/apex/LexInventoryController.saveConfirm'; import save from "@salesforce/apex/LexInventoryController.save"; import datainit from "@salesforce/apex/LexInventoryListController.init"; import { ShowToastEvent } from "lightning/platformShowToastEvent"; import { NavigationMixin } from "lightning/navigation"; //库存盘点主页面数据 const columns = [ { label: "是否盘点", fieldName: "iscount", hideDefaultActions: true, cellAttributes: { alignment: "left" }, }, { label: "消耗品名称", fieldName: "Name__c", hideDefaultActions: true, initialWidth: 250, cellAttributes: { alignment: "left" }, }, { label: "规格", fieldName: "Packing_list_manual__c", hideDefaultActions: true, }, { label: "单位", fieldName: "boxPiece", hideDefaultActions: true, }, { label: "有效期内库存", fieldName: "limitCount", hideDefaultActions: true, }, { label: "过期库存", fieldName: "overlimitCount", hideDefaultActions: true, initialWidth: 100, }, { label: "盘点", fieldName: "Pandian", hideDefaultActions: true, initialWidth: 100, }, { label: "丢失", fieldName: "Diff", hideDefaultActions: true, initialWidth: 100, }, { label: "寻回 ", fieldName: "refind", hideDefaultActions: true, initialWidth: 150, }, { label: "差异原因", // fieldName: "DiffReason", hideDefaultActions: true, type: "customDiffReason", typeAttributes: { DiffReason: { fieldName: "DiffReason" }, ProdId: { fieldName: "ProdId" }, }, }, ]; //调整明细 const column = [ { label: "消耗品名称", fieldName: "Name__c", hideDefaultActions: true, cellAttributes: { alignment: "left" }, }, { label: "单位", fieldName: "Box_Piece__c", hideDefaultActions: true, }, { label: "barcode", fieldName: "Bar_Code__c", hideDefaultActions: true, initialWidth: 150, }, { label: "调整原因", fieldName: "DiffReason", hideDefaultActions: true, }, ]; //盘点明细 const dcolumns = [ { label: "消耗品名称", fieldName: "Name__c", hideDefaultActions: true, cellAttributes: { alignment: "left" }, }, { label: "库存", fieldName: "Count_Sum__c", hideDefaultActions: true, }, { label: "盘点", fieldName: "inventory_sum__c", hideDefaultActions: true, initialWidth: 150, }, { label: "丢失", fieldName: "Diff__c", hideDefaultActions: true, }, { label: "寻回", fieldName: "Product_Refind__c", hideDefaultActions: true, }, { label: "差异原因", fieldName: "Lose_reason__c", hideDefaultActions: true, }, ]; //在库调整明细 const stockadjustcolumns = [ { label: "消耗品名称", fieldName: "Name__c", cellAttributes: { alignment: "left" }, }, { label: "产品型号", fieldName: "Asset_Model_No__c", hideDefaultActions: true, }, { label: "差异原因", fieldName: "Lose_reason__c", hideDefaultActions: true, initialWidth: 150, }, { label: "是否丢失", type: "boolean", fieldName: "Lose_Flag__c", hideDefaultActions: true, }, ]; export default class LexInventoryCount extends NavigationMixin( LightningElement ) { columns = columns; column = column; stockadjustcolumns = stockadjustcolumns; dcolumns = dcolumns; @track data = []; @track codPageRecords = []; @track accountName; @track agencyProType; @track userWorkLocation; @track accountid @track pandiandetailsMap @track reSet @track showTable = false; @track showbutton = false; @track barcode = ""; @track ConsumableorderdetailsRecordsview = []; @track consumableorderdetailsRecords = []; @track showcount = true; @track iSinventory = false @track numberDetail; @track hidecheckbox = true; //加载框 // @track casesSpinner = true; @track showSpinner = true; //row @track selectedRows = []; //inventoryList @track isSummonsFlag; //展开栏 activeSections = ["dataExpand"]; columnHeader = ["消耗品名称", "单位", "barCode", "调整原因"]; //确认一览 @track eSetId = ""; @track EditAble = false; @track selectedData; @track conId; @track detailData = []; @track adjustdata = []; //获取链接参数 getQueryString(name) { console.log("getQueryString name " + name); let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); let r = window.location.search.substr(1).match(reg); if (r != null) { return decodeURIComponent(r[2]); } return null; } connectedCallback() { console.log("===>初始化"); this.showSpinner = true; //获取ESetid this.eSetId = this.getQueryString("eSetId"); this.eSetId = this.eSetId == null ? "" : this.eSetId; console.log(" this.eSetId" + this.eSetId); if (this.eSetId == "") { this.EditAble = false; } else { this.inits(); this.showcount = false; this.EditAble = true; } oninit() .then((result) => { console.log("1112" + JSON.stringify(result)); result = JSON.parse(JSON.stringify(result)); console.log("result.status = " + result.status); console.log( " ConsumableorderdetailsRecordsview= " + result.entity.ConsumableorderdetailsRecordsview ); this.ConsumableorderdetailsRecordsview = JSON.parse( result.entity.ConsumableorderdetailsRecordsview ); this.consumableorderdetailsRecords = result.entity.consumableorderdetailsRecords; console.log( " consumableorderdetailsRecords= " + result.entity.consumableorderdetailsRecords ); console.log("传参类型", typeof this.consumableorderdetailsRecords); if (result.status == "Success") { console.log( "this.ConsumableorderdetailsRecordsview[0] = " + JSON.stringify(this.ConsumableorderdetailsRecordsview[0]) ); console.log( "this.ConsumableorderdetailsRecordsview[0].length = " + this.ConsumableorderdetailsRecordsview[0].length ); // let cloneData = []; // for (let i in this.ConsumableorderdetailsRecordsview[0]) { // cloneData.push(JSON.parse(this.ConsumableorderdetailsRecordsview[0][i])); // } // console.log('cloneData = ' + typeof cloneData); // console.log('cloneData = ' + cloneData); // this.data = cloneData; this.data = []; this.data = this.ConsumableorderdetailsRecordsview[0]; console.log("this.data ==>" + JSON.stringify(this.data)); for (let i in this.data) { this.data[i]["Name__c"] = this.data[i].Prod.Name__c; this.data[i]["Packing_list_manual__c"] = this.data[i].Prod.Packing_list_manual__c; } this.accountName = result.entity.accountName; this.agencyProType = result.entity.agencyProType; this.userWorkLocation = result.entity.userWorkLocation; this.showSpinner = false; this.accountid = result.entity.accountid; // this.casesSpinner = false; this.showTable = true; } 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)); }); //默认展开栏 this.activeSections = ["dataExpand"]; this.showTable = false; this.showbutton = false; //init } //录入barcode barcodeEntrys() { this.showTable = false; this.showbutton = false; this.showSpinner = true; console.log("进入录入"); console.log( "this.consumableorderdetailsRecords===>" + this.consumableorderdetailsRecords ); barcodeEntry({ accountName: this.accountName, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, barcode: this.barcode, consumableorderdetailsRecordsLWC: this.consumableorderdetailsRecords, }) .then((result) => { result = JSON.parse(JSON.stringify(result)); console.log("result ===>" + JSON.stringify(result)); console.log("1111"); if (result.status == "Sucess") { this.codPageRecords = JSON.parse(result.entity.codPageRecords); for (var i in this.codPageRecords) { this.codPageRecords[i]["Name__c"] = this.codPageRecords[i].Prod.Name__c; this.codPageRecords[i]["Box_Piece__c"] = this.codPageRecords[i].orderdetails2.Box_Piece__c; this.codPageRecords[i]["Bar_Code__c"] = this.codPageRecords[i].orderdetails2.Bar_Code__c; } this.data = JSON.parse(result.entity.consumableorderdetailsRecords); for (var i in this.data) { this.data[i]["Name__c"] = this.data[i].Prod.Name__c; this.data[i]["Packing_list_manual__c"] = this.data[i].Prod.Packing_list_manual__c; } for (var i in this.data) { if (this.data[i]["check"]) { this.selectedRows.push(this.data[i].ProdId); console.log("selectedRows:" + this.selectedRows); } } this.iSinventory = result.entity.iSinventory; this.pandiandetailsMap = result.entity.pandiandetailsMap; this.reSet = result.entity.reSet; console.log("iSinventory:" + this.iSinventory); this.showTable = true; this.showbutton = true; this.showSpinner = false; console.log('reSet' + this.reSet); console.log('pandiandetailsMap' + this.pandiandetailsMap); console.log( "this.codPageRecords=11111 " + result.entity.codPageRecords ); console.log("result录入= " + JSON.stringify(result)); console.log( "result主页数据= " + result.entity.consumableorderdetailsRecords ); } else { console.log('Error:' + result.errorMsg); const evt = new ShowToastEvent({ title: '', message: result.msg, variant: 'error' }); this.dispatchEvent(evt); this.showSpinner = false; this.showTable = true; } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); }); } //获取当前输入值 handleChange(event) { let value = event.detail.value; console.log("value" + value); this.barcode = value; } getSelectedRows(event) { 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) { if (this.data[i].ProdId == selectedRows[j].ProdId) { this.data[i]["check"] = true; } } } } //导出为csv exportData() { console.log("导出"); // Prepare a html table let doc = ""; // Add styles for the table doc += ""; // Add all the Table Headers doc += ""; this.columnHeader.forEach((element) => { doc += ""; }); doc += ""; // Add the data rows this.codPageRecords.forEach((record) => { doc += ""; doc += ""; doc += ""; doc += ""; doc += ""; doc += ""; }); doc += "
" + element + "
" + record.Name__c + "" + record.Box_Piece__c + "" + record.Bar_Code__c + "" + record.DiffReason + "
"; var element = "data:application/vnd.ms-excel," + encodeURIComponent(doc); let downloadElement = document.createElement("a"); downloadElement.href = element; downloadElement.target = "_self"; // use .csv as extension on below line if you want to export data as csv downloadElement.download = "库存变化明细.xls"; document.body.appendChild(downloadElement); downloadElement.click(); } //自定义dataType diffreasons(event) { const numberDetail = event.detail; // this.numberDetail = numberDetail; console.log("numberDetail" + JSON.stringify(numberDetail)); for (var i in this.data) { if (this.data[i]["ProId"] == numberDetail.data.ProId) { this.data[i]["DiffReason"] = numberDetail.data.DiffReason; } } console.log(" this.data==>" + JSON.stringify(this.data)); } saveConfirm() { console.log("进入盘点确认"); console.log('reSet' + this.reSet); console.log('pandiandetailsMap' + this.pandiandetailsMap); 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, consumableorderdetailsRecordsLWC: JSON.stringify(this.selectedData), accountid: this.accountid, agencyProType: this.agencyProType, reSet: this.reSet, pandiandetailsMap: this.pandiandetailsMap }) .then((result) => { result = JSON.parse(JSON.stringify(result)); console.log("result = " + JSON.stringify(result)); console.log("111111"); if (result.status == "Success") { let url = "/lexInventoryCount?ESetid=" + result.entity.eSetId; this[NavigationMixin.Navigate]({ type: "standard__webPage", attributes: { url: url, }, }); console.log("Id" + this.eSetId); // this.EditAble = true; // this.showcount = false; } 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)); }); } inits() { datainit({ eSetId: this.eSetId, }) .then((result) => { result = JSON.parse(JSON.stringify(result)); console.log('盘点一览===>' + JSON.stringify(result)); for (var i in result.entity.qs) { this.conId = result.entity.qs[i].Id; } console.log("this.conId" + typeof this.conId); this.detailData = JSON.parse( result.entity.consumableorderdetailsRecords ); if (result.entity.ConsumableorderdetailsRecordsError != null) { this.adjustdata = JSON.parse( result.entity.ConsumableorderdetailsRecordsError ); for (let i in this.detailData) { this.detailData[i].Name__c = this.detailData[i].Prod.Name__c; this.detailData[i].Count_Sum__c = this.detailData[i].orderdetails1.Count_Sum__c; this.detailData[i].inventory_sum__c = this.detailData[i].orderdetails1.inventory_sum__c; this.detailData[i].Diff__c = this.detailData[i].orderdetails1.Diff__c; this.detailData[i].Product_Refind__c = this.detailData[i].orderdetails1.Product_Refind__c; this.detailData[i].Lose_reason__c = this.detailData[i].orderdetails1.Lose_reason__c; } for (let i in this.adjustdata) { this.adjustdata[i].Name__c = this.adjustdata[i].Prod.Name__c; this.adjustdata[i].Asset_Model_No__c = this.adjustdata[i].Prod.Asset_Model_No__c; this.adjustdata[i].Lose_reason__c = this.adjustdata[i].orderdetails2.Lose_reason__c; this.adjustdata[i].Lose_Flag__c = this.adjustdata[i].orderdetails2.Lose_Flag__c; } } console.log("result盘点Id" + JSON.stringify(this.conId)); console.log("调整明细" + JSON.stringify(this.adjustdata)); }) .catch((error) => { console.log("error = " + JSON.stringify(error)); }); } }