| | |
| | | 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'; |
| | | 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 |
| | | wrapText: true, |
| | | }, |
| | | { |
| | | label: '目的', |
| | | fieldName: 'orderSummonsForDirction', |
| | | label: "目的", |
| | | fieldName: "orderSummonsForDirction", |
| | | hideDefaultActions: true, |
| | | wrapText: true |
| | | wrapText: true, |
| | | }, |
| | | { |
| | | label: '医院编码', |
| | | fieldName: 'hospitalCode', |
| | | label: "医院编码", |
| | | fieldName: "hospitalCode", |
| | | hideDefaultActions: true, |
| | | wrapText: 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 |
| | | wrapText: true, |
| | | }, |
| | | { |
| | | label: '二级经销商', |
| | | fieldName: 'agencyName', |
| | | label: "二级经销商", |
| | | fieldName: "agencyName", |
| | | hideDefaultActions: true, |
| | | wrapText: true |
| | | wrapText: true, |
| | | }, |
| | | { |
| | | label: '出库/销售日期', |
| | | fieldName: 'orderOutboundDate', |
| | | label: "出库/销售日期", |
| | | fieldName: "orderOutboundDate", |
| | | hideDefaultActions: true, |
| | | wrapText: 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; |
| | |
| | | content; |
| | | MAX_FILE_SIZE = 1500000; |
| | | get acceptedType() { |
| | | return ['.csv']; |
| | | return [".csv"]; |
| | | } |
| | | |
| | | //列表 |
| | |
| | | @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 = {}; |
| | |
| | | if (!this.stylesLoaded) { |
| | | Promise.all([loadStyle(this, WrappedHeaderTable)]) |
| | | .then(() => { |
| | | console.log('Custom styles loaded'); |
| | | console.log("Custom styles loaded"); |
| | | this.stylesLoaded = true; |
| | | }) |
| | | .catch((error) => { |
| | | console.error('Error loading custom styles'); |
| | | console.error("Error loading custom styles"); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | connectedCallback() { |
| | | init() |
| | | .then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | console.log('r = ' + JSON.stringify(r)); |
| | | if (r.status == 'Success') { |
| | | this.accountid = r.entity.accountid; |
| | | this.userWorkLocation = r.entity.userWorkLocation; |
| | | this.agencyProType = r.entity.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.showMyToast('初始化失败', r.msg, 'Error'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)); |
| | | this.showMyToast('错误', '初始化失败', 'Error'); |
| | | }); |
| | | init().then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | 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); |
| | | this.accountName = r.entity.accountName; |
| | | this.sqlagencyProType = r.entity.sqlagencyProType; |
| | | this.isShowSpinner = false; |
| | | } else { |
| | | console.log("r = " + JSON.stringify(r)); |
| | | this.showMyToast('初始化失败', r.msg, 'Error') |
| | | } |
| | | }).catch((error) => { |
| | | console.log("error = " + JSON.stringify(error)); |
| | | this.showMyToast('错误', '初始化失败', 'Error') |
| | | }); |
| | | } |
| | | |
| | | getCsvFile() { |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | 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.showMyToast('上传失败', '选择一个csv文件上传', 'Error'); |
| | | 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) |
| | | ); |
| | | 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; |
| | | } |
| | | 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'); |
| | | 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; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error.message)); |
| | | this.showMyToast('导入错误', '导入失败', '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.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') |
| | | }); |
| | | } |
| | | |
| | | dataImport() { |
| | |
| | | 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.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'); |
| | | }); |
| | | 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; |
| | |
| | | iconName = 'utility:error'; |
| | | } |
| | | if (message != '') { |
| | | content = |
| | | '<h2><strong>' + |
| | | title + |
| | | '<strong/></h2><h5>' + |
| | | message + |
| | | '</h5>'; |
| | | 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); |
| | | this.template.querySelector('c-common-toast').showToast(variant, content, iconName, 10000); |
| | | } |
| | | } |
| | | } |