liangxiaozhen
2023-08-06 7454e4fe769b5148309b8a932fbf2bc03b41b376
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js
@@ -1,66 +1,78 @@
import { LightningElement, api, track, wire } from "lwc";
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import init from "@salesforce/apex/LexOutboundorderImportController.init";
import importCSVFile from "@salesforce/apex/LexOutboundorderImportController.importCSVFile";
import dataImport from "@salesforce/apex/LexOutboundorderImportController.dataImport";
import { LightningElement, api, track, wire } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init from '@salesforce/apex/LexOutboundorderImportController.init';
import importCSVFile from '@salesforce/apex/LexOutboundorderImportController.importCSVFile';
import dataImport from '@salesforce/apex/LexOutboundorderImportController.dataImport';
//table css
import { loadStyle } from 'lightning/platformResourceLoader';
import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable';
const columns = [
    {
        label: "出库单名称",
        fieldName: "orderName",
        label: '出库单名称',
        fieldName: 'orderName',
        hideDefaultActions: true,
        initialWidth: 200,
        wrapText: true
    },
    {
        label: "目的",
        fieldName: "orderSummonsForDirction",
        label: '目的',
        fieldName: 'orderSummonsForDirction',
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: "医院编码",
        fieldName: "hospitalCode",
        label: '医院编码',
        fieldName: 'hospitalCode',
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: "医院名称",
        fieldName: "hospitalName",
        label: '医院名称',
        fieldName: 'hospitalName',
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 300
    },
    {
        label: "科室",
        fieldName: "orderOrderForCustomerText",
        label: '科室',
        fieldName: 'orderOrderForCustomerText',
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: "二级经销商",
        fieldName: "agencyName",
        label: '二级经销商',
        fieldName: 'agencyName',
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: "出库/销售日期",
        fieldName: "orderOutboundDate",
        label: '出库/销售日期',
        fieldName: 'orderOutboundDate',
        hideDefaultActions: true,
    },
        wrapText: true
    }
];
export default class LexOutboundorderImport extends LightningElement {
    @track isShowSpinner = true;
    //文件上传
    @track showLoadingSpinner = false;
    @track UploadFile = "Upload File";
    @track fileName = "";
    @track UploadFile = 'Upload File';
    @track fileName = '';
    @track fileData = [];
    @track fileColumns = [
        {
            label: "标题",
            fieldName: "url",
            type: "url",
            typeAttributes: { label: { fieldName: "Title" }, target: "_blank" },
            hideDefaultActions: true,
            label: '标题',
            fieldName: 'url',
            type: 'url',
            typeAttributes: { label: { fieldName: 'Title' }, target: '_blank' },
            hideDefaultActions: true
        },
        {
            label: "创建人",
            fieldName: "CreatedByName",
            hideDefaultActions: true,
        },
            label: '创建人',
            fieldName: 'CreatedByName',
            hideDefaultActions: true
        }
    ];
    filesUploaded = [];
    fileContents;
@@ -68,7 +80,7 @@
    content;
    MAX_FILE_SIZE = 1500000;
    get acceptedType() {
        return [".csv"];
        return ['.csv'];
    }
    //列表
@@ -76,36 +88,51 @@
    @track data = [];
    //数据
    @track accountid = "";
    @track userWorkLocation = "";
    @track agencyProType = "";
    @track accountName = "";
    @track sqlagencyProType = "";
    @track accountid = '';
    @track userWorkLocation = '';
    @track agencyProType = '';
    @track accountName = '';
    @track sqlagencyProType = '';
    @track csvRecordStr = [];
    @track saveFLGbln = false;
    @track secondAgencyMap = {};
    @track hospitalSysMap = {};
    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) => {
        init()
            .then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log("r = " + JSON.stringify(r));
                if (r.status == "Success") {
                console.log('r = ' + JSON.stringify(r));
                if (r.status == 'Success') {
                    this.accountid = r.entity.accountid;
                    this.userWorkLocation = r.entity.userWorkLocation;
                    this.agencyProType = r.entity.agencyProType;
                    console.log('this.agencyProType = '  +  this.agencyProType);
                    console.log('this.agencyProType = ' + this.agencyProType);
                    this.accountName = r.entity.accountName;
                    this.sqlagencyProType = r.entity.sqlagencyProType;
                    this.isShowSpinner = false;
                } else {
                    console.log("r = " + JSON.stringify(r));
                    this.showToast("Error", r.msg);
                    console.log('r = ' + JSON.stringify(r));
                    this.showMyToast('初始化失败', r.msg, 'Error');
                }
            })
            .catch((error) => {
                console.log("error = " + JSON.stringify(error));
                this.showToast("Error", error.message);
                console.log('error = ' + JSON.stringify(error));
                this.showMyToast('错误', '初始化失败', 'Error');
            });
    }
