buli
2023-06-05 0f44cb1a0b7b36860e9ce81c1eac9e395d87f0b4
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js
@@ -5,11 +5,20 @@
import saveFile from "@salesforce/apex/LexConInvoiceViewController.saveFile";
import saveAttachment from "@salesforce/apex/LexConInvoiceViewController.saveAttachment";
import InvoiceorderSearch from "@salesforce/apex/LexConInvoiceViewController.InvoiceorderSearch";
import deleteButton from "@salesforce/apex/LexConInvoiceViewController.deleteButton";
import approval from "@salesforce/apex/LexConInvoiceViewController.approval";
import conInvoiceListInit from "@salesforce/apex/LexConInvoiceList.init";
import invoiceCodeSearch from "@salesforce/apex/LexConInvoiceList.invoiceCodeSearch";
import hospitalInit from "@salesforce/apex/lexSearchAgencyHospitalController.init";
import serContact from "@salesforce/apex/lexSearchAgencyHospitalController.serContact";
import detailsInit from "@salesforce/apex/LexConInvoicedetailsController.init";
import detailsSave from "@salesforce/apex/LexConInvoicedetailsController.save";
import deleteAtt from '@salesforce/apex/LexConsumableController.deleteAtt';
import { NavigationMixin } from "lightning/navigation";
//table css
import { loadStyle } from "lightning/platformResourceLoader";
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
import LexConInvoiceViewReport from '@salesforce/label/c.LexConInvoiceViewReport';
const hospitalColumns = [
    {
@@ -17,6 +26,7 @@
        fieldName: "Name",
        initialWidth: 400,
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "省份",
@@ -40,37 +50,56 @@
        label: "出库日期",
        fieldName: "esdetProductOutDate",
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "出库单编码",
        fieldName: "esdetInvoicedet1ODlinkName",
        wrapText: true,
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "产品型号",
        fieldName: "esdetAssetModelNo",
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 400,
    },
    {
        label: "单位",
        fieldName: "esdetInvoiceUnit",
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 50,
    },
    {
        label: "发票单价",
        fieldName: "esdetInvoiceUnitprice",
        hideDefaultActions: true,
        wrapText: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
    {
        label: "发票数量",
        fieldName: "esdetInvoicedCount",
        cellAttributes: { alignment: 'right' },
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "发票票面金额(元)",
        fieldName: "esdetInvoicedProCostRMB",
        hideDefaultActions: true,
        wrapText: true,
        cellAttributes: { alignment: 'right' },
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
];
const invoiceColumns = [
@@ -78,6 +107,7 @@
        label: "发票日期",
        fieldName: "Invoice_Date__c",
        hideDefaultActions: true,
        initialWidth: 150
    },
    {
        label: "发票号",
@@ -98,27 +128,139 @@
        label: "发票状态",
        fieldName: "Invoice_status__c",
        hideDefaultActions: true,
        initialWidth: 100
    },
    {
        label: "发票账面金额(元)",
        fieldName: "Invoice_total_amount__c",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
        initialWidth: 180
    },
    {
        label: "发票附件",
        fieldName: "Invoice_attachment__c",
        type : 'boolean',
        hideDefaultActions: true,
        initialWidth: 120
    },
    {
        label: "发票明细附件",
        fieldName: "Invoicedet_attachment__c",
        type : 'boolean',
        hideDefaultActions: true,
        initialWidth: 120
    },
];
const detailsColumns = [
    {
        label: "产品型号",
        fieldName: "esdAssetModelNo",
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "规格",
        fieldName: "packingListManual",
        hideDefaultActions: true,
        initialWidth: 30
    },
    {
        label: "出货单价(元)",
        fieldName: "esdDeliveryListRMB",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
    {
        label: "出货数量",
        fieldName: "esdShipmentCount",
        hideDefaultActions: true,
    },
    {
        label: "返品数量",
        fieldName: "esdRrturnProCount",
        hideDefaultActions: true,
    },
    {
        label: "出库单位",
        fieldName: "esdBoxPiece",
        hideDefaultActions: true,
    },
    {
        label: "已发票数量",
        fieldName: "esdInvoicedProcount",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
    {
        label: "还没发票数量",
        fieldName: "esdInvoiceProNotCount",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
    {
        label: "开票单位",
        hideDefaultActions: true,
        type: "customUnit",
        typeAttributes: {
            unitValue: { fieldName: "unitValue" },
            unitOptions: { fieldName: "unitOptions" },
            recordId: { fieldName: "recordId" },
            isDisabled: { fieldName: "isDisabled" },
        },
    },
    {
        label: "发票单价",
        fieldName: "esdInvoiceUnitprice",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
        initialWidth: 130
    },
    {
        label: "发票数量",
        //fieldName: "invoiceCount",
        hideDefaultActions: true,
        type: "customShipment",
        cellAttributes: { alignment: 'right' },
        typeAttributes: {
            recordId: { fieldName: "recordId" },
            shipmentNumber: { fieldName: "shipmentNumber" },
        },
    },
    {
        label: "发票票面金额(元)",
        cellAttributes: { alignment: 'right' },
        fieldName: "invoiceAllprice",
        hideDefaultActions: true,
        type: "number",
        typeAttributes: {
            minimumFractionDigits: 2,
        },
    },
]
const customLabel = {
    LexConInvoiceViewReport
}
export default class LexConInvoiceView extends NavigationMixin(LightningElement) {
    @track label=customLabel;
    invoiceColumns = invoiceColumns;
    detailsColumns = detailsColumns;
    @track outboundColumns = [
        {
            label: "出库日期",
@@ -140,10 +282,13 @@
    ]
    @track outboundData = [];
    @track outboundDataSumPrice = [];
    invoiceColumns = invoiceColumns;
    @track invoiceData = [];
    @track invoiceAllpriceData = [];
    @track detailsSelectedRows = [];
    @track showAttPop = false;
    @track invoiceId = '';
    @track orderId = '';
    @track userWorkLocation = '';
    @track deliveryId = '';
    @track cocId = '';
@@ -151,12 +296,19 @@
    @track coc = {};
    @track EditAble = false;
    @track isChange = false;
    @track sumPrice = 0;
    @track sumPrice = 0.00;
    @track OrderCode = '';
    @track ExistOutbound = false;
    @track reopen = '';
    @track invoiceOrderRecoedschange = [];
    @track isNew = '';
    @track outOrderStringListLwc = [];
    @track outordercountMapLwc = {};
    @track selectedRows = [];
    @track detailsInvoiceId = '';
    @track detailsCocId = '';
    @track detailsData = [];
    @track invoiceAllprice = 0.00;
    //状态
    @track invoiceStatusValue = '';
    @track invoiceStatusOptions = [];
@@ -206,12 +358,14 @@
    @track hideCheckbox = true;
    @track done = false;
    @track isConInvoiceList = true;
    @track isDetailsShow = false;
    //disable
    @track isDisabledEdit = false;
    @track isDisabledReopen = false;
    @track isDisabledDelete = false;
    @track isDisabledAttachment = false;
    @track isOpenReportDisabled = true;
    //文件上传
    @track showLoadingSpinner = false;
@@ -257,12 +411,38 @@
            },
            hideDefaultActions: true,
        },
        {
            label: '',
            type: 'tableCellIcon',
            typeAttributes: {
                iconName: 'utility:delete',
                recordId: {
                    fieldName: 'Id'
                }
            },
            initialWidth: 50,
            hideDefaultActions: true
        },
    ];
    filesUploaded = [];
    fileContents;
    fileReader;
    content;
    MAX_FILE_SIZE = 1500000;
    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");
                });
        }
    }
    //获取链接参数
    getQueryString(name) {
@@ -280,10 +460,13 @@
    }
    init() {
        this.isShowSpinner = true;
        this.deliveryId = this.getQueryString("deliveryId");
        this.deliveryId = this.deliveryId == null ? "" : this.deliveryId;
        this.invoiceId = this.getQueryString("invoiceId");
        this.invoiceId = this.invoiceId == null ? "" : this.invoiceId;
        this.orderId = this.getQueryString("orderId");
        this.orderId = this.orderId == null ? "" : this.orderId;
        this.statusEdit = this.getQueryString("KeyWords");
        this.statusEdit = this.statusEdit == null ? "" : this.statusEdit;
        this.reopen = this.getQueryString("reopen");
@@ -291,7 +474,75 @@
        this.isNew = this.getQueryString("isNew");
        this.isNew = this.isNew == null ? "" : this.isNew;
        console.log('this.deliveryId = ' + this.deliveryId + ' this.invoiceId = ' + this.invoiceId + ' this.statusEdit = ' + this.statusEdit);
        if (this.deliveryId == '' && this.invoiceId == '' && this.isNew == '') {
        if (this.invoiceId != '' && this.orderId != '') {
            //进入coninvoiceDetails
            detailsInit({
                orderIdLwc: this.orderId,
                invoiceIdLwc: this.invoiceId
            }).then((r) => {
                r = JSON.parse(JSON.stringify(r));
                if (r.status == "Success") {
                    this.detailsInvoiceId = r.entity.invoicecode.Id;
                    this.detailsCocId = r.entity.coc.Id;
                    this.detailsData = r.entity.consumableorderdetails1Records;
                    for (var i in this.detailsData) {
                        this.detailsData[i]['Id'] = this.detailsData[i].esd.Id;
                        this.detailsData[i]['esdAssetModelNo'] = this.detailsData[i].esd.Asset_Model_No__c;
                        this.detailsData[i]['packingListManual'] = this.detailsData[i].Packing_list_manual;
                        this.detailsData[i]['esdDeliveryListRMB'] = this.detailsData[i].esd.Delivery_List_RMB__c;
                        this.detailsData[i]['esdShipmentCount'] = this.detailsData[i].esd.Shipment_Count__c;
                        this.detailsData[i]['esdRrturnProCount'] = this.detailsData[i].esd.RrturnPro_count__c;
                        this.detailsData[i]['esdBoxPiece'] = this.detailsData[i].esd.Box_Piece__c;
                        this.detailsData[i]['esdInvoicedProcount'] = this.detailsData[i].esd.Invoiced_Procount__c;
                        this.detailsData[i]['esdInvoiceProNotCount'] = this.detailsData[i].esd.InvoiceProNot_count__c;
                        //开票单位
                        //this.detailsData[i].esd.Box_Piece__c
                        //this.detailsData[i]['unitValue'] = this.detailsData[i].esd.Invoice_Unit__c;
                        this.detailsData[i]['unitValue'] = this.detailsData[i].esd.Box_Piece__c;
                        console.log('unitValue = ' + this.detailsData[i]['unitValue']);
                        this.detailsData[i]['recordId'] = this.detailsData[i].esd.Id;
                        //disabled="{!IF(records.esd.Box_Piece__c =='个' || (records.esd.Box_Piece__c =='盒' && records.Packing_list_manual ==1),true,false)}"
                        //this.detailsData[i]['isDisabled'] = (this.detailsData[i].esd.Box_Piece__c == '个' || (this.detailsData[i].esd.Box_Piece__c =='盒' && this.detailsData[i].Packing_list_manual ==1)) ? true:false;
                        this.detailsData[i]['isDisabled'] = true;
                        let unitOptions = [];
                        for (var key in this.detailsData[i].Invoice_UnitOptsMap) {
                            let unitOption = {};
                            unitOption["label"] = this.detailsData[i].Invoice_UnitOptsMap[key];
                            unitOption["value"] = key;
                            unitOptions.push(unitOption);
                        }
                        this.detailsData[i]["unitOptions"] = unitOptions;
                        this.detailsData[i]['esdInvoiceUnitprice'] = this.detailsData[i].esd.Invoice_Unitprice__c;
                        //发票数量
                        this.detailsData[i]['shipmentNumber'] = this.detailsData[i].invoiceCount;
                        this.detailsData[i]['invoiceAllprice'] = this.detailsData[i].invoiceAllprice;
                        if (this.detailsData[i].check) {
                            this.detailsSelectedRows.push(this.detailsData[i]['Id']);
                            this.invoiceAllprice += this.detailsData[i]['invoiceAllprice'];
                        }
                    }
                    console.log('this.detailsData = ' + JSON.stringify(this.detailsData));
                    let lastInvoiceAllprice = {
                        invoiceAllprice: this.invoiceAllprice
                    }
                    this.invoiceAllpriceData.push(lastInvoiceAllprice);
                    console.log('this.invoiceAllpriceData = ' + JSON.stringify(this.invoiceAllpriceData))
                    this.isShowSpinner = false;
                    this.isDetailsShow = true;
                } else {
                    this.showMyToast('初始化失败', r.msg, 'Error');
                }
            }).catch((error) => {
                this.isShowSpinner = false;
                console.log("error = " + JSON.stringify(error));
            });
        } else if (this.deliveryId == '' && this.invoiceId == '' && this.isNew == '') {
            console.log('conInvoiceListInit');
            conInvoiceListInit().then((r) => {
                r = JSON.parse(JSON.stringify(r));
@@ -301,6 +552,8 @@
                    this.ConInvoiceListUserWorkLocation = r.entity.userWorkLocation;
                    
                    this.ConInvoiceListAgencyProType = r.entity.agencyProType;
                    if (this.ConInvoiceListAgencyProType != 'ET')
                        this.isOpenReportDisabled = false;
                    this.invoiceData = r.entity.raesList;
                    for (var i in this.invoiceData) {
                        this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
@@ -316,7 +569,7 @@
                    console.log("this.invoiceStatusOptions = " + JSON.stringify(this.invoiceStatusOptions));
                    this.isShowSpinner = false;
                } else {
                    this.showToast("Error", r.msg);
                    this.showMyToast('初始化失败', r.msg, 'Error');
                }
            }).catch((error) => {
                console.log("error = " + JSON.stringify(error));
@@ -339,16 +592,27 @@
                    this.isChange = r.entity.isChange;
                    this.ExistOutbound = r.entity.ExistOutbound;
                    this.outboundData = r.entity.invoiceOrderRecoeds;
                    console.log('this.outboundData = ' + JSON.stringify(this.outboundData))
                    this.done = r.entity.done;
                    this.accountid = r.entity.accountid;
                    this.userWorkLocation = r.entity.userWorkLocation;
                    console.log('this.userWorkLocation = ' + this.userWorkLocation);
                    this.outOrderStringListLwc = r.entity.outOrderStringList;
                    this.outordercountMapLwc = r.entity.outordercountMap;
                    this.invoiceOrderRecoedschange = r.entity.invoiceOrderRecoedschange;
                    this.isDisabledEdit = (this.coc.Invoice_status__c == '提交' || this.coc.Invoice_status__c == '已完成') ? true : false;
                    this.isDisabledReopen = this.coc.Invoice_status__c == '提交' ? false : true;
                    this.isDisabledDelete = this.coc.Invoice_status__c == '草案中' ? false : true;
                    this.isDisabledAttachment = this.coc.Invoice_status__c == '已完成' ? true : false;
                    this.OrderCode = this.coc.Name;
                    this.InvoiceDate = this.coc.Invoice_Date__c;
                    for (var i in this.outboundData) {
                        this.outboundData[i].Id = this.outboundData[i].esd.Id;
                        if (this.outboundData[i].check)
                            this.selectedRows.push(this.outboundData[i].esd.Id);
                    }
                    this.selectedRows = [...this.selectedRows];
                    console.log('r.entity.attachmentRecoeds = ' + JSON.stringify(r.entity.attachmentRecoeds))
                    if (!this.EditAble) {
                        //附件显示
                        this.showLoadingSpinner = true;
@@ -361,6 +625,8 @@
                            this.fileData[i]["CreatedByName"] = this.fileData[i].cvInfo.Owner.Name;
                            this.fileData[i]["CreatedByNameUrl"] = "/" + this.fileData[i].cvInfo.OwnerId;;
                            this.fileData[i]["CreatedDate"] = this.fileData[i].cvInfo.CreatedDate;
                            this.fileData[i]["attUrl"] = '/' + this.fileData[i].cvInfo.Id;
                            this.fileData[i]['downloadUrl'] = '/sfc/servlet.shepherd/document/download/' + this.fileData[i].cvInfo.ContentDocumentId + '?operationContext=S1';
                            if (this.isDisabledAttachment) {
                                console.log('进入this.isDisabledAttachment')
                                this.fileData[i]["isDisabledAttachment"] = true;
@@ -374,7 +640,9 @@
                            }
                            this.fileData[i]["typeValue"] = this.fileData[i].mailSelectOptsin == null ? typeOptions[0].value : this.fileData[i].mailSelectOptsin;
                            this.fileData[i]["typeOptions"] = typeOptions;
                            this.fileData[i]["mailSelectOptsin"] = this.fileData[i].mailSelectOptsin == null ? typeOptions[0].value : this.fileData[i].mailSelectOptsin;
                        }
                        console.log('this.fileData = ' + JSON.stringify(this.fileData))
                    }
                    //发票明细
@@ -388,14 +656,12 @@
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedCount'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoiced_Count__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedProCostRMB'] = this.invoiceOrderdetail1Recoeds[i].esdet.InvoicedProCost_RMB__c;
                    }
                    console.log('this.invoiceOrderdetail1Recoeds = ' + JSON.stringify(this.invoiceOrderdetail1Recoeds))
                    //客户名
                    this.HospitalName = r.entity.HospitalName;
                    this.HospitalInfo = r.entity.HospitalInfo;
                    this.agencyProType = r.entity.agencyProType;
                    console.log('this.HospitalName = ' + this.HospitalName);
                    console.log('this.HospitalInfo = ' + this.HospitalInfo);
                    console.log('this.agencyProType = ' + this.agencyProType);
                    if (this.agencyProType != 'ET')
                        this.isOpenReportDisabled = false;
                    //科室
                    this.ForCustomerText = this.coc.Order_ForCustomerText__c;
                    //备注
@@ -407,8 +673,9 @@
                        object["value"] = key;
                        this.provinceOptsMap.push(object);
                    }
                    console.log('this.provinceOptsMap = ' + JSON.stringify(this.provinceOptsMap));
                    //出货一览columns
                    if (this.EditAble) {
                        let object1 = {
                            label: '客户名',
@@ -418,11 +685,19 @@
                        let object2 = {
                            label: '出货金额(元)',
                            fieldName: "shipmentAmount",
                            type: "number",
                            typeAttributes: {
                                minimumFractionDigits: 2,
                            },
                            hideDefaultActions: true,
                        };
                        let object3 = {
                            label: '返品金额(元)',
                            fieldName: "returnAmount",
                            type: "number",
                            typeAttributes: {
                                minimumFractionDigits: 2,
                            },
                            hideDefaultActions: true,
                        };
                        this.outboundColumns.push(object1)
@@ -432,6 +707,10 @@
                    let object4 = {
                        label: '未发票金额(元)',
                        fieldName: "uninvoicedAmount",
                        type: "number",
                        typeAttributes: {
                            minimumFractionDigits: 2,
                        },
                        hideDefaultActions: true,
                    };
                    this.outboundColumns.push(object4)
@@ -448,19 +727,20 @@
                            this.outboundData[i]['returnAmount'] = this.outboundData[i].esd.RrturnPro_total_amount__c;
                        }
                        this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
                        this.outboundData[i]['invoiceFaceAmount'] = this.outboundData[i].needInvoiceCount;
                        this.outboundData[i]['invoiceFaceAmount'] = this.keepTwoDecimalStr(this.outboundData[i].needInvoiceCount);
                        if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
                            let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                            console.log('进入 if')
                            let url = "/lexconinvoiceview?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                            this.outboundData[i]['invoiceFaceAmountUrl'] = url;
                            if (index == 0) {
                                let object5 = {
                                    label: '发票票面金额(元)',
                                    cellAttributes: { alignment: 'right' },
                                    type: 'url',
                                    fieldName: "invoiceFaceAmountUrl",
                                    typeAttributes: {
                                        label: { fieldName: "invoiceFaceAmount" },
                                        target: "_blank",
                                        //target: "_blank",
                                    },
                                    hideDefaultActions: true,
                                };
@@ -468,11 +748,17 @@
                                index++;
                            }
                        } else {
                            console.log('进入 else')
                            if (index == 0) {
                                let object5 = {
                                    label: '发票票面金额(元)',
                                    cellAttributes: { alignment: 'right' },
                                    fieldName: "invoiceFaceAmount",
                                    hideDefaultActions: true,
                                    type: "number",
                                    typeAttributes: {
                                        minimumFractionDigits: 2,
                                    },
                                };
                                this.outboundColumns.push(object5)
                                index++;
@@ -481,12 +767,18 @@
                        //计算发票票面金额
                        this.sumPrice += this.outboundData[i].needInvoiceCount;
                    }
                    //四舍五入
                    //this.sumPrice = this.sumPrice.toFixed(2);
                    //如果不四舍五入
                    console.log('start keepTwoDecimalStr')
                    this.sumPrice = this.keepTwoDecimalStr(this.sumPrice);
                    console.log('end keepTwoDecimalStr = ' + this.sumPrice)
                    //加最后一行显示金额
                    if (this.EditAble) {
                        let lastOutboundData = {
                            invoiceFaceAmount: this.sumPrice
                        }
                        //this.outboundData.push(lastOutboundData);
                        this.outboundDataSumPrice.push(lastOutboundData);
                    }
                    this.outboundColumns = [...this.outboundColumns];
@@ -500,7 +792,7 @@
                    this.isShowSpinner = false;
                    this.showLoadingSpinner = false;
                } else {
                    this.showToast("Error", r.msg);
                    this.showMyToast('失败', r.msg, 'Error');
                }
            }).catch((error) => {
                console.log("error = " + JSON.stringify(error));
@@ -508,6 +800,48 @@
        }
    }
    //上传配置单
    uploadOrder(event) {
        this.showAttPop = true;
    }
    //关闭附件弹窗
    closePop() {
        this.showAttPop = false;
        this.filesUploaded = [];
        this.fileName = null;
    }
    //附件change事件
    attChange(event) {
        if (event.target.files.length > 0) {
            this.filesUploaded = event.target.files;
            this.fileName = event.target.files[0].name;
            console.log('this.fileName:' + this.fileName);
        }
    }
    //移除附件
    removeAtt() {
        this.filesUploaded = [];
        this.fileName = '';
    }
    keepTwoDecimalStr(num) {
        const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
        let s = result.toString();
        let rs = s.indexOf('.');
        if (rs < 0) {
            rs = s.length;
            s += '.';
        }
        while (s.length <= rs + 2) {
            s += '0';
        }
        return s;
    };
    dataChange(event) {
        let fieldName = event.target.getAttribute("data-field");
@@ -546,6 +880,10 @@
                break;
            case "searchHospitalName":
                this.searchHospitalName = value;
                break;
            case "InvoiceNote":
                this.InvoiceNote = value;
                this.coc['Invoice_Note__c'] = value;
                break;
        }
    }
