ClassInfoController.js 5.3 KB

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