ClassInfoController.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 = rootNode.findChild('id', currentNodeData.id, true);
  58. if(!!currentNode.parentNode) {
  59. treeList.setSelection(currentNode.parentNode);
  60. listCard.showNode(currentNode.parentNode);
  61. }
  62. },
  63. onTreeAddClick: function(tree, row, col, item, e, eOpts, tr) {
  64. var me = this,
  65. store = tree.store,
  66. record = store.getAt(row);
  67. me.showTreeAddWin(record.data);
  68. },
  69. onTreeDeleteClick: function(tree, row, col, item, e, eOpts, tr) {
  70. var me = this,
  71. refs = me.getReferences(),
  72. listCard = refs.listcard,
  73. treeList = refs.treelist,
  74. store = treeList.store,
  75. record = store.getAt(row),
  76. rootNode = treeList.getRootNode(),
  77. id = record.data.id,
  78. currentNode = rootNode.findChild('id', id, true),
  79. parentNode = currentNode.parentNode;
  80. treeList.setSelection(parentNode);
  81. currentNode.remove();
  82. listCard.showNode(parentNode);
  83. },
  84. showTreeAddWin: function(data) {
  85. var me = this,
  86. view = me.getView(),
  87. refs = me.getReferences(),
  88. treeList = refs.treelist,
  89. listCard = refs.listcard,
  90. win = refs.treeaddwin,
  91. id = data.id,
  92. type = data.type;
  93. var title = type == 'school' ? '新增年级' : '新增班级';
  94. var sumType = type == 'school' ? 'grade' : 'class';
  95. if(!win) {
  96. win = Ext.create('Ext.window.Window', {
  97. width: 300,
  98. height: 180,
  99. renderTo: Ext.getBody(),
  100. references: 'treeaddwin',
  101. modal: true,
  102. bodyPadding: 10,
  103. layout: 'fit',
  104. items: [{
  105. xtype: 'form',
  106. layout: 'column',
  107. defaults: {
  108. columnWidth: 1
  109. },
  110. items: [{
  111. xtype: 'textfield',
  112. name: 'text',
  113. emptyText: '名称',
  114. allowBlank: false
  115. }],
  116. buttonAlign: 'center',
  117. buttons: [{
  118. text: '确定',
  119. formBind: true,
  120. handler: function() {
  121. var form = this.up('form');
  122. var text = form.getValues().text;
  123. var rootNode = treeList.getRootNode();
  124. var currentNode;
  125. var childNode = {
  126. text: text,
  127. type: sumType
  128. };
  129. if(id == 'root') {
  130. currentNode = rootNode;
  131. childNode.leaf = false;
  132. childNode.children = [];
  133. }else {
  134. currentNode = rootNode.findChild('id', id, true);
  135. childNode.leaf = true;
  136. }
  137. currentNode.appendChild(childNode);
  138. listCard.showNode(currentNode);
  139. win.close();
  140. }
  141. }]
  142. }]
  143. });
  144. view.add(win);
  145. }
  146. win.setTitle(title);
  147. win.show();
  148. },
  149. });