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', initialWidth: 130, hideDefaultActions: true, sortable: true }, { label: '出库单号', fieldName: 'url', type: 'url', initialWidth: 175, typeAttributes: { label: { fieldName: 'Name' }, target: '_blank' }, hideDefaultActions: true, initialWidth: 225, sortable: true }, { label: '客户名', fieldName: 'ShipmentAccount__c', hideDefaultActions: true, wrapText: true, sortable: true }, { label: '科室', fieldName: 'Order_ForCustomerText__c', hideDefaultActions: true, initialWidth: 120 }, { label: '出库单状态', fieldName: 'SummonsStatus_c__c', hideDefaultActions: true, sortable: true, initialWidth: 100 }, { label: '开票状态', fieldName: 'Billed_Status__c', hideDefaultActions: true, sortable: true, initialWidth: 100 }, { label: '未发票金额(元)', fieldName: 'InvoiceNotPro_money__c', hideDefaultActions: true, type: "number", typeAttributes: { minimumFractionDigits: 2, }, initialWidth: 150 }, { label: '创建日期', fieldName: 'CreatedDate', hideDefaultActions: true, sortable: true, type: "date", typeAttributes: { timeZone: "Asia/Shanghai", day: "numeric", month: "numeric", year: "numeric", hour: "2-digit", minute: "2-digit" }, initialWidth: 200 } ]; 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 = '