import { LightningElement, wire, api, track } from 'lwc'; import { NavigationMixin } from 'lightning/navigation'; import init from '@salesforce/apex/LexSaleAndDeliveryController.init'; //cleanUp import cleanUp from '@salesforce/apex/LexSaleAndDeliveryController.cleanUp'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import searchOrderInstatus from '@salesforce/apex/LexSaleAndDeliveryController.searchOrderInstatus'; import searchConsumableorderdetails from '@salesforce/apex/LexSaleAndDeliveryController.searchConsumableorderdetails'; import searchConsumableorFinish from '@salesforce/apex/LexSaleAndDeliveryController.searchConsumableorFinish'; //table css import { loadStyle } from 'lightning/platformResourceLoader'; import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable'; const columns = [ { label: '出库日', fieldName: 'Outbound_Date__c', type: 'date', hideDefaultActions: true, sortable: true, initialWidth: 180, wrapText: true }, { label: '出库单号', fieldName: 'url', type: 'url', typeAttributes: { label: { fieldName: 'Name' }, target: '_blank' }, hideDefaultActions: true, sortable: true, wrapText: true }, { label: '客户名', fieldName: 'ShipmentAccount__c', hideDefaultActions: true, wrapText: true, sortable: true }, { label: '科室', fieldName: 'Order_ForCustomerText__c', hideDefaultActions: true, initialWidth: 100, wrapText: true }, { label: '出库单状态', fieldName: 'SummonsStatus_c__c', hideDefaultActions: true, initialWidth: 100, sortable: true, wrapText: true }, { label: '开票状态', fieldName: 'Billed_Status__c', hideDefaultActions: true, initialWidth: 100, sortable: true, wrapText: true }, { label: '未发票金额(元)', fieldName: 'InvoiceNotPro_money__c', hideDefaultActions: true, initialWidth: 125, type: 'number', typeAttributes: { minimumFractionDigits: 2 }, wrapText: true }, { label: '创建日期', fieldName: 'CreatedDate', hideDefaultActions: true, sortable: true, wrapText: true, initialWidth: 180, type: 'date', typeAttributes: { timeZone: 'Asia/Shanghai', day: 'numeric', month: 'numeric', year: 'numeric', hour: '2-digit', minute: '2-digit' } } ]; export default class LexSaleAndDelivery extends NavigationMixin( LightningElement ) { columns = columns; @track isShowSpinner = true; @track message = ''; @track deliveryFromDate = ''; @track deliveryToDate = ''; @track deliveryOrderNo = ''; @track contactName = ''; @track data = []; @track userinfoId = ''; @track accountid = ''; @track agencyProType = ''; @track userWorkLocation = ''; @track showTable = false; @track hidecheckboxcolumn = true; //排序 defaultSortDirection = 'asc'; sortDirection = 'asc'; sortedBy; stylesLoaded = false; 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() { init() .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log('r = ' + JSON.stringify(r)); if (r.status == 'Success') { this.userinfoId = r.entity.userinfoId; this.accountid = r.entity.accountid; this.agencyProType = r.entity.agencyProType; this.userWorkLocation = r.entity.userWorkLocation; this.data = r.entity.raesList; for (var i in this.data) { this.data[i]['url'] = '/s/lexsummonscreat?ESetid=' + this.data[i].Id; } console.log('this.data = ' + JSON.stringify(this.data)); this.isShowSpinner = false; this.showTable = true; } else { console.log('r = ' + JSON.stringify(r)); this.showMyToast('初始化失败', r.msg, 'Error'); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showMyToast('错误', '初始化失败', 'Error'); }); } //新建出库单 neworderhead() { this[NavigationMixin.Navigate]({ type: 'standard__webPage', attributes: { url: '/lexsummonscreat' } }); } //已出库未开票的出库单 searchOrderInstatusJs() { this.isShowSpinner = true; this.showTable = false; console.log('searchOrderInstatusJs'); searchOrderInstatus({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log('r = ' + JSON.stringify(r)); if (r.status == 'Success') { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]['url'] = '/s/lexsummonscreat?ESetid=' + this.data[i].Id; } this.message = r.msg; if (this.message == '没有搜索到相关出库单') { this.showMyToast('搜索失败', this.message, 'Error'); } else { this.showMyToast('搜索成功', this.message, 'Success'); } this.isShowSpinner = false; //this.isCssLoaded = true this.showTable = true; } else { this.showMyToast('错误', r.msg, 'Error'); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); }); } //还没出库的出库单 searchConsumableorderdetailsJs() { this.isShowSpinner = true; this.showTable = false; console.log('searchConsumableorderdetailsJs'); console.log('this.deliveryFromDate = ' + this.deliveryFromDate); console.log('this.deliveryToDate = ' + this.deliveryToDate); searchConsumableorderdetails({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log('r = ' + JSON.stringify(r)); if (r.status == 'Success') { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]['url'] = '/s/lexsummonscreat?ESetid=' + this.data[i].Id; } this.message = r.msg; if (this.message == '没有搜索到相关出库单') { this.showMyToast('搜索失败', this.message, 'Error'); } else { this.showMyToast('搜索成功', this.message, 'Success'); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast('搜索失败', r.msg, 'Error'); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showMyToast( '搜索失败', '搜索还没出库的出库单出错', 'Error' ); }); } //已出库已开票的出库单 searchConsumableorFinishJs() { this.isShowSpinner = true; this.showTable = false; console.log('searchConsumableorFinishJs'); searchConsumableorFinish({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log('r = ' + JSON.stringify(r)); if (r.status == 'Success') { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]['url'] = '/s/lexsummonscreat?ESetid=' + this.data[i].Id; } this.message = r.msg; if (this.message == '没有搜索到相关出库单') { this.showMyToast('搜索失败', this.message, 'Error'); } else { this.showMyToast('搜索成功', this.message, 'Success'); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast('搜索失败', r.msg, 'Error'); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showMyToast( '搜索失败', '搜索已出库已开票的出库单出错', 'Error' ); }); } //清空 clearJs() { this.deliveryFromDate = ''; this.deliveryToDate = ''; this.deliveryOrderNo = ''; this.contactName = ''; this.isShowSpinner = true; this.showTable = false; cleanUp({ accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log('r = ' + JSON.stringify(r)); if (r.status == 'Success') { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]['url'] = '/s/lexsummonscreat?ESetid=' + this.data[i].Id; } this.message = r.msg; if (this.message == '没有搜索到相关出库单') { this.showMyToast('搜索失败', this.message, 'Error'); } else { this.showMyToast('搜索成功', this.message, 'Success'); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast('搜索失败', r.msg, 'Error'); } }) .catch((error) => { console.log('error = ' + JSON.stringify(error)); this.showMyToast('搜索失败', '搜索失败', 'Error'); }); } //Capture the event fired from the paginator component 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; } } //排序 onHandleSort(event) { const { fieldName: sortedBy, sortDirection } = event.detail; const cloneData = [...this.data]; cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1)); this.data = cloneData; this.sortDirection = sortDirection; this.sortedBy = sortedBy; } sortBy(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)); }; } dataChange(event) { let fieldName = event.target.getAttribute('data-field'); let value = event.detail.value; switch (fieldName) { case 'deliveryFromDate': this.deliveryFromDate = value; break; case 'deliveryToDate': this.deliveryToDate = value; break; case 'deliveryOrderNo': this.deliveryOrderNo = value; break; case 'contactName': this.contactName = value; break; default: console.log('no data'); } } editProductLimit() { this[NavigationMixin.Navigate]({ type: 'standard__webPage', attributes: { url: '/lexoutboundorderimport' } }); } showMyToast(title, message, variant) { this.isShowSpinner = false; console.log('show custom message'); var iconName = ''; var content = ''; if (variant.toLowerCase() == 'success') { iconName = 'utility:check'; } else { iconName = 'utility:error'; } if (message != '') { content = '

' + title + '

' + message + '
'; } else { content = '

' + title + '

'; } this.template .querySelector('c-common-toast') .showToast(variant, content, iconName, 10000); } @track isModalOpen = false; openModal() { this.isModalOpen = true; } }