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';
|
//table css
|
import { loadStyle } from 'lightning/platformResourceLoader';
|
import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable';
|
|
//过期库存一览
|
const columns = [
|
{
|
label: '是否销存',
|
fieldName: 'iscount',
|
type: 'checkbox',
|
hideDefaultActions: true,
|
initialWidth: 80
|
},
|
{
|
label: '消耗品名称',
|
fieldName: 'prodname',
|
type: 'prodname',
|
wrapText: true,
|
initialWidth: 350,
|
|
hideDefaultActions: true
|
},
|
{
|
label: '单位',
|
fieldName: 'boxPiece',
|
hideDefaultActions: true
|
// initialWidth: 250,
|
},
|
{
|
label: '过期数量',
|
fieldName: 'overlimitCount',
|
hideDefaultActions: true,
|
cellAttributes: { alignment: 'right' }
|
|
// initialWidth: 250,
|
},
|
{
|
label: '销存数量',
|
fieldName: 'pandian',
|
hideDefaultActions: true,
|
cellAttributes: { alignment: 'right' }
|
// initialWidth: 250,
|
// cellAttributes: { alignment: 'center' }
|
}
|
];
|
//销存明细
|
const column = [
|
{
|
label: '消耗品名称',
|
fieldName: 'Name__c',
|
type: 'Name',
|
wrapText: true,
|
// initialWidth : 300,
|
hideDefaultActions: true,
|
cellAttributes: { alignment: 'left' }
|
},
|
{
|
label: '单位',
|
fieldName: 'Box_Piece__c',
|
initialWidth: 80,
|
hideDefaultActions: true
|
},
|
{
|
label: 'BarCode',
|
fieldName: 'Bar_Code__c',
|
wrapText: true,
|
hideDefaultActions: true
|
// initialWidth: 500,
|
},
|
{
|
label: '使用期限',
|
fieldName: 'Sterilization_limit__c',
|
hideDefaultActions: true
|
// initialWidth : 250
|
},
|
{
|
label: '销存原因',
|
fieldName: 'diffReason',
|
hideDefaultActions: true,
|
wrapText: true,
|
initialWidth: 160
|
}
|
];
|
|
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 = [];
|
|
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() {
|
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;
|
for (var i in this.data) {
|
this.data[i]['key'] =
|
this.data[i]['prodid'] + this.data[i]['boxPiece'];
|
}
|
this.showTable = true;
|
// this.casesSpinner = false;
|
this.showSpinner = false;
|
} else {
|
this.showMyToast('初始化失败', result.msg, 'error');
|
this.showSpinner = false;
|
}
|
})
|
.catch((error) => {
|
console.log('error = ' + JSON.stringify(error));
|
this.showSpinner = false;
|
});
|
}
|
//barcode录入
|
barcodeEntrys() {
|
this.showSpinner = true;
|
this.showTable = false;
|
console.log('code' + this.barcode);
|
console.log(' this.accountName' + this.accountName);
|
console.log(' this.barcode' + this.barcode);
|
const selectedRows = this.template
|
.querySelector('c-lex-custom-lightning-datatable')
|
.getSelectedRows();
|
console.log('selectedRows========> ' + JSON.stringify(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 + this.data[i]['boxPiece'] ==
|
selectedRows[j].prodid + selectedRows[j]['boxPiece']
|
) {
|
this.data[i]['check'] = true;
|
}
|
}
|
}
|
barcodeEntry({
|
accountNameLWC: this.accountName,
|
agencyProTypeLWC: this.agencyProType,
|
userWorkLocationLWC: this.userWorkLocation,
|
barcodeLWC: this.barcode,
|
codPageRecordsLWC: JSON.stringify(this.data)
|
})
|
.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));
|
console.log(
|
'overdueList==>' + JSON.stringify(this.overdueList)
|
);
|
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) {
|
this.data[i]['key'] =
|
this.data[i]['prodid'] + this.data[i]['boxPiece'];
|
}
|
for (var i in this.data) {
|
if (this.data[i]['check']) {
|
this.selectedRows.push(
|
this.data[i].prodid + this.data[i]['boxPiece']
|
);
|
console.log('selectedRows:' + this.selectedRows);
|
}
|
}
|
this.showSpinner = false;
|
this.showTable = true;
|
} else {
|
if (result.status == 'Success1') {
|
this.overduePageRecords = JSON.parse(
|
result.entity.overduePageRecords
|
);
|
this.overdueList = result.entity.overdueList;
|
this.iSinventory = result.entity.iSinventory;
|
console.log('result录入' + JSON.stringify(result));
|
console.log(
|
'overdueList==>' + JSON.stringify(this.overdueList)
|
);
|
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) {
|
this.data[i]['key'] =
|
this.data[i]['prodid'] +
|
this.data[i]['boxPiece'];
|
}
|
for (var i in this.data) {
|
if (this.data[i]['check']) {
|
this.selectedRows.push(
|
this.data[i].prodid +
|
this.data[i]['boxPiece']
|
);
|
console.log(
|
'selectedRows:' + this.selectedRows
|
);
|
}
|
}
|
this.showSpinner = false;
|
// this.showTables = true;
|
this.showTable = true;
|
} else {
|
console.log('Error:' + result.msg);
|
this.showMyToast(result.msg, '', 'error');
|
this.showSpinner = false;
|
this.showTable = true;
|
}
|
|
// this.showMyToast('获取失败', result.msg, 'error');
|
// this.showSpinner = false;
|
}
|
})
|
.catch((error) => {
|
this.showSpinner = false;
|
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) {
|
let selectedRowsEvent = event.detail.selectedRows;
|
this.selectedRows = [];
|
for (var i in selectedRowsEvent) {
|
this.selectedRows.push(
|
selectedRowsEvent[i].prodid + this.data[i]['boxPiece']
|
);
|
}
|
console.log('this.selectedRows==>' + this.selectedRows);
|
}
|
//保存
|
saveConfirm() {
|
console.log('进入销存确认');
|
this.showSpinner = true;
|
//查询有哪些选择了的然后check
|
const selectedRows = this.template
|
.querySelector('c-lex-custom-lightning-datatable')
|
.getSelectedRows();
|
console.log('selectedRows========> ' + JSON.stringify(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 + this.data[i]['boxPiece'] ==
|
selectedRows[j].prodid + selectedRows[j]['boxPiece']
|
) {
|
this.data[i]['check'] = true;
|
}
|
}
|
}
|
save({
|
iSinventory: this.iSinventory,
|
saveCodPageRecords: JSON.stringify(this.data),
|
// saveoverdueList:JSON.stringify(this.overdueList)
|
saveoverdueList: 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'
|
}
|
});
|
this.showSpinner = false;
|
} else {
|
this.showMyToast('销存失败', result.msg, 'error');
|
this.showSpinner = false;
|
}
|
})
|
.catch((error) => {
|
console.log('error = ' + JSON.stringify(error));
|
this.showSpinner = false;
|
});
|
}
|
|
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);
|
}
|
}
|