NavigationDetails.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.common.NavigationDetails', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
  5. views:[
  6. 'core.form.Panel','common.NavigationDetails','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
  7. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit','core.button.FormBook',
  8. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit',
  9. 'core.button.Scan','core.button.Banned','core.button.ResBanned','core.form.MultiField','core.button.Confirm','core.button.Sync',
  10. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField', 'core.grid.YnColumn','core.trigger.AddDbfindTrigger',
  11. 'core.form.FileField','core.form.SplitTextField','core.button.End','core.button.ResEnd','core.form.CheckBoxGroup','core.button.TurnMJProject',
  12. 'core.form.MonthDateField','core.form.SpecialContainField','core.form.SeparNumber'
  13. ],
  14. init:function(){
  15. var me = this;
  16. me.caller="";
  17. me.FormUtil = Ext.create('erp.util.FormUtil');
  18. me.GridUtil = Ext.create('erp.util.GridUtil');
  19. me.BaseUtil = Ext.create('erp.util.BaseUtil');
  20. this.control({
  21. 'tabpanel':{
  22. afterrender: function(tb) {
  23. this.getNavigationDetails(tb, id);
  24. }
  25. }
  26. });
  27. },
  28. getNavigationDetails:function(tb, id) {
  29. var me = this;
  30. Ext.Ajax.request({
  31. url: basePath + 'common/getNavigationDetails.action',
  32. params: {
  33. id: id
  34. },
  35. callback: function(opt, s, r) {
  36. var res = Ext.decode(r.responseText);
  37. var url,pagedesc,servicedesc,pageFlag=true,html_page='',html_servive='';
  38. if(res.data){
  39. pagedesc=res.data.pagedesc;
  40. servicedesc=res.data.servicedesc;
  41. me.caller=res.data.caller;
  42. leaf=res.data.leaf;
  43. if(pagedesc!=''){
  44. var suffix=pagedesc.substring(pagedesc.lastIndexOf(".")+1);
  45. if(suffix=='pdf'){
  46. html_page='<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/oa/doc/read.jsp?path='+ pagedesc + '&folderId=-1 " height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  47. }else if(suffix == 'doc'|| suffix =='docx'){
  48. Ext.Ajax.request({
  49. url : basePath + 'oa/doc/getHtml.action',
  50. params: {
  51. folderId:0,
  52. path:pagedesc,
  53. type:suffix
  54. },
  55. method : 'post',
  56. async:false,
  57. callback : function(opt, s, res){
  58. var r = new Ext.decode(res.responseText);
  59. if(r.exceptionInfo){
  60. showError(r.exceptionInfo);
  61. } else if(r.success){
  62. path=r.newPath;
  63. html_page='<iframe id="iframe_maindetail_pageSet" src="' +
  64. basePath + 'jsps/oa/doc/readWordOrExcel.jsp?path='+
  65. basePath+ path + ' " height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  66. }
  67. }
  68. });
  69. }
  70. }else{
  71. html_page='<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/ma/helpdocremind.html" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  72. }
  73. if(servicedesc!=''){
  74. var suffix=servicedesc.substring(servicedesc.lastIndexOf(".")+1);
  75. if(suffix=='pdf'){
  76. html_servive='<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/oa/doc/read.jsp?path='+ servicedesc +'&folderId=-1 " height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  77. }else if(suffix == 'doc'|| suffix =='docx'){
  78. Ext.Ajax.request({
  79. url : basePath + 'oa/doc/getHtml.action',
  80. params: {
  81. folderId:0,
  82. path:servicedesc,
  83. type:suffix
  84. },
  85. method : 'post',
  86. async:false,
  87. callback : function(opt, s, res){
  88. var r = new Ext.decode(res.responseText);
  89. if(r.exceptionInfo){
  90. showError(r.exceptionInfo);
  91. } else if(r.success){
  92. path=r.newPath;
  93. html_servive='<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/oa/doc/readWordOrExcel.jsp?path='+basePath+ servicedesc + ' " height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  94. }
  95. }
  96. });
  97. }
  98. }else{
  99. html_servive='<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/ma/helpdocremind.html" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>';
  100. }
  101. if(res.data.url) {
  102. if(me.FormUtil.contains(res.data.url,'jsps/common/print.jsp')||//打印界面
  103. me.FormUtil.contains(res.data.url,'jsps/common/search.jsp')){//search查询界面
  104. pageFlag=false;//不添加单据展示
  105. }
  106. if(me.FormUtil.contains(res.data.url, 'jsps/common/datalist.jsp', true)
  107. &&me.FormUtil.contains(res.data.url, '&urlcondition', true)){//列表
  108. url=res.data.url.split('&urlcondition')[0]+'&urlcondition'+res.data.url.split('&urlcondition')[1].split('&')[0]+' and 1=2';
  109. }else if(me.FormUtil.contains(res.data.url, 'jsps/common/datalist.jsp', true)){
  110. url=res.data.url+'&urlcondition=1=2';
  111. }else if(me.FormUtil.contains(res.data.url, '?', true)){
  112. url=res.data.url+'&source=allnavigation';
  113. }else{
  114. url=res.data.url+'?source=allnavigation';
  115. }
  116. url=me.parseUrl(url);
  117. if(url&&pageFlag){
  118. tb.add({
  119. title:'界面展示',
  120. tag : 'iframe',
  121. frame : true,
  122. border : false,
  123. layout : 'fit',
  124. html : '<iframe id="iframe_maindetail_pageSet" src="' + basePath + url + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  125. });
  126. }
  127. }
  128. tb.add({
  129. title:leaf=='T'?'单据说明':'模块说明',
  130. layout : 'anchor',
  131. tbar:[{xtype : "tbfill"},{xtype:'form',
  132. bodyStyle: 'background:#f1f1f1;',
  133. name:'pagedesc',
  134. anchor: '100% 6%',
  135. layout:'column',
  136. border:false,
  137. items:[{ xtype: 'filefield',
  138. name: 'file',width:120,
  139. buttonText: '<img align="center" src="../../resource/images/icon/upload.png"/>上传说明文档',buttonOnly: true,hideLabel: true,
  140. listeners: {
  141. change: function(field){
  142. if(field.value != null){
  143. me.upload(field.ownerCt, field,'pagedesc');
  144. }
  145. },
  146. render: function (field, p) {
  147. Ext.QuickTips.register({
  148. target: field.el,
  149. text: '只能上传doc或pdf类型文件!'
  150. });
  151. }
  152. }
  153. },{xtype: 'button',text:'下载',width:70,height:26,icon:'../../resource/images/icon/download.png',
  154. href:basePath + 'common/downloadPageinstruction.action?path=' + pagedesc+' &id='+id+' &field=pagedesc',
  155. listeners: {
  156. afterrender: function(f){
  157. if(!pagedesc) f.hide();
  158. }
  159. }
  160. }],
  161. listeners: {
  162. afterrender: function(f){
  163. if(em_type!='admin') f.hide();
  164. }
  165. }
  166. }],
  167. items:[{
  168. tag : 'iframe',
  169. frame : true,
  170. border : false,
  171. layout : 'fit',
  172. id:'pagedesciframe',
  173. anchor: em_type=='admin'?'100% 94%':'100% 100%',
  174. html :html_page
  175. }]
  176. },{
  177. title:'业务说明',
  178. layout : 'anchor',
  179. tbar:[{xtype : "tbfill"},{xtype:'form',border:false,
  180. layout:'column',
  181. bodyStyle: 'background:#f1f1f1;',
  182. name:'servicedesc',
  183. anchor: '100% 6%',
  184. items:[{ xtype: 'filefield',
  185. name: 'file',
  186. buttonText: '<img align="center" src="../../resource/images/icon/upload.png"/>上传说明文档',buttonOnly: true,hideLabel: true,width:120,
  187. listeners: {
  188. change: function(field){
  189. if(field.value != null){
  190. me.upload(field.ownerCt, field,'servicedesc');
  191. }
  192. },
  193. render: function (field, p) {
  194. Ext.QuickTips.register({
  195. target: field.el,
  196. text: '只能上传doc或pdf类型文件!'
  197. });
  198. }
  199. }
  200. },{xtype: 'button',text:'下载',width:70,height:26,icon:'../../resource/images/icon/download.png',
  201. href:basePath + 'common/downloadPageinstruction.action?path=' + servicedesc+' &id='+id+' &field=servicedesc',
  202. listeners: {
  203. afterrender: function(f){
  204. if(!servicedesc) f.hide();
  205. }
  206. }
  207. }],
  208. listeners: {
  209. afterrender: function(f){
  210. if(em_type!='admin') f.hide();
  211. }
  212. }
  213. }],
  214. items:[{
  215. tag : 'iframe',
  216. frame : true,
  217. id:'servicedesciframe',
  218. border : false,
  219. layout : 'fit',
  220. anchor: em_type=='admin'?'100% 94%':'100% 100%',
  221. html : html_servive
  222. }]
  223. });
  224. tb.add({
  225. title:'权限申请',
  226. tag : 'iframe',
  227. frame : true,
  228. id:'powerApplyTab',
  229. border : false,
  230. layout : 'fit',
  231. html : '<iframe id="iframe_maindetail_pageSet" src="' + basePath + 'jsps/oa/powerApply/powerApply.jsp?_noc=1' + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  232. });
  233. }
  234. }
  235. });
  236. },
  237. upload:function(form, field,fieldname){
  238. var me = this;
  239. var filename = '';
  240. if(contains(field.value, "\\", true)){
  241. filename = field.value.substring(field.value.lastIndexOf('\\') + 1);
  242. } else {
  243. filename = field.value.substring(field.value.lastIndexOf('/') + 1);
  244. }
  245. if(!me.checkFile(filename)){
  246. showError('当前类型文件不允许上传,只能上传doc或pdf类型文件!');
  247. return false;
  248. }
  249. form.getForm().submit({
  250. url: basePath + 'common/uploadPageinstruction.action',
  251. params:{
  252. caller:me.caller,
  253. field:fieldname,
  254. id:id
  255. },
  256. waitMsg: "正在上传:" + filename,
  257. success: function(fp, o){
  258. if(o.result.error){
  259. showError(o.result.error);
  260. } else {
  261. Ext.Msg.alert("恭喜", filename + " 上传成功!",function(){window.location.reload();});
  262. }
  263. }
  264. });
  265. },
  266. checkFile:function(fileName){
  267. var arr=['pdf','doc'];
  268. var suffix=fileName.substring(fileName.lastIndexOf(".")+1);
  269. return Ext.Array.contains(arr,suffix);
  270. },
  271. parseUrl: function(url) {
  272. var id = url.substring(url.lastIndexOf('?') + 1); //将作为新tab的id
  273. if (id == null) {
  274. id = url.substring(0, url.lastIndexOf('.'));
  275. }
  276. if (contains(url, 'session:em_uu', true)) { //对url中session值的处理
  277. url = url.replace(/session:em_uu/g, em_uu);
  278. }
  279. if (contains(url, 'session:em_code', true)) { //对url中em_code值的处理
  280. url = url.replace(/session:em_code/g, "'" + em_code + "'");
  281. }
  282. if (contains(url, 'sysdate', true)) { //对url中系统时间sysdate的处理
  283. url = url.replace(/sysdate/g, "to_date('" + Ext.Date.toString(new Date()) + "','yyyy-mm-dd')");
  284. }
  285. if (contains(url, 'session:em_name', true)) {
  286. url = url.replace(/session:em_name/g, "'" + em_name + "'");
  287. }
  288. if (contains(url, 'session:em_type', true)) {
  289. url = url.replace(/session:em_type/g, "'" + em_type + "'");
  290. }
  291. if (contains(url, 'session:em_id', true)) {
  292. url = url.replace(/session:em_id/g,em_id);
  293. }
  294. if (contains(url, 'session:em_depart', true)) {
  295. url = url.replace(/session:em_depart/g,em_id);
  296. }
  297. return url;
  298. }
  299. });