123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- /**
- * 附件管理。
- * @returns {AttachMent}
- */
- if (typeof AttachMent == 'undefined') {
- AttachMent = {};
- }
- /**
- * 选择非直接上传附件时判断用flash还是html
- */
- AttachMent.addFile=function(obj){
- AttachMent.htmlUpLoadFile(obj);
- }
- /**
- * 选择直接上传附件时判断用flash还是html
- */
- AttachMent.directUpLoadFile=function(obj){
- AttachMent.htmlUpLoadFile(obj);
- }
- /**
- * flash附件非直接上传
- */
- AttachMent.FlexAddFile=function(obj){
- var inputObj=$(obj);
- var fieldName=inputObj.attr("field");
- var parent=inputObj.parent().parent();
- var rights="w";
- var divName="div.attachement";
- var inputName="input[name='" +fieldName +"'],textarea[name='" +fieldName +"']";
- //获取div对象。
- var divObj=$(divName,parent);
- var inputJson=$(inputName,parent);
-
- var aryJson=AttachMent.getFileJsonArray(divObj);
- //文件选择器
- FlexUploadDialog({isSingle:false,callback:function (fileIds,fileNames,filePaths,extPaths){
- if(fileIds==undefined || fileIds=="") return ;
- var aryFileId=fileIds.split(",");
- var aryName=fileNames.split(",");
- var aryExtPath=extPaths.split(",");
-
- for(var i=0;i<aryFileId.length;i++){
- var name=aryName[i];
- AttachMent.addJson(aryFileId[i],name,aryJson);
- }
- //获取json
- var json=JSON2.stringify(aryJson);
- var html=AttachMent.getHtml(aryJson,rights);
- divObj.empty();
- divObj.append($(html));
- inputJson.text(json);
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
-
- }});
- };
- /**
- * 直接附件上传
- */
- AttachMent.directUpLoad=function(obj){
- var inputObj=$(obj);
- var fieldName=inputObj.attr("field");
- var parent=inputObj.parent().parent();
- var rights="w";
- var divName="div.attachement";
- var inputName="input[name='" +fieldName +"'],textarea[name='" +fieldName +"']";
- //获取div对象。
- var divObj=$(divName,parent);
- var inputJson=$(inputName,parent);
-
- var aryJson=AttachMent.getFileJsonArray(divObj);
- //文件上传
- DirectUploadDialog({callback:function (attachs){
- if(attachs==undefined || attachs==[]) return ;
- for(var i=0;i<attachs.length;i++){
- var fileId=attachs[i].fileId;
- var name=attachs[i].fileName;
- AttachMent.addJson(fileId,name,aryJson);
- }
- //获取json
- var json=JSON2.stringify(aryJson);
- var html=AttachMent.getHtml(aryJson,rights);
- divObj.empty();
- divObj.append($(html));
- inputJson.val(json);
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
- }});
- };
- /**
- * html附件上传dialog
- * 附件上传后回显方法,如果需要更改附件 只需要更改此方法的JSON
- * @param conf
- */
- AttachMent.htmlUpLoadFile=function(obj){
- var inputObj=$(obj);
- var fieldName=inputObj.attr("field");
- var parent=inputObj.parent().parent();
- var divName="div.attachement";
- var rights="w";
- var inputName="input[name='" +fieldName +"'],textarea[name='" +fieldName +"']";
- //获取div对象。
- var divObj=$(divName,parent);
- var inputJson=inputObj.prev();//获取到textarea对象
-
- var aryJson=AttachMent.getFileJsonArray(divObj);
- //文件选择器
- HtmlUploadDialog({max:30,callback:function (attachs){
- if(attachs==undefined || attachs==[]) return ;
- for(var i=0;i<attachs.length;i++){
- var fileId=attachs[i].fileId;
- var name=attachs[i].fileName;
- AttachMent.addJson(fileId,name,aryJson);
- }
- var json=JSON2.stringify(aryJson);
- var html=AttachMent.getHtml(aryJson,rights);
- divObj.empty();
- divObj.append($(html));
- inputJson.val(json);
- inputJson.text(json);
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
-
- }});
- };
- /**
- * 删除附件
- * @param obj 删除按钮。
- */
- AttachMent.delFile=function(obj){
- var inputObj=$(obj);
- var parent=inputObj.parent();
- var divObj=parent.parent().parent().parent();
- var spanObj=$("span[name='attach']",parent);
- var divContainer=divObj.parent();
- var fileId=spanObj.attr("fileId");
- var aryJson=AttachMent.getFileJsonArray(divObj);
- AttachMent.delJson(fileId,aryJson);
- var json=JSON2.stringify(aryJson);
- var inputJsonObj=$("textarea",divContainer);
- if(aryJson.length == 0)
- json = "";
- //设置json
- inputJsonObj.val(json);
- //删除span
- parent.remove();
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
- };
- /**
- * 初始化表单的附件字段数据。
- */
- AttachMent.init=function(subRights,parent){
- $("[ctltype='attachment']").each(function(){
-
- var div=$('<div name="div_attachment_container"></div>');
- div.append('<div class="attachement"></div>');
- div.append('<textarea style="display:none" controltype="attachment" name="'+$(this).attr("name")+'" lablename="附件" validate="'+$(this).attr("validate")+'" validatable="'+$(this).attr("validatable")+'">'+this.value+'</textarea>');
- var onclick="AttachMent.addFile(this)";
- if($(this).attr("isdirectupload")=="1"){
- onclick="AttachMent.directUpLoadFile(this)";
- }
- div.append('<a href="javascript:;" field="'+$(this).attr("name")+'" class="link selectFile" atype="select" onclick="'+onclick+'">选择</a>');
- if(this.value==""||typeof(this.value)=="undefined"||this.value.indexOf("¥@@¥") != -1){
- $(this).after(div);
- $(this).remove();
- }
- });
-
- if( $.isEmpty(parent)){
- parent = $("div[name='div_attachment_container']");
- }
- parent.each(function(){
- var me=$(this),
- rights=me.attr("right");
- //如果没有权限属性,可能是子表中的附件
- if(!rights){
- rights=me.closest("[type='subtable']").attr("right");
- }
- //对于弹出框的处理
- if(!$.isEmpty(subRights))
- rights = subRights;
- if(rights){
- rights=rights.toLowerCase();
- }
- if(rights!="w" && rights!="r" && rights!="b"){
- //rights="w";
- }
- // else{
- if(rights=="r"){
- //$("a.attachement").remove();
- //$("a.selectFile").remove();
- $("a[field]",me).remove();
- }
- var atta =$("textarea[controltype='attachment']",me);
- var jsonStr = atta.val();
- if(!$.isEmpty(jsonStr)){
- jsonStr = jsonStr.replaceAll("¥@@¥","\"");
- atta.val(jsonStr);
- }
- var divAttachment=$("div.attachement",me);
- //json数据为空。
- AttachMent.insertHtml(divAttachment,jsonStr,rights);
- // }
- });
- };
- /**
- * 附件插入显示
- * @param {} div
- * @param {} jsonStr
- * @param {} rights 权限 如果不传,默认是r
- */
- AttachMent.insertHtml= function(div,jsonStr,rights){
- if($.isEmpty(jsonStr)) {
- div.empty();
- return ;
- }
- if($.isEmpty(rights)) rights ='r';
- var jsonObj=[];
- try {
- jsonStr = jsonStr.replaceAll("¥@@¥","\"");
- jsonObj = jQuery.parseJSON(jsonStr);
- } catch (e) {
- }
- var html=AttachMent.getHtml(jsonObj,rights);
- div.empty();
- div.append($(html));
- };
- /**
- * 获取文件的html。
- * @param aryJson
- * @returns {String}
- */
- AttachMent.getHtml=function(aryJson,rights){
- var str="";
- var template="";
- //onclick='AttachMent.handleClickItem(this,\"w\")'
- //onclick='AttachMent.handleClickItem(this,\"r\")'
- //path='#path#' <a href='javascript:;' onclick='AttachMent.download(this);' title='下载' class='download'></a>
- //<a href='javascript:;' onclick='AttachMent.download(this);' title='下载' class='download'></a>
- var templateW="<li style='margin-bottom: 10px;margin-top: 10px;'><span class='attachement-span'><span fileId='#fileId#' name='attach' file='#file#' ><a href='javascript:;' id='tt' onclick='AttachMent.download(this);' class='attachment'>#name#</a></span> <a href='javascript:;' onclick='AttachMent.delFile(this);' class='cancel'></a>#preview#</span></li>";
- var templateR="<li style='margin-bottom: 10px;margin-top: 10px;'><span class='attachement-span'><span fileId='#fileId#' name='attach' file='#file#' ><a class='attachment' target='_blank' href='javascript:;' onclick='AttachMent.download(this);' title='#title#'>#name#</a></span>#preview#</span></li>";
- if(rights=="w"){
- template=templateW;
- }
- else{
- template=templateR;
- }
- for(var i=0;i<aryJson.length;i++){
- var obj=aryJson[i];
- var id=obj.id;
- var name=obj.name;
- var path =__ctx +"/platform/system/sysFile/file_" +obj.id+ ".ht";
- var file=id +"," + name ;
- //PDF预览新增代码start 李猛ADD
- var tmp="";
- if(typeof(name)!="undefined"&&name.indexOf(".pdf")>0){
- tmp=template.replace("#file#",file).replace("#preview#","<a href='#path#' style='width:14px;height:14px;margin-left:8px;' class='link search' target='_blank'>预览</a>").replace("#path#",path).replace("#name#", AttachMent.parseName(name)).replace("#title#",name).replace("#fileId#", id);
- }else{
- tmp=template.replace("#file#",file).replace("#preview#","").replace("#path#",path).replace("#name#", AttachMent.parseName(name)).replace("#title#",name).replace("#fileId#", id);
- }
- //PDF预览新增代码end 李猛ADD
- //附件如果是图片就显示到后面
- str+=tmp;
- }
- console.log(str);
- str = "<ul>"+str+"</ul>"; /*改为一个附件就占领一行*/
- return str;
- };
- AttachMent.parseName = function(name){
- if(name.length >30)
- return name.substr(0,30)+"..."; /*暂时去掉截取字段*/
- return name;
- }
- /**
- * 添加json。
- * @param fileId
- * @param name
- * @param path
- * @param aryJson
- */
- AttachMent.addJson=function(fileId,name,aryJson){
- var rtn=AttachMent.isFileExist(aryJson,fileId);
- if(!rtn){
- var obj={id:fileId,name:name};
- aryJson.push(obj);
- }
- };
- /**
- * 删除json。
- * @param fileId 文件ID。
- * @param aryJson 文件的JSON。
- */
- AttachMent.delJson=function(fileId,aryJson){
- for(var i=aryJson.length-1;i>=0;i--){
- var obj=aryJson[i];
- if(obj.id==fileId){
- aryJson.splice(i,1);
- }
- }
- };
- /**
- * 判断文件是否存在。
- * @param aryJson
- * @param fileId
- * @returns {Boolean}
- */
- AttachMent.isFileExist=function(aryJson,fileId){
- for(var i=0;i<aryJson.length;i++){
- var obj=aryJson[i];
- if(obj.id==fileId){
- return true;
- }
- }
- return false;
- };
- /**
- * 取得文件json数组。
- * @param divObj
- * @returns {Array}
- */
- AttachMent.getFileJsonArray=function(divObj){
- var aryJson=[];
- var arySpan=$("span[name='attach']",divObj);
- arySpan.each(function(i){
- var obj=$(this);
- var file=obj.attr("file");
- var aryFile=file.split(",");
- var obj={id:aryFile[0],name:aryFile[1]};
- aryJson.push(obj);
- });
- return aryJson;
- };
- AttachMent.handleClickItem = function(obj,rights){
- var _this = $(obj);
- var span = _this.closest("span");
- var fileId = span.attr("fileId");
-
- var url =__ctx+"/platform/system/sysFile/getJson.ht";
- var sysFile;
- $.ajax({
- url:url,
- data:{
- fileId:fileId
- },
- success:function(data){
-
- if(typeof(data)=="string"){
- $.ligerDialog.error('系统超时请重新登录!','提示');
- return ;
- }
-
- if(data.status!=1){
- $.ligerDialog.error(data.msg,'提示');
- }else{
- sysFile = data.sysFile;
- var path = _this.attr("path");
- if(/(doc)|(docx)|(xls)|(xlsx)|(ppt)|(pptx)/ig.test(sysFile.ext)){
- var h=screen.availHeight-35;
- var w=screen.availWidth-5;
-
- var vars="top=0,left=0,height="+h+",width="+w+",status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1";
- var showUrl = __ctx+"/platform/system/sysFile/office.ht?fileId=" + fileId;
-
- if(/(doc)|(docx)/ig.test(sysFile.ext)){//word才支持在线编辑
- if(rights=='w'){
- showUrl+="&rights=w";
- }
- }else{
- showUrl+="&rights=r";
- }
-
- window.open(showUrl,"myWindow",vars);
- }else{
- window.open(path,'_blank');
- }
- }
- }
-
-
- });
- };
- /**
- * 下载
- */
- AttachMent.download = function(obj){
- var me = $(obj);
- //var span = me.siblings("span"); 初始代码
- //新增代码开始
- var span;
- var clas = me.attr("class");
- if(clas=="download"){
- span=me.siblings("span");
- }else if(clas=="attachment"){
- span=me.parent("span");
- }
- //新增代码结束
- if(span.length >0)
- var fileId = span.attr("fileId");
- var path =__ctx+"/platform/system/sysFile/file_"+fileId+".ht?download=true";
- window.open(path,'_blank');
- }
-
|