|
楼主 |
发表于 2017-2-10 10:13:29
|
显示全部楼层
1 attachmentSimple.js修改
initUploader:function(){
var self = this;
var actionUrl = require.toUrl(this.actionUrl);
self.uploader = new Uploader(self.$domNode.find('.x-item-upload'),{
actionUrl:actionUrl,
compress: this.compress,
accept:this.accept
});
self.uploader.retCode = ''; // TODO: 增加retCode字段 2017-02-09
getFileUrl : function(realFileName,storeFileName,ownerID,operateType){
var url = new justep.URL(this.actionUrl);
url.setParam('storeFileName',storeFileName);
url.setParam('ownerID',ownerID);
url.setParam('realFileName',realFileName);
url.setParam('operateType',operateType);
url.setParam('retCode', ((this.uploader.retCode) ? this.uploader.retCode: '')); // TODO: 增加retCode字段参数 2017-02-09
return require.toUrl(url.toString());
},
addItem : function(realFileName,storeFileName,ownerID){
var items = this.getItems();
items.push({
storeFileName :storeFileName,
realFileName : realFileName,
retCode: (this.uploader.retCode) ? this.uploader.retCode: '' // TODO: 增加retCode字段 2017-02-09
});
this.bindData.setValueByID(this.bindRelation,JSON.stringify(items),ownerID);
},
2 调用处对attachmentSimple做定制
/**
* 自定义attachmentSimple1
*/
Model.prototype.reInitAttachmentSimple = function(attachment) {
var self = this;
// 自定义图片显示路径
attachment.previewPicture = function($object){
//console.log("attachment.previewPicture");
var url = $object.retCode.get();
if(url){
return "url('"+url+"')";
}
};
// 自定义图片下载路径
attachment.downloadFile = function(realFileName,storeFileName,ownerID){
//console.log("attachment.downloadFile");
var val = attachment.bindData.getValueByID('att', ownerID);
var data = [];
if(val) {
try {
data = JSON.parse(val);
} catch(e) {
if(console){
console.log("绑定的数据解析失败[value:"+val+"]",e);
}
data =[];
}
$.each(data, function(index, obj) {
if (obj.storeFileName == storeFileName) {
var fileApi = require("$UI/system/components/justep/docCommon/fileApi");
var url = obj.retCode;
url && fileApi.browse(url);
return false;
}
});
}
};
// 增加删除文件事件
attachment.removeItemByStoreID = function(storeFileName, ownerID){
var items = attachment.getItems(ownerID);
var delItem = null;
if(items) {
for(var i =0; i<items.length; i++){
if(items[i].storeFileName == storeFileName){
delItem = items.splice(i,1);
break;
}
}
}
attachment.bindData.setValueByID(attachment.bindRelation, JSON.stringify(items), ownerID);
// -- 判断是否达到图片上限 -- //
var attVal = attachment.bindData.getValue("att");
if (attVal && $.parseJSON(attVal).length < 5) {
$('.x-item-upload.x-upload-hide').removeClass('x-upload-hide'); // 显示上传
}
/*if (delItem) { // TODO: 这里添加删除事件
var url = ;
$.ajax({
url:url,
cache:false,
async:false
}).fail(function(){
throw "delFile error";
});
}*/
}
};
//判断只要特定的文件类型可以上传
uploader.on('onFileSelected',function(event){
var fileType = event.file.type;
//自己判断fileType,如果不符合条件用cancel为true终止选择文件
if(fileType != "image/jpeg" && fileType != "image/png" && fileType != "image/gif"){
event.cancel = true;
project.alert("请上传图片!");
}
//限制大小
$.each(event.files, function(i, file) {
if (file.size > 10485760) {// 10M
project.alert("上传的文件大小不能超过10MB");
event.cancel = true;
return;
}
});
//限制文件个数
var preNum = $.parseJSON(data.getValue("att")).length; // 默认给att赋值“[]”
var curNum = event.files.length;
if (preNum + curNum > 5) {
project.alert("最多上传5个文件!");
event.cancel = true;
return;
}
});
uploader.un('onSuccess');
uploader.on('onSuccess', function(event){
var statusCode = event.response.statusCode;
var message = event.response.message;
if (statusCode == '200') {
uploader.retCode = message;
// -- 执行原始组件的onSuccess回调方法 -- //
attachmentSimple1.$domNode.find('.x-doc-process-bar').hide().css('width','0%');
var _data = {
source: attachmentSimple1,
data:event.data,
fileName:event.data.fileName
};
attachmentSimple1.fireEvent('onSuccess',_data);
attachmentSimple1.changeState("upload");
attachmentSimple1.addItem(_data.data.fileName,_data.data.storeFileName,_data.data.ownerID);
// -- 判断是否达到图片上限 -- //
var attVal = data.getValue("att");
if (attVal && $.parseJSON(attVal).length >= 5) {
$('.x-item-upload').addClass('x-upload-hide');//隐藏上传
}
} else {
project.alert('上传图片失败!');
// 重置进度条
attachmentSimple1.$domNode.find('.x-doc-process-bar').hide().css('width','0%');
}
}); |
|