| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- Ext.define('uas.controller.Global', {
- extend: 'Ext.app.Controller',
- namespace: 'uas',
- config: {
- control: {
- 'navigation-tree': {
- selectionchange: 'onTreeNavSelectionChange'
- }
- },
- refs: {
- navigationTree: 'navigation-tree',
- contentPanel: 'contentPanel',
- },
- routes : {
- ':target': {
- action: 'handleRoute',
- before: 'beforeHandleRoute'
- }
- }
- },
- beforeHandleRoute: function(target, action) {
- let me = this,
- store = Ext.StoreMgr.get('navigation'),
- idx = store.find('target', target),
- className = Ext.ClassManager.getNameByAlias('widget.' + target),
- ViewClass = Ext.ClassManager.get(className);
- if(idx > -1 && !!ViewClass) {
- //resume action
- action.resume();
- }else {
- Ext.Msg.alert(
- '创建组件失败',
- '确定以返回首页',
- function() {
- // TODO 路由跳转并不会引起页面刷新,待解决
- me.redirectTo(me.getApplication().getDefaultToken());
- }
- );
- //stop action
- action.stop();
- }
- },
- handleRoute: function(target) {
- let me = this,
- store = Ext.StoreMgr.get('navigation'),
- idx = store.find('target', target),
- node = store.getAt(idx),
- title = node.get('text'),
- contentPanel = me.getContentPanel();
-
- Ext.suspendLayouts();
- contentPanel.removeAll(true);
- className = Ext.ClassManager.getNameByAlias('widget.' + target);
- ViewClass = Ext.ClassManager.get(className);
- cmp = new ViewClass();
- contentPanel.add(cmp);
- me.updateTitle(title);
- if (cmp.floating) {
- Ext.resumeLayouts(true);
- cmp.show();
- Ext.suspendLayouts();
- }
- Ext.resumeLayouts(true);
- },
- onTreeNavSelectionChange: function(treelist, record, eOpts) {
- let target = record.get('target');
- if(target) {
- this.redirectTo(target);
- }
- },
- updateTitle: function(title) {
- let contentPanel = this.getContentPanel();
- if (contentPanel.setTitle) {
- contentPanel.setTitle(title);
- }
- document.title = document.title.split(' - ')[0] + ' - ' + title;
- }
- });
|