@@ -616,11 +954,25 @@
        this.isModalOpen = false;
    }
    //Consumable_order__c coc,String HospitalInfo,String SecondDealer,List<InvoiceOrderInfo> invoiceOrderRecoeds,String deliveryId,String invoiceId,String accountid,String agencyProType,String reopen
    SaveJs() {
        this.isShowSpinner = true;
        let cloneData = this.outboundData
        debugger
        const selectedRows = this.template.querySelector("[data-field='outbound']").getSelectedRows();
        console.log('selectedRows = ' + JSON.stringify(selectedRows));
        for (var i in cloneData) {
            let b = false;
            for (var j in selectedRows) {
                if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
                    b = true;
                    cloneData[i].check = true;
                }
            }
            if(!b){
                cloneData[i].check = false;
            }
            delete cloneData[i].esdOutboundDate;
            delete cloneData[i].esdNameUrl;
            delete cloneData[i].esdName;
@@ -633,6 +985,7 @@
        }
        console.log('this.coc = ' + JSON.stringify(this.coc));
        console.log('this.HospitalName = ' + this.HospitalName);
        console.log('this.HospitalInfo = ' + this.HospitalInfo);
        console.log('this.secondaryDistributor = ' + this.secondaryDistributor);
        console.log('this.outboundData = ' + JSON.stringify(cloneData));
