Main.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. Ext.define('saas.view.main.Main', {
  2. extend: 'Ext.container.Container',
  3. xtype: 'main',
  4. requires: [
  5. 'Ext.list.Tree',
  6. 'Ext.Img'
  7. ],
  8. controller: 'main',
  9. viewModel: 'main',
  10. cls: 'main-ct',
  11. id: 'mainView',
  12. itemId: 'mainView',
  13. layout: {
  14. type: 'vbox',
  15. align: 'stretch'
  16. },
  17. items: [
  18. {
  19. xtype: 'toolbar',
  20. cls: 'main-headerbar shadow',
  21. height: 64,
  22. itemId: 'headerBar',
  23. items: [
  24. {
  25. xtype: 'component',
  26. reference: 'mainLogo',
  27. cls: 'main-logo-wrap',
  28. html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">优企云服</div></div>',
  29. bind: {
  30. width: '{navWidth}'
  31. }
  32. },
  33. {
  34. margin: '0 0 0 8',
  35. ui: 'header',
  36. iconCls:'x-fa fa-navicon',
  37. id: 'main-navigation-btn',
  38. handler: 'onToggleNavigationSize'
  39. },{
  40. reference: 'mainprofile',
  41. arrowVisible: false,
  42. ui: 'header',
  43. bind: {
  44. text: '{company.name}'
  45. },
  46. menu: {
  47. items: [{
  48. xtype: 'menuseparator'
  49. }]
  50. }
  51. },
  52. '->',
  53. {
  54. iconCls:'icon-usoftchina',
  55. ui: 'header',
  56. tooltip: '优软云',
  57. handler:function(){
  58. window.open('http://www.usoftchina.com','_blank');
  59. }
  60. },
  61. {
  62. iconCls:'x-fa fa-question',
  63. ui: 'header',
  64. arrowVisible: false,
  65. width:50,
  66. listeners:{
  67. 'mouseover':function(){
  68. this.showMenu();
  69. },
  70. 'mouseout':function(btn,e){
  71. var cx = e.browserEvent.clientX, cy = e.browserEvent.clientY;
  72. var btnLayout = btn.el.dom.getBoundingClientRect();
  73. if(cx <= btnLayout.left || cx >= btnLayout.left+btnLayout.width || cy <= btnLayout.top) {
  74. btn.hideMenu();
  75. }
  76. }
  77. },
  78. menu: {
  79. cls:'nav-menu',
  80. items: [{
  81. text: '新手导航',
  82. iconCls:'x-fa fa-comment-o',
  83. handler:function(){
  84. console.log("新手导航");
  85. }
  86. },{
  87. text: '用户手册',
  88. iconCls:'x-fa fa-comment-o',
  89. handler:function(){
  90. console.log("用户手册");
  91. }
  92. },{
  93. text: '常见问题',
  94. iconCls:'x-fa fa-question-circle-o',
  95. handler:function(){
  96. console.log("常见问题");
  97. }
  98. },{
  99. text: '客服热线',
  100. iconCls:'x-fa fa-comment-o',
  101. handler:function(){
  102. console.log("客服热线");
  103. }
  104. }]
  105. }
  106. },
  107. {
  108. margin: '0 0 0 8',
  109. xtype: 'tbtext',
  110. cls:'nav-realname',
  111. bind: {
  112. //tooltip: '{account.realname}',
  113. html: '{account.realname}'
  114. },
  115. style:{
  116. cursor:'default',
  117. textAlign:'center'
  118. }
  119. },
  120. {
  121. ui: 'header',
  122. id:"userImage",
  123. height: 35,
  124. width: 35,
  125. bind: {
  126. html:'<img class="x-img x-box-item x-toolbar-item x-img-header" style="width: 35px; height: 35px; margin: 0px;" src="{avatarUrl}" alt="">'
  127. },
  128. menu: {
  129. cls:'nav-menu',
  130. items: [ {
  131. text: '账户中心',
  132. iconCls:'x-fa x-fa fa-user-o',
  133. handler:function(){
  134. console.log("账户中心");
  135. }
  136. },{
  137. text: '意见反馈',
  138. iconCls:'x-fa fa-comment-o',
  139. handler:function(){
  140. console.log("意见反馈");
  141. }
  142. }, {
  143. text: '退出',
  144. iconCls:'x-fa fa-power-off',
  145. handler: 'onLogout'
  146. }]
  147. } ,
  148. listeners:{
  149. 'mouseover':function(btn){
  150. console.log("btn:",btn);
  151. btn.menu ? (btn.menu.isVisible() ? '' : btn.showMenu()) : '';
  152. },
  153. 'mouseout':function(btn,e){
  154. console.log("btn:",btn);
  155. window.setTimeout(function(){
  156. var cx = e.browserEvent.clientX, cy = e.browserEvent.clientY;
  157. console.log(btn.el.dom);
  158. var btnLayout = btn.el.dom.getBoundingClientRect();
  159. if(cx <= btnLayout.left || cx >= btnLayout.left+btnLayout.width || cy <= btnLayout.top) {
  160. btn.hideMenu();
  161. }
  162. }, 10);
  163. }
  164. }
  165. }
  166. ]
  167. },
  168. {
  169. xtype: 'maincontainerwrap'
  170. }
  171. ]
  172. });