<!-- 该页面用于Lead对象上传PDF,未来如果要添加其他对象的上传PDF功能,复制该页面,将**standardController**修改为其他对象API名称即可 -->
|
<apex:page standardController="CampaignMember" extensions="CampaignMemberUploadFileController" id="page" lightningStyleSheets="true">
|
<apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
|
<script>
|
var staticResources = JSON.parse('{!staticResource}');
|
var uploadUrl = staticResources.newUrl;
|
var key;
|
|
function alertErrorMessage(errorMsg) {
|
let errorMsgNode = document.getElementById("page:theForm:block:msgContent");
|
errorMsgNode.innerText = errorMsg;
|
errorMsgNode.className = 'message errorM3';
|
}
|
|
function hiddenErrorMsgNode() {
|
let errorMsgNode = document.getElementById("page:theForm:block:msgContent");
|
errorMsgNode.innerText = '';
|
errorMsgNode.className = '';
|
}
|
function getFileContent(event) {
|
var fileObject = document.getElementById("page:theForm:block:uploadSection:file");
|
var reader = new FileReader();
|
var data = reader.readAsDataURL(fileObject.files[0]);
|
debugger
|
console.log(event);
|
}
|
function getBase64(file) {
|
return new Promise((resolve, reject) => {
|
const reader = new FileReader();
|
reader.readAsDataURL(file);
|
reader.onload = () => resolve(reader.result);
|
reader.onerror = error => reject(error);
|
});
|
}
|
function disableButtonStatus() {
|
let btnNode = document.getElementById('uploadFileId');
|
btnNode.classList.add("btnDisabled");
|
}
|
|
function enableButtonStatus() {
|
let btnNode = document.getElementById('uploadFileId');
|
btnNode.classList.remove("btnDisabled");
|
}
|
|
function uploadFile() {
|
disableButtonStatus();
|
var file = document.getElementById("file1").files[0];
|
var formData = new FormData();
|
formData.append("file",file);
|
//读取为二进制
|
var reader = new FileReader();
|
reader.readAsText(file,'utf-8');
|
//显示进度
|
var pro = document.getElementById('pro');
|
pro.max = file.size;
|
pro.value = 0;
|
reader.onprogress = function (e) {
|
pro.value = e.loaded;
|
}
|
reader.onload = function () {
|
var str = reader.result;
|
var rows = str.split('\n');
|
var head = rows[0].split(',');
|
var headSequence = [];
|
for(var i=0;i<head.length;i++){
|
headSequence.push(head[i]);
|
}
|
if((correctSequence.length != head.length) || (correctSequence.toString() != headSequence.toString())){
|
alert('请按照模板来进行导入数据')
|
return
|
}
|
uploadFileToAWS(formData)
|
}
|
}
|
function confirmTrans(transId, isSuccess) {
|
|
AWSService.post(staticResources.transactionUrl, JSON.stringify({
|
"txId":transId,
|
"isSuccess":isSuccess
|
}), function(result){
|
console.log("confirmTrans-" + JSON.stringify(data));
|
document.getElementById("file1").files[0].name = '';
|
enableButtonStatus();
|
}, staticResources.token);
|
|
}
|
function calculateFileSize(fileObject) {
|
if (fileObject.size > 20971520) {
|
alertErrorMessage('文件过大,请选择小于20mb的文件');
|
}
|
}
|
function uploadFileToAWS(data) {
|
fetch('https://sfpi-test.evidentscientific.com.cn:8081/ssbgapi/campaignuser/batchupload', {
|
method: 'POST',
|
body: JSON.stringify({ 'file': data, }),
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': staticResources.token
|
}
|
}).then((data) => {
|
return data.json();
|
}).then(result => {
|
console.log("result" + JSON.stringify(result));
|
if (result.success) {
|
var CampaignMemberDatas = JSON.stringify(result.object);
|
|
Visualforce.remoting.Manager.invokeAction(
|
'{!$RemoteAction.CampaignMemberUploadFileController.saveFile}',
|
CampaignMemberDatas, result.txId
|
function (resultvalue, event) {
|
//2. show file list
|
if (resultvalue.status != 'success') {
|
alertErrorMessage(resultvalue.message);
|
//1. Confirm trans
|
confirmTrans(result.txId, 0);
|
} else {
|
alertErrorMessage('上传成功');
|
confirmTrans(result.txId, 1);
|
}
|
|
// window.location.reload();
|
},
|
{ escape: true }
|
);
|
} else {
|
alertErrorMessage('上传失败请稍后再试!');
|
}
|
}).catch((error) => {
|
console.error('Error:', error);
|
})
|
}
|
function downPdf(fileUrl) {
|
window.open(fileUrl,'_blank');
|
}
|
|
</script>
|
<style>
|
.pdf .num {
|
width: 30%;
|
}
|
|
.pdf.name {
|
width: 30%
|
}
|
|
.pdf.downLink {
|
width: 40%
|
}
|
</style>
|
<apex:form id="theForm">
|
<br/>
|
<br/>
|
<apex:pageBlock id="block">
|
<div style="text-align: center;">
|
<apex:outputPanel id="errorMsg">
|
<apex:pageMessages id="msgContent" escape="false" />
|
</apex:outputPanel>
|
</div>
|
<apex:pageBlockSection id="uploadSection">
|
<!-- <apex:inputFile id="file" value="{!documentData.body}" filename="{!documentData.name}" /> -->
|
<input type="file" id="file1" name="filename"/>
|
<input class="btn" id='uploadFileId' type="Button" value="确认上传" onclick="uploadFile()" />
|
进度:<progress id="pro" value="0"></progress>
|
</apex:pageBlockSection>
|
</apex:pageBlock>
|
</apex:form>
|
|
</apex:page>
|