buli
2023-06-05 0f44cb1a0b7b36860e9ce81c1eac9e395d87f0b4
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js
@@ -4,6 +4,18 @@
import { NavigationMixin } from 'lightning/navigation';
import init from '@salesforce/apex/LexArriveGoodsMainController.init';
import searchConsumableorderdetails from '@salesforce/apex/LexArriveGoodsMainController.searchConsumableorderdetails';
import initTotalNum from '@salesforce/apex/LexConsumableGoodsInfo.initTotalNum';
import initArrDet from '@salesforce/apex/LexConsumableGoodsInfo.initArrDet';
import initArrDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initArrDetAll';
import initDeliveryDet from '@salesforce/apex/LexConsumableGoodsInfo.initDeliveryDet';
import initDeliveryDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initDeliveryDetAll';
import initNotArrDet from '@salesforce/apex/LexConsumableGoodsInfo.initNotArrDet';
import initNotArrDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initNotArrDetAll';
import initMoreThan7 from '@salesforce/apex/LexConsumableGoodsInfo.initMoreThan7';
import initMoreThan7All from '@salesforce/apex/LexConsumableGoodsInfo.initMoreThan7All';
//table css
import { loadStyle } from "lightning/platformResourceLoader";
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
export default class LexArriveGoodsMain extends NavigationMixin(LightningElement) {
    //页面基础变量
@@ -14,6 +26,7 @@
    @track accountId;
    @track title = [];
    @track raesList = [];
    @track recordList = [];
    @track userWorkLocation;
    @track totalNum;
    @track orderNumberArrived;
@@ -21,7 +34,77 @@
    @track orderNumberNotarrive;
    @track moreThanSevenDays;
    @track showSpinner = true;
    @track showPage = true;
    @track showPage = false;
    @track showPop = false;
    @track popTitle;
    stylesLoaded = false;
    //是否一直显示提示
    @track isNoteStay = true;
    @track colms = [
        // {label:'消耗品订单名称',fieldName:'Name'},
        // {label:'订单总数',fieldName:'Total_num__c'},
        // {label:'已到货数量',fieldName:'OrderNumber_arrived__c'},
        // {label:'待系统操作入库数量',fieldName:'Delivery_detail_count__c'},
        // {label:'还没发货数量',fieldName:'OrderNumber_notarrive__c'},
        // {label:'发货七天还未到货数',fieldName:'More_than_seven_days__c'},
        {label:'消耗品订单名称',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "Name" },
                type: 'Title',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true,initialWidth:200},
        {label:'SAP合同号',fieldName:'ContractNo__c',hideDefaultActions: true},
        {label:'订单总数',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "Total_num__c" },
                type: 'TotalNum',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true, initialWidth: 100},
        {label:'已到货数量',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "OrderNumber_arrived__c" },
                type: 'ArrDet',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true, initialWidth: 110},
        {label:'待系统操作入库数量',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "Delivery_detail_count__c" },
                type: 'DeliveryDet',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true, initialWidth: 180},
        {label:'还没发货数量',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "OrderNumber_notarrive__c" },
                type: 'NotArrDet',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true, initialWidth: 120},
        {label:'发货七天还未到货数',
            type: "customOutputGood",
            typeAttributes: {
                outputValue: { fieldName: "More_than_seven_days__c" },
                type: 'MoreThan7',
                recordId: { fieldName: "Id" }
            },
            hideDefaultActions: true, initialWidth: 180},
        {label:'最新发货日期',fieldName:'Shipment_date__c',hideDefaultActions: true, initialWidth: 140},
        {label:'首次发货日期',fieldName:'First_Delivery__c',hideDefaultActions: true, initialWidth: 140}
    ];
    @track colms2 = [
        {label:'产品型号',fieldName:'prodModel',hideDefaultActions: true},
        {label:'数量',fieldName:'recordCount',hideDefaultActions: true,initialWidth: 100}
    ];
    //获取参数
    // @wire(CurrentPageReference)
