ListCard.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * 年级班级卡片列表
  3. */
  4. Ext.define('school.view.basic.class.ListCard', {
  5. extend: 'Ext.view.View',
  6. xtype: 'listcard',
  7. controller: 'listcard',
  8. cls: 'listcard',
  9. tpl: ['<div class="list">',
  10. '<tpl for=".">',
  11. '<div class="item',
  12. '<tpl if="itemCls">',
  13. ' {itemCls}',
  14. '</tpl>',
  15. '">',
  16. '<div class="text',
  17. '<tpl if="textCls">',
  18. ' {textCls}',
  19. '</tpl>',
  20. '">{text}</div>',
  21. '</div>',
  22. '</tpl>',
  23. '</div>'],
  24. bind: {
  25. store: '{currentlist}'
  26. },
  27. trackOver: true,
  28. overItemCls: 'item-over',
  29. selectedItemCls: 'item-selected',
  30. singleSelect: true,
  31. itemSelector: '.item',
  32. listeners: {
  33. itemclick: 'cardItemClick',
  34. beforeRender: 'onBeforeRender'
  35. },
  36. showNode: function(node) {
  37. var me = this,
  38. classInfo = me.up('basic-class-classinfo'),
  39. viewModel = classInfo.getViewModel(),
  40. currentlist = viewModel.get('currentlist'),
  41. currentDetail = viewModel.get('currentDetail'),
  42. refs = classInfo.getReferences(),
  43. treeList = refs.treelist,
  44. listCard = refs.listcard,
  45. classDetail = refs.classdetail,
  46. list, cardList;
  47. if(node.data.type == 'CLASS') {
  48. currentlist.removeAll();
  49. listCard.setVisible(false);
  50. classDetail.setVisible(true);
  51. viewModel.set('currentDetail', {
  52. id: node.data.id,
  53. name: node.data.text,
  54. grade: node.parentNode.data.text,
  55. })
  56. }else {
  57. node.expand();
  58. listCard.setVisible(true);
  59. classDetail.setVisible(false);
  60. list = node.childNodes.map(function(c) {
  61. return c.data
  62. });
  63. cardList = Ext.Array.merge(list, [{
  64. addBtn: true,
  65. id: node.data.id,
  66. type: node.data.type,
  67. itemCls: 'item-add',
  68. textCls: 'text-add x-ss ss-add'
  69. }]);
  70. currentlist.loadData(cardList);
  71. }
  72. viewModel.set('currentNodeData', node.data);
  73. treeList.setSelection(node);
  74. }
  75. });