ListCard.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. let 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. classDetail.setLoading(true);
  52. school.util.BaseUtil.request({
  53. url: classDetail._readUrl + '/' + node.data._id
  54. }).then(function(res) {
  55. classDetail.setLoading(false);
  56. if(res.success) {
  57. let d = res.data;
  58. let o = {
  59. main: d.main
  60. };
  61. if(d.hasOwnProperty('items')) {
  62. o.detail0 = d.items;
  63. }else {
  64. let idx = 1;
  65. while(d.hasOwnProperty('items' + idx)) {
  66. o['detail' + (idx - 1)] = d['items' + idx];
  67. idx++;
  68. }
  69. }
  70. classDetail.initFormData(o);
  71. classDetail.fireEvent('load', classDetail, o);
  72. }
  73. }).catch(function(e) {
  74. school.util.BaseUtil.showErrorToast('请求数据失败: ' + e.message);
  75. });
  76. }else {
  77. node.expand();
  78. listCard.setVisible(true);
  79. classDetail.setVisible(false);
  80. if(node.data.type == 'GRADE') {
  81. list = node.childNodes.map(function(c) {
  82. return Ext.Object.merge(c.data, {
  83. pathText: node.data.text + c.data.text
  84. })
  85. });
  86. }else {
  87. node.data.pathText = node.data.text;
  88. list = node.childNodes.map(function(c) {
  89. return Ext.Object.merge(c.data, {
  90. pathText: c.data.text
  91. })
  92. });
  93. }
  94. cardList = Ext.Array.merge(list, [{
  95. addBtn: true,
  96. id: node.data.id,
  97. _id: node.data._id,
  98. type: node.data.type,
  99. itemCls: 'item-add',
  100. textCls: 'text-add x-ss ss-add',
  101. count: list.length
  102. }]);
  103. currentlist.loadData(cardList);
  104. }
  105. viewModel.set('currentNodeData', node.data);
  106. treeList.setSelection(node);
  107. }
  108. });