import { LightningElement, wire, api, track } from "lwc"; import { CurrentPageReference } from "lightning/navigation"; import { ShowToastEvent } from "lightning/platformShowToastEvent"; 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 ) { //页面基础变量 @track agencyProType; @track category1; @track cate2; // @track eSetId; @track accountId; @track title = []; @track raesList = []; @track recordList = []; @track userWorkLocation; @track totalNum; @track orderNumberArrived; @track deliveryDetailCount; @track orderNumberNotarrive; @track moreThanSevenDays; @track showSpinner = 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, wrapText: true }, { label: "SAP合同号", fieldName: "ContractNo__c", hideDefaultActions: true, wrapText: true, initialWidth: 180 }, { label: "订单总数", type: "customOutputGood", typeAttributes: { outputValue: { fieldName: "Total_num__c" }, type: "TotalNum", recordId: { fieldName: "Id" } }, hideDefaultActions: true, initialWidth: 100, cellAttributes: { alignment: "right" } }, { label: "已到货数量", type: "customOutputGood", typeAttributes: { outputValue: { fieldName: "OrderNumber_arrived__c" }, type: "ArrDet", recordId: { fieldName: "Id" } }, hideDefaultActions: true, initialWidth: 100, cellAttributes: { alignment: "right" } }, { label: "待系统操作入库数量", type: "customOutputGood", typeAttributes: { outputValue: { fieldName: "Delivery_detail_count__c" }, type: "DeliveryDet", recordId: { fieldName: "Id" } }, hideDefaultActions: true, initialWidth: 150, cellAttributes: { alignment: "right" } }, { label: "还没发货数量", type: "customOutputGood", typeAttributes: { outputValue: { fieldName: "OrderNumber_notarrive__c" }, type: "NotArrDet", recordId: { fieldName: "Id" } }, hideDefaultActions: true, initialWidth: 120, cellAttributes: { alignment: "right" } }, { label: "发货七天还未到货数", type: "customOutputGood", typeAttributes: { outputValue: { fieldName: "More_than_seven_days__c" }, type: "MoreThan7", recordId: { fieldName: "Id" } }, hideDefaultActions: true, initialWidth: 150, cellAttributes: { alignment: "right" } }, { label: "最新发货日期", fieldName: "Shipment_date__c", hideDefaultActions: true, initialWidth: 105 }, { label: "首次发货日期", fieldName: "First_Delivery__c", hideDefaultActions: true, initialWidth: 105 } ]; @track colms2 = [ { label: "产品型号", fieldName: "prodModel", hideDefaultActions: true }, { label: "数量", fieldName: "recordCount", hideDefaultActions: true, initialWidth: 100 } ]; //获取参数 // @wire(CurrentPageReference) // getStateParameters(currentPageReference) { // console.log('CurrentPageReference'); // if (currentPageReference) { // 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.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 { this.showSpinner = false; console.log("Error:" + result.errorMsg); 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; } //消耗品订单名称变更 category1Change(event) { this.category1 = event.detail.value; } //最新发货日期变更 cate2Change(event) { this.cate2 = event.detail.value; } //检索 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) { console.log("show custom message"); var iconName = ""; var content = ""; if (variant == "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); // 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); } }