@@ -31,22 +114,37 @@
    //         this.eSetId = currentPageReference.state?.ESetid;
    //     }
    // }
    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(result=>{
                this.isNoteStay = result.isNoteStay;
                if(result.result == 'Success'){
                    this.agencyProType = result.agencyProType;
                    this.accountId = result.accountId;
                    this.title = result.title;
                    this.raesList = result.raesList;
                    this.userWorkLocation = result.userWorkLocation;
                    this.totalNum = result.totalNum;
                    this.orderNumberArrived = result.orderNumberArrived;
                    this.deliveryDetailCount = result.deliveryDetailCount;
                    this.orderNumberNotarrive = result.orderNumberNotarrive;
                    this.moreThanSevenDays = result.moreThanSevenDays;
                    this.raesList = result.raesList;
                    this.raesList.push({Id:'1',Name:'订单明细汇总',Total_num__c:this.totalNum,OrderNumber_arrived__c:this.orderNumberArrived,Delivery_detail_count__c:this.deliveryDetailCount,OrderNumber_notarrive__c:this.orderNumberNotarrive,More_than_seven_days__c:this.moreThanSevenDays});
                    this.showSpinner = false;
                    this.showPage = true;
                }else{
@@ -55,6 +153,149 @@
                    this.showMyToast('初始化页面失败',result.errorMsg,'error');
                }
            })
    }
    //点击链接
    clickLick(event){
        var outputValue = event.detail.data.value;
        var outputType = event.detail.data.type;
        var recordId = event.detail.data.recordId;
        console.log("click:"+outputValue+"---"+outputType+"---"+recordId);
        if(outputType == 'Title'){
            const config = {
                type: 'standard__webPage',
                attributes: {
                   url: '/lexarrivegoods?ESetId='+recordId
                }
            };
            this[NavigationMixin.Navigate](config);
        }else if(outputType == 'TotalNum'){
            this.popTitle = '所有产品一览';
            initTotalNum({ordId:recordId, type:'all'})
            .then(result=>{
                if(result.result == 'Success'){
                    // this.recordList = result.recordList;
                    var dataStr = JSON.stringify(result.recordList);
                    this.recordList = JSON.parse(dataStr);
                    console.log('data:'+JSON.stringify(this.recordList));
                    this.showPop = true;
                }else{
                    this.showMyToast('加载所有产品一览页面失败',result.errorMsg,'error');
                }
            })
        }else if(outputType == 'ArrDet'){
            if(recordId == '1'){
                this.popTitle = '所有已到货产品一览';
                initArrDetAll({type:'all'})
                .then(result=>{
                    if(result.result == 'Success'){
                        // this.recordList = result.recordList;
                        var dataStr = JSON.stringify(result.recordList);
                        this.recordList = JSON.parse(dataStr);
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载所有已到货产品一览页面失败',result.errorMsg,'error');
                    }
                })
            }else{
                this.popTitle = '已到货产品一览';
                initArrDet({orderId:recordId})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载已到货产品一览页面失败',result.errorMsg,'error');
                    }
                })
            }
        }else if(outputType == 'DeliveryDet'){
            if(recordId == '1'){
                this.popTitle = '所有已发货还没到货产品一览';
                initDeliveryDetAll({type:'all'})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载所有已发货还没到货产品一览页面失败',result.errorMsg,'error');
                    }
                })
            }else{
                this.popTitle = '未到货产品一览';
                initDeliveryDet({orderId:recordId})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载未到货产品一览页面失败',result.errorMsg,'error');
                    }
                })
            }
        }else if(outputType == 'NotArrDet'){
            if(recordId == '1'){
                this.popTitle = '所有还没发货产品一览';
                initNotArrDetAll({type:'all'})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载所有还没发货产品一览页面失败',result.errorMsg,'error');
                    }
                })
            }else{
                this.popTitle = '还没发货数量';
                initNotArrDet({orderId:recordId})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载还没发货数量页面失败',result.errorMsg,'error');
                    }
                })
            }
        }else if(outputType == 'MoreThan7'){
            if(recordId == '1'){
                this.popTitle = '所有发货七天还未到货数';
                initMoreThan7All({type:'all'})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载所有发货七天还未到货数页面失败',result.errorMsg,'error');
                    }
                })
            }else{
                this.popTitle = '发货七天还未到货数';
                initMoreThan7({orderId:recordId})
                .then(result=>{
                    if(result.result == 'Success'){
                        this.recordList = result.recordList;
                        console.log('data:'+JSON.stringify(this.recordList));
                        this.showPop = true;
                    }else{
                        this.showMyToast('加载发货七天还未到货数页面失败',result.errorMsg,'error');
                    }
                })
            }
        }
    }
    //关闭弹窗
    closePop(){
        this.showPop = false;
    }
    //消耗品订单名称变更
