ListCard.js 3.6 KB

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