@@ -644,6 +997,7 @@
        console.log('this.invoiceOrderRecoedschangeLwc = ' + JSON.stringify(this.invoiceOrderRecoedschange));
        save({
            cocLwc: this.coc,
            HospitalNameLwc: this.HospitalName,
            HospitalInfoLwc: this.HospitalInfo,
            SecondDealerLwc: this.secondaryDistributor,
            invoiceOrderRecoedsLwc: JSON.stringify(cloneData),
@@ -657,6 +1011,7 @@
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success" && r.msg == '') {
                this.isShowSpinner = false;
                console.log('save success');
                let url = "/lexconinvoiceview?invoiceId=" + r.entity.invoiceId;
                console.log('url = ' + url);
@@ -667,30 +1022,31 @@
                    },
                });
            } else {
                this.showToast("Error", r.msg);
                this.showMyToast('保存失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + JSON.stringify(error));
            this.showToast("Error", error.message);
        });
    }
    //上传附件,直接就保存好,然后展示
    handleFilesChange(event) {
        console.log("handleFilesChange");
        if (event.target.files.length > 0) {
            this.filesUploaded = event.target.files;
            this.fileName = event.target.files[0].name;
            this.handleSave();
        }
        // if (event.target.files.length > 0) {
        //     this.filesUploaded = event.target.files;
        //     this.fileName = event.target.files[0].name;
        //     this.handleSave();
        // }
    }
    handleSave() {
        this.isShowSpinner = true;
        console.log("saveFile");
        if (this.filesUploaded.length > 0) {
            this.file = this.filesUploaded[0];
            if (this.file.size > this.MAX_FILE_SIZE) {
                this.showToast("Error", "文件过大");
                this.showMyToast('保存失败', '文件过大', 'Error');
                return;
            }
            this.showLoadingSpinner = true;
@@ -711,6 +1067,8 @@
    saveToFile() {
        console.log("saveToFile");
        console.log("invoiceId = " + this.invoiceId);
        console.log("fileName = " + this.fileName);
        console.log("base64Data = " + encodeURIComponent(this.fileContents));
        saveFile({
            recordId: this.invoiceId,
@@ -721,15 +1079,15 @@
                console.log("r = " + JSON.stringify(r));
                if (r != '') {
                    this.showLoadingSpinner = false;
                    this.showToast("Success", "上传成功");
                this.showMyToast('附件上传成功', '', 'Success');
                this.closePop();
                    this.init();
                }else{
                    this.showToast("Error", r.msg);
                this.showMyToast('上传失败', r.msg, 'Error');
                }
            })
            .catch((error) => {
        }).catch((error) => {
                console.log("error = " + error.message);
                this.showToast("Error", "上传失败");
            this.showMyToast('错误', '上传失败', 'Error');
            });
    }
@@ -771,23 +1129,44 @@
            delete cloneData[i].CreatedDate;
            delete cloneData[i].typeValue;
            delete cloneData[i].typeOptions;
            delete cloneData[i].mailSelectOptsMap;
        }
        console.log('cloneData = ' + JSON.stringify(cloneData));
        saveAttachment({
            attachmentRecoedsLwc: JSON.stringify(cloneData)
            attachmentRecoedsLwc: JSON.stringify(cloneData),
            invoiceId: this.invoiceId
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.showLoadingSpinner = false;
                this.showToast("Success", "保存成功");
                this.init();
                this.isShowSpinner = true;
                // const event = new ShowToastEvent({
                //     title: 'Success',
                //     variant: 'Success',
                //     message: '保存成功',
                // });
                // this.dispatchEvent(event);
                this.showMyToast('附件保存成功', '', 'Success');
                //this.init();
                setTimeout(function () {
                    //1秒后执行刷新
                    window.location.reload();
                }, 2000); //单位是毫秒
                // let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId;
                // console.log('url = ' + url);
                // this[NavigationMixin.Navigate]({
                //     type: "standard__webPage",
                //     attributes: {
                //         url: url,
                //     },
                // });
            }else{
                this.showToast("Error", r.msg);
                this.showMyToast('上传失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "上传失败");
            this.showMyToast('错误', '上传失败', 'Error');
        });
    }
@@ -813,16 +1192,16 @@
                console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
                this.isShowSpinner = false;
                if(r.entity.raesListSize > 0){
                    this.showToast("Success", "共检索到" + r.entity.raesListSize + "个发票");
                    this.showMyToast('搜索成功', '共检索到' + r.entity.raesListSize + '个发票', 'Success');
                }else{
                    this.showToast("Warning", "没有搜索到相关发票。");
                    this.showMyToast('搜索失败', '没有搜索到相关发票', 'Error');
                }
            }else{
                this.showToast("Error", r.msg);
                this.showMyToast('搜索失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "搜索失败");
            this.showMyToast('错误', '搜索失败', 'Error');
        });
    }
