| | |
| | | import { LightningElement, wire, api, track } from 'lwc'; |
| | | import { NavigationMixin } from 'lightning/navigation'; |
| | | import init from '@salesforce/apex/LexSaleAndDeliveryController.init'; |
| | | 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', |
| | | { |
| | | label: '出库日', |
| | | fieldName: 'Outbound_Date__c', |
| | | type: 'date', |
| | | initialWidth : 100, |
| | | hideDefaultActions: true , |
| | | initialWidth: 130, |
| | | hideDefaultActions: true, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '出库单号', |
| | | fieldName: 'url', |
| | | type : 'url', |
| | | initialWidth : 175, |
| | | { |
| | | label: '出库单号', |
| | | fieldName: 'url', |
| | | type: 'url', |
| | | initialWidth: 175, |
| | | typeAttributes: { |
| | | label: { |
| | | fieldName: 'Name' |
| | |
| | | target: '_blank' |
| | | }, |
| | | hideDefaultActions: true, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '客户名', |
| | | fieldName: 'ShipmentAccount__c', |
| | | hideDefaultActions: true , |
| | | wrapText:true, |
| | | initialWidth: 225, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '科室', |
| | | fieldName: 'Order_ForCustomerText__c', |
| | | hideDefaultActions: true |
| | | { |
| | | label: '客户名', |
| | | fieldName: 'ShipmentAccount__c', |
| | | hideDefaultActions: true, |
| | | wrapText: true, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '出库单状态', |
| | | fieldName: 'SummonsStatus_c__c', |
| | | hideDefaultActions: true , |
| | | sortable: true, |
| | | initialWidth : 100 |
| | | { |
| | | label: '科室', |
| | | fieldName: 'Order_ForCustomerText__c', |
| | | hideDefaultActions: true, |
| | | initialWidth: 120 |
| | | }, |
| | | { |
| | | label: '开票状态', |
| | | fieldName: 'Billed_Status__c', |
| | | { |
| | | label: '出库单状态', |
| | | fieldName: 'SummonsStatus_c__c', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | initialWidth : 100 |
| | | initialWidth: 100 |
| | | }, |
| | | { |
| | | label: '未发票金额(元)', |
| | | fieldName: 'InvoiceNotPro_money__c', |
| | | { |
| | | label: '开票状态', |
| | | fieldName: 'Billed_Status__c', |
| | | hideDefaultActions: true, |
| | | initialWidth : 150 |
| | | sortable: true, |
| | | initialWidth: 100 |
| | | }, |
| | | { |
| | | label: '创建日期', |
| | | { |
| | | label: '未发票金额(元)', |
| | | fieldName: 'InvoiceNotPro_money__c', |
| | | hideDefaultActions: true, |
| | | type: "number", |
| | | typeAttributes: { |
| | | minimumFractionDigits: 2, |
| | | }, |
| | | initialWidth: 150 |
| | | }, |
| | | { |
| | | label: '创建日期', |
| | | fieldName: 'CreatedDate', |
| | | hideDefaultActions: true, |
| | | sortable: true , |
| | | sortable: true, |
| | | type: "date", |
| | | typeAttributes:{ |
| | | typeAttributes: { |
| | | timeZone: "Asia/Shanghai", |
| | | day: "numeric", |
| | | month: "numeric", |
| | | year: "numeric", |
| | | month: "long", |
| | | day: "2-digit", |
| | | hour: "2-digit", |
| | | minute: "2-digit" |
| | | }, |
| | | initialWidth : 200 |
| | | initialWidth: 200 |
| | | } |
| | | ]; |
| | | |
| | | const editColumns = [ |
| | | { |
| | | label: '出库日', |
| | | fieldName: 'Outbound_Date__c', |
| | | type: 'date', |
| | | hideDefaultActions: true , |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '出库单号', |
| | | fieldName: 'url', |
| | | type : 'url', |
| | | typeAttributes: { |
| | | label: { |
| | | fieldName: 'Name' |
| | | }, |
| | | target: '_blank' |
| | | }, |
| | | hideDefaultActions: true, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '客户名', |
| | | fieldName: 'ShipmentAccount__c', |
| | | hideDefaultActions: true , |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: '科室', |
| | | fieldName: 'Order_ForCustomerText__c', |
| | | hideDefaultActions: true |
| | | }, |
| | | { |
| | | 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, |
| | | initialWidth : 150 |
| | | }, |
| | | { |
| | | label: '创建日期', |
| | | fieldName: 'CreatedDate', |
| | | hideDefaultActions: true, |
| | | sortable: true |
| | | }, |
| | | // { |
| | | // label: '单位', |
| | | // hideDefaultActions: true, |
| | | // type:'customUnit', |
| | | // }, |
| | | // { |
| | | // label: '出货数量', |
| | | // hideDefaultActions: true, |
| | | // type:'customShipment', |
| | | |
| | | // }, |
| | | // { |
| | | // label: '出货单价(元)', |
| | | // hideDefaultActions: true, |
| | | // type:'customShipmentUnitPrice', |
| | | |
| | | // } |
| | | ]; |
| | | export default class LexSaleAndDelivery extends NavigationMixin(LightningElement) { |
| | | columns = columns; |
| | |
| | | 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)); |
| | |
| | | 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; |
| | | 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.showToast('Error', r.msg); |
| | | this.showMyToast('初始化失败', r.msg,'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)) |
| | | this.showMyToast('错误', '初始化失败','Error'); |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | //新建出库单 |
| | | neworderhead(){ |
| | | neworderhead() { |
| | | this[NavigationMixin.Navigate]({ |
| | | type: 'standard__webPage', |
| | | attributes: { |
| | |
| | | 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; |
| | | 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.showToast('Error', this.message); |
| | | }else{ |
| | | this.showToast('Success', this.message); |
| | | 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.showToast('Error', r.msg); |
| | | this.showMyToast('错误', r.msg,'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)) |
| | |
| | | } |
| | | |
| | | //还没出库的出库单 |
| | | searchConsumableorderdetailsJs(){ |
| | | 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, |
| | |
| | | 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; |
| | | 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.showToast('Error', this.message); |
| | | }else{ |
| | | this.showToast('Success', this.message); |
| | | if (this.message == '没有搜索到相关出库单') { |
| | | this.showMyToast('搜索失败', this.message,'Error'); |
| | | } else { |
| | | this.showMyToast('搜索成功', this.message,'Success'); |
| | | } |
| | | this.isShowSpinner = false; |
| | | this.showTable = true; |
| | | } else { |
| | | this.showToast('Error', r.msg); |
| | | this.showMyToast('搜索失败', r.msg,'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)) |
| | | this.showMyToast('搜索失败', '搜索还没出库的出库单出错','Error'); |
| | | }) |
| | | } |
| | | |
| | | //已出库已开票的出库单 |
| | | searchConsumableorFinishJs(){ |
| | | searchConsumableorFinishJs() { |
| | | this.isShowSpinner = true; |
| | | this.showTable = false; |
| | | console.log('searchConsumableorFinishJs'); |
| | |
| | | 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; |
| | | 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.showToast('Error', this.message); |
| | | }else{ |
| | | this.showToast('Success', this.message); |
| | | if (this.message == '没有搜索到相关出库单') { |
| | | this.showMyToast('搜索失败', this.message,'Error'); |
| | | } else { |
| | | this.showMyToast('搜索成功', this.message,'Success'); |
| | | } |
| | | this.isShowSpinner = false; |
| | | this.showTable = true; |
| | | } else { |
| | | this.showToast('Error', r.msg); |
| | | this.showMyToast('搜索失败', r.msg,'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)) |
| | | this.showMyToast('搜索失败', '搜索已出库已开票的出库单出错','Error'); |
| | | }) |
| | | } |
| | | |
| | |
| | | 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){ |
| | | 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{ |
| | | if (this.recordsToDisplay && this.recordsToDisplay > 0) { |
| | | this.rowNumberOffset = this.recordsToDisplay[0].rowNumber - 1; |
| | | } else { |
| | | this.rowNumberOffset = 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //排序 |
| | | onHandleSort(event) { |
| | |
| | | sortBy(field, reverse, primer) { |
| | | const key = primer |
| | | ? function (x) { |
| | | return primer(x[field]); |
| | | } |
| | | return primer(x[field]); |
| | | } |
| | | : function (x) { |
| | | return x[field]; |
| | | }; |
| | | return x[field]; |
| | | }; |
| | | |
| | | return function (a, b) { |
| | | a = key(a); |
| | |
| | | |
| | | } |
| | | |
| | | editProductLimit(){ |
| | | editProductLimit() { |
| | | this[NavigationMixin.Navigate]({ |
| | | type: 'standard__webPage', |
| | | attributes: { |
| | |
| | | }); |
| | | } |
| | | |
| | | showToast(type, msg) { |
| | | showMyToast(title, message, variant) { |
| | | this.isShowSpinner = false; |
| | | const event = new ShowToastEvent({ |
| | | title: type, |
| | | variant: type, |
| | | message: msg |
| | | }); |
| | | this.dispatchEvent(event); |
| | | console.log('show custom message'); |
| | | var iconName = ''; |
| | | var content = ''; |
| | | if (variant.toLowerCase() == '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); |
| | | } |
| | | |
| | | @track isModalOpen = false; |
| | | openModal(){ |
| | | openModal() { |
| | | this.isModalOpen = true; |
| | | } |
| | | } |