import { LightningElement, wire, api, track } from "lwc";
|
import oninit from "@salesforce/apex/LexInventoryViewController.init";
|
import { ShowToastEvent } from "lightning/platformShowToastEvent";
|
import searchOrder from "@salesforce/apex/LexInventoryViewController.searchConsumableorderdetails";
|
import categoryAllload from "@salesforce/apex/LexInventoryViewController.categoryAllload";
|
import { NavigationMixin } from "lightning/navigation";
|
|
//table css
|
import { loadStyle } from "lightning/platformResourceLoader";
|
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
|
|
export default class LexinventoryViewLWC extends NavigationMixin(
|
LightningElement
|
) {
|
//分页start
|
@track sortBy = "";
|
//@track sortDirection = "asc";
|
@track pageSize = 10;
|
error;
|
records;
|
currentPageToken = 0;
|
nextPageToken = this.pageSize;
|
@track totalRecords = 0;
|
@track loader = false;
|
@track pageNumber = 1;
|
@track paginationVisibility = false;
|
@track totalPages = 1;
|
pageSizeOptions = [10, 25, 50, 100];
|
@track recordStart = 0;
|
@track recordEnd = 0;
|
//end
|
|
@track data = [];
|
@track message = "";
|
@track Name;
|
@track CategoryThree;
|
|
@track category3Options = [];
|
@track CategoryFour;
|
@track category4Options = [];
|
@track CategoryFive;
|
@track category5Options = [];
|
@track orderDetZaikuList = [];
|
@track accountName;
|
@track agencyProType;
|
@track userWorkLocation;
|
@track value = "";
|
@track showTable = false;
|
@track hidecheckboxcolumn = true;
|
@track check = false;
|
@track productkucun;
|
//加载
|
@track showSpinner = false;
|
@track showSpinners = false;
|
//医院特价
|
@track hasHos = false;
|
//表头样式
|
stylesLoaded = false;
|
|
@track columns = [
|
{
|
label: "消耗品名称",
|
fieldName: "Name__c",
|
type: "Name",
|
sortable: true,
|
hideDefaultActions: true,
|
// initialWidth: 200,
|
wrapText: true,
|
cellAttributes: { alignment: "left" }
|
},
|
{
|
label: "第三分类",
|
fieldName: "Category3__c",
|
initialWidth: 102,
|
cellAttributes: { alignment: "left" },
|
hideDefaultActions: true,
|
sortable: true,
|
wrapText: true
|
},
|
{
|
label: "第四分类",
|
fieldName: "Category4__c",
|
cellAttributes: { alignment: "left" },
|
initialWidth: 102,
|
hideDefaultActions: true,
|
wrapText: true,
|
sortable: true
|
},
|
{
|
label: "第五分类",
|
fieldName: "Category5__c",
|
cellAttributes: { alignment: "left" },
|
initialWidth: 102,
|
hideDefaultActions: true,
|
wrapText: true,
|
sortable: true
|
},
|
|
{
|
label: "规格",
|
fieldName: "packing_list",
|
cellAttributes: { alignment: "right" },
|
initialWidth: 50,
|
wrapText: true,
|
hideDefaultActions: true
|
},
|
{
|
label: "单位",
|
fieldName: "BoxPiece",
|
cellAttributes: { alignment: "left" },
|
initialWidth: 50,
|
wrapText: true,
|
hideDefaultActions: true
|
},
|
{
|
label: "注册证编码号",
|
fieldName: "approbation_No",
|
cellAttributes: { alignment: "left" },
|
wrapText: true,
|
initialWidth: 104,
|
hideDefaultActions: true
|
},
|
{
|
label: "注册有效期",
|
fieldName: "expiration_Date",
|
cellAttributes: { alignment: "left" },
|
wrapText: true,
|
hideDefaultActions: true,
|
initialWidth: 95
|
},
|
{
|
label: "CFDA状态",
|
fieldName: "SFDA_Status__c",
|
cellAttributes: { alignment: "left" },
|
initialWidth: 84,
|
wrapText: true,
|
hideDefaultActions: true
|
},
|
{
|
label: "使用期限",
|
fieldName: "guaranteeperiod",
|
cellAttributes: { alignment: "left" },
|
hideDefaultActions: true,
|
initialWidth: 95
|
},
|
{
|
label: "有效期内库存",
|
type: "customInventoryColor",
|
fieldName: "limitCount",
|
sortable: true,
|
cellAttributes: { alignment: "right" },
|
typeAttributes: {
|
value: { fieldName: "limitCount" },
|
upperlimit: { fieldName: "upperlimit" },
|
lowerlimit: { fieldName: "lowerlimit" },
|
boxPrice: { fieldName: "BoxPiece" }
|
},
|
hideDefaultActions: true,
|
initialWidth: 110
|
},
|
|
{
|
label: "过期库存",
|
fieldName: "overlimitCount",
|
hideDefaultActions: true,
|
cellAttributes: { alignment: "right" },
|
initialWidth: 78
|
}
|
];
|
defaultSortDirection = "asc";
|
sortDirection = "asc";
|
sortedBy;
|
|
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() {
|
this.loader = true;
|
this.init();
|
}
|
|
init() {
|
this.showSpinner = true;
|
oninit({
|
pageSizeLWC: this.pageSize,
|
pageTokenLWC: this.currentPageToken,
|
sortFieldLWC: this.sortBy,
|
sortOrderLWC: this.sortDirection
|
})
|
.then((result) => {
|
result = JSON.parse(JSON.stringify(result));
|
console.log(
|
"result.pageRecords = " + JSON.stringify(result.entity.pageRecords)
|
);
|
console.log(
|
"result.consumableorderdetailsRecords = " +
|
JSON.stringify(result.entity.consumableorderdetailsRecords)
|
);
|
console.log("result.status = " + result.status);
|
console.log("result = " + JSON.stringify(result));
|
console.log("result 1= " + JSON.stringify(result.entity));
|
console.log("result 2= " + JSON.stringify(result.entity.pageRecords));
|
if (result.status == "Success") {
|
console.log(
|
"result.entity.paginatedAccounts = " +
|
JSON.stringify(result.entity.paginatedAccounts)
|
);
|
this.nextPageToken = result.entity.paginatedAccounts.nextPageToken;
|
this.totalRecords = result.entity.paginatedAccounts.totalRecords;
|
this.recordStart = result.entity.paginatedAccounts.recordStart;
|
this.recordEnd = result.entity.paginatedAccounts.recordEnd;
|
this.totalPages = Math.ceil(
|
result.entity.paginatedAccounts.totalRecords / this.pageSize
|
);
|
console.log("this.totalPages = " + this.totalPages);
|
this.paginationVisibility = this.totalPages > 1 ? true : false;
|
|
this.loader = false;
|
this.data = result.entity.pageRecords;
|
this.productkucun = result.entity.productkucun;
|
|
for (var i in this.data) {
|
this.data[i]["Name__c"] = this.data[i].Prod.Name__c;
|
this.data[i]["Category3__c"] = this.data[i].Prod.Category3__c;
|
this.data[i]["Category4__c"] = this.data[i].Prod.Category4__c;
|
this.data[i]["Category5__c"] = this.data[i].Prod.Category5__c;
|
this.data[i]["SFDA_Status__c"] = this.data[i].Prod.SFDA_Status__c;
|
}
|
this.showTable = true;
|
this.orderDetZaikuList = result.entity.orderDetZaikuList;
|
this.accountName = result.entity.accountName;
|
this.agencyProType = result.entity.agencyProType;
|
this.userWorkLocation = result.entity.userWorkLocation;
|
let option1ValueTemp = [];
|
for (var key in result.entity.categoryOptionMap) {
|
let object = {};
|
object["label"] = result.entity.categoryOptionMap[key];
|
object["value"] = key;
|
option1ValueTemp.push(object);
|
}
|
this.category3Options = option1ValueTemp;
|
console.log(
|
" this.optionscatone===>" + JSON.stringify(this.optionscatone)
|
);
|
let option2ValueTemp = [];
|
for (var key in result.entity.category4OptionMap) {
|
let object = {};
|
object["label"] = result.entity.category4OptionMap[key];
|
object["value"] = key;
|
option2ValueTemp.push(object);
|
}
|
this.category4Options = option2ValueTemp;
|
let option3ValueTemp = [];
|
for (var key in result.entity.category5OptionMap) {
|
let object = {};
|
object["label"] = result.entity.category5OptionMap[key];
|
object["value"] = key;
|
option3ValueTemp.push(object);
|
}
|
this.category5Options = option3ValueTemp;
|
this.hasHos = result.entity.hasHos;
|
console.log("this.hasHos" + this.hasHos);
|
//颜色标记
|
|
//hasHos = true 医院特价
|
if (this.hasHos) {
|
let object1 = {
|
label: "医院特价",
|
fieldName: "hospitalSpecialOffer__c",
|
hideDefaultActions: true,
|
type: "boolean",
|
cellAttributes: { alignment: "left" },
|
initialWidth: 80
|
};
|
this.columns.push(object1);
|
console.log(" this.columns" + this.columns);
|
for (var j in this.data) {
|
this.data[j]["Name__c"] = this.data[j].Prod.Name__c;
|
this.data[j]["Category3__c"] = this.data[j].Prod.Category3__c;
|
this.data[j]["Category4__c"] = this.data[j].Prod.Category4__c;
|
this.data[j]["Category5__c"] = this.data[j].Prod.Category5__c;
|
this.data[j]["SFDA_Status__c"] = this.data[j].Prod.SFDA_Status__c;
|
this.data[j]["hospitalSpecialOffer__c"] =
|
this.data[j].hospitalSpecialOffer;
|
console.log(
|
"this.data[j].hospitalSpecialOffer__c" +
|
this.data[j].hospitalSpecialOffer
|
);
|
}
|
}
|
this.showSpinner = false;
|
} else {
|
// this.showToast("Error",'Error', result.msg);
|
this.showMyToast("初始化失败", result.msg, "error");
|
}
|
})
|
.catch((error) => {
|
this.loader = false;
|
this.showSpinner = false;
|
console.log("error = " + JSON.stringify(error));
|
});
|
}
|
|
handleChange(event) {
|
let fieldName = event.target.getAttribute("data-field");
|
let value = event.detail.value;
|
console.log("======>fieldName" + fieldName);
|
console.log("======>value" + value);
|
switch (fieldName) {
|
case "Name":
|
this.Name = value;
|
break;
|
case "CategoryThree":
|
this.CategoryThree = value;
|
break;
|
case "CategoryFour":
|
this.CategoryFour = value;
|
break;
|
case "CategoryFive":
|
this.CategoryFive = value;
|
break;
|
default:
|
console.log("no data");
|
}
|
}
|
dataChange(event) {
|
let fieldName = event.target.getAttribute("data-field");
|
let value = event.detail.value;
|
console.log("fieldName = " + fieldName + " value = " + value);
|
switch (fieldName) {
|
case "Name":
|
this.Name = value;
|
break;
|
case "CategoryThree":
|
this.CategoryThree = value;
|
//调用后台显示第四五分类
|
this.showAllCate();
|
if (this.CategoryThree == "") {
|
this.CategoryFour = "";
|
this.CategoryFive = "";
|
}
|
break;
|
case "CategoryFour":
|
this.CategoryFour = value;
|
//调用后台显示第五分类
|
this.showCate();
|
if (this.CategoryFour == "") {
|
this.CategoryFive = "";
|
}
|
break;
|
case "CategoryFive":
|
this.CategoryFive = value;
|
break;
|
}
|
}
|
|
showAllCate() {
|
categoryAllload({
|
category3LWC: this.CategoryThree,
|
agencyProTypeLWC: this.agencyProType
|
})
|
.then((result) => {
|
result = JSON.parse(JSON.stringify(result));
|
console.log("result = " + JSON.stringify(result));
|
if (result.status == "Success") {
|
this.category4Options = [];
|
this.category5Options = [];
|
//第4分类
|
for (var key in result.entity.category4OptionMap) {
|
let object = {};
|
object["label"] = result.entity.category4OptionMap[key];
|
object["value"] = key;
|
this.category4Options.push(object);
|
}
|
console.log(
|
"this.category4Options = " + JSON.stringify(this.category4Options)
|
);
|
//第5分类
|
for (var key in result.entity.category5OptionMap) {
|
let object = {};
|
object["label"] = result.entity.category5OptionMap[key];
|
object["value"] = key;
|
this.category5Options.push(object);
|
}
|
} else {
|
console.log("result = " + JSON.stringify(result));
|
this.showMyToast(result.msg, "", "error");
|
}
|
})
|
.catch((error) => {
|
console.log("error" + JSON.stringify(error));
|
});
|
}
|
|
searchOrderDetail() {
|
this.showTable = false;
|
this.showSpinner = true;
|
searchOrder({
|
category1: this.Name,
|
Category3: this.CategoryThree,
|
Category4: this.CategoryFour,
|
Category5: this.CategoryFive,
|
orderDetZaikuListLWC: JSON.stringify(this.orderDetZaikuList),
|
accountName: this.accountName,
|
agencyProType: this.agencyProType,
|
userWorkLocation: this.userWorkLocation,
|
pageSizeLWC: this.pageSize,
|
pageTokenLWC: this.currentPageToken,
|
productkucunLWC: this.productkucun
|
|
// sortFieldLWC: this.sortBy,
|
// sortOrderLWC: this.sortDirection
|
})
|
.then((result) => {
|
result = JSON.parse(JSON.stringify(result));
|
if (result.status == "Success") {
|
this.nextPageToken = result.entity.paginatedAccounts.nextPageToken;
|
this.totalRecords = result.entity.paginatedAccounts.totalRecords;
|
this.recordStart = result.entity.paginatedAccounts.recordStart;
|
this.recordEnd = result.entity.paginatedAccounts.recordEnd;
|
this.totalPages = Math.ceil(
|
result.entity.paginatedAccounts.totalRecords / this.pageSize
|
);
|
console.log(
|
"result.entity.paginatedAccounts = " +
|
JSON.stringify(result.entity.paginatedAccounts)
|
);
|
console.log("this.totalPages = " + this.totalPages);
|
this.paginationVisibility = this.totalPages > 1 ? true : false;
|
console.log("this.sortDirection = " + this.sortDirection);
|
// this.showToast("Success",'搜索成功', result.msg);
|
// this.showMyToast('搜索成功',result.msg,'success');
|
this.data = result.entity.pageRecords;
|
console.log("搜索Data==>" + JSON.stringify(this.data));
|
for (var i in this.data) {
|
this.data[i]["Name__c"] = this.data[i].Prod.Name__c;
|
this.data[i]["Category3__c"] = this.data[i].Prod.Category3__c;
|
this.data[i]["Category4__c"] = this.data[i].Prod.Category4__c;
|
this.data[i]["Category5__c"] = this.data[i].Prod.Category5__c;
|
this.data[i]["SFDA_Status__c"] = this.data[i].Prod.SFDA_Status__c;
|
this.data[i]["hospitalSpecialOffer__c"] =
|
this.data[i].hospitalSpecialOffer;
|
this.data[i]["guaranteeperiod"] = this.data[i].guaranteeperiod;
|
}
|
this.data = [...this.data];
|
console.log("this.data = " + JSON.stringify(this.data));
|
this.showTable = true;
|
this.showSpinner = false;
|
} else {
|
this.nextPageToken = this.pageSize;
|
this.totalRecords = 0;
|
this.recordStart = 0;
|
this.recordEnd = 0;
|
this.totalPages = 0;
|
|
// this.showToast("Error",'Error', result.msg);
|
// this.showMyToast('搜索失败',result.msg,'error');
|
this.showSpinner = false;
|
}
|
})
|
.catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
this.showSpinner = false;
|
});
|
}
|
inventoryCount() {
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: "/lexinventory"
|
}
|
});
|
}
|
|
handleExpired() {
|
console.log("过期库存呢销存");
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: "/lexoverduestock"
|
}
|
});
|
}
|
removeBox() {
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: "/lexremovebox"
|
}
|
});
|
}
|
cancelremoveBox() {
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: "/lexcancelremovebox"
|
}
|
});
|
}
|
|
clearAll() {
|
this.showSpinner = true;
|
this.showTable = false;
|
this.Name = "";
|
this.CategoryThree = "";
|
this.CategoryFour = "";
|
this.CategoryFive = "";
|
this.template.querySelectorAll("lightning-combobox").forEach((each) => {
|
each.value = null;
|
});
|
console.log(" this.CategoryThree" + this.CategoryThree);
|
console.log("数据列表" + this.data);
|
searchOrder({
|
category1: this.Name,
|
Category3: this.CategoryThree,
|
Category4: this.CategoryFour,
|
Category5: this.CategoryFive,
|
orderDetZaikuListLWC: JSON.stringify(this.orderDetZaikuList),
|
accountName: this.accountName,
|
agencyProType: this.agencyProType,
|
userWorkLocation: this.userWorkLocation,
|
pageSizeLWC: this.pageSize,
|
pageTokenLWC: this.currentPageToken,
|
productkucunLWC: this.productkucun
|
})
|
.then((result) => {
|
console.log("result搜索 = " + JSON.stringify(result));
|
result = JSON.parse(JSON.stringify(result));
|
if (result.status == "Success") {
|
this.nextPageToken = result.entity.paginatedAccounts.nextPageToken;
|
this.totalRecords = result.entity.paginatedAccounts.totalRecords;
|
this.recordStart = result.entity.paginatedAccounts.recordStart;
|
this.recordEnd = result.entity.paginatedAccounts.recordEnd;
|
this.totalPages = Math.ceil(
|
result.entity.paginatedAccounts.totalRecords / this.pageSize
|
);
|
console.log("this.totalPages = " + this.totalPages);
|
this.paginationVisibility = this.totalPages > 1 ? true : false;
|
console.log("this.sortDirection = " + this.sortDirection);
|
this.data = result.entity.pageRecords;
|
|
for (var i in this.data) {
|
this.data[i]["Name__c"] = this.data[i].Prod.Name__c;
|
this.data[i]["Category3__c"] = this.data[i].Prod.Category3__c;
|
this.data[i]["Category4__c"] = this.data[i].Prod.Category4__c;
|
this.data[i]["Category5__c"] = this.data[i].Prod.Category5__c;
|
this.data[i]["SFDA_Status__c"] = this.data[i].Prod.SFDA_Status__c;
|
this.data[i]["guaranteeperiod"] = this.data[i].guaranteeperiod;
|
}
|
this.showSpinner = false;
|
this.showTable = true;
|
// this.showMyToast('搜索成功',result.msg,'success');
|
// this.showToast("Success",'搜索成功', result.msg);
|
} else {
|
// this.showToast("Error", 'Error',result.msg);
|
// this.showMyToast('搜索失败',result.msg,'error');
|
this.showSpinner = false;
|
}
|
})
|
.catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
this.showSpinner = false;
|
});
|
}
|
|
sortByMethod(field, reverse, primer) {
|
const key = primer
|
? function (x) {
|
return primer(x[field]);
|
}
|
: function (x) {
|
return x[field];
|
};
|
|
return function (a, b) {
|
a = key(a);
|
b = key(b);
|
return reverse * ((a > b) - (b > a));
|
};
|
}
|
|
onHandleSort(event) {
|
console.log("Sort");
|
this.sortBy = event.detail.fieldName;
|
this.sortDirection = event.detail.sortDirection;
|
this.currentPageToken = 0;
|
console.log("this.sortBy = " + this.sortBy);
|
console.log("this.sortDirection = " + this.sortDirection);
|
// if('limitCount' != this.sortBy)
|
// this.searchOrderDetail();
|
// else{
|
// const { fieldName: sortedBy, sortDirection } = event.detail;
|
// const cloneData = [...this.data];
|
// cloneData.sort(this.sortByMethod(sortedBy, sortDirection === 'asc' ? 1 : -1));
|
// this.data = cloneData;
|
// this.sortDirection = sortDirection;
|
// this.sortedBy = sortedBy;
|
// }
|
const { fieldName: sortedBy, sortDirection } = event.detail;
|
const cloneData = [...this.data];
|
cloneData.sort(
|
this.sortByMethod(sortedBy, sortDirection === "asc" ? 1 : -1)
|
);
|
this.data = cloneData;
|
this.sortDirection = sortDirection;
|
this.sortedBy = sortedBy;
|
}
|
handlePaginatorChange(event) {
|
this.recordsToDisplay = event.detail.recordsToDisplay;
|
this.preSelected = event.detail.preSelected;
|
if (this.recordsToDisplay && this.recordsToDisplay > 0) {
|
this.rowNumberOffset = this.recordsToDisplay[0].rowNumber - 1;
|
} else {
|
this.rowNumberOffset = 0;
|
}
|
}
|
|
handlePrevious() {
|
this.currentPageToken =
|
Number(this.currentPageToken) - Number(this.pageSize);
|
this.searchOrderDetail();
|
}
|
|
handleNext() {
|
this.currentPageToken =
|
Number(this.currentPageToken) + Number(this.pageSize);
|
this.searchOrderDetail();
|
}
|
handleFirst() {
|
this.currentPageToken = 0;
|
this.searchOrderDetail();
|
}
|
|
handleLast() {
|
this.currentPageToken =
|
this.totalPages > 1 ? (this.totalPages - 1) * this.pageSize : 0;
|
this.searchOrderDetail();
|
}
|
|
handlePageschange(event) {
|
console.log(event.detail);
|
this.pageSize = event.detail;
|
this.currentPageToken = 0;
|
this.searchOrderDetail();
|
}
|
get previousButtonDisabled() {
|
return this.currentPageToken === 0;
|
}
|
|
get nextButtonDisabled() {
|
return this.nextPageToken === undefined;
|
}
|
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 =
|
"<h2><strong>" + title + "<strong/></h2><h5>" + message + "</h5>";
|
} else {
|
content = "<h2><strong>" + title + "<strong/></h2>";
|
}
|
this.template
|
.querySelector("c-common-toast")
|
.showToast(variant, content, iconName, 10000);
|
}
|
}
|