SysInit.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.sys.SysInit', {
  3. extend: 'Ext.app.Controller',
  4. BaseUtil: Ext.create('erp.util.BaseUtil'),
  5. FormUtil: Ext.create('erp.util.FormUtil'),
  6. views:['sys.InitPortal','sys.ViewPort','sys.NavigationView','sys.Header','sys.base.EnterprisePortal','sys.base.ParamsetPortal','sys.base.DetailWindow','sys.base.FormPortal','core.trigger.DbfindTrigger','sys.base.ComboSetGrid','sys.base.SimpleActionGrid','sys.base.ModuleSetPortal','sys.init.InitImportGrid','core.form.ColorField','sys.base.Toolbar','core.form.MultiField','sys.base.ProgressBar'],
  7. init:function(){
  8. var me=this;
  9. this.control({
  10. 'button[itemId=sa_addButton]':{
  11. click:function(btn,e){
  12. var tabP=btn.up('tabpanel'),_activeTab=tabP.activeTab,caller=_activeTab.caller;
  13. if(caller){
  14. var win = Ext.widget('detailwindow',{
  15. title:_activeTab.title,
  16. items:[Ext.widget('formportal',{
  17. region:'center',
  18. caller:caller,
  19. saveUrl:_activeTab.saveUrl,
  20. deleteUrl: _activeTab.deleteUrl,
  21. updateUrl: _activeTab.updateUrl,
  22. getIdUrl:_activeTab.getIdUrl,
  23. currentTab:_activeTab,
  24. emptyGrid:_activeTab.emptyGrid,
  25. saveSuccess:me.DetailUpdateSuccess,
  26. defaultValues:_activeTab.defaultValues
  27. })]
  28. });
  29. win.showRelyBtn(win,btn);
  30. }
  31. }
  32. },
  33. 'tab':{
  34. activate:function(tab){
  35. if(tab.card.xtype=='simpleactiongrid'){
  36. if(!tab.card.columnRendered){
  37. tab.card.getGridColumnsAndStore(tab.card,'common/singleGridPanel.action',tab.card.params);
  38. tab.card.columnRendered=true;
  39. }else tab.card.loadNewStore(tab.card,tab.card.params);
  40. }
  41. }
  42. },
  43. 'navigationview':{
  44. 'itemclick':function(dataview,record){
  45. if(record.data.module=='progress') me.getProgress();
  46. else if(record.data.module=='import') me.getInitPortal();
  47. else me.getCheckPortal();
  48. }
  49. },
  50. 'modulesetportal>checkbox':{
  51. 'change':function(field,value){
  52. var obj=new Object(),property;
  53. if(field.id.indexOf('configs')>-1) property='data';
  54. else property='enable';
  55. obj[property]= typeof value === 'boolean' ? (value ? 1 : 0) : (field.xtype == 'radiogroup' ? Ext.Object.getValues(value)[0] : value);
  56. obj.id=field.id.split("-")[1];
  57. me.saveParamSet(field, value,unescape(escape(Ext.JSON.encode(obj))),me.changeInputValue);
  58. }
  59. },
  60. 'modulesetportal>radiogroup':{
  61. 'change':function(field,value){
  62. var obj=new Object();
  63. obj.data= typeof value === 'boolean' ? (value ? 1 : 0) : (field.xtype == 'radiogroup' ? Ext.Object.getValues(value)[0] : value);
  64. obj.id=field.id.split("-")[1];
  65. me.saveParamSet(field,value, unescape(escape(Ext.JSON.encode(obj))),me.changeInputValue);
  66. }
  67. },
  68. 'modulesetportal>numberfield':{
  69. 'blur':function(field){
  70. if(field.originalValue!=field.value){
  71. me.onSaveConfigs(field, field.value);
  72. }
  73. }
  74. },
  75. 'modulesetportal>dbfindtrigger': {
  76. aftertrigger: function(field, record, dbfinds) {
  77. Ext.Array.each(dbfinds, function(d){
  78. if(d.field == field.name) {
  79. field.setValue(record.get(d.dbGridField));
  80. me.onSaveConfigs(field, field.value);
  81. }
  82. });
  83. }
  84. },
  85. 'modulesetportal>colorfield':{
  86. change:function(field,newvalue){
  87. me.onSaveConfigs(field,newvalue);
  88. }
  89. },
  90. 'button[cls=x-dd-drop-ok-add]': {
  91. click: function(btn) {
  92. var f = btn.ownerCt, c = btn.config;
  93. f.insert(f.items.length - 1, {
  94. xtype: (c.dbfind ? 'dbfindtrigger' : 'textfield'),
  95. name: c.dbfind || c.code,
  96. readOnly: !c.dbfind && c.editable == 0,
  97. editable: c.editable == 1,
  98. clearable: true
  99. });
  100. }
  101. },
  102. 'button[itemId=initfinish]':{
  103. click:function(btn){
  104. Ext.Ajax.request({//拿到tree数据
  105. url : basePath + 'ma/sysinit/finishInit.action',
  106. method:'post',
  107. callback : function(options,success,response){
  108. showResult('提示','初始化完毕!');
  109. // 跳转主页
  110. window.location.href = basePath;
  111. }
  112. });
  113. }
  114. }
  115. });
  116. },
  117. onSaveConfigs:function(field,value){
  118. var obj=new Object(),value=value || field.value;
  119. obj.data= typeof value === 'boolean' ? (value ? 1 : 0) : (field.xtype == 'radiogroup' ? Ext.Object.getValues(value)[0] : value);
  120. obj.id=field.id.split("-")[1];
  121. this.saveParamSet(field,value, unescape(escape(Ext.JSON.encode(obj))),this.changeInputValue);
  122. },
  123. saveParamSet:function(field,value,update,fn){
  124. var params=new Object();
  125. if(field)params.argType=field.id.split("-")[0];
  126. params.update=update;
  127. Ext.Ajax.request({
  128. url: basePath + 'ma/sysinit/saveParamSet.action',
  129. params:params,
  130. method: 'POST',
  131. callback: function(opt, s, r) {
  132. if(r && r.status == 200) {
  133. var res = Ext.JSON.decode(r.responseText);
  134. fn.call(null,field,value);
  135. }
  136. }
  137. });
  138. },
  139. changeInputValue:function(field,value){
  140. showResult('提示','修改成功!');
  141. field.originalValue=value;
  142. },
  143. getConfigs: function(caller, callback) {
  144. Ext.Ajax.request({
  145. url: basePath + 'ma/setting/configs.action?caller=' + caller,
  146. method: 'GET',
  147. callback: function(opt, s, r) {
  148. if(r && r.status == 200) {
  149. var res = Ext.JSON.decode(r.responseText);
  150. callback.call(null, res);
  151. }
  152. }
  153. });
  154. },
  155. getProgress:function(){
  156. var win= Ext.create('widget.window', {
  157. title: '初始化进展',
  158. header: {
  159. titlePosition: 2,
  160. titleAlign: 'center'
  161. },
  162. closable: true,
  163. closeAction: 'hide',
  164. width:'80%',
  165. minWidth: 350,
  166. height: '60%',
  167. modal:true,
  168. tools: [{type: 'pin'}],
  169. layout: {
  170. type: 'border',
  171. //padding: 5
  172. },
  173. frame:true,
  174. items: [{
  175. xtype:'panel',
  176. layout:'fit',
  177. region: 'center',
  178. items:[{
  179. xtype:'dataview',
  180. id:'desktop',
  181. itemSelector:'div.normal',
  182. listeners:{
  183. 'itemclick':function(view,record,item){
  184. Ext.get(record.data.itemId+'-yearitem').child('.bottom').addCls('bottomOver');
  185. var detailsPanel = Ext.getCmp('detailspanel');
  186. var panel = Ext.widget('panel', { // Equivalent to Ext.create('widget.panel')
  187. title: record.data.desc,
  188. html:'<h1>'+record.data.desc+'</h1>'
  189. });
  190. detailsPanel.getEl().mask('updating details...');
  191. detailsPanel.removeAll();
  192. detailsPanel.add(panel);
  193. detailsPanel.getEl().unmask();
  194. }
  195. },
  196. tpl:[
  197. '<div class="yearlist">',
  198. '<div class="start year">',
  199. '<div class="top">开始</div>',
  200. '<div class="bottom"></div></div>',
  201. '<div class="space"><div class="line">&nbsp;</div></div>',
  202. '<tpl for=".">',
  203. '<div class="normal year" year="{year}" id="{itemId}-yearitem">',
  204. '<div class="top"></div>',
  205. '<div class="bottom">{year}</div>',
  206. '</div>',
  207. '<div class="space"><div class="line">&nbsp;</div></div>',
  208. '</tpl>',
  209. '<div class="now year">',
  210. '<div class="top"></div>',
  211. '<div class="bottom">完成</div></div</div></div>',
  212. '<div style="clear:both"></div>',
  213. '</div>'],
  214. store:Ext.create('Ext.data.Store', {
  215. fields: [{ name: 'year' },
  216. {name: 'itemId'},
  217. {name:'desc'}
  218. ],
  219. data: [
  220. { year: '1',itemId:'1',desc:'企业信息'},
  221. { year: '2',itemId:'2',desc:'系统设置'},
  222. { year: '3',itemId:'3',desc:'组织人员'},
  223. { year: '4',itemId:'4', desc:'销售管理'},
  224. { year: '5',itemId:'5',desc :'采购管理'},
  225. { year: '6',itemId:'6',desc:'物料信息'},
  226. { year: '7',itemId:'7',desc:'生产制造'},
  227. { year: '8',itemId:'8',desc:'委外加工'},
  228. { year: '9',itemId:'9',desc:'财务会计'}
  229. ]
  230. })
  231. }]
  232. }, {
  233. region: 'south',
  234. xtype:'container',
  235. id:'detailspanel',
  236. layout:{
  237. type:'vbox',
  238. align:'stretch',
  239. autoSize:true
  240. }
  241. }]
  242. });
  243. win.show();
  244. },
  245. getProgress1:function(){
  246. var win= Ext.create('widget.window', {
  247. title: '初始化进展',
  248. header: {
  249. titlePosition: 2,
  250. titleAlign: 'center'
  251. },
  252. closable: true,
  253. closeAction: 'hide',
  254. width:'80%',
  255. minWidth: 350,
  256. height: '60%',
  257. modal:true,
  258. tools: [{type: 'pin'}],
  259. layout: {
  260. type: 'border',
  261. //padding: 5
  262. },
  263. frame:true,
  264. items: [{
  265. xtype:'panel',
  266. layout:'fit',
  267. region: 'center',
  268. items:[{
  269. xtype:'dataview',
  270. id:'desktop',
  271. itemSelector:'div.step',
  272. listeners:{
  273. 'itemclick':function(view,record,item){
  274. Ext.get(record.data.itemId+'-yearitem').child('.bottom').addCls('bottomOver');
  275. var detailsPanel = Ext.getCmp('detailspanel');
  276. var panel = Ext.widget('panel', { // Equivalent to Ext.create('widget.panel')
  277. title: record.data.desc,
  278. html:'<h1>'+record.data.desc+'</h1>'
  279. });
  280. detailsPanel.getEl().mask('updating details...');
  281. detailsPanel.removeAll();
  282. detailsPanel.add(panel);
  283. detailsPanel.getEl().unmask();
  284. }
  285. },
  286. tpl:[
  287. '<div id="MyWizard" class="wizard"><ul class="steps">',
  288. '<tpl for=".">',
  289. '<li>',
  290. '<span class="circle"></span>',
  291. '<span class="font">初次沟通</span>',
  292. '</li>',
  293. '</tpl></ul></div>'],
  294. store:Ext.create('Ext.data.Store', {
  295. fields: [{ name: 'year' },
  296. {name: 'itemId'},
  297. {name:'desc'}
  298. ],
  299. data: [
  300. { year: '1',itemId:'1',desc:'企业信息'},
  301. { year: '2',itemId:'2',desc:'系统设置'},
  302. { year: '3',itemId:'3',desc:'组织人员'},
  303. { year: '4',itemId:'4', desc:'销售管理'},
  304. { year: '5',itemId:'5',desc :'采购管理'},
  305. { year: '6',itemId:'6',desc:'物料信息'},
  306. { year: '7',itemId:'7',desc:'生产制造'},
  307. { year: '8',itemId:'8',desc:'委外加工'},
  308. { year: '9',itemId:'9',desc:'财务会计'}
  309. ]
  310. })
  311. }]
  312. }, {
  313. region: 'south',
  314. xtype:'container',
  315. id:'detailspanel',
  316. layout:{
  317. type:'vbox',
  318. align:'stretch',
  319. autoSize:true
  320. }
  321. }]
  322. });
  323. win.show();
  324. },
  325. getInitPortal:function (){
  326. var win= Ext.create('widget.window', {
  327. title: '数据导入',
  328. header: {
  329. titlePosition: 0,
  330. titleAlign: 'center'
  331. },
  332. closable: true,
  333. closeAction: 'hide',
  334. width:800,
  335. minWidth: 350,
  336. height: '80%',
  337. modal:true,
  338. layout: {
  339. type: 'fit',
  340. },
  341. frame:true,
  342. items: [{
  343. xtype:'initimportgrid',
  344. }]
  345. });
  346. win.show();
  347. },
  348. getCheckPortal:function(){
  349. var win= Ext.create('widget.window', {
  350. title: '数据检查',
  351. header: {
  352. titlePosition: 0,
  353. titleAlign: 'center'
  354. },
  355. closable: true,
  356. closeAction: 'hide',
  357. width:800,
  358. minWidth: 350,
  359. height: '80%',
  360. modal:true,
  361. layout: {
  362. type: 'fit',
  363. },
  364. frame:true,
  365. buttons:[{
  366. text:'检查'
  367. },{
  368. text:'确认完毕',
  369. itemId:'initfinish',
  370. tooltip:'确认初始化完毕'
  371. }]
  372. });
  373. win.show();
  374. },
  375. DetailUpdateSuccess:function(activeTab,btn){
  376. activeTab.loadNewStore(activeTab,activeTab.params);
  377. var win=btn.up('window');
  378. if(win) win.close();
  379. }
  380. });