@@ -844,7 +1223,7 @@
                console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
                this.isShowSpinner = false;
            } else {
                this.showToast("Error", r.msg);
                this.showMyToast('搜索失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + JSON.stringify(error));
@@ -854,8 +1233,21 @@
    InvoiceorderSearchJs(){
        this.isShowSpinner = true;
        debugger
        let cloneData = this.outboundData
        const selectedRows = this.template.querySelector("[data-field='outbound']").getSelectedRows();
        console.log('selectedRows ' + JSON.stringify(selectedRows));
        for (var i in cloneData) {
            let b = false;
            for (var j in selectedRows) {
                if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
                    b = true;
                    cloneData[i].check = true;
                }
            }
            if(!b){
                cloneData[i].check = false;
            }
            delete cloneData[i].esdOutboundDate;
            delete cloneData[i].esdNameUrl;
            delete cloneData[i].esdName;
@@ -875,6 +1267,7 @@
        console.log('this.HospitalInfo = ' + this.HospitalInfo);
        console.log('SecondDealer = ' + this.secondaryDistributor);
        console.log('invoiceOrderRecoedsLwc = ' + JSON.stringify(cloneData));
        InvoiceorderSearch({
            cocLwc: this.coc,
            invoiceIdLwc: this.invoiceId,
@@ -889,8 +1282,14 @@
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.outboundData = r.entity.invoiceOrderRecoeds;
                console.log('this.outboundData = ' + JSON.stringify(this.outboundData));
                let index = 0;
                this.selectedRows = [];
                for (var i in this.outboundData) {
                    if(this.outboundData[i].check)
                        this.selectedRows.push(this.outboundData[i].esd.Id)
                    this.outboundData[i].Id = this.outboundData[i].esd.Id;
                    this.outboundData[i]['esdOutboundDate'] = this.outboundData[i].esd.Outbound_Date__c;
                    this.outboundData[i]['esdNameUrl'] = '/s/lexsummonscreat?ESetid=' + this.outboundData[i].esd.Id;
                    this.outboundData[i]['esdName'] = this.outboundData[i].esd.Name;
@@ -902,12 +1301,14 @@
                    this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
                    this.outboundData[i]['invoiceFaceAmount'] = this.outboundData[i].needInvoiceCount;
                    if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
                        let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                        //let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                        let url = "/s/lexconinvoiceview?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                        this.outboundData[i]['invoiceFaceAmountUrl'] = url;
                        if (index == 0) {
                            let object5 = {
                                label: '发票票面金额(元)',
                                cellAttributes: { alignment: 'right' },
                                type: 'url',
                                fieldName: "invoiceFaceAmountUrl",
                                typeAttributes: {
@@ -923,6 +1324,7 @@
                        if (index == 0) {
                            let object5 = {
                                label: '发票票面金额(元)',
                                cellAttributes: { alignment: 'right' },
                                fieldName: "invoiceFaceAmount",
                                hideDefaultActions: true,
                            };
@@ -933,38 +1335,430 @@
                    //计算发票票面金额
                    this.sumPrice += this.outboundData[i].needInvoiceCount;
                }
                console.log('this.selectedRows = ' + JSON.stringify(this.selectedRows))
                this.isShowSpinner = false;
            }else{
                this.showToast("Error", r.msg);
                this.showMyToast('搜索失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "搜索失败");
            this.showMyToast('错误', '搜索失败', 'Error');
        });
    }
    getSelectedRows(event) {
        console.log("getSelectedRows ");
        for (var i in this.outboundData) {
            this.outboundData[i].check = false;
        // console.log("getSelectedRows ");
        // for (var i in this.outboundData) {
        //     this.outboundData[i].check = false;
        // }
        // const selectedRows = event.detail.selectedRows;
        // for (var i in this.outboundData) {
        //     for (var j in selectedRows) {
        //         if (this.outboundData[i].esd.Id == selectedRows[j].esd.Id) {
        //             //this.outboundData[i].check = !this.outboundData[i].check;
        //             this.outboundData[i].check = true;
        //         }
        //     }
        // }
        // console.log('this.outboundData = ' + JSON.stringify(this.outboundData));
        }
        const selectedRows = event.detail.selectedRows;
        for(var i in this.outboundData){
            for(var j in selectedRows){
                if(this.outboundData[i].esd.Id == selectedRows[j].esd.Id)
                    this.outboundData[i].check = !this.outboundData[i].check;
    deleteButtonJs() {
        this.isShowSpinner = true;
        deleteButton({
            cocLwc: this.coc,
            invoiceIdLwc: this.invoiceId,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.isShowSpinner = false
                let url = "/lexconinvoiceview";
                console.log('url = ' + url);
                this[NavigationMixin.Navigate]({
                    type: "standard__webPage",
                    attributes: {
                        url: url,
                    },
                });
            } else {
                this.showMyToast('删除失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
        });
    }
    SetEditAbleJs() {
        let statusEditAbleJs = 'Redirect';
        let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId + '&KeyWords=' + statusEditAbleJs;
        console.log('url = ' + url);
        this[NavigationMixin.Navigate]({
            type: "standard__webPage",
            attributes: {
                url: url,
            },
        });
    }
    approvalJs() {
        this.isShowSpinner = true;
        approval({
            outOrderStringListLwc: this.outOrderStringListLwc,
            outordercountMapLwc: this.outordercountMapLwc,
            invoiceIdLwc: this.invoiceId
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.isShowSpinner = false
                let url = "/s/lexconinvoiceview?invoiceId=" + this.invoiceId;
                console.log('url = ' + url);
                window.open(url, '_self');
                // this[NavigationMixin.Navigate]({
                //     type: "standard__webPage",
                //     attributes: {
                //         url: url,
                //     },
                // });
            } else {
                this.showMyToast('错误', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
        });
    }
    openReportJs() {
        console.log("openReportJs");
        let reportUrl = this.label.LexConInvoiceViewReport;
        let reportFilters = '[{"operator":"equals","value":"' + this.OrderCode + '","column":"FK_NAME"}]';
        console.log('reportUrl = ' + reportUrl);
        let url = "/report/"+ reportUrl +"?reportFilters=" + encodeURIComponent(reportFilters);
        this[NavigationMixin.Navigate]({
            type: "standard__webPage",
            attributes: {
                url: url,
            },
        });
    }
    reopenJs() {
        // statusEdit = 'Redirect';
        // PageReference ref = new Pagereference('/ConInvoiceView?invoiceId=' + invoiceId + '&reopen=isreopen' + '&KeyWords=' + statusEdit);
        let statusEditAbleJs = 'Redirect';
        let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId + '&reopen=isreopen' + '&KeyWords=' + statusEditAbleJs;
        console.log('url = ' + url);
        this[NavigationMixin.Navigate]({
            type: "standard__webPage",
            attributes: {
                url: url,
            },
        });
    }
    showMyToast(title, message, variant) {
        this.isShowSpinner = false;
        this.showLoadingSpinner = false;
        this.showAttPop = false;
        this.filesUploaded = [];
        this.fileName = null;
        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);
    }
    handleLoad() {
        console.log('handleLoad')
        try {
            const style = document.createElement('style');
            style.innerText = '.hehe-layoutItem .slds-button__icon {display: none;}';
            this.template.querySelector('.hideHelpText').appendChild(style);
            const style2 = document.createElement('style');
            style2.innerText = '.hehe-layoutItem  .slds-form-element__label {padding : 0px}';
            this.template.querySelector('.hideHelpText').appendChild(style2);
            const style3 = document.createElement('style');
            style3.innerText = '.readOnly  .slds-form-element__label {padding-top: 7px;}';
            this.template.querySelector('.hideHelpText').appendChild(style3);
        } catch (error) {
            console.log(error);
        }
    }
    showToast(type, msg) {
        this.isShowSpinner = false;
        this.showLoadingSpinner = false;
        const event = new ShowToastEvent({
            title: type,
            variant: type,
            message: msg,
    keepTwoDecimalStr(num) {
        const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
        let s = result.toString();
        let rs = s.indexOf('.');
        if (rs < 0) {
            rs = s.length;
            s += '.';
        }
        while (s.length <= rs + 2) {
            s += '0';
        }
        return s;
    };
    handleLoad2() {
        console.log('handleLoad2')
        try {
            const style = document.createElement('style');
            style.innerText = '.hehe-layoutItem .slds-button__icon {display: none;}';
            this.template.querySelector('.hideHelpText').appendChild(style);
            const style2 = document.createElement('style');
            style2.innerText = '.hehe-layoutItem  .slds-form-element__label {padding : 0px}';
            this.template.querySelector('.hideHelpText').appendChild(style2);
        } catch (error) {
            console.log(error);
        }
    }
    handleUnitChange(event) {
        console.log("handleUnitChange");
        this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
        const unitDetail = event.detail;
        console.log("unitDetail = " + JSON.stringify(unitDetail));
        for (var i in this.detailsData) {
            if (this.detailsData[i].recordId == unitDetail.data.recordId) {
                this.detailsData[i].unitValue = unitDetail.data.unitValue;
                this.detailsData[i].esd.Invoice_Unit__c = unitDetail.data.unitValue;
                if (this.detailsSelectedRows.indexOf(this.detailsData[i].recordId) == -1)
                    this.detailsSelectedRows.push(this.detailsData[i].recordId);
            }
        }
        this.detailsSelectedRows = [...this.detailsSelectedRows];
        console.log('this.detailsSelectedRows = ' + JSON.stringify(this.detailsSelectedRows))
        for (var i in this.detailsData) {
            this.detailsData[i].invoiceAllprice = 0.00;
            for (var j in this.detailsSelectedRows) {
                console.log('this.detailsData[i].Id = ' + this.detailsData[i].Id);
                console.log('this.detailsSelectedRows[j] = ' + this.detailsSelectedRows[j]);
                if (this.detailsData[i].Id == this.detailsSelectedRows[j]) {
                    this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
                    console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
                }
            }
            this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
        }
        this.detailsData = [...this.detailsData];
        this.invoiceAllpriceData = [...this.invoiceAllpriceData];
    }
    handleShipmentNumber(event) {
        console.log("handleShipmentNumber");
        this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
        const numberDetail = event.detail;
        console.log('numberDetail = ' + JSON.stringify(numberDetail))
        if (numberDetail.data.shipmentnumber == 0) {
            if (this.detailsSelectedRows.indexOf(numberDetail.data.recordId) != -1) {
                this.detailsSelectedRows.splice(this.detailsSelectedRows.indexOf(numberDetail.data.recordId), 1);
            }
        }
        console.log("start this.detailsSelectedRows = " + JSON.stringify(this.detailsSelectedRows));
        console.log("numberDetail = " + JSON.stringify(numberDetail));
        for (var i in this.detailsData) {
            if (this.detailsData[i].recordId == numberDetail.data.recordId) {
                this.detailsData[i].shipmentNumber = Number(numberDetail.data.shipmentnumber);
                this.detailsData[i].invoiceCount = Number(numberDetail.data.shipmentnumber);
                if (this.detailsSelectedRows.indexOf(this.detailsData[i].recordId) == -1 && numberDetail.data.shipmentnumber != 0)
                    this.detailsSelectedRows.push(this.detailsData[i].recordId);
            }
        }
        console.log("end this.detailsSelectedRows = " + JSON.stringify(this.detailsSelectedRows));
        this.detailsSelectedRows = [...this.detailsSelectedRows];
        console.log('this.detailsSelectedRows = ' + JSON.stringify(this.detailsSelectedRows));
        for (var i in this.detailsData) {
            this.detailsData[i].invoiceAllprice = 0.00;
            for (var j in this.detailsSelectedRows) {
                console.log('this.detailsData[i].Id = ' + this.detailsData[i].Id);
                console.log('this.detailsSelectedRows[j] = ' + this.detailsSelectedRows[j]);
                if (this.detailsData[i].Id == this.detailsSelectedRows[j]) {
                    this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
                    console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
                }
            }
            this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
        }
        this.detailsData = [...this.detailsData];
        this.invoiceAllpriceData = [...this.invoiceAllpriceData];
    }
    detailsGetSelectedRows(event) {
        console.log("detailsGetSelectedRows ");
        this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
        let selectedRows = event.detail.selectedRows;
        for (var i in this.detailsData) {
            this.detailsData[i].invoiceAllprice = 0.00;
            for (var j in selectedRows) {
                if (this.detailsData[i].Id == selectedRows[j].esd.Id) {
                    this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
                    console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
                }
            }
            this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
            console.log('this.invoiceAllpriceData[0].invoiceAllprice = ' + this.invoiceAllpriceData[0].invoiceAllprice);
        }
        console.log('start this.detailsData = ' + JSON.stringify(this.detailsData));
        this.detailsData = [...this.detailsData];
        console.log('end this.detailsData = ' + JSON.stringify(this.detailsData));
        this.invoiceAllpriceData = [...this.invoiceAllpriceData];
    }
    ComputePrice(index, number, price) {
        console.log("index = " + index);
        console.log("number = " + number);
        console.log("price = " + price);
        let shipmentAmount = this.amend(number, price, "*");
        console.log("shipmentAmount = " + shipmentAmount);
        let sumPrice = 0.0;
        this.data[index].shipmentAmount = shipmentAmount;
        for (var i in this.data) {
            if (this.data[i].shipmentAmount) sumPrice += this.data[i].shipmentAmount;
        }
        this.sumPrice = sumPrice + "元";
        //存下选择行,不会被清空
        if (this.selectedRows.indexOf(this.data[index].Id) == -1)
            this.selectedRows.push(this.data[index].Id);
        this.data = [...this.data];
        this.selectedRows = [...this.selectedRows]
        console.log("this.selectedRows = " + JSON.stringify(this.selectedRows));
        console.log("this.data = " + JSON.stringify(this.data));
    }
    detailsSaveJs() {
        this.isShowSpinner = true;
        let cloneData = this.detailsData;
        let selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows();
        console.log('selectedRows = ' + JSON.stringify(selectedRows));
        for (var i in cloneData) {
            delete cloneData[i].Id;
            delete cloneData[i].esdAssetModelNo;
            delete cloneData[i].packingListManual;
            delete cloneData[i].esdDeliveryListRMB;
            delete cloneData[i].esdShipmentCount;
            delete cloneData[i].esdRrturnProCount;
            delete cloneData[i].esdBoxPiece;
            delete cloneData[i].esdInvoicedProcount;
            delete cloneData[i].esdInvoiceProNotCount;
            delete cloneData[i].unitValue;
            delete cloneData[i].recordId;
            delete cloneData[i].unitOptions;
            delete cloneData[i].esdInvoiceUnitprice;
            delete cloneData[i].shipmentNumber;
            delete cloneData[i].invoiceAllprice;
            for (var j in selectedRows) {
                if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
                    cloneData[i]['check'] = true;
                }
            }
        }
        console.log('cloneData = ' + JSON.stringify(cloneData));
        detailsSave({
            consumableorderdetails1RecordsLwc: JSON.stringify(cloneData),
            invoiceIdLwc: this.invoiceId,
            orderIdLwc: this.orderId
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId;
                this[NavigationMixin.Navigate]({
                    type: "standard__webPage",
                    attributes: {
                        url: url,
                    },
        });
        this.dispatchEvent(event);
            } else {
                this.showMyToast('保存失败', r.msg, 'Error');
            }
        }).catch((error) => {
            console.log("error = " + error.message);
        });
    }
    //num1 num2传入两个值  symbol +-*/符号
    amend(num1, num2, symbol) {
        var str1 = num1.toString(),
            str2 = num2.toString(),
            result,
            str1Length,
            str2Length;
        //解决整数没有小数点方法
        try {
            str1Length = str1.split(".")[1].length;
        } catch (error) {
            str1Length = 0;
        }
        try {
            str2Length = str2.split(".")[1].length;
        } catch (error) {
            str2Length = 0;
        }
        var step = Math.pow(10, Math.max(str1Length, str2Length));
        switch (symbol) {
            case "+":
                result = (num1 * step + num2 * step) / step;
                break;
            case "-":
                result = (num1 * step - num2 * step) / step;
                break;
            case "*":
                result = (num1 * step * (num2 * step)) / step / step;
                break;
            case "/":
                result = (num1 * step) / (num2 * step);
                break;
            default:
                break;
        }
        return result;
    }
    //删除附件
    deleteAtt(event) {
        this.isShowSpinner = true;
        //var recordId = event.detail.data.recordId;
        var recordId = event.target.getAttribute("data-fileid");
        console.log('attid:' + recordId);
        deleteAtt({
            contentVersionId: recordId
        }).then(result => {
            if (result.result == 'Success') {
                this.showMyToast('删除成功', '', 'Success');
                if (this.fileData.length == 1)
                    window.location.reload();
                else
                    this.init();
            } else {
                this.showMyToast('删除失败', result.errorMsg, 'Error');
            }
        }).catch(error => {
            this.showMyToast('错误', '删除失败', 'Error');
        })
    }
}