/** * 年级班级卡片列表 */ Ext.define('school.view.basic.class.ListCard', { extend: 'Ext.view.View', xtype: 'listcard', controller: 'listcard', cls: 'listcard', tpl: ['
', '', '
', ' {itemCls}', '', '">', '
', ' {textCls}', '', '">{text}
', '
', '
', '
'], bind: { store: '{currentlist}' }, trackOver: true, overItemCls: 'item-over', selectedItemCls: 'item-selected', singleSelect: true, itemSelector: '.item', listeners: { itemclick: 'cardItemClick', beforeRender: 'onBeforeRender' }, showNode: function(node) { let me = this, classInfo = me.up('basic-class-classinfo'), viewModel = classInfo.getViewModel(), currentlist = viewModel.get('currentlist'), currentDetail = viewModel.get('currentDetail'), refs = classInfo.getReferences(), treeList = refs.treelist, listCard = refs.listcard, classDetail = refs.classdetail, list, cardList; if(node.data.type == 'CLASS') { currentlist.removeAll(); listCard.setVisible(false); classDetail.setVisible(true); classDetail.setLoading(true); school.util.BaseUtil.request({ url: classDetail._readUrl + '/' + node.data._id }).then(function(res) { classDetail.setLoading(false); if(res.success) { let d = res.data; let o = { main: d.main }; if(d.hasOwnProperty('items')) { o.detail0 = d.items; }else { let idx = 1; while(d.hasOwnProperty('items' + idx)) { o['detail' + (idx - 1)] = d['items' + idx]; idx++; } } classDetail.initFormData(o); classDetail.fireEvent('load', classDetail, o); } }).catch(function(e) { school.util.BaseUtil.showErrorToast('请求数据失败: ' + e.message); }); }else { node.expand(); listCard.setVisible(true); classDetail.setVisible(false); if(node.data.type == 'GRADE') { list = node.childNodes.map(function(c) { return Ext.Object.merge(c.data, { pathText: node.data.text + c.data.text }) }); }else { node.data.pathText = node.data.text; list = node.childNodes.map(function(c) { return Ext.Object.merge(c.data, { pathText: c.data.text }) }); } cardList = Ext.Array.merge(list, [{ addBtn: true, id: node.data.id, _id: node.data._id, type: node.data.type, itemCls: 'item-add', textCls: 'text-add x-ss ss-add', count: list.length }]); currentlist.loadData(cardList); } viewModel.set('currentNodeData', node.data); treeList.setSelection(node); } });