@@ -69,30 +310,108 @@
    
    //检索
    search(){
        this.showSpinner = true;
        searchConsumableorderdetails({
            category1Str:this.category1,
            cate2Str:this.cate2,
            accountidStr:this.accountId,
            userWorkLocationStr:this.userWorkLocation,
            agencyProTypeStr:this.agencyProType})
        .then(result=>{
            this.showSpinner = false;
            if(result.result == 'Success'){
                this.raesList = result.raesList;
                this.raesList.push({Id:'1',Name:'订单明细汇总',Total_num__c:this.totalNum,OrderNumber_arrived__c:this.orderNumberArrived,Delivery_detail_count__c:this.deliveryDetailCount,OrderNumber_notarrive__c:this.orderNumberNotarrive,More_than_seven_days__c:this.moreThanSevenDays});
                if(this.raesList.length > 1){
                    var count = this.raesList.length - 1;
                    this.showMyToast('搜索成功','共搜索到'+count+'条数据','success');
                }else{
                    this.showMyToast('未搜索到数据','','error');
                }
            }else{
                this.showMyToast('搜索失败',result.errorMsg,'error');
            }
        })
    }
    
    //清空搜索框
    clear(){
        this.showSpinner = true;
        this.category1 = '';
        this.cate2 = null;
        searchConsumableorderdetails({
            category1Str:this.category1,
            cate2Str:this.cate2,
            accountidStr:this.accountId,
            userWorkLocationStr:this.userWorkLocation,
            agencyProTypeStr:this.agencyProType})
        .then(result=>{
            this.showSpinner = false;
            if(result.result == 'Success'){
                this.raesList = result.raesList;
                this.raesList.push({Id:'1',Name:'订单明细汇总',Total_num__c:this.totalNum,OrderNumber_arrived__c:this.orderNumberArrived,Delivery_detail_count__c:this.deliveryDetailCount,OrderNumber_notarrive__c:this.orderNumberNotarrive,More_than_seven_days__c:this.moreThanSevenDays});
                if(this.raesList.length > 1){
                    var count = this.raesList.length - 1;
                    this.showMyToast('搜索成功','共搜索到'+count+'条数据','success');
                }else{
                    this.showMyToast('未搜索到数据','','error');
                }
            }else{
                this.showMyToast('搜索失败',result.errorMsg,'error');
            }
        })
    }
    //入库
    orderArrive(){
        const config = {
            type: 'standard__webPage',
            attributes: {
               url: '/lexarrivegoods?ArrType=Arr'
            }
        };
        this[NavigationMixin.Navigate](config);
    }
    
    //返品
    orderReturn(){
        const config = {
            type: 'standard__webPage',
            attributes: {
               url: '/lexarrivegoods?ArrType=ReG'
            }
        };
        this[NavigationMixin.Navigate](config);
    }
    showMyToast(title,message,variant){
        const evt = new ShowToastEvent({
           title : title,
           message: message,
           variant: variant
        });
        this.dispatchEvent(evt);
    }
    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);
        // var mode;
        // if(this.isNoteStay){
        //     mode ='sticky';
        // }else{
        //     mode = 'dismissable';
        // }
        // const evt = new ShowToastEvent({
        //     title: title,
        //     message: message,
        //     variant: variant,
        //     mode: mode
        // });
        // this.dispatchEvent(evt);
     }
}