Ext.define('school.view.basic.class.ClassInfoController', { extend: 'Ext.app.ViewController', alias: 'controller.basic-class-classinfo', onItemMouseEnter: function(tree, record, item, index, e, eOpts) { var icons = item.getElementsByClassName('action-icon'); if(record.data.leaf) { icons[1].classList.remove('x-hidden'); return; } if(record.data.id == 'root') { icons[0].classList.remove('x-hidden'); return; } icons[0].classList.remove('x-hidden'); icons[1].classList.remove('x-hidden'); }, onItemMouseLeave: function(tree, record, item, index, e, eOpts) { var icons = item.getElementsByClassName('action-icon'); for(var x = 0; x < icons.length; x++) { icons[x].classList.add('x-hidden'); } }, onItemclick: function(tree, record, item, index, e, eOpts) { var me = this, refs = me.getReferences(), listCard = refs.listcard; listCard.showNode(record); }, onToggleTree: function() { var me = this, viewModel = me.getViewModel(), refs = me.getReferences(), treeList = refs.treelist, nwidth, nToggleIconCls; if(treeList.nowidth) { treeList.nowidth = false; nwidth = treeList.owidth; nToggleIconCls = 'sa-arrows-left' }else { treeList.nowidth = true; treeList.owidth = treeList.getBox().width; nwidth = 0; nToggleIconCls = 'sa-arrows-right' } viewModel.set('toggleIconCls', nToggleIconCls); viewModel.set('treeWidth', nwidth); }, onTreeUp: function() { var me = this, viewModel = me.getViewModel(), refs = me.getReferences(), treeList = refs.treelist, listCard = refs.listcard, currentNodeData = viewModel.get('currentNodeData'), rootNode = treeList.getRootNode(), currentNode = rootNode.findChild('id', currentNodeData.id, true); if(!!currentNode.parentNode) { treeList.setSelection(currentNode.parentNode); listCard.showNode(currentNode.parentNode); } }, onTreeAddClick: function(tree, row, col, item, e, eOpts, tr) { var me = this, store = tree.store, record = store.getAt(row); me.showTreeAddWin(record.data); }, onTreeDeleteClick: function(tree, row, col, item, e, eOpts, tr) { var me = this, refs = me.getReferences(), listCard = refs.listcard, treeList = refs.treelist, store = treeList.store, record = store.getAt(row), rootNode = treeList.getRootNode(), id = record.data.id, currentNode = rootNode.findChild('id', id, true), parentNode = currentNode.parentNode; treeList.setSelection(parentNode); currentNode.remove(); listCard.showNode(parentNode); }, showTreeAddWin: function(data) { var me = this, view = me.getView(), refs = me.getReferences(), treeList = refs.treelist, listCard = refs.listcard, win = refs.treeaddwin, id = data.id, type = data.type; var title = type == 'school' ? '新增年级' : '新增班级'; var sumType = type == 'school' ? 'grade' : 'class'; if(!win) { win = Ext.create('Ext.window.Window', { width: 300, height: 180, renderTo: Ext.getBody(), references: 'treeaddwin', modal: true, bodyPadding: 10, layout: 'fit', items: [{ xtype: 'form', layout: 'column', defaults: { columnWidth: 1 }, items: [{ xtype: 'textfield', name: 'text', emptyText: '名称', allowBlank: false }], buttonAlign: 'center', buttons: [{ text: '确定', formBind: true, handler: function() { var form = this.up('form'); var text = form.getValues().text; var rootNode = treeList.getRootNode(); var currentNode; var childNode = { text: text, type: sumType }; if(id == 'root') { currentNode = rootNode; childNode.leaf = false; childNode.children = []; }else { currentNode = rootNode.findChild('id', id, true); childNode.leaf = true; } currentNode.appendChild(childNode); listCard.showNode(currentNode); win.close(); } }] }] }); view.add(win); } win.setTitle(title); win.show(); }, });