binxie
2023-06-26 00e147ec892cb1e89d0698787a8c60da1014cdb7
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js
@@ -1,26 +1,28 @@
import { LightningElement, wire, api, track } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';
import init from '@salesforce/apex/LexSaleAndDeliveryController.init';//cleanUp
import init from '@salesforce/apex/LexSaleAndDeliveryController.init'; //cleanUp
import cleanUp from '@salesforce/apex/LexSaleAndDeliveryController.cleanUp';
import { ShowToastEvent } from "lightning/platformShowToastEvent";
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 ,
        sortable: true
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
    },
    {
        label: '出库单号',
        fieldName: 'url',
        type : 'url',
        initialWidth : 175,
    {
        label: '出库单号',
        fieldName: 'url',
        type: 'url',
        typeAttributes: {
            label: {
                fieldName: 'Name'
@@ -28,140 +30,66 @@
            target: '_blank'
        },
        hideDefaultActions: true,
        sortable: true
        sortable: true,
        wrapText: true
    },
    {
        label: '客户名',
        fieldName: 'ShipmentAccount__c',
        hideDefaultActions: true ,
        wrapText:true,
    {
        label: '客户名',
        fieldName: 'ShipmentAccount__c',
        hideDefaultActions: true,
        wrapText: true,
        sortable: true
    },
    {
        label: '科室',
        fieldName: 'Order_ForCustomerText__c',
    {
        label: '科室',
        fieldName: 'Order_ForCustomerText__c',
        hideDefaultActions: true,
        initialWidth : 120
        wrapText: true
    },
    {
        label: '出库单状态',
        fieldName: 'SummonsStatus_c__c',
        hideDefaultActions: true ,
        sortable: true,
        initialWidth : 100
    },
    {
        label: '开票状态',
        fieldName: 'Billed_Status__c',
    {
        label: '出库单状态',
        fieldName: 'SummonsStatus_c__c',
        hideDefaultActions: true,
        sortable: true,
        initialWidth : 100
        wrapText: true
    },
    {
        label: '未发票金额(元)',
        fieldName: 'InvoiceNotPro_money__c',
    {
        label: '开票状态',
        fieldName: 'Billed_Status__c',
        hideDefaultActions: true,
        type : "number",
        typeAttributes:{
            minimumFractionDigits:2,
        sortable: true,
        wrapText: true
    },
    {
        label: '未发票金额(元)',
        fieldName: 'InvoiceNotPro_money__c',
        hideDefaultActions: true,
        type: 'number',
        typeAttributes: {
            minimumFractionDigits: 2
        },
        initialWidth : 150
        wrapText: true
    },
    {
        label: '创建日期',
    {
        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
        sortable: true,
        wrapText: true,
        type: 'date',
        typeAttributes: {
            timeZone: 'Asia/Shanghai',
            day: 'numeric',
            month: 'numeric',
            year: 'numeric',
            hour: '2-digit',
            minute: '2-digit'
        }
    }
];
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) {
export default class LexSaleAndDelivery extends NavigationMixin(
    LightningElement
) {
    columns = columns;
    @track isShowSpinner = true;
    @track message = '';
@@ -182,33 +110,51 @@
    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;
        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');
                }
                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);
            }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error))
        })
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                this.showMyToast('错误', '初始化失败', 'Error');
            });
    }
    //新建出库单
    neworderhead(){
    neworderhead() {
        this[NavigationMixin.Navigate]({
            type: 'standard__webPage',
            attributes: {
@@ -230,32 +176,36 @@
            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.showToast('Error', this.message);
                }else{
                    this.showToast('Success', this.message);
                }
                this.isShowSpinner = false;
                this.showTable = true;
            } else {
                this.showToast('Error', r.msg);
            }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error))
        })
            .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(){
    searchConsumableorderdetailsJs() {
        this.isShowSpinner = true;
        this.showTable = false;
        console.log('searchConsumableorderdetailsJs');
@@ -269,32 +219,40 @@
            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.showToast('Error', this.message);
                }else{
                    this.showToast('Success', this.message);
                }
                this.isShowSpinner = false;
                this.showTable = true;
            } else {
                this.showToast('Error', r.msg);
            }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error))
        })
            .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(){
    searchConsumableorFinishJs() {
        this.isShowSpinner = true;
        this.showTable = false;
        console.log('searchConsumableorFinishJs');
@@ -306,28 +264,36 @@
            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.showToast('Error', this.message);
                }else{
                    this.showToast('Success', this.message);
                }
                this.isShowSpinner = false;
                this.showTable = true;
            } else {
                this.showToast('Error', r.msg);
            }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error))
        })
            .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'
                );
            });
    }
    //清空
@@ -341,41 +307,45 @@
        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.showToast('Error', this.message);
                }else{
                    this.showToast('Success', this.message);
                }
                this.isShowSpinner = false;
                this.showTable = true;
            } else {
                this.showToast('Error', r.msg);
            }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error))
            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) {
@@ -403,30 +373,28 @@
        };
    }
    dataChange(event) {
        let fieldName = event.target.getAttribute("data-field");
        let fieldName = event.target.getAttribute('data-field');
        let value = event.detail.value;
        switch (fieldName) {
            case 'deliveryFromDate':
                this.deliveryFromDate = value;
                break
                break;
            case 'deliveryToDate':
                this.deliveryToDate = value;
                break
                break;
            case 'deliveryOrderNo':
                this.deliveryOrderNo = value;
                break
                break;
            case 'contactName':
                this.contactName = value;
                break
                break;
            default:
                console.log('no data');
        }
    }
    editProductLimit(){
    editProductLimit() {
        this[NavigationMixin.Navigate]({
            type: 'standard__webPage',
            attributes: {
@@ -435,18 +403,33 @@
        });
    }
    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;
    }
}