power.jsp 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%
  4. request.setCharacterEncoding("utf-8");
  5. String path = request.getContextPath();
  6. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  7. %>
  8. <!DOCTYPE html>
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  12. <link rel="stylesheet" href="<%=basePath %>resource/ext/resources/css/ext-all-gray.css" type="text/css"></link>
  13. <link rel="stylesheet" href="<%=basePath %>resource/css/main.css" type="text/css"></link>
  14. <link rel="stylesheet" href="<%=basePath %>resource/css/tree.css" type="text/css"></link>
  15. <link rel="stylesheet" type="text/css" href="<%=basePath %>resource/ux/css/CheckHeader.css" />
  16. <title>岗位权限设置</title>
  17. <style>
  18. .x-grid-header{
  19. font-size: 12px;
  20. text-align: center;
  21. }
  22. .x-grid-search-trigger {
  23. cursor: pointer;
  24. background: url('<%=basePath %>resource/images/query.png') no-repeat center center !important;
  25. }
  26. .checked .x-form-checkbox{
  27. background-position: 0 -13px;
  28. }
  29. .checked .x-form-cb-label{
  30. color: red;
  31. }
  32. </style>
  33. <script type="text/javascript" src="<%=basePath %>resource/ext/ext-all.js"></script>
  34. <script type="text/javascript" src="<%=basePath %>resource/i18n/i18n.js"></script>
  35. <script type="text/javascript" src="<%=basePath %>resource/ux/CheckColumn.js"></script>
  36. <script type="text/javascript">
  37. var caller = "PositionPower";
  38. // override local query
  39. Ext.override(Ext.form.field.ComboBox, {
  40. doQuery: function(queryString, forceAll, rawQuery) {
  41. queryString = queryString || '';
  42. // store in object and pass by reference in 'beforequery'
  43. // so that client code can modify values.
  44. var me = this,
  45. qe = {
  46. query: queryString,
  47. forceAll: forceAll,
  48. combo: me,
  49. cancel: false
  50. },
  51. store = me.store,
  52. isLocalMode = me.queryMode === 'local';
  53. if (me.fireEvent('beforequery', qe) === false || qe.cancel) {
  54. return false;
  55. }
  56. // get back out possibly modified values
  57. queryString = qe.query;
  58. forceAll = qe.forceAll;
  59. // query permitted to run
  60. if (forceAll || (queryString.length >= me.minChars)) {
  61. // expand before starting query so LoadMask can position itself correctly
  62. me.expand();
  63. // make sure they aren't querying the same thing
  64. if (!me.queryCaching || me.lastQuery !== queryString) {
  65. me.lastQuery = queryString;
  66. if (isLocalMode) {
  67. // forceAll means no filtering - show whole dataset.
  68. if (forceAll) {
  69. store.clearFilter();
  70. } else {
  71. // Clear filter, but supress event so that the BoundList is not immediately updated.
  72. store.clearFilter(true);
  73. store.filter([new Ext.util.Filter({
  74. id: me.id + '-query-filter',
  75. anyMatch: me.anyMatch,
  76. caseSensitive: me.caseSensitive,
  77. root: 'data',
  78. property: me.displayField,
  79. value: queryString
  80. })]);
  81. }
  82. } else {
  83. // Set flag for onLoad handling to know how the Store was loaded
  84. me.rawQuery = rawQuery;
  85. // In queryMode: 'remote', we assume Store filters are added by the developer as remote filters,
  86. // and these are automatically passed as params with every load call, so we do *not* call clearFilter.
  87. if (me.pageSize) {
  88. // if we're paging, we've changed the query so start at page 1.
  89. me.loadPage(1);
  90. } else {
  91. store.load({
  92. params: me.getParams(queryString)
  93. });
  94. }
  95. }
  96. }
  97. // Clear current selection if it does not match the current value in the field
  98. if (me.getRawValue() !== me.getDisplayValue()) {
  99. me.ignoreSelection++;
  100. me.picker.getSelectionModel().deselectAll();
  101. me.ignoreSelection--;
  102. }
  103. if (isLocalMode) {
  104. me.doAutoSelect();
  105. }
  106. if (me.typeAhead) {
  107. me.doTypeAhead();
  108. }
  109. }
  110. return true;
  111. }
  112. });
  113. Ext.Loader.setConfig({
  114. enabled: true
  115. });//开启动态加载
  116. Ext.Ajax.request({//拿到treegrid数据
  117. url : basePath + 'common/singleGridPanel.action',
  118. params: {
  119. caller: caller,
  120. condition: ''
  121. },
  122. callback : function(options,success,response){
  123. var res = new Ext.decode(response.responseText);
  124. if(res.columns){
  125. fields = res.fields;
  126. columns = new Array();
  127. var keys = ['locked', 'summaryType', 'logic', 'renderer'];
  128. Ext.each(res.columns, function(c){
  129. var o = new Object();
  130. var key = Ext.Object.getKeys(c);
  131. Ext.each(key, function(k){
  132. if(!Ext.Array.contains(keys, k)){
  133. o[k] = c[k];
  134. }
  135. });
  136. columns.push(o);
  137. });
  138. Ext.application({
  139. name: 'erp',//为应用程序起一个名字,相当于命名空间
  140. appFolder: '<%=basePath %>'+'app',//app文件夹所在路径
  141. controllers: [//声明所用到的控制层
  142. 'ma.Power'
  143. ],
  144. launch: function() {
  145. Ext.create('erp.view.ma.Power');//创建视图
  146. }
  147. });
  148. } else if(res.exceptionInfo){
  149. Ext.Msg.alert('提示',res.exceptionInfo,function(){
  150. window.close();
  151. });
  152. }
  153. }
  154. });
  155. </script>
  156. </head>
  157. <body >
  158. </body>
  159. </html>