({
|
|
|
// 设置table 各栏属性
|
getColumnAndAction: function(cmp) {
|
var actions = [
|
{ label: 'Edit', name: 'edit' },
|
{ label: 'Delete', name: 'delete' },
|
{ label: 'View', name: 'view' }
|
];
|
// 为了锁行,强行设置了宽度
|
cmp.set('v.columns', [{
|
label: '产品型号',
|
fieldName: 'Asset_Model_No__c',
|
type: 'text',
|
wrapText: false,
|
hideDefaultActions: true,
|
fixedWidth: 110
|
},
|
{
|
label: 'CODE',
|
fieldName: 'OTCode__c',
|
type: 'text',
|
wrapText: false,
|
hideDefaultActions: true,
|
fixedWidth: 137
|
},
|
{
|
label: '产品名称',
|
fieldName: 'productName__c',
|
type: 'text',
|
wrapText: false,
|
hideDefaultActions: true,
|
fixedWidth: 340
|
},
|
{
|
label: '数量',
|
fieldName: 'Count_Text__c',
|
type: 'text',
|
wrapText: false,
|
hideDefaultActions: true,
|
fixedWidth: 50
|
},
|
{
|
label: '箱号',
|
fieldName: 'CaseNumber__c',
|
type: 'text',
|
wrapText: false,
|
hideDefaultActions: true,
|
fixedWidth: 100
|
},
|
{
|
label: '货物情况',
|
fieldName: 'agencyGoodStatus__c',
|
type: 'text',
|
wrapText: true,
|
hideDefaultActions: true,
|
editable: true,
|
fixedWidth: 110
|
},
|
]);
|
|
},
|
pageInit: function(cmp) {
|
//获取分页显示的5条数据
|
var pageDate = cmp.get("v.currentData");
|
//获取箱号list
|
var cntList = [];
|
var caseNumberMap = {};
|
var str = '';
|
//存放每个箱号的第一条 箱号的id
|
for (var i = 0; i < pageDate.length; i++) {
|
//获取id
|
var id = pageDate[i].Id;
|
//获取箱号id
|
var caseNumberId = id + ':' + i + ':CaseNumber__c';
|
//获取箱号值
|
var caseNumber = pageDate[i].CaseNumber__c;
|
|
if (str == '') {
|
str = caseNumber;
|
var button = id + ':' + i + ':ButtonColumn';
|
cntList.push(button);
|
} else {
|
if (str != caseNumber) {
|
var button = id + ':' + i + ':ButtonColumn';
|
cntList.push(button);
|
}
|
}
|
|
|
}
|
|
//延迟加载
|
window.setTimeout($A.getCallback(function() {
|
for (var j = 0; j < cntList.length; j++) {
|
var cnt = cntList[j];
|
document.getElementById(cnt).style.display = "block";
|
}
|
}),
|
1000
|
);
|
},
|
// 获取数据
|
geteSign: function(cmp) {
|
//this.showSpinner(cmp);
|
var action = cmp.get("c.geteSigns");
|
var DNName = cmp.get("v.DNName").toString();
|
action.setParams({
|
'DNName': DNName,
|
});
|
action.setCallback(this, function(response) {
|
var state = response.getState();
|
if (state === "SUCCESS") {
|
var resultData = response.getReturnValue();
|
var isSubmit = resultData.isSubmit;
|
cmp.set("v.IsInsert", isSubmit);
|
if (!!resultData && !!resultData.eSignFormLineItems &&
|
!!resultData.eSignForm) {
|
var data = resultData.eSignFormLineItems;
|
cmp.set('v.lineItemSize', data.length);
|
var pageSize = cmp.get('v.pageSize');
|
|
var eSignForm = resultData.eSignForm;
|
cmp.set("v.data", data);
|
//给经销商验收结果赋值
|
cmp.set("v.HospitalAcceptanceResults", eSignForm.agencyAcceptResult__c);
|
//CHAN-BWCBL8 精琢技术 wql 20201225 start
|
//如果驳回理由有值 并且经销商驳回复选框为true并且经销商审批状态不批准的时候才显示
|
if (eSignForm.denyReason__c && eSignForm.agencyReject__c && eSignForm.agencyAutoSignUpStatus__c == '不批准') {
|
cmp.set("v.ISDenyReason", true);
|
}
|
//CHAN-BWCBL8 精琢技术 wql 20201225 end
|
|
cmp.set("v.eSignForm", resultData.eSignForm);
|
var tempData = this.getTempData(data, 1, pageSize);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set("v.dataSize", tempData.length);
|
cmp.set("v.currentData", tempData);
|
this.hideSpinner(cmp);
|
} else {
|
cmp.set("v.errorMessage", '加载失败,请重新打开此页面!');
|
this.showErrorToast(cmp);
|
this.hideSpinner(cmp);
|
}
|
} else {
|
cmp.set("v.errorMessage", '加载失败,请重新打开此页面!');
|
this.showErrorToast(cmp);
|
this.hideSpinner(cmp);
|
}
|
|
});
|
$A.enqueueAction(action);
|
},
|
// 明细页 table 首页功能实现
|
handleHome: function(cmp) {
|
var pageSize = cmp.get('v.pageSize');
|
var pageNumber = cmp.get('v.pageNumber');
|
// var data = cmp.get('v.data');
|
var currentData = cmp.get('v.currentData');
|
|
//获取输入的value值
|
var key = document.getElementById('searchInput').value;
|
var data = cmp.get('v.data');
|
var tempDataList = [];
|
var pageSize = cmp.get('v.pageSize');
|
|
if (key) {
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == key) {
|
tempDataList.push(data[i]);
|
}
|
|
}
|
//设置分页
|
var tempData = this.getTempData(tempDataList, 1, pageSize);
|
cmp.set('v.pageNumber', 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(tempDataList, tempData));
|
cmp.set("v.searchSize", tempDataList.length);
|
|
|
} else {
|
//显示全部箱
|
var tempData = this.getTempData(data, 1, pageSize);
|
cmp.set('v.pageNumber', 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set('v.searchSize', null);
|
|
}
|
|
|
|
},
|
// 明细页 table 尾页功能实现
|
handleLast: function(cmp) {
|
var pageSize = cmp.get('v.pageSize');
|
var pageNumber = cmp.get('v.pageNumber');
|
var data = cmp.get('v.data');
|
//获取数据长度
|
var size = data.length;
|
//获取尾页页码
|
var pages = size % pageSize == 0 ? (size / pageSize) : (Math.floor(size / pageSize) + 1);
|
|
var currentData = cmp.get('v.currentData');
|
|
//获取输入的value值
|
var key = document.getElementById('searchInput').value;
|
var tempDataList = [];
|
|
if (key) {
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == key) {
|
tempDataList.push(data[i]);
|
}
|
|
}
|
//设置分页
|
var tempData = this.getTempData(tempDataList, pages, pageSize);
|
cmp.set('v.pageNumber', pages);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(tempDataList, tempData));
|
cmp.set("v.searchSize", tempDataList.length);
|
|
|
} else {
|
//显示全部箱
|
var tempData = this.getTempData(data, pages, pageSize);
|
cmp.set('v.pageNumber', pages);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set('v.searchSize', null);
|
|
}
|
|
|
|
|
|
},
|
// 明细页 table 下一页功能实现
|
handleNext: function(cmp) {
|
var pageSize = cmp.get('v.pageSize');
|
var pageNumber = cmp.get('v.pageNumber');
|
var data = cmp.get('v.data');
|
var currentData = cmp.get('v.currentData');
|
|
//获取输入的value值
|
var key = document.getElementById('searchInput').value;
|
var tempDataList = [];
|
|
if (key) {
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == key) {
|
tempDataList.push(data[i]);
|
}
|
|
}
|
//设置分页
|
var tempData = this.getTempData(tempDataList, pageNumber + 1, pageSize);
|
cmp.set('v.pageNumber', pageNumber + 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(tempDataList, tempData));
|
cmp.set("v.searchSize", tempDataList.length);
|
|
|
} else {
|
//显示全部箱
|
var tempData = this.getTempData(data, pageNumber + 1, pageSize);
|
cmp.set('v.pageNumber', pageNumber + 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set('v.searchSize', null);
|
|
}
|
|
|
|
|
},
|
// 明细页 table 上一页功能实现
|
handlePrev: function(cmp) {
|
var pageSize = cmp.get('v.pageSize');
|
var pageNumber = cmp.get('v.pageNumber');
|
var data = cmp.get('v.data');
|
var currentData = cmp.get('v.currentData');
|
//获取输入的value值
|
var key = document.getElementById('searchInput').value;
|
var tempDataList = [];
|
|
if (key) {
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == key) {
|
tempDataList.push(data[i]);
|
}
|
|
}
|
//设置分页
|
var tempData = this.getTempData(tempDataList, pageNumber - 1, pageSize);
|
cmp.set('v.pageNumber', pageNumber - 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(tempDataList, tempData));
|
cmp.set("v.searchSize", tempDataList.length);
|
|
|
} else {
|
//显示全部箱
|
var tempData = this.getTempData(data, pageNumber - 1, pageSize);
|
cmp.set('v.pageNumber', pageNumber - 1);
|
cmp.set('v.currentData', tempData);
|
cmp.set('v.data', data);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set('v.searchSize', null);
|
|
}
|
|
|
},
|
// 计算并返回当前页码的数据
|
getTempData: function(data, pageNumber, pageSize) {
|
var tempData = data.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
|
return tempData;
|
},
|
// 判断当前页是否是最后一页
|
isLastPage: function(data, tempData) {
|
if (tempData.length == 0 ||
|
tempData[tempData.length - 1].Id == data[data.length - 1].Id) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
// 保存更改内容到当前明细内容
|
saveEdition: function(cmp, draftValues) {
|
if (!!draftValues && draftValues.length > 0) {
|
var currentData = cmp.get('v.currentData');
|
for (var i = 0; i < currentData.length; i++) {
|
for (var j = 0; j < draftValues.length; j++) {
|
if (currentData[i].Id == draftValues[j].Id) {
|
currentData[i].agencyGoodStatus__c = draftValues[j].agencyGoodStatus__c;
|
break;
|
}
|
}
|
}
|
cmp.set('v.currentData', currentData);
|
}
|
cmp.set('v.draftValues', []);
|
},
|
// 判断是否部分签收
|
IsWhole: function(cmp) {
|
var currentData = cmp.get('v.currentData');
|
if (currentData) {
|
|
for (var j = 0; j < currentData.length; j++) {
|
|
if (currentData[j].agencyGoodStatus__c != '完好') {
|
//如果有明细不完好的置成true
|
cmp.set('v.IsWhole', true);
|
break;
|
}
|
}
|
|
}
|
},
|
// 明细页点击下一步保存录入表数据到数据库,
|
// 如果保存成功,跳转文件上传页
|
// 如果保存失败,弹出错误toast,保存在当页
|
saveeSign: function(cmp) {
|
var action = cmp.get("c.saveeSignFormEntry");
|
var data = cmp.get('v.data');
|
var eSignForm = cmp.get('v.eSignForm');
|
var IsSubmit = cmp.get('v.IsSubmit');
|
//增加扫描标识,batch取消驳回勾选 2020/12/30 wql start
|
var IsAgencyScan = cmp.get('v.IsAgencyScan');
|
//增加扫描标识,batch取消驳回勾选 2020/12/30 wql end
|
|
var HospitalAcceptanceResults = cmp.get('v.HospitalAcceptanceResults');
|
var AgencyWorkflowEmailBack = cmp.get('v.AgencyWorkflowEmailBack');
|
action.setParams({
|
'eSignFormLineItems': data,
|
'eSignForm': eSignForm,
|
'IsSubmit': IsSubmit,
|
'IsAgencyScan': IsAgencyScan,
|
'entryType': '经销商收货',
|
'AgencyWorkflowEmailBack': AgencyWorkflowEmailBack
|
});
|
this.showSpinner(cmp);
|
action.setCallback(this, function(response) {
|
this.hideSpinner(cmp);
|
var state = response.getState();
|
if (state === "SUCCESS") {
|
var resultData = response.getReturnValue();
|
if (resultData.isSuccess == true) {
|
cmp.set('v.recordId', resultData.result);
|
cmp.set('v.parentId', resultData.result);
|
|
if (IsSubmit) {
|
|
//返回首页带值start
|
cmp.set('v.agencyDNSignUpStatus', resultData.agencyDNSignUpStatus);
|
cmp.set('v.HPDNSignUpStatus', resultData.HPDNSignUpStatus);
|
cmp.set('v.agencySubmit', resultData.agencySubmit);
|
cmp.set('v.DNNameSpare', resultData.DNNameSpare);
|
//返回首页带值 end
|
|
alert('提交成功');
|
cmp.set('v.IsSubmit', false);
|
//2020/12/02 提交成功后显示退回首页按钮 start
|
cmp.set("v.submitAfterShow", true);
|
const icon = document.getElementById('submitAgency');
|
icon.style.textAlign = 'center';
|
//2020/12/02 提交成功后显示退回首页按钮 end
|
this.BackToHomePage(cmp);
|
}
|
} else {
|
cmp.set("v.errorMessage", resultData.result);
|
this.showErrorToast(cmp);
|
}
|
} else {
|
cmp.set("v.errorMessage", '保存失败,请重新加载!');
|
this.showErrorToast(cmp);
|
}
|
|
});
|
$A.enqueueAction(action);
|
|
},
|
// 首页跳转至明细页逻辑,先判断是否勾选内容
|
handleHomePageNextClick: function(cmp) {
|
|
|
//存一下检索框里的值 不然会被清掉
|
cmp.set('v.searchCase', cmp.get('v.searchCaseKey'));
|
var contentCheck = cmp.get('v.check');
|
if (contentCheck) {
|
if (confirm('请再次确认DN号/收货单位与随货同行单一致。')) {
|
cmp.set('v.HomePage', false);
|
cmp.set('v.DetailsPage', true);
|
//隐藏列
|
cmp.set('v.hideCheckboxColumn', true);
|
|
}
|
} else {
|
alert('请勾选上述内容已阅读。');
|
return;
|
}
|
//当点击适用按钮以后,页面上显示全部适用按钮
|
cmp.set('v.applyButton', true);
|
cmp.set('v.allApplyButton', false);
|
|
},
|
// 明细也跳转至文件上传页逻辑,先提示是否填写完毕
|
handleDetailsPageNextClick: function(cmp) {
|
|
//存一下检索框里的值 不然会被清掉
|
var key = document.getElementById('searchInput').value;
|
cmp.set('v.searchCaseKey', key);
|
|
var isState = cmp.get('v.IsInsert');
|
var AgencyClick = cmp.get('v.AgencyClick');
|
if (AgencyClick) {
|
//直接跳转明细页
|
cmp.set('v.DetailsPage', false);
|
cmp.set('v.uploadFilePage', true);
|
|
} else {
|
if (confirm('请确认是否填写完成货物情况?')) {
|
//增加扫描标识,batch取消驳回勾选 2020/12/30 wql start
|
cmp.set('v.IsAgencyScan', true);
|
//增加扫描标识,batch取消驳回勾选 2020/12/30 wql end
|
this.saveeSign(cmp);
|
cmp.set('v.DetailsPage', false);
|
cmp.set('v.uploadFilePage', true);
|
// var a = window.setInterval($A.getCallback(function() {
|
// var content = document.getElementById("uploadFileDiv").getElementsByTagName("span")[2];
|
// var b = cmp.find("uploadFile");
|
// if (content) {
|
// if (content.style.color != '#f4f5fa') {
|
// content.innerText = '1.选择附件';
|
// content.style.color = '#f4f5fa';
|
// content.style.backgroundColor = '#0f218b';
|
// } else {
|
// window.clearInterval(a);
|
// }
|
// }
|
// }),
|
// 1000
|
// );
|
}
|
}
|
|
},
|
//给提交按钮一个默认的值
|
submitClick: function(cmp, event) {
|
var IsWhole = cmp.get('v.IsWhole');
|
var IsHaveFile = cmp.get('v.IsHaveFile');
|
var IsUpLoad = cmp.get('v.IsUpLoad');
|
|
var AgencyClick = cmp.get('v.AgencyClick');
|
|
//获取经销商邮箱
|
var value = cmp.find("inputCmp").get("v.value");
|
|
//判断邮箱是否有效
|
var validity = cmp.find("inputCmp").get("v.validity");
|
|
//①存在不完好的货物明细 为ture ②size<0说明没有上传文件
|
if (!IsHaveFile) {
|
alert('请您上传照片后再点提交!');
|
|
} else if (!IsUpLoad && IsHaveFile) {
|
alert('请您点击上传文件按钮上传!');
|
} else if (IsUpLoad && !IsHaveFile) {
|
alert('您并没有选择文件!');
|
} else {
|
if (validity.valid) {
|
cmp.set('v.AgencyWorkflowEmailBack', value);
|
//勾选
|
cmp.set('v.IsSubmit', true);
|
//扫描勾选
|
cmp.set('v.IsAgencyScan', true);
|
|
//设置一个flag用于避免提交两次
|
cmp.set('v.AgencyClick', true);
|
if (confirm('请确认是否提交?')) {
|
this.saveeSign(cmp);
|
}
|
|
} else {
|
alert('请您填写正确的邮箱地址或者不填写!');
|
}
|
|
}
|
|
},
|
//弹出 成功提示toast 方法
|
showSuccessToast: function(cmp) {
|
$A.util.removeClass(cmp.find('successDiv'), 'slds-hide');
|
window.setTimeout($A.getCallback(function() {
|
$A.util.addClass(cmp.find('successDiv'), 'slds-hide');
|
}),
|
5000
|
);
|
},
|
//弹出 错误提示toast 方法
|
showErrorToast: function(cmp) {
|
const width = document.documentElement.clientWidth;
|
const contentDOM1 = document.getElementById('errorSonDiv1');
|
contentDOM1.style.width = width * 0.6 + 'px';
|
const contentDOM2 = document.getElementById('errorSonDiv2');
|
contentDOM2.style.width = width * 0.38 + 'px';
|
contentDOM2.style.height = '4rem';
|
const contentDOM3 = document.getElementById('errorSonDiv3');
|
contentDOM3.style.width = width - 150 + 'px';
|
|
$A.util.removeClass(cmp.find('errorDiv'), 'slds-hide');
|
window.setTimeout($A.getCallback(function() {
|
$A.util.addClass(cmp.find('errorDiv'), 'slds-hide');
|
}),
|
5000
|
);
|
},
|
// 展示 等待框
|
showSpinner: function(cmp) {
|
// remove slds-hide class from mySpinner
|
var spinner = cmp.find("mySpinner");
|
$A.util.removeClass(spinner, "slds-hide");
|
},
|
// 隐藏 等待框
|
hideSpinner: function(cmp) {
|
// add slds-hide class from mySpinner
|
var spinner = cmp.find("mySpinner");
|
$A.util.addClass(spinner, "slds-hide");
|
},
|
//返回明细页
|
handleShowFielePageNextClick: function(cmp) {
|
|
//存一下检索框里的值 不然会被清掉
|
cmp.set('v.searchCase', cmp.get('v.searchCaseKey'));
|
|
cmp.set('v.DetailsPage', true);
|
cmp.set('v.uploadFilePage', false);
|
//设置成 默认 false
|
cmp.set('v.IsWhole', false);
|
cmp.set('v.IsHaveFile', false);
|
//隐藏列
|
cmp.set('v.hideCheckboxColumn', true);
|
|
//2020/12/02 点击上一步的时候隐藏退回按钮
|
cmp.set("v.submitAfterShow", false);
|
},
|
//返回首页
|
handleShowPageNextClick: function(cmp) {
|
//存一下检索框里的值 不然会被清掉
|
var key = document.getElementById('searchInput').value;
|
cmp.set('v.searchCaseKey', key);
|
cmp.set('v.HomePage', true);
|
cmp.set('v.DetailsPage', false);
|
},
|
//用户 单独改写某一行的货物情况时
|
GoodsChanged: function(cmp) {
|
var currentData = cmp.get('v.currentData');
|
for (var i = 0; i < currentData.length; i++) {
|
|
//获取id
|
var id = currentData[i].Id + ':' + i + ':' + currentData[i].CaseNumber__c;
|
//获取页面上的货物情况
|
var goodStatus = document.getElementById(id).value;
|
//给分页数组实际赋值
|
currentData[i].agencyGoodStatus__c = goodStatus;
|
//清空id值,避免for循环循环赋值
|
id = '';
|
|
}
|
cmp.set('v.currentData', currentData);
|
//当修改某一列的时候显示 适用按钮 隐藏全部适用按钮
|
cmp.set('v.applyButton', true);
|
cmp.set('v.allApplyButton', false);
|
},
|
getDivSpan: function() {
|
var xxx = document.getElementById("uploadFileDiv").getElementsByTagName("span");
|
//延迟加载
|
window.setTimeout($A.getCallback(function() {
|
var content = document.getElementById("uploadFileDiv").getElementsByTagName("span")[2];
|
if (content) {
|
if (content.style.color != '#f4f5fa') {
|
content.innerText = '1.选择附件';
|
content.style.color = '#f4f5fa';
|
content.style.backgroundColor = '#0f218b';
|
}
|
}
|
|
}),
|
1000
|
);
|
|
},
|
//主页跳首页
|
BackToHomePage: function(cmp, event, helper) {
|
if (confirm('确认回到首页吗?')) {
|
var messageEvent = cmp.getEvent('componentEvent');
|
messageEvent.setParam('ShowDNNameQR', cmp.get('v.DNName'));
|
|
messageEvent.setParam('agencyDNSignUpStatus', cmp.get('v.agencyDNSignUpStatus'));
|
messageEvent.setParam('HPDNSignUpStatus', cmp.get('v.HPDNSignUpStatus'));
|
messageEvent.setParam('agencySubmit', cmp.get('v.agencySubmit'));
|
messageEvent.setParam('DNNameSpare', cmp.get('v.DNName'));
|
|
// messageEvent.setParam('IsAgencyShow',cmp.get('v.IsSubmit'));
|
messageEvent.fire();
|
cmp.set("v.HomePage", false);
|
}
|
|
|
// helper.BackToHomePage(cmp);
|
},
|
//明细页 适用按钮 根据箱号划分数组data
|
//①当前页面js赋值
|
//②后台data数据实际修改值
|
BatchUpdateByCase: function(cmp, event) {
|
//获取按钮中属性name == 获取参数 箱号
|
var caseNumber = event.target.name;
|
//获取按钮中的属性 id == 获取参数 id
|
var idx = event.target.id;
|
//拼接 货物情况的id
|
var goodId = idx + caseNumber;
|
//获取这一箱第一个的的货物情况
|
var goodStatus = document.getElementById(goodId).value;
|
|
if (confirm('请确认是否适用于整箱?')) {
|
var data = cmp.get('v.data');
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == caseNumber) {
|
data[i].agencyGoodStatus__c = goodStatus;
|
}
|
|
}
|
//后台data变了 但页面不能及时变
|
cmp.set('v.data', data);
|
|
//获取分页的行项目 利用value赋值 及时变
|
var currentData = cmp.get('v.currentData');
|
for (var j = 0; j < currentData.length; j++) {
|
if (currentData[j].CaseNumber__c == caseNumber) {
|
//拼接id
|
var id = currentData[j].Id + ':' + j + ':' + currentData[j].CaseNumber__c;
|
document.getElementById(id).value = currentData[j].agencyGoodStatus__c;
|
id = '';
|
} else {
|
//避免影响其他其他列修改
|
|
//获取id
|
var idx = currentData[j].Id + ':' + j + ':' + currentData[j].CaseNumber__c;
|
//获取页面上的货物情况
|
var goodStatus = document.getElementById(idx).value;
|
currentData[j].agencyGoodStatus__c = goodStatus;
|
}
|
|
}
|
//最后更新后台data
|
cmp.set('v.currentData', currentData);
|
//当点击适用按钮以后,页面上显示全部适用按钮
|
cmp.set('v.applyButton', false);
|
cmp.set('v.allApplyButton', true);
|
}
|
},
|
//明细页 全部适用按钮 根据箱号划分数组data
|
//①当前页面js赋值
|
//②后台data数据实际修改值
|
allBatchUpdateByCase: function(cmp, event) {
|
//获取按钮中属性name == 获取参数 箱号
|
var caseNumber = event.target.name;
|
//获取按钮中的属性 id == 获取参数 id
|
var idx = event.target.id;
|
//拼接 货物情况的id
|
var goodId = idx + caseNumber;
|
//获取这一箱第一个的的货物情况
|
var goodStatus = document.getElementById(goodId).value;
|
|
var data = cmp.get('v.data');
|
|
for (var i = 0; i < data.length; i++) {
|
//全部更新成 上述value值的货物情况
|
|
data[i].agencyGoodStatus__c = goodStatus;
|
|
|
}
|
//后台data变了 但页面不能及时变
|
cmp.set('v.data', data);
|
|
//获取分页的行项目 利用value赋值 及时变
|
var currentData = cmp.get('v.currentData');
|
for (var j = 0; j < currentData.length; j++) {
|
|
//拼接id
|
var id = currentData[j].Id + ':' + j + ':' + currentData[j].CaseNumber__c;
|
document.getElementById(id).value = currentData[j].agencyGoodStatus__c;
|
id = '';
|
|
|
}
|
//最后更新后台data
|
cmp.set('v.currentData', currentData);
|
|
},
|
//页面上检索功能
|
searchByCaseNumber: function(cmp, event) {
|
//获取输入的value值
|
var key = document.getElementById('searchInput').value;
|
var data = cmp.get('v.data');
|
//定义一个空数组 用于存放按箱分类后的data
|
var tempDataList = [];
|
|
var pageSize = cmp.get('v.pageSize');
|
//判断搜索框内是否有值
|
if (key) {
|
cmp.set('v.searchFlag', true);
|
for (var i = 0; i < data.length; i++) {
|
//获取所有name为箱号的input 批量更新
|
if (data[i].CaseNumber__c == key) {
|
tempDataList.push(data[i]);
|
}
|
|
}
|
//设置分页
|
var tempData = this.getTempData(tempDataList, 1, pageSize);
|
cmp.set("v.isLastPage", this.isLastPage(tempDataList, tempData));
|
cmp.set("v.dataSize", tempData.length);
|
cmp.set("v.currentData", tempData);
|
cmp.set('v.pageNumber', 1);
|
cmp.set("v.searchSize", tempDataList.length);
|
|
} else {
|
cmp.set('v.searchFlag', false);
|
//显示全部箱
|
var data = cmp.get('v.data');
|
var tempData = this.getTempData(data, 1, pageSize);
|
cmp.set("v.isLastPage", this.isLastPage(data, tempData));
|
cmp.set("v.dataSize", tempData.length);
|
cmp.set("v.currentData", tempData);
|
cmp.set('v.pageNumber', 1);
|
cmp.set('v.searchSize', null);
|
|
}
|
},
|
|
MAX_FILE_SIZE: 4608000, //Max file size 4.5 MB
|
CHUNK_SIZE: 750000, //Chunk Max size 750Kb
|
uploadHelper: function(component, event) {
|
// start/show the loading spinner
|
component.set("v.showLoadingSpinner", true);
|
// get the selected files using aura:id [return array of files]
|
var fileInput = component.find("fileId").get("v.files");
|
// get the first file using array index[0]
|
var file = fileInput[0];
|
//var test = this.compress(file);
|
var self = this;
|
var pdf = file.type;
|
//增加可以上传的图片类型 精琢技术 thh 2021-09-13
|
if (pdf == 'image/jpeg' || pdf == 'image/png') {
|
// create a FileReader object
|
var objFileReader = new FileReader();
|
// set onload function of FileReader object
|
objFileReader.onload = $A.getCallback(function() {
|
var image = new Image();
|
image.src = objFileReader.result;
|
var fileContents = objFileReader.result;
|
image.onload = function() {
|
var maxSize;
|
var imgWidth;
|
var imgHeight;
|
//图片小于300k则不压缩
|
if (file.size > 0 && file.size < 307200) {
|
imgWidth = this.width;
|
imgHeight = this.height;
|
} else {
|
if (Math.sqrt(this.width * this.height) / Math.sqrt(2) > 1200) {
|
maxSize = 1200;
|
} else {
|
maxSize = Math.sqrt(this.width * this.height) / Math.sqrt(2);
|
}
|
var imgScale = self.imgScaleW(maxSize, this.width, this.height);
|
imgWidth = imgScale.width,
|
imgHeight = imgScale.height;
|
}
|
|
var canvas = document.createElement("canvas");
|
var ctx = canvas.getContext("2d");
|
|
canvas.width = imgWidth;
|
canvas.height = imgHeight;
|
|
ctx.drawImage(this, 0, 0, imgWidth, imgHeight);
|
//增加可以上传的图片类型 精琢技术 thh 2021-09-13 start
|
if (pdf == 'image/jpeg') {
|
fileContents = canvas.toDataURL("image/jpeg", 0.9);
|
} else if (pdf == 'image/png') {
|
fileContents = canvas.toDataURL("image/png", 0.9);
|
}
|
//增加可以上传的图片类型 精琢技术 thh 2021-09-13 end
|
var base64 = "base64,";
|
var dataStart = fileContents.indexOf(base64) + base64.length;
|
|
fileContents = fileContents.substring(dataStart);
|
// call the uploadProcess method
|
self.uploadProcess(component, file, fileContents);
|
};
|
});
|
} else {
|
//event
|
var objFileReader = new FileReader();
|
// set onload function of FileReader object
|
objFileReader.onload = $A.getCallback(function() {
|
|
var fileContents = objFileReader.result;
|
var base64 = "base64,";
|
var dataStart = fileContents.indexOf(base64) + base64.length;
|
|
if (fileContents.length > 4608000) {
|
component.set("v.showLoadingSpinner", false);
|
alert("提醒,文件压缩大小不能超过4.5M,请重新上传。");
|
return;
|
} else {
|
fileContents = fileContents.substring(dataStart);
|
// call the uploadProcess method
|
self.uploadProcess(component, file, fileContents);
|
}
|
});
|
}
|
objFileReader.readAsDataURL(file);
|
},
|
|
uploadProcess: function(component, file, fileContents) {
|
// set a default size or startpostiton as 0
|
var startPosition = 0;
|
// calculate the end size or endPostion using Math.min() function which is return the min. value
|
var endPosition = Math.min(
|
fileContents.length,
|
startPosition + this.CHUNK_SIZE
|
);
|
// start with the initial chunk, and set the attachId(last parameter)is null in begin
|
this.uploadInChunk(
|
component,
|
file,
|
fileContents,
|
startPosition,
|
endPosition,
|
""
|
);
|
},
|
|
uploadInChunk: function(
|
component,
|
file,
|
fileContents,
|
startPosition,
|
endPosition,
|
attachId
|
) {
|
// call the apex method 'saveChunk'
|
var getchunk = fileContents.substring(startPosition, endPosition);
|
//增加文件列表删除功能 精琢技术 thh 2021-08-31 start
|
//把压缩完的src和文件名存入map
|
var filesrc = component.get("v.FileSrc");
|
var emptyflag = true;
|
for (var key in filesrc) {
|
var emptyflag = false;
|
}
|
if (emptyflag) {
|
filesrc[file.name] = getchunk;
|
} else {
|
for (var key in filesrc) {
|
if (key == file.name) {
|
filesrc[file.name] = filesrc[file.name] + getchunk;
|
} else {
|
filesrc[file.name] = getchunk;
|
console.log('filesrc:' + filesrc);
|
}
|
}
|
}
|
component.set('v.FileSrc', filesrc);
|
//增加文件列表删除功能 精琢技术 thh 2021-09-01 end
|
var baseFile = component.get("v.baseFile");
|
var base64List = component.get("v.base64List");
|
//用于判断上传同一个文件提示
|
var messageFlag = component.get("v.messageFlag");
|
//判断是否出现过网络不好,上传失败的情况
|
var errorFlag = component.get("v.errorFlag");
|
if (!base64List) {
|
if (baseFile != getchunk) {
|
//用于判断上传同一个文件提示
|
component.set("v.messageFlag", false);
|
messageFlag = component.get("v.messageFlag");
|
var action = component.get("c.saveChunk");
|
action.setParams({
|
parentId: component.get("v.parentId"),
|
fileName: file.name,
|
base64Data: encodeURIComponent(getchunk),
|
contentType: file.type,
|
fileId: attachId
|
});
|
// set call back
|
action.setCallback(this, function(response) {
|
// store the response / Attachment Id
|
attachId = response.getReturnValue();
|
//增加文件列表删除功能 精琢技术 thh 2021-09-02 start
|
//关联附件ID和附件名
|
var attachmentID = component.get("v.attachmentID");
|
attachmentID[file.name] = attachId;
|
component.set("v.attachmentID", attachmentID);
|
//增加文件列表删除功能 精琢技术 thh 2021-09-02 end
|
var state = response.getState();
|
if (state === "SUCCESS") {
|
// update the start position with end postion
|
startPosition = endPosition;
|
endPosition = Math.min(
|
fileContents.length,
|
startPosition + this.CHUNK_SIZE
|
);
|
// check if the start postion is still less then end postion
|
// then call again 'uploadInChunk' method ,
|
// else, diaply alert msg and hide the loading spinner
|
if (startPosition < endPosition) {
|
this.uploadInChunk(
|
component,
|
file,
|
fileContents,
|
startPosition,
|
endPosition,
|
attachId
|
);
|
} else {
|
//判断上传文件内容 提示一次信息
|
var base = component.get("v.getchunk");
|
if (!base || (base && base != getchunk)) {
|
// alert("您已经成功上传文件。");
|
component.set("v.getchunk", getchunk);
|
}
|
|
alert("您已经成功上传文件。\n请点击提交后退出。");
|
//用于提交按钮判断是否有已上传的文件
|
component.set('v.IsUpLoad', true);
|
//用于判断上传同一个文件提示
|
component.set("v.messageFlag", true);
|
messageFlag = component.get("v.messageFlag");
|
component.set("v.showLoadingSpinner", false);
|
//标识预览图片名字 精琢技术 thh 2021-09-15 start
|
var isUploadName = component.get("v.isUploadName");
|
var fileName = component.find("fileId").get("v.files")[0]['name'];
|
if (isUploadName[fileName]) {
|
var str = '<span>当前文件:</span><span id="nowfile" class="field-title" style="color:Green;" title="' + fileName + '">' + fileName + '</span>';
|
document.getElementById("uploadicon").style.display = 'inline-block';
|
} else {
|
var str = '<span>当前文件:</span><span id="nowfile" class="field-title" style="color:Gray;" title="' + fileName + '">' + fileName + '</span>';
|
document.getElementById("uploadicon").style.display = 'none';
|
}
|
var obj = document.getElementById('filenow');
|
obj.innerHTML = str;
|
//标识预览图片名字 精琢技术 thh 2021-09-15 end
|
//上传成功后文件列表的文件名变色 精琢技术 thh 2021-09-26 start
|
var count = component.get("v.fileUpLoadSize");
|
var fileName = component.get("v.flUpLoadName");
|
if (count > 0) {
|
//列出文件名01 所有文件名都用逗号隔开 根据逗号拆分,存放数组
|
var nameList = fileName.split(',');
|
for (var i = 0; i < nameList.length; i++) {
|
for (var j = i + 1; j < nameList.length; j++) {
|
if (nameList[i] == nameList[j]) { //第一个等同于第二个,splice方法删除第二个
|
nameList.splice(j, 1);
|
j--;
|
}
|
}
|
}
|
//存放到变量中 用于上一页下一页连点
|
component.set('v.nameUpLoadList', nameList);
|
//重新定义选中文件的数量
|
component.set('v.fileSize', nameList.length);
|
console.log("nameList:" + component.get('v.nameUpLoadList'));
|
var isUploadName = component.get("v.isUploadName");
|
if (nameList.length > 0) {
|
var strList = '';
|
for (var i = 0; i < nameList.length; i++) {
|
var num = Number(i) + 1;
|
var id = 'file0' + num;
|
//标识文件是否已经上传 精琢技术 thh 2021-09-26 start
|
if (isUploadName[nameList[i]]) {
|
var str = '<button id="' + id + '" class="slds-button" title="Field 3" style="text-align:left;width:250px;font-weight:bold;font-size: 15px;color:Green;" name="' + nameList[i] + '">' + nameList[i] + '</button><br>';
|
} else {
|
var str = '<button id="' + id + '" class="slds-button" title="Field 3" style="text-align:left;width:250px;font-weight:bold;font-size: 15px;color:Gray;" name="' + nameList[i] + '">' + nameList[i] + '</button><br>';
|
}
|
//标识文件是否已经上传 精琢技术 thh 2021-09-26 end
|
//拼接p标签 列出文件名id不同
|
strList += str;
|
}
|
var obj = document.getElementById('file00');
|
obj.innerHTML = strList;
|
}
|
}
|
//上传成功后文件列表的文件名变色 精琢技术 thh 2021-09-26 end
|
}
|
// handel the response errors
|
} else if (state === "INCOMPLETE") {
|
alert("From server: " + response.getReturnValue());
|
component.set("v.showLoadingSpinner", false);
|
component.set("v.errorFlag", true);
|
|
} else if (state === "ERROR") {
|
var errors = response.getError();
|
component.set("v.showLoadingSpinner", false);
|
component.set("v.errorFlag", true);
|
if (errors) {
|
if (errors[0] && errors[0].message) {
|
console.log("Error message: " + errors[0].message);
|
}
|
} else {
|
console.log("Unknown error");
|
}
|
}
|
});
|
// enqueue the action
|
$A.enqueueAction(action);
|
|
}
|
|
} else if (!base64List.includes(getchunk) || (base64List.includes(getchunk) && errorFlag)) {
|
//网络波动进来以后 置成false
|
component.set("v.errorFlag", false);
|
//用于判断上传同一个文件提示
|
component.set("v.messageFlag", false);
|
messageFlag = component.get("v.messageFlag");
|
var action = component.get("c.saveChunk");
|
action.setParams({
|
parentId: component.get("v.parentId"),
|
fileName: file.name,
|
base64Data: encodeURIComponent(getchunk),
|
contentType: file.type,
|
fileId: attachId
|
});
|
|
// set call back
|
action.setCallback(this, function(response) {
|
// store the response / Attachment Id
|
attachId = response.getReturnValue();
|
//增加文件列表删除功能 精琢技术 thh 2021-09-02 start
|
//关联附件ID和附件名
|
var attachmentID = component.get("v.attachmentID");
|
attachmentID[file.name] = attachId;
|
component.set("v.attachmentID", attachmentID);
|
//增加文件列表删除功能 精琢技术 thh 2021-09-02 end
|
var state = response.getState();
|
if (state === "SUCCESS") {
|
// update the start position with end postion
|
startPosition = endPosition;
|
endPosition = Math.min(
|
fileContents.length,
|
startPosition + this.CHUNK_SIZE
|
);
|
// check if the start postion is still less then end postion
|
// then call again 'uploadInChunk' method ,
|
// else, diaply alert msg and hide the loading spinner
|
if (startPosition < endPosition) {
|
this.uploadInChunk(
|
component,
|
file,
|
fileContents,
|
startPosition,
|
endPosition,
|
attachId
|
);
|
} else {
|
//判断上传文件内容 提示一次信息
|
var base = component.get("v.getchunk");
|
if (!base || (base && base != getchunk)) {
|
// alert("您已经成功上传文件。");
|
component.set("v.getchunk", getchunk);
|
}
|
alert("您已经成功上传文件。\n请点击提交后退出。");
|
//用于提交按钮判断是否有已上传的文件
|
component.set('v.IsUpLoad', true);
|
//用于判断上传同一个文件提示
|
component.set("v.messageFlag", true);
|
messageFlag = component.get("v.messageFlag");
|
component.set("v.showLoadingSpinner", false);
|
//标识预览图片名字 精琢技术 thh 2021-09-15 start
|
var isUploadName = component.get("v.isUploadName");
|
var fileName = component.find("fileId").get("v.files")[0]['name'];
|
if (isUploadName[fileName]) {
|
var str = '<span>当前文件:</span><span id="nowfile" class="field-title" style="color:Green;" title="' + fileName + '">' + fileName + '</span>';
|
document.getElementById("uploadicon").style.display = 'inline-block';
|
} else {
|
var str = '<span>当前文件:</span><span id="nowfile" class="field-title" style="color:Gray;" title="' + fileName + '">' + fileName + '</span>';
|
document.getElementById("uploadicon").style.display = 'none';
|
}
|
var obj = document.getElementById('filenow');
|
obj.innerHTML = str;
|
//标识预览图片名字 精琢技术 thh 2021-09-15 end
|
//上传成功后文件列表的文件名变色 精琢技术 thh 2021-09-26 start
|
var count = component.get("v.fileUpLoadSize");
|
var fileName = component.get("v.flUpLoadName");
|
if (count > 0) {
|
//列出文件名01 所有文件名都用逗号隔开 根据逗号拆分,存放数组
|
var nameList = fileName.split(',');
|
for (var i = 0; i < nameList.length; i++) {
|
for (var j = i + 1; j < nameList.length; j++) {
|
if (nameList[i] == nameList[j]) { //第一个等同于第二个,splice方法删除第二个
|
nameList.splice(j, 1);
|
j--;
|
}
|
}
|
}
|
//存放到变量中 用于上一页下一页连点
|
component.set('v.nameUpLoadList', nameList);
|
//重新定义选中文件的数量
|
component.set('v.fileSize', nameList.length);
|
console.log("nameList:" + component.get('v.nameUpLoadList'));
|
var isUploadName = component.get("v.isUploadName");
|
if (nameList.length > 0) {
|
var strList = '';
|
for (var i = 0; i < nameList.length; i++) {
|
var num = Number(i) + 1;
|
var id = 'file0' + num;
|
//标识文件是否已经上传 精琢技术 thh 2021-09-26 start
|
if (isUploadName[nameList[i]]) {
|
var str = '<button id="' + id + '" class="slds-button" title="Field 3" style="text-align:left;width:250px;font-weight:bold;font-size: 15px;color:Green;" name="' + nameList[i] + '">' + nameList[i] + '</button><br>';
|
} else {
|
var str = '<button id="' + id + '" class="slds-button" title="Field 3" style="text-align:left;width:250px;font-weight:bold;font-size: 15px;color:Gray;" name="' + nameList[i] + '">' + nameList[i] + '</button><br>';
|
}
|
//标识文件是否已经上传 精琢技术 thh 2021-09-26 end
|
//拼接p标签 列出文件名id不同
|
strList += str;
|
}
|
var obj = document.getElementById('file00');
|
obj.innerHTML = strList;
|
}
|
}
|
//上传成功后文件列表的文件名变色 精琢技术 thh 2021-09-26 end
|
}
|
// handel the response errors
|
} else if (state === "INCOMPLETE") {
|
alert("From server: " + response.getReturnValue());
|
component.set("v.showLoadingSpinner", false);
|
component.set("v.errorFlag", true);
|
} else if (state === "ERROR") {
|
var errors = response.getError();
|
component.set("v.showLoadingSpinner", false);
|
component.set("v.errorFlag", true);
|
if (errors) {
|
if (errors[0] && errors[0].message) {
|
console.log("Error message: " + errors[0].message);
|
}
|
} else {
|
console.log("Unknown error");
|
}
|
}
|
});
|
// enqueue the action
|
$A.enqueueAction(action);
|
} else {
|
if (messageFlag) {
|
alert("您已经上传过该文件了!")
|
component.set("v.showLoadingSpinner", false);
|
}
|
|
}
|
//存放上传过的文件base64 数组
|
var baseFile = component.get("v.baseFile");
|
var base64List = component.get("v.base64List");
|
if (baseFile) {
|
component.set('v.baseFile', baseFile + ',' + getchunk);
|
// nameList.pust(name);
|
} else {
|
component.set('v.baseFile', getchunk);
|
}
|
baseFile = component.get("v.baseFile");
|
var base64List = baseFile.split(',');
|
component.set("v.base64List", base64List);
|
// component.set("v.showLoadingSpinner", false);
|
// baseFile = getchunk;
|
|
},
|
|
/**
|
* 图片压缩
|
* @param maxWidth 最大宽度或最大高度
|
* @param width 宽度
|
* @param height 高度
|
* @returns {___anonymous1968_1969}
|
*/
|
imgScaleW: function(maxWidth, width, height) {
|
var imgScale = {};
|
var w = 0;
|
var h = 0;
|
if (width <= maxWidth && height <= maxWidth) { // 如果图片宽高都小于限制的最大值,不用缩放
|
imgScale = {
|
width: width,
|
height: height
|
};
|
} else {
|
if (width >= height) { // 如果图片宽大于高
|
w = maxWidth;
|
h = Math.ceil(maxWidth * height / width);
|
} else { // 如果图片高大于宽
|
h = maxWidth;
|
w = Math.ceil(maxWidth * width / height);
|
}
|
imgScale = {
|
width: w,
|
height: h
|
};
|
}
|
return imgScale;
|
},
|
DrawImage1: function(maxWidth, width, height) {
|
var imgScale = {};
|
var w = 0;
|
var h = 0;
|
if (width > 0 && height > 0) {
|
if (width / height >= 1) {
|
if (width > maxWidth) {
|
|
imgScale = {
|
width: maxWidth,
|
height: (height * maxWidth) / width
|
};
|
} else {
|
imgScale = {
|
width: width,
|
height: height
|
};
|
}
|
} else {
|
if (height > maxWidth) {
|
imgScale = {
|
width: maxWidth,
|
height: (width * maxWidth) / height
|
};
|
} else {
|
imgScale = {
|
width: width,
|
height: height
|
};
|
}
|
}
|
}
|
|
return imgScale;
|
},
|
|
|
})
|