@@ -115,7 +142,7 @@
        if (this.filesUploaded.length > 0) {
            this.file = this.filesUploaded[0];
            if (this.file.size > this.MAX_FILE_SIZE) {
                window.console.log("文件过大");
                window.console.log('文件过大');
                this.isShowSpinner = false;
                return;
            }
@@ -123,64 +150,77 @@
            this.fileReader.onloadend = () => {
                this.fileContents = this.fileReader.result;
                let base64 = "base64,";
                this.content = this.fileContents.indexOf(base64) + base64.length;
                let base64 = 'base64,';
                this.content =
                    this.fileContents.indexOf(base64) + base64.length;
                this.fileContents = this.fileContents.substring(this.content);
                console.log('getCsvFile')
                console.log('getCsvFile');
                this.importCSVFile();
            };
            this.fileReader.readAsDataURL(this.file);
        } else {
            this.fileName = "选择一个csv文件上传";
            this.showToast("Error", '选择一个csv文件上传');
            this.fileName = '选择一个csv文件上传';
            this.showMyToast('上传失败', '选择一个csv文件上传', 'Error');
        }
    }
    importCSVFile() {
        console.log('importCSVFile')
        console.log('importCSVFile');
        console.log('this.sqlagencyProType = ' + this.sqlagencyProType);
        console.log('this.userWorkLocation = ' + this.userWorkLocation);
        console.log('this.accountName = ' + this.accountName);
        console.log(
            'encodeURIComponent(this.fileContents) = ' +
                encodeURIComponent(this.fileContents)
        );
        importCSVFile({
            base64DataLwc: encodeURIComponent(this.fileContents),
            sqlagencyProTypeLwc: this.sqlagencyProType,
            userWorkLocationLwc: this.userWorkLocation,
            accountNameLwc: this.accountName,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success" && r.msg == "") {
                console.log("importCSVFile success");
                this.saveFLGbln = r.entity.saveFLGbln;
                this.csvRecordStr = r.entity.csvRecordStr;
                this.secondAgencyMap = r.entity.secondAgencyMap;
                this.hospitalSysMap = r.entity.hospitalSysMap;
                this.data = r.entity.orderRecords;
                for (var i in this.data) {
                    this.data[i]['orderName'] = this.data[i].order.Name;
                    this.data[i]['orderSummonsForDirction'] = this.data[i].order.SummonsForDirction__c;
                    this.data[i]['orderOrderForCustomerText'] = this.data[i].order.Order_ForCustomerText__c;
                    this.data[i]['orderOutboundDate'] = this.data[i].order.Outbound_Date__c;
            accountNameLwc: this.accountName
        })
            .then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log('r = ' + JSON.stringify(r));
                if (r.status == 'Success' && r.msg == '') {
                    console.log('importCSVFile success');
                    this.saveFLGbln = r.entity.saveFLGbln;
                    this.csvRecordStr = r.entity.csvRecordStr;
                    this.secondAgencyMap = r.entity.secondAgencyMap;
                    this.hospitalSysMap = r.entity.hospitalSysMap;
                    this.data = r.entity.orderRecords;
                    for (var i in this.data) {
                        this.data[i]['orderName'] = this.data[i].order.Name;
                        this.data[i]['orderSummonsForDirction'] =
                            this.data[i].order.SummonsForDirction__c;
                        this.data[i]['orderOrderForCustomerText'] =
                            this.data[i].order.Order_ForCustomerText__c;
                        this.data[i]['orderOutboundDate'] =
                            this.data[i].order.Outbound_Date__c;
                    }
                    this.isShowSpinner = false;
                } else if (r.msg != '') {
                    console.log('r.msg = ' + JSON.stringify(r.msg));
                    this.saveFLGbln = r.entity.saveFLGbln;
                    this.data = r.entity.orderRecords;
                    for (var i in this.data) {
                        this.data[i]['orderName'] = this.data[i].order.Name;
                        this.data[i]['orderSummonsForDirction'] =
                            this.data[i].order.SummonsForDirction__c;
                        this.data[i]['orderOrderForCustomerText'] =
                            this.data[i].order.Order_ForCustomerText__c;
                        this.data[i]['orderOutboundDate'] =
                            this.data[i].order.Outbound_Date__c;
                    }
                    this.showMyToast('导入失败', r.msg, 'Error');
                } else {
                    console.log('r.msg = ' + JSON.stringify(r.msg));
                    this.showMyToast('导入失败', r.msg, 'Error');
                }
                this.isShowSpinner = false;
            } else if (r.msg != "") {
                console.log("r.msg = " + JSON.stringify(r.msg));
                this.saveFLGbln = r.entity.saveFLGbln;
                this.data = r.entity.orderRecords;
                for (var i in this.data) {
                    this.data[i]['orderName'] = this.data[i].order.Name;
                    this.data[i]['orderSummonsForDirction'] = this.data[i].order.SummonsForDirction__c;
                    this.data[i]['orderOrderForCustomerText'] = this.data[i].order.Order_ForCustomerText__c;
                    this.data[i]['orderOutboundDate'] = this.data[i].order.Outbound_Date__c;
                }
                this.showToast("Error", r.msg);
            } else {
                console.log("r.msg = " + JSON.stringify(r.msg));
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
                console.log("error = " + JSON.stringify(error.message));
                this.showToast("Error", error.message);
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error.message));
                this.showMyToast('导入错误', '导入失败', 'Error');
            });
    }
