var File = { initConfig : {}, //姝ら厤缃槸鍏ㄥ眬鐨勶紝浼氬奖鍝嶉〉闈笂鎵€鏈夌殑鎸囦护鐨勬覆鏌擄紝渚嬪闇€瑕佽嚜瀹氫箟妯$増銆佽嚜瀹氫箟娓叉煋鍑芥暟绛夌瓑銆 hasPageOffice : false, baseUrl : Common.webRoot()+"/platform/file/filemanagecontroller", officeUrl : Common.webRoot()+"", filePartConfig : '', templateCache : '
\ \
\
\
\ {{bigGroup.LXMC}}\
\
\ \
\
\
\

\ \ {{$index + 1}}\ {{((group.FJDX?(group.fjdxtip = group.FJDX+"MB浠ュ唴"):"")&&false)||""}}\ {{group.ZLXMC}} 锛堟敮鎸亄{group.fjdxtip}}{{group.FJLX}}鏂囦欢锛堻/i>\ \ \ \ \ \ \ \

\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\

\ {{item.ZZWJMC}}\

\
\ \ \ \ \
\

\ \ {{item.WJMC}}\

\
{{item.WJDX |fileSizeSHow}}\

{{item.SCSJ}}  \

\ \ {{item.fileItem.progress}}% \ \

\

\ \ \

