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 = 200;
|
error;
|
records;
|
currentPageToken = 0;
|
nextPageToken = this.pageSize;
|
@track totalRecords = 0;
|
@track loader = false;
|
@track pageNumber = 1;
|
@track paginationVisibility = false;
|
@track totalPages = 1;
|
pageSizeOptions = [100, 200, 300];
|
@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);
|
}
|
}
|