@@ -203,42 +243,59 @@
            accountidLwc: this.accountid,
            agencyProTypeLwc: this.agencyProType,
            secondAgencyMapLwc: this.secondAgencyMap,
            hospitalSysMapLwc: this.hospitalSysMap,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success" && r.msg == "") {
                this.saveFLGbln = true;
                console.log("dataImport success");
                this.showToast("Success", '保存成功');
            } else if (r.msg != "") {
                console.log("r.msg = " + JSON.stringify(r.msg));
                this.showToast("Error", r.msg);
            } else {
                console.log("r.msg = " + JSON.stringify(r.msg));
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
                console.log("error = " + JSON.stringify(error.message));
                this.showToast("Error", error.message);
            hospitalSysMapLwc: this.hospitalSysMap
        })
            .then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log('r = ' + JSON.stringify(r));
                if (r.status == 'Success' && r.msg == '') {
                    this.saveFLGbln = true;
                    console.log('dataImport success');
                    this.showMyToast('成功', '保存成功', 'Success');
                } else if (r.msg != '') {
                    console.log('r.msg = ' + JSON.stringify(r.msg));
                    this.showMyToast('保存失败', r.msg, 'Error');
                } else {
                    console.log('r.msg = ' + JSON.stringify(r.msg));
                    this.showMyToast('保存失败', r.msg, 'Error');
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error.message));
                this.showMyToast('错误', '保存失败', 'Error');
            });
    }
    handleFilesChange(event) {
        console.log("handleFilesChange");
        console.log('handleFilesChange');
        if (event.target.files.length > 0) {
            this.filesUploaded = event.target.files;
            this.fileName = event.target.files[0].name;
        }
    }
    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);
    }
}