\
\ \ \ \
\
\
\
\
', checkPageOffice : function () { var bodyHtml = document.body.innerHTML; if (bodyHtml.indexOf("EC852C85-C2FC-4c86-8D6B-E4E97C92F821") < 0) { var poObjectStr = ""; var explorer = window.navigator.userAgent; //ie if (explorer.indexOf("MSIE") >= 0) { poObjectStr = "
" + "\r\n" + "" + "
" } else { poObjectStr = "
" + "\r\n" + "" + "
" } $(document.body).append(poObjectStr); } try { var sCap = document.getElementById("PageOfficeCtrl1").Caption; if (sCap == null) { return false; } else { return true; } } catch (e) { return false; } }, template : function (tElement,tAttrs) { return File.templateCache; }, controller: function ($scope, FileUploader,$http,$timeout) { $scope.groupsAllFileNames = []; $scope.hideUploadBtn = false; $scope.hideDownloadBtn = false; $scope.hideDeleteBtn = false; $scope.currentGroup = null; $scope.readOnly = false; //娴嬭瘯鏁版嵁 $scope.AllFileData = []; $scope.webRoot = Common.webRoot(); $scope.CustomAddress = {}; if($scope.config && $scope.config.customAddress){ $scope.CustomAddress = $scope.config.customAddress; } var FileUploadObject = { createFileUploader : function (FileUploader,config) { var FileUploadConfig = $scope.Tranform.tranformConfig(config); var UploaderCallback = null; if(FileUploadConfig && FileUploadConfig.uploaderCallback){ UploaderCallback = FileUploadConfig.uploaderCallback; } //杩囨护鍣ㄥ垪琛 var uploaderFilters = [ { name: 'filetype', fn: function(item) { if($scope.currentGroup && $scope.currentGroup.FJLX){ var CurrentFileType = $scope.currentGroup.FJLX.split(';'); var fileNameSuffix = ''; if (item.name.lastIndexOf('.') > -1) { fileNameSuffix = "*." + item.name.substring(item.name.lastIndexOf('.')+1); } fileNameSuffix = new String(fileNameSuffix); fileNameSuffix = fileNameSuffix.toLowerCase(); for (var i=0;i< CurrentFileType.length;i++) { if (fileNameSuffix == CurrentFileType[i].toLowerCase()) { return true; } } return false; }else { return true } } }, { name : 'maxSize', fn : function (item) { if($scope.currentGroup.FJDX){ var defaultMaxSize = $scope.currentGroup.FJDX * 1024 * 1024; //璁剧疆鏂囦欢澶у皬鏃朵互M浣滀负鍩哄噯鍗曚綅,鍒ゆ柇澶у皬鏃朵互B浣滀负姣斿鍗曚綅銆 return ((item.size - defaultMaxSize) < 0); }else { return true; } } }, { name : 'minSize', fn : function (item) { if(item.size > 0){ return true; }else { return false; } } }, { name : 'fileCount', fn : function (item) { if ($scope.currentGroup && $scope.currentGroup.WJSL) { var wjsl = $scope.currentGroup.WJSL; var hasSize = $scope.currentGroup.fileList.length; if(hasSize >= wjsl){ return false; }else { return true; } } else { return true; } }, failedMsg :'鏂囦欢瓒呰繃闄愬埗' } ]; //閰嶇疆椤逛腑鐨 杩囨护鍣 if (FileUploadConfig.filters && typeof FileUploadConfig.filters.length == 'number' ) { uploaderFilters = uploaderFilters.concat(FileUploadConfig.filters); }; var uploader = new FileUploader({ url: FileUploadConfig.uploadUrl, filters : uploaderFilters, onAfterAddingFile : function (fileItem) { for(var i=0;i<$scope.groupsAllFileNames.length;i++){ for(var j=0;j<$scope.groupsAllFileNames[i].zlxList.length;j++){ if($scope.groupsAllFileNames[i].zlxList[j].ZLXDM == $scope.currentGroup.ZLXDM){ for(var k=0;k<$scope.groupsAllFileNames[i].zlxList[j].fileList.length;k++){ if($scope.groupsAllFileNames[i].zlxList[j].fileList[k].WJMC == fileItem.file.name){ //鍦ㄥ綋鍓嶅皬鍒嗙被涓凡缁忓惈鏈変笌褰撳墠鏂囦欢鐩稿悓鐨勬枃浠跺悕绉 var type = fileItem.file.name.substr(fileItem.file.name.lastIndexOf(".") + 1, fileItem.file.name.length); var name = fileItem.file.name.substr(0,fileItem.file.name.lastIndexOf(".")); var patt = new RegExp(name + "-鍓湰"); var regCount = 1; //鍖归厤褰撳墠鏂囦欢鐨勭浉鍚屽悕绉扮殑鍓湰鎬绘暟 for(var z = 0;z<$scope.groupsAllFileNames[i].zlxList[j].fileList.length;z++){ if (patt.test($scope.groupsAllFileNames[i].zlxList[j].fileList[z].WJMC)){ regCount ++ } } if(regCount == 1){ fileItem.file.name = name + "-鍓湰." + type; }else { fileItem.file.name = name + "-鍓湰" +regCount + "." + type; } break; } } } } } var fileName = fileItem.file.name; var fileType = ""; if (fileName.indexOf(".") != -1) { fileType = fileName.substr(fileName.lastIndexOf(".") + 1, fileName.length).toLowerCase(); } var fileInfoData = { "ZLXDM" : $scope.currentGroup.ZLXDM, "YWSJID" :FileUploadConfig.YWSJID, "WJDX" : parseFloat((fileItem.file.size/1024).toFixed(2)), "WJMC" : fileName, "WJLX" : fileType, "PXH" : '', "fileItem" : fileItem }; fileItem.formData = { data : fileInfoData, }; fileItem.progressType = 'info'; fileItem.progressValue = ''; fileItem.progress = 0; if(UploaderCallback && UploaderCallback.onAfterAddingFile && $.isFunction(UploaderCallback.onAfterAddingFile)){ var canUpload = UploaderCallback.onAfterAddingFile(fileInfoData) if (!canUpload) { //鏍¢獙涓嶆垚鍔燂紝鍒犻櫎闃熷垪璇ユ枃浠 fileItem.remove() return false; } } for(var i=0;i<$scope.AllFileData.length;i++){ for(var j=0;j<$scope.AllFileData[i].zlxList.length;j++){ if($scope.AllFileData[i].zlxList[j].ZLXDM == $scope.currentGroup.ZLXDM){ $scope.AllFileData[i].zlxList[j].fileList.push(fileInfoData) } } } if(FileUploadConfig.autoUpload){ fileItem.upload(); } }, onWhenAddingFileFailed : function (item, filter, options) { if(filter){ switch (filter.name){ case 'filetype': Common.dialog({ type : "msg", content : '鏂囦欢鏍煎紡涓嶇鍚? }); break; case 'maxSize' : Common.dialog({ type : "msg", content : '鏂囦欢澶ぇ锛屽凡瓒呰繃'+$scope.currentGroup.FJDX+"M" }); break; case 'minSize' : Common.dialog({ type : "msg", content : '鏂囦欢涓虹┖鎴栨棤鏁? }); break; case 'fileCount' : Common.dialog({ type : "msg", content : filter.failedMsg }); break; default : var msg = '鏈煡鐨勯敊璇痜ilter.name='+filter.name; if (filter.failedMsg) { msg = filter.failedMsg; } Common.dialog({ type : "msg", content : msg }); break } } if(UploaderCallback && UploaderCallback.onWhenAddingFileFailed && $.isFunction(UploaderCallback.onWhenAddingFileFailed)){ UploaderCallback.onWhenAddingFileFailed(item, filter, options) } }, onAfterAddingAll : function (addedItems) { if(UploaderCallback && UploaderCallback.onAfterAddingAll && $.isFunction(UploaderCallback.onAfterAddingAll)){ UploaderCallback.onAfterAddingAll(addedItems) } }, onBeforeUploadItem : function (item) { if(UploaderCallback && UploaderCallback.onBeforeUploadItem && $.isFunction(UploaderCallback.onBeforeUploadItem)){ UploaderCallback.onBeforeUploadItem(item) } }, onProgressItem : function (item, progress) { if(UploaderCallback && UploaderCallback.onProgressItem && $.isFunction(UploaderCallback.onProgressItem)){ UploaderCallback.onProgressItem(item, progress) } FileUploadObject.onProgress(item, progress); }, onSuccessItem : function (item, response, status, headers) { if(UploaderCallback && UploaderCallback.onSuccessItem && $.isFunction(UploaderCallback.onSuccessItem)){ UploaderCallback.onSuccessItem(item, response, status, headers) } var callback = function () { Common.dialog({ type: "msg", content: "涓婁紶鎴愬姛", style: 6 }); }; $scope.Actions.queryFiles(callback); }, onErrorItem :function (item, response, status, headers) { if(UploaderCallback && UploaderCallback.onErrorItem && $.isFunction(UploaderCallback.onErrorItem)){ UploaderCallback.onErrorItem(item, response, status, headers) } Common.RBTips("涓婁紶澶辫触",2) }, onCancelItem : function (item, response, status, headers) { if(UploaderCallback && UploaderCallback.onCancelItem && $.isFunction(UploaderCallback.onCancelItem)){ UploaderCallback.onCancelItem(item, response, status, headers) } }, onCompleteItem : function (item, response, status, headers) { if(UploaderCallback && UploaderCallback.onCompleteItem && $.isFunction(UploaderCallback.onCompleteItem)){ UploaderCallback.onCompleteItem(item, response, status, headers) } }, onProgressAll : function (progress) { if(UploaderCallback && UploaderCallback.onProgressAll && $.isFunction(UploaderCallback.onProgressAll)){ UploaderCallback.onProgressAll(progress) } FileUploadObject.onProgress(null, progress); }, onCompleteAll : function () { if(UploaderCallback && UploaderCallback.onCompleteAll && $.isFunction(UploaderCallback.onCompleteAll)){ UploaderCallback.onCompleteAll() } $scope.Actions.queryFiles({ZLXDM : 'XLXX'}); } }); return uploader; }, /** * 涓婁紶杩涘害鏉℃牱寮忓睍绀 * */ onProgress : function(fileItem, progress) { var type = 'info'; if (progress < 25) { type = 'info'; } else if (progress < 50) { type = 'info'; } else if (progress < 75) { type = 'info'; } else { type = 'info'; } if (fileItem) { fileItem.progressType = type; fileItem.progress = progress; if (progress >5 && progress < 99) { fileItem.progressValue = '姝e湪涓婁紶'; } else { fileItem.progressValue = ''; } } }, /** * 鏂囦欢鏄剧ず銆佷繚瀛樼殑澶у皬鏍煎紡 * */ reckonFileSize : function (fileSize) { if((fileSize/1024) < 1){ return fileSize + "B" }else if(1 <= fileSize/1024 && fileSize/1024 < 1024){ return (fileSize /1024) + "K" }else { return (fileSize /1024/1024).toFixed(2) + "M" } } }; $scope.Event = { handleClickName : function (item) { if($scope.config && $scope.config.callback && $scope.config.callback.afterClickName && $.isFunction($scope.config.callback.afterClickName)){ $scope.config.callback.afterClickName(item); } }, handleClickSelectFile : function (bigGroup,group) { if ($scope.config && $scope.config.callback && $scope.config.callback.afterClickSelectFile && $.isFunction($scope.config.callback.afterClickSelectFile)){ $scope.config.callback.afterClickSelectFile(group); } $scope.currentBigGroup = bigGroup; $scope.currentGroup = group; var WJSL = $scope.currentGroup.WJSL ? $scope.currentGroup.WJSL : false; if (WJSL && $scope.currentGroup.fileList && $scope.currentGroup.fileList.length >= WJSL){ Common.dialog({ type:'msg', content: '鏂囦欢鏁伴噺涓嶈兘瓒呰繃'+WJSL+'涓? }); return false }else { $("#fileSelect"+$scope.config.uploadId).click(); } }, handleClickAddPaper : function (group) { $scope.Actions.addPaperInfo(group); }, handleClickDelete : function (group,$event) { if((group.fileList && group.fileList.length) || (group.paperList && group.paperList.length)){ var index = Common.dialog({ type:'confirm', content:'鏄惁纭畾鍒犻櫎璇ョ被鍒墍鏈夐檮浠讹紵', callback :function () { $scope.Actions.deletePaperByDmYwsjid(group.ZLXDM); $scope.Actions.deleteFileByDmYwsjId(group); if($scope.config && $scope.config.callback && $scope.config.callback.afterClickDelete && $.isFunction($scope.config.callback.afterClickDelete)){ $scope.config.callback.afterClickDelete(group); } }, cancel:function () { Common.dialog({ type:'close', index:index }) return false; } }); }else{ Common.dialog({ type : 'msg', style :0, content:'姝ょ被鍒笅鏃犳暟鎹? }) } $event.stopPropagation(); }, handleClickDownloadFileItem : function (item) { $scope.Actions.downloadFile(item); if($scope.config && $scope.config.callback && $scope.config.callback.afterClickDownloadFileItem && $.isFunction($scope.config.callback.afterClickDownloadFileItem)){ $scope.config.callback.afterClickDownloadFileItem(item); } }, handleClickDeleteFileItem : function (item,$event) { var index = Common.dialog({ type:'confirm', content:'鏄惁鍒犻櫎姝ゆ枃浠?, callback :function () { $scope.Actions.deleteFile(item); if($scope.config && $scope.config.callback && $scope.config.callback.afterClickDeleteFileItem && $.isFunction($scope.config.callback.afterClickDeleteFileItem)){ $scope.config.callback.afterClickDeleteFileItem(item); } }, cancel:function () { Common.dialog({ type:'close', index:index }) return false; } }); $event.stopPropagation(); }, handleClickDeletePaperItem : function (group, item, $event) { var index = Common.dialog({ type:'confirm', content:'鏄惁鍒犻櫎姝ゆ枃浠?, callback :function () { $scope.Actions.deletePaper(group, item); }, cancel:function () { Common.dialog({ type:'close', index:index }) return false; } }); $event.stopPropagation(); }, handleClickUploadFileItem : function (item) { if($scope.config && $scope.config.callback && $scope.config.callback.afterClickUploadFileItem && $.isFunction($scope.config.callback.afterClickUploadFileItem)){ $scope.config.callback.afterClickUploadFileItem(item); } }, handleClickChange : function (item) { }, handleChangeSort : function (item, sort) { if($scope.config && $scope.config.callback && $scope.config.callback.afterChangeSort && $.isFunction($scope.config.callback.afterChangeSort)){ $scope.config.callback.afterChangeSort(item, sort); } $scope.Actions.sortFile(item,sort) }, handlePackDownload :function () { }, handleChangePXH : function (item) { if(item && item.WJID && item.PXH && parseInt(item.PXH)){ $scope.Actions.sortFile(item); } } }; $scope.Actions = { addPaperInfo : function (group) {//澧炲姞鏂囦欢鏂囨湰淇℃伅,涓嶄笂浼犳枃浠跺疄浣 var paperNames = $scope.config.paperNames; var paperName = "绾歌川鏂囨。"; if (paperNames) { if (typeof(paperNames) == "object") { paperName = paperNames[group.ZLXDM]; } else if (typeof(paperNames) == "string") { paperName = paperNames; } } var data = {ZLXDM : group.ZLXDM,YWSJID :$scope.config.YWSJID, ZZWJMC:paperName}; Common.send($scope, $http, { method: 'POST', url: Common.webRoot() + "/platform/file/paperinfocontroller/createdefaultpaperinfo", data: data, success: function(result){ $scope.Actions.queryFiles(); var codeSize = result.data.codeSize; if (codeSize && codeSize > 1) { var ID = result.data.ID; var openConfig = { title:"娣诲姞绾歌川鏂囨。", type: 'open', width: '50%', height: '40%', url : Common.webRoot() + '/platform/file/paperinfocontroller/edit?ID=' + ID, end: function () { $scope.Actions.queryFiles(); } }; Common.dialog(openConfig); } }, error:function (a,b,c) { } }); }, deletePaper : function (group, item) {//澧炲姞鏂囦欢鏂囨湰淇℃伅,涓嶄笂浼犳枃浠跺疄浣 var data = { models : [{ID : item.ID,YWSJID :item.YWSJID}], } Common.send($scope, $http, { method: 'POST', url: Common.webRoot() + "/platform/file/paperinfocontroller/deletepaperinfo", data: data, success: function(result){ $scope.Actions.queryFiles(); }, error:function (a,b,c) { } }); }, deletePaperByDmYwsjid : function (ZLXDM) {//澧炲姞鏂囦欢鏂囨湰淇℃伅,涓嶄笂浼犳枃浠跺疄浣 var data = { models : [{ZLXDM : ZLXDM,YWSJID :$scope.config.YWSJID}], } Common.send($scope, $http, { method: 'POST', url: Common.webRoot() + "/platform/file/paperinfocontroller/deletepaperinfo", data: data, success: function(result){ }, error:function (a,b,c) { } }); }, previewFile : function (item) { Common.send({ }) }, downloadFile : function (item) { if(item && item.WJID){ var url = ($scope.CustomAddress.download && $scope.CustomAddress.download.url) ? $scope.CustomAddress.download.url : (File.baseUrl + "/downloadfilebyid/" + item.WJID) //window.open (url); window.location.href = url; }else { return false; } }, sortFile : function (item, value) { var url = ($scope.CustomAddress.updatefile && $scope.CustomAddress.updatefile.url) ? $scope.CustomAddress.updatefile.url : (File.baseUrl + "/updatefileinfo") var data = ($scope.CustomAddress.updatefile && $scope.CustomAddress.updatefile.data) ? $scope.CustomAddress.updatefile.data : { models: [{"WJID":item.WJID,"YWSJID":item.YWSJID,"PXH":parseInt(item.PXH)}]}; Common.send($scope, $http, { method: 'POST', url: url, data: data, success: function(result){ $scope.Actions.queryFiles(); }, error:function (a,b,c) { } }); }, deleteFile : function (item) { if($scope.config && $scope.config.callback && $.isFunction($scope.config.callback.beforeDelete)){ $scope.config.callback.beforeDelete(item) } var url = ($scope.CustomAddress.deletefile && $scope.CustomAddress.deletefile.url) ? $scope.CustomAddress.deletefile.url : (File.baseUrl + "/deletefile/" + item.WJID) Common.send($scope, $http, { url: url, success: function(result){ Common.dialog({ type : 'msg', style :1, content:'鍒犻櫎鎴愬姛' }) if($scope.config && $scope.config.callback && $.isFunction($scope.config.callback.afterDelete)){ $scope.config.callback.afterDelete(item) } $scope.Actions.queryFiles(); } }); }, deleteFileByDmYwsjId : function (group) { var url = ($scope.CustomAddress.deleteFileByDmYwsjId && $scope.CustomAddress.deleteFileByDmYwsjId.url) ? $scope.CustomAddress.deleteFileByDmYwsjId.url : (File.baseUrl + "/deletefilebydmywsjid") var data = ($scope.CustomAddress.deleteFileByDmYwsjId && $scope.CustomAddress.deleteFileByDmYwsjId.data) ? $scope.CustomAddress.deleteFileByDmYwsjId.data : { ZLXDM : group.ZLXDM, YWSJID : $scope.config.YWSJID }; Common.send($scope, $http, { method: 'POST', url: url, data :data, success: function(result){ $scope.Actions.queryFiles(); Common.dialog({ type : 'msg', style :1, content:'鍒犻櫎鎴愬姛' }) }, error:function (a,b,c) { } }); }, queryFiles : function (callback) { var url = ($scope.CustomAddress.queryfileinfos && $scope.CustomAddress.queryfileinfos.url) ? $scope.CustomAddress.queryfileinfos.url : (File.baseUrl + "/queryfileinfos") var data = ($scope.CustomAddress.queryfileinfos && $scope.CustomAddress.queryfileinfos.data) ? $scope.CustomAddress.queryfileinfos.data : { pageSize : 100000, pageNum : 1, YWSJID : $scope.config.YWSJID, LXDMS : $scope.config.LXDMS, ZLXDMS : $scope.config.ZLXDMS }; Common.send($scope, $http, { method: 'POST', url: url, data: data, showLoad : false, success: function(result){ $scope.groupsAllFileNames = []; if(callback && $.isFunction(callback)){ callback(); } $scope.AllFileData = result.data; $scope.groupsAllFileNames = result.data; } }); } }; $scope.Tranform = { /** * 杞崲鏂囦欢閰嶇疆椤圭洰 * */ defaultConfig : { isReadOnly : false, //鏄惁鍙 fileMaxSize : 30, //鍏佽涓婁紶鐨勬枃浠跺ぇ灏 fileTypes : '', //鏄惁闄愬埗鍏佽涓婁紶鐨勬枃浠剁被鍨 autoUpload : true, LTBH : '', //绯荤粺缂栧彿 LXDM : '', //绫诲瀷浠g爜 ZLXDM : '', //瀛愮被鍨嬩唬鐮 uploadUrl : File.baseUrl + '/upload', //涓婁紶URL }, tranformConfig : function (config) { var ReturnConfig = $scope.Tranform.defaultConfig; for(var key in config){ ReturnConfig[key] = config[key]; } return ReturnConfig; }, changeQueryData : function (data) { } }; var doRender = function(config){ $scope.uploader = FileUploadObject.createFileUploader(FileUploader, config); $scope.uploader.checkMust = function () { if($scope.AllFileData.length){ var flag = true; for(var i=0;i<$scope.AllFileData.length;i++){ for(var j=0;j<$scope.AllFileData[i].zlxList.length;j++){ var isbx = ($scope.AllFileData[i].zlxList[j].SFBX == '1'); var noFile = (!$scope.AllFileData[i].zlxList[j].fileList.length); var noPaper = (!$scope.AllFileData[i].zlxList[j].paperList.length); if(isbx && noFile && noPaper){ $scope.AllFileData[i].zlxList[j].MustUpload = 'MustUpload'; flag = false; }else { $scope.AllFileData[i].zlxList[j].MustUpload = ''; } } } return flag; } }; $scope.uploader.Actions = $scope.Actions; } doRender($scope.config); $scope.$watch('config',function(newValue,oldValue, scope){ //浼氬湪绗竴娆¤Е鍙戯紝鎵€浠ュ灞備笉鐢ㄥ湪璋冪敤 if(oldValue && newValue){ if($scope.uploader){ if ($scope.uploader.destory) { //$scope.uploader.destory(); } doRender(newValue); $scope.Actions.queryFiles(); } } if (newValue.buttonConfig && newValue.buttonConfig.hideDownloadBtn){ $scope.hideDownloadBtn = true; } else { $scope.hideDownloadBtn = false; } if (newValue.buttonConfig && newValue.buttonConfig.hideDeleteBtn){ $scope.hideDeleteBtn = true; } else { $scope.hideDeleteBtn = false; } if (newValue.buttonConfig && newValue.buttonConfig.hideUploadBtn){ $scope.hideUploadBtn = true; } else { $scope.hideUploadBtn = false; } },true); if($scope.config && $scope.config.readOnly){ $scope.readOnly = true; } }, link : function ($scope,tElement,tAttr,$http,FileUploader) { }, initDirective : function () { app.filter("fileSizeSHow",function () { return function(size){ if(1 < size && size < 1024){ return size + "Kb" }else if(1024