ClassInfoController.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. Ext.define('school.view.basic.class.ClassInfoController', {
  2. extend: 'Ext.app.ViewController',
  3. alias: 'controller.basic-class-classinfo',
  4. onItemMouseEnter: function(tree, record, item, index, e, eOpts) {
  5. var icons = item.getElementsByClassName('action-icon');
  6. if(record.data.leaf) {
  7. icons[1].classList.remove('x-hidden');
  8. return;
  9. }
  10. if(record.data.id == 'root') {
  11. icons[0].classList.remove('x-hidden');
  12. return;
  13. }
  14. icons[0].classList.remove('x-hidden');
  15. icons[1].classList.remove('x-hidden');
  16. },
  17. onItemMouseLeave: function(tree, record, item, index, e, eOpts) {
  18. var icons = item.getElementsByClassName('action-icon');
  19. for(var x = 0; x < icons.length; x++) {
  20. icons[x].classList.add('x-hidden');
  21. }
  22. },
  23. onItemclick: function(tree, record, item, index, e, eOpts) {
  24. var me = this,
  25. refs = me.getReferences(),
  26. listCard = refs.listcard;
  27. listCard.showNode(record);
  28. },
  29. onToggleTree: function() {
  30. var me = this,
  31. viewModel = me.getViewModel(),
  32. refs = me.getReferences(),
  33. treeList = refs.treelist,
  34. nwidth,
  35. nToggleIconCls;
  36. if(treeList.nowidth) {
  37. treeList.nowidth = false;
  38. nwidth = treeList.owidth;
  39. nToggleIconCls = 'sa-arrows-left'
  40. }else {
  41. treeList.nowidth = true;
  42. treeList.owidth = treeList.getBox().width;
  43. nwidth = 0;
  44. nToggleIconCls = 'sa-arrows-right'
  45. }
  46. viewModel.set('toggleIconCls', nToggleIconCls);
  47. viewModel.set('treeWidth', nwidth);
  48. },
  49. onTreeUp: function() {
  50. var me = this,
  51. viewModel = me.getViewModel(),
  52. refs = me.getReferences(),
  53. treeList = refs.treelist,
  54. listCard = refs.listcard,
  55. currentNodeData = viewModel.get('currentNodeData'),
  56. rootNode = treeList.getRootNode(),
  57. currentNode;
  58. if(currentNodeData.id !== 'root') {
  59. currentNode = rootNode.findChild('id', currentNodeData.id, true);
  60. if(!!currentNode.parentNode) {
  61. treeList.setSelection(currentNode.parentNode);
  62. listCard.showNode(currentNode.parentNode);
  63. }
  64. }
  65. },
  66. onTreeAddClick: function(tree, row, col, item, e, eOpts, tr) {
  67. var me = this,
  68. store = tree.store,
  69. record = store.getAt(row);
  70. me.showTreeAddWin(record.data);
  71. },
  72. onTreeDeleteClick: function(tree, row, col, item, e, eOpts, tr) {
  73. var me = this,
  74. refs = me.getReferences(),
  75. listCard = refs.listcard,
  76. treeList = refs.treelist,
  77. store = treeList.store,
  78. record = store.getAt(row),
  79. rootNode = treeList.getRootNode(),
  80. id = record.data.id,
  81. currentNode = rootNode.findChild('id', id, true),
  82. parentNode = currentNode.parentNode;
  83. treeList.setSelection(parentNode);
  84. currentNode.remove();
  85. listCard.showNode(parentNode);
  86. },
  87. showTreeAddWin: function(data) {
  88. var me = this,
  89. view = me.getView(),
  90. refs = me.getReferences(),
  91. treeList = refs.treelist,
  92. listCard = refs.listcard,
  93. win = refs.treeaddwin,
  94. id = data.id,
  95. type = data.type;
  96. var title = type == 'SCHOOL' ? '新增年级' : '新增班级';
  97. var sumType = type == 'SCHOOL' ? 'GRADE' : 'CLASS';
  98. if(!win) {
  99. win = Ext.create('Ext.window.Window', {
  100. width: 300,
  101. height: 180,
  102. renderTo: Ext.getBody(),
  103. references: 'treeaddwin',
  104. modal: true,
  105. bodyPadding: 10,
  106. layout: 'fit',
  107. items: [{
  108. xtype: 'form',
  109. layout: 'column',
  110. defaults: {
  111. columnWidth: 1
  112. },
  113. items: [{
  114. xtype: 'textfield',
  115. name: 'text',
  116. emptyText: '名称',
  117. allowBlank: false
  118. }],
  119. buttonAlign: 'center',
  120. buttons: [{
  121. text: '确定',
  122. formBind: true,
  123. handler: function() {
  124. var form = this.up('form');
  125. var text = form.getValues().text;
  126. var rootNode = treeList.getRootNode();
  127. var currentNode;
  128. var childNode = {
  129. text: text,
  130. type: sumType
  131. };
  132. if(id == 'root') {
  133. currentNode = rootNode;
  134. childNode.leaf = false;
  135. childNode.children = [];
  136. }else {
  137. currentNode = rootNode.findChild('id', id, true);
  138. childNode.leaf = true;
  139. }
  140. currentNode.appendChild(childNode);
  141. listCard.showNode(currentNode);
  142. win.close();
  143. }
  144. }]
  145. }]
  146. });
  147. view.add(win);
  148. }
  149. win.setTitle(title);
  150. win.show();
  151. },
  152. });