FFile_wev8.js
7.22 KB
define("FFile_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" data-form="${form}">\t{@if readonly}\t\t<div class="wev-field wev-vertical{@if required} wev-field-required{@/if}">\t\t\t<div {@if !field.label}style="display:none;"{@/if}>${field.label}</div>\t\t\t<div>\t\t\t\t<div class="wev-file-wrapper">\t\t\t\t</div>\t\t\t\t<input type="hidden" name="fieldname_${field.name}" fieldid="${field.id}"/>\t\t\t\t<input type="hidden" name="type_${field.name}" value="file" />\t\t\t</div>\t\t</div>\t{@else}\t\t<div class="wev-field wev-vertical{@if required} wev-field-required{@/if}">\t\t\t<div {@if !field.label}style="display:none;"{@/if}>${field.label}</div>\t\t\t<div>\t\t\t\t<div class="wev-file-wrapper">\t\t\t\t\t<div class="wev-upload"> <i class="wev-css-icon wev-plus-icon"></i>\t\t\t\t\t\t<input type="file" name="file" single="single"/>\t\t\t\t\t\t<span>$i18n{SELECT_FILE}</span>\t\t\t\t\t</div>\t\t\t\t\t<div class="wev-upload-tip wev-upload-hide"></div>\t\t\t\t</div>\t\t\t\t<input type="hidden" name="fieldname_${field.name}" fieldid="${field.id}"/>\t\t\t\t<input type="hidden" name="type_${field.name}" value="file" />\t\t\t</div>\t\t</div>\t{@/if}</div>'}),define(["mUtil","Component","i18n"],function(F,a,e){return a.init(function(e){var g={};a.super(this,e),this.type="FFile",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0;var y=this.viewModel={form:"",field:{label:"",name:"",id:"",value:""},required:!1,readonly:!1,standalone:!0};this.dbValueHasSet=!1,this.beforeMount=function(){y.required&&!y.field.label&&(y.field.label="")};var l,b,n,d,C=[],s={},x={};this.mounted=function(){var a=this;b=a.$el.find(".wev-upload"),l=a.$el.find(".wev-field"),n=a.$el.find(".wev-file-wrapper"),d=a.$el.children(".wev-comp-"+a.type),b.on("change","input",function(e){var i=this.files;if(e.stopPropagation(),i&&i[0]){var l,n=i[0],d=n.name,t=n.size,a=d.lastIndexOf("."),s=~a&&d.substring(a+1).toLowerCase();l=1048576<=t?(t/1024/1024).toFixed(2)+"M":1024<=t?Math.floor(t/1024)+"K":t+"B";var r=$(this),f="file"+y.id+F.UUID();r.hide().attr("name",f);var o=['<div class="'+g.getClassName("wev-file wev-file-edit",s)+'">','<div class="wev-progress-line"><div></div></div>','<span class="wev-ellipsis">'+d+"("+l+")</span>","<i></i>","</div>"].join(""),u=$(o);u.append(r),b.before(u).prepend("<input type='file' name='file' single='single'/>");var v=$(".wev-progress-line",u),p=new FormData;p.append(f,n);var c=$("#"+y.form),m=c.find("input[name='workflowid']").val(),h=c.find("input[name='modelid']").val();p.append("workflowid",m),p.append("modelid",h),g.uploadingCountPlusOne();var w=F.getActionUrl("service.FormComponent",{action:"uploadFile"});F.ajax(w,p,function(e,i){if(v.remove(),$("input[name='"+f+"']").length){var t=JSON.parse(e);if("1"==t.status){r.remove();var a=t.data.docid;C.push(a),x[a]={docid:a,name:d,size:l,suffix:s}}else C.push(f),x[f]={docid:f,name:d,size:l,suffix:s,value:n};g.uploadingCountMinusOne()}},{type:"POST",processData:!1,contentType:!1,xhr:function(){var e=$.ajaxSettings.xhr();return e.upload&&e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var i=Math.round(100*e.loaded/e.total);v.children("div").css("width",i.toString()+"%")}},!1),e},error:function(e){v.remove(),$("input[name='"+f+"']").length&&(C.push(f),x[f]={docid:f,name:d,size:l,suffix:s,value:n},g.uploadingCountMinusOne())}})}});var i=function(){var e=$(this).data("fileid");if($(this).data("docid"),a.getData(),e){var i=F.getInstance(y.form),t=i?i.viewModel.empowStr:"";F.previewFile(e,s[e],t)}},t=function(){if(!y.readonly){var e=$(this).parent(),i=e.index(),t=C[i];$(".wev-progress-line",e).length?g.uploadingCountMinusOne():t&&C.splice(i,1),e.remove()}};d.on("click",".wev-file, .wev-file-edit > i",function(e){($(this).hasClass("wev-file")&&i||t).call(this),e.stopPropagation()}),y.field.value&&this.setValue(y.field.value,!0)},this.getData=function(){var i={},e=y.field.name;return C.forEach(function(e){0==e.indexOf("file"+y.id)&&(i[e]=x[e].value)}),i["fieldname_"+e]=g.getFieldIDValue(),i["type_"+e]="file",i["fieldmecid_"+e]=y.id,i},this.getShowData=function(){var t,i,e=F.parseJSON(y.field.name+"_showvalue",(t="",C.forEach(function(e){var i=x[e];t+='<li class="'+g.getClassName("wev-file",i.suffix)+'"><span>'+i.name+"("+i.size+")</span></li>"}),'<ul class="wev-file-wrapper">'+t+"</ul>"));return e[y.field.name+"_filevalue"]=(i={},C.forEach(function(e){0==e.indexOf("file"+y.id)&&(i[e]=x[e])}),i),e[y.field.name]=g.getFieldIDValue(),e},this.reset=function(){g.setValue(y.field.value,y.field.defHtml),l.removeClass("wev-required-remind")},this.checkRequired=function(){var e=y.required&&!C.length,i=y.field.label||F.getLabel(156,"附件");return l[e?"addClass":"removeClass"]("wev-required-remind"),e&&i},this.setRequired=function(e){y.required=e,l.toggleClass("wev-field-required",e),!e&&l.removeClass("wev-required-remind")},this.checkModeDocCategory=function(e){if(!e){var i=this.$el;F.getLabel(388817,"附件上传目录未设置!",function(e){b.addClass("wev-upload-hide"),i.find(".wev-upload-tip").removeClass("wev-upload-hide").html(e)})}},this.setValueByDB=function(e){this.dbValueHasSet=!0,y.field.value=e,this.setValue(e,!0)},this.setValue=function(t,a,l){if(F.isFunction(a)&&(l=a),!(t=String(t||""))){var e=g.getValueHtml();return a&&(y.field.defHtml=e),g.setValue(t,e,l)}var i=F.getActionUrl(this.type,{action:"parseFiles",values:t},this.pageid);F.getJSON(i,function(e){var i=g.getValueHtml(e.data);a&&(y.field.defHtml=i),g.setValue(t,i,l)})},this.isReadyForSubmit=function(){var e=i<=0;return e||F.getLabel(6194,"正在上传中,请稍后再操作",function(e){y.field.label&&(e+=" ("+y.field.label+")"),Mobile_NS.msg(e)}),e},g.setValue=function(e,i,t){$(".wev-file",this.$el).remove(),y.readonly?n.append(i):b.before(i),C=e&&e.split(",")||[];var a=y.field.filevalue;if(a)for(var l in a)C.push(l);this.dbValueHasSet&&F.trigger("dataload",this.pageid,this.id),t&&t.call(this)},g.getFieldIDValue=function(){var i="";return C.forEach(function(e){isNaN(e)||(i&&(i+=","),i+=e)}),i},g.getValueHtml=function(e){var i="",t=function(e){var i=e.suffix,t=e.name,a=e.size,l=e.imagefileid,n=e.docid;return l&&(s[l]=t),x[e.docid]=e,y.readonly?['<div class="'+g.getClassName("wev-file",i)+'" data-fileid="'+l+'" data-docid="'+n+'">','<span class="wev-ellipsis">'+t+"("+a+")</span>","</div>"].join(""):['<div class="'+g.getClassName("wev-file wev-file-edit",i)+'" data-fileid="'+l+'" data-docid="'+n+'">','<span class="wev-ellipsis">'+t+"("+a+")</span>","<i></i>","</div>"].join("")};F.isArray(e)&&e.forEach(function(e){i+=t(e)});var a=y.field.filevalue;if(a)for(var l in a){var n=a[l];i+=t(n)}return i},g.getClassName=function(e,i){return~["jpg","jpeg","png","gif","bmp"].indexOf(i)?e+=" wev-pic-file":"doc"==i||"docx"==i?e+=" wev-word-file":"xls"==i||"xlsx"==i?e+=" wev-excel-file":"pdf"==i?e+=" wev-pdf-file":"htm"==i||"html"==i?e+=" wev-html-file":"ppt"==i||"pptx"==i?e+=" wev-ppt-file":"zip"!=i&&"rar"!=i||(e+=" wev-zip-file"),e};var i=0;for(var t in g.uploadingCountPlusOne=function(){i++,$(".wev-comp-FButton[target-form='"+y.form+"'] .wev-btn-wrapper",this.$container).addClass("disabled")},g.uploadingCountMinusOne=function(){--i<=0&&$(".wev-comp-FButton[target-form='"+y.form+"'] .wev-btn-wrapper",this.$container).removeClass("disabled")},g)F.isFunction(g[t])&&(g[t]=g[t].bind(this))})});