Ext.QuickTips.init(); Ext.define('erp.controller.oa.doc.DOCManage', { extend: 'Ext.app.Controller', FormUtil: Ext.create('erp.util.FormUtil'), GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), views:[ 'oa.doc.DOCManage','oa.doc.DocumentTreePanel','common.datalist.GridPanel','common.datalist.Toolbar','oa.doc.Header','oa.doc.Bottom', 'oa.doc.Submit','oa.doc.Save','oa.doc.resSubmit','oa.doc.Close','core.button.Print','oa.doc.DocView','oa.doc.Update', 'core.button.Upload','oa.doc.Delete','oa.doc.resAudit','oa.doc.Audit','core.form.FileField','oa.doc.OrgTreePanel', 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','oa.doc.DocForm','core.form.YnField','oa.doc.DocPanel','oa.doc.DocTabPanel' ], init:function(){ var me = this; this.flag=true; this.control({ 'erpDocumentTreePanel[id=doctree]': { itemmousedown: function(selModel, record){ if(!this.flag){ return; } this.flag = false; setTimeout(function(){ me.flag = true; me.loadTab(selModel, record,true); },20); }, itemclick: function(selModel, record){ if(!this.flag){ return; } this.flag = false; setTimeout(function(){ me.flag = true; me.loadTab(selModel, record,true); },20); }, afterrender:function(tree){ tree.selModel.on('select', function(selModel, record){ if(record.childNodes.length > 0){ selModel.isOnSelect = true; selModel.isOnSelect = false; me.setVirtualpath(record); } else { if(!selModel.isOnSelect){ var arr = selModel.getSelection(); arr.push(record); selModel.isOnSelect = true; selModel.select(arr); selModel.isOnSelect = false; me.setVirtualpath(record); } return; } }); } }, 'erpDocumentTreePanel[id=foldertree]': { itemmousedown: function(selModel, record){ if(!this.flag){ return; } this.flag = false; setTimeout(function(){ me.flag = true; me.loadTab(selModel, record,false); },20); }, itemclick: function(selModel, record){ if(!this.flag){ return; } this.flag = false; setTimeout(function(){ me.flag = true; me.loadTab(selModel, record,false); },20); } }, 'docgrid':{ itemclick: function(selModel, record){ var doctabs=Ext.getCmp('doctab'); doctabs.fireEvent('tabItemChange',doctabs,record,'doc'); var docpanel=Ext.getCmp('docpanel'); docpanel.currentItem=record; docpanel.reSetButton(docpanel); } }, 'textareafield':{ beforerender:function(field){ field.labelAlign='left'; } }, 'button[id=treeadd]':{ click:function(btn){ me.showAddWin(btn); } }, 'button[id=treeupdate]':{ click:function(btn){ me.showUpdateWin(btn); } }, 'button[id=treedelete]':{ click:function(btn){ me.deleteDir(btn); } }, 'button[id=uploadDoc]':{ click:function(btn){ me.showUploadDoc(btn); } }, //dyl 'button[id=read]' : { click : function(btn) { var select = Ext.getCmp('docgrid').getSelectionModel().getSelection()[0]; var path = unescape(select.data.dl_filepath); var type = path.substring(path.lastIndexOf('.') + 1); var folderId = select.data.dl_parentid; var folderId = select.data.dl_parentid; if (type == 'doc'|| type =='docx'|| type == 'xls'|| type == 'xlsx') { Ext.Ajax.request({ url : basePath + 'oa/doc/getHtml.action', params: { folderId:folderId, path:path, type:type }, method : 'post', async:false, callback : function(opt, s, res){ var r = new Ext.decode(res.responseText); if(r.exceptionInfo){ showError(r.exceptionInfo); } else if(r.success){ path=r.newPath; var url=basePath+ 'jsps/oa/doc/readWordOrExcel.jsp?path='+basePath+path; window.open(url); } } }); } else if (type == 'pdf') { var url = basePath+ 'jsps/oa/doc/read.jsp?path='+ path + '&folderId='+ folderId; window.open(url); } else { showResult('提示','当前文件类型不支持在线预览,请先下载!',btn); } } }, 'button[id=downloadDoc]':{ click:function(btn){ var select =Ext.getCmp('docgrid').getSelectionModel().getSelection()[0]; var me = this; if (!Ext.fly('ext-attach-download')) { var frm = document.createElement('form'); frm.id = 'ext-attach-download'; frm.name = id; frm.className = 'x-hidden'; document.body.appendChild(frm); } Ext.Ajax.request({ url: basePath + 'doc/download.action?escape=1', method: 'post', form: Ext.fly('ext-attach-download'), isUpload: true, params: { path : unescape(select.data.dl_filepath), fileName:unescape(select.data.dl_name), folderId:select.data.dl_parentid }, callback : function(options, success, response){ if (!response) return; var restext=response.responseText; try{ var res =new Ext.decode(restext); console.log(res); if(res.error) showResult('提示',res.error,btn); }catch (e){ showResult('提示','您没有<下载>该文档的权限!',btn); } } }); } }, 'field[name=dl_virtualpath]':{ afterrender:function(field){ if(field.value==null){ //field.setValue(Ext.getCmp('virtualpath').getText()); } } }, 'field[name=dl_parentid]':{ afterrender:function(field){ if(field.value==null || field.value==""){ field.setValue(CurrentFolderId); } } }, 'field[name=dlc_parentid]':{ afterrender:function(field){ if(field.value==null || field.value==""){ field.setValue(CurrentFolderId); } } }, 'field[name=dlc_olddlid]':{ afterrender:function(field){ if(field.value==null || field.value==""){ field.setValue(Ext.getCmp('doctab').currentDoc.dl_id); } } }, 'field[name=dlc_oldversion]':{ afterrender:function(field){ if(field.value==null || field.value==""){ field.setValue(Ext.getCmp('doctab').currentDoc.dl_version); } } }, 'mfilefield[name=dlc_oldfpid]':{ beforerender:function(field){ if(field.value==null || field.value==""){ field.setValue(Ext.getCmp('doctab').currentDoc.dl_fpid); } } }, 'button[id=switch]':{ click:function(btn){ if(btn.scanType=='list'){ var panel=Ext.getCmp('docpanel'); var grid=panel.items.items[0]; grid.hide(); panel.add({ xtype:'docview', gridData:grid.store.data }); btn.scanType='figure'; }else{ var view=Ext.getCmp('docview'); if(view){ view.hide(); } var grid=Ext.getCmp('docgrid'); grid.show(); btn.scanType='list'; } } }, 'button[id=updatedoc]':{ click:function(btn){ me.showUpdateDoc(btn); } }, 'button[id=rename]':{ click:function(button){ me.UpdateName("DocRename",button); } }, 'button[id=updatefoldername]':{ click:function(button){ me.UpdateName("FolderRename",button); } }, 'button[id=delete]':{ click:function(btn){ me.deleteDoc(btn); } }, 'button[id=lockbutton]':{ click:function(button){ var docpanel=Ext.getCmp('docpanel'); var select =docpanel.currentItem || Ext.getCmp('docgrid').getSelectionModel().getSelection()[0]; warnMsg('确认锁定该文档?', function(btn){ var changevalue=button.text=='锁定'?-1:0; if(btn == 'yes'){ var params=new Object(),o={ dl_locked:changevalue, dl_id:select.data.dl_id, dl_parentid:select.data.dl_parentid }; params.formStore=unescape(Ext.JSON.encode(o).replace(/\\/g,"%")); params.caller="DocLocked"; params.type="LOCK"; me.UpdateByType(params); button.ownerCt.items.items[0].setValue(changevalue); showResult('提示','操作成功!',button); docpanel.loadNewStore(CurrentFolderId,docpanel.currentItem); } }); } }, 'erpSaveButton':{ click:function(btn){ me.SaveDir(btn); } }, 'erpUpdateButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='ENTERING') btn.hide(); } }, 'erpUpdateButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='ENTERING') btn.hide(); } }, 'erpDeleteButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='ENTERING') btn.hide(); } }, 'erpSubmitButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='ENTERING') btn.hide(); } }, 'erpResSubmitButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='COMMITTED') btn.hide(); } }, 'erpAuditButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='COMMITTED') btn.hide(); } }, 'erpResAuditButton':{ afterrender:function(btn){ var status=Ext.getCmp('dl_statuscode').value; if(status!='AUDITED') btn.hide(); } }, 'button[id=setpower]':{ click:function(button){ var win = Ext.getCmp('powerwindow'); if(!win){ win= Ext.create('erp.view.oa.doc.PowerWindow'); } var el=button.getEl(); button.getEl().dom.disabled = true; if (win.isVisible()) { win.hide(el, function() { el.dom.disabled = false; }); } else { win.show(el, function() { el.dom.disabled = false; Ext.getBody().disabled=true; }); } } } }); }, deleteDir:function(btn){ var tree = Ext.getCmp('doctree'); var record=tree.getSelectionModel().getSelection()[0]; Ext.Ajax.request({ url : basePath + 'oa/documentlist/delete.action?caller=DocDeleteDir&_noc=1', params : { id:CurrentFolderId }, method : 'post', async: false, callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); if(localJson.exceptionInfo){ var str = localJson.exceptionInfo; showError(str); }else { var win = parent.Ext.ComponentQuery.query('window'); if(win){ Ext.each(win, function(){ this.close(); }); } else { window.close(); } showResult('提示','删除成功!',btn); tree.refreshNodeByParentId(record.data.parentId,tree); } } }); }, deleteDoc:function(btn){ var tree = Ext.getCmp('doctree'); var items = Ext.getCmp('docgrid').selModel.getSelection(); if(items.length<0) showResult('提示','请选择需要删除的文件!',btn); warnMsg('确认删除改文档?', function(btn){ if(btn == 'yes'){ var data=new Array(),o; Ext.Array.each(items,function(item){ o=new Object(); o.dl_id=item.data.dl_id; o.dl_parentid=item.data.dl_parentid; data.push(o); }); Ext.Ajax.request({ url : basePath + 'oa/documentlist/deleteDoc.action?_noc=1', params : { data :unescape(Ext.JSON.encode(data).replace(/\\/g,"%")) }, method : 'post', callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); if(localJson.exceptionInfo){ var str = localJson.exceptionInfo; showError(str); }else { var docpanel=Ext.getCmp('docpanel'); docpanel.loadNewStore(CurrentFolderId); showResult('提示','删除成功!',btn); } } }); } }); }, showAddWin:function(button){ var win = Ext.getCmp('add_win'); if(!win){ win=Ext.create('Ext.window.Window',{ width: 550, height:350, closeAction: 'hide', id:'add_win', layout:'fit', title:'