Main.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * @Description: 修改样式
  3. * @Author: hy
  4. * @Date: 2019-08-12 17:59:33
  5. * @LastEditTime: 2019-08-13 08:59:31
  6. */
  7. Ext.define('uas.view.main.Main', {
  8. extend: 'Ext.container.Viewport',
  9. controller: 'main',
  10. viewModel: 'main',
  11. layout: 'border',
  12. requires: [
  13. 'Ext.layout.container.Border'
  14. ],
  15. items: [{
  16. region: 'west',
  17. collapsible: true,
  18. title: '目录',
  19. width: 260,
  20. split:true,
  21. layout: 'border',
  22. items: [{
  23. region: 'center',
  24. xtype: 'navigation-tree',
  25. tbar:{
  26. layout:'fit',
  27. items:[{
  28. xtype: 'searchfield',
  29. name: 'query',
  30. emptyText: '请输入关键词',
  31. store: 'Navigation',
  32. onClearClick : function(){
  33. var me = this;
  34. me.setValue('');
  35. me.store.clearFilter();
  36. me.getTrigger('clear').hide();
  37. me.updateLayout();
  38. },
  39. onSearchClick : function(){
  40. var me = this,tree = me.ownerCt.ownerCt,
  41. value = me.getValue();
  42. if (value.length > 0) {
  43. me.store.clearFilter();
  44. me.store.setRemoteFilter(false);
  45. me.store.filter([{
  46. filterFn: function(item) {
  47. item.expand();
  48. if(item.id == 'root'){
  49. return true;
  50. }else if(!item.isLeaf()){
  51. let hasChild = item.findChildBy(function(item){
  52. return item.get('text').indexOf(value)>-1
  53. },item,5);
  54. if(hasChild){
  55. return true
  56. }else{
  57. return false
  58. }
  59. }else if(item.get('text').indexOf(value)>-1){
  60. return true;
  61. }else{
  62. return false;
  63. }
  64. }
  65. }]);
  66. me.getTrigger('clear').show();
  67. me.updateLayout();
  68. }else{
  69. me.getTrigger('clear').hide();
  70. me.store.clearFilter();
  71. }
  72. }
  73. },'->']
  74. }
  75. }]
  76. }, {
  77. split:true,
  78. region: 'center',
  79. xtype: 'contentPanel',
  80. reference: 'contentPanel',
  81. ariaRole: 'main'
  82. }]
  83. });