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 = "<table>";
|
// Add styles for the table
|
doc += "<style>";
|
doc += "table, th, td {";
|
doc += " border: 1px solid black;";
|
doc += " border-collapse: collapse;";
|
doc += "}";
|
doc += "</style>";
|
// Add all the Table Headers
|
doc += "<tr>";
|
this.columnHeader.forEach((element) => {
|
doc += "<th>" + element + "</th>";
|
});
|
doc += "</tr>";
|
// Add the data rows
|
this.codPageRecords.forEach((record) => {
|
doc += "<tr>";
|
doc += "<th>" + record.Name__c + "</th>";
|
doc += "<th>" + record.Box_Piece__c + "</th>";
|
doc += "<th>" + record.Bar_Code__c + "</th>";
|
doc += "<th>" + record.DiffReason + "</th>";
|
doc += "</tr>";
|
});
|
doc += "</table>";
|
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));
|
});
|
}
|
}
|