Browse Source

代码提交

hy 6 years ago
parent
commit
73b2f700e7

+ 12 - 14
app/store/DataListGridStore.js

@@ -22,24 +22,22 @@ Ext.define('uas.store.DataListGridStore', {
     autoLoad:true,
     remoteSort: false,
     listeners:{
+        beforeload: function (store, op) {},
         load: function(store, records, successful, operation, eOpts) {
-            const paging = store.grid.dockedItems.items[3];
-            const pageCount = paging.items.items[5];
-            const pageSize = paging.items.items[13];
-            if(store.totalCount>0){
-                //代替*号
-                if(store.currentPage/10000000>=1){
+            const grid = store.grid;
+            const paging = grid.down('[xtype=dataListPaging]');
+            const pageCountItem = paging.down('#pageCountItem');
+            const dataCount = paging.down('#dataCountItem');
+            if(store.totalCount!==Number.MAX_SAFE_INTEGER){
+                //展示*号
+                if(store.currentPage===Number.MAX_SAFE_INTEGER){
                     let page = store.totalCount/store.pageSize;
                     page = page>parseInt(page)?page+1:page;
-                    store.loadPage(page)
-                }else{
-                    pageCount.update(Ext.String.format(paging.afterPageText,store.currentPage));
-                    pageSize.setValue("行/共"+store.totalCount+"行");
+                    store.currentPage = page;
+                    paging.down('#inputItem').setValue(page);
                 }
-            }else{
-                store.totalCount = 999999999;
-                pageCount.update(Ext.String.format(paging.afterPageText,'*'));
-                pageSize.setValue("行/共*行");
+                pageCountItem.update(Ext.String.format(paging.afterPageText,store.currentPage));
+                dataCount.setValue("行/共"+store.totalCount+"行");
             }
         }
     }

+ 24 - 5
app/view/grid/dataList/DataListPaging.js

@@ -8,9 +8,10 @@ Ext.define('uas.view.grid.dataList.DataListPaging', {
     displayInfo: false,
     emptyMsg: "无数据",
     items:['->',{
+        itemId: 'pageSizeItem',
         cls:'x-dl-paging-combo',
         labelWidth:60,
-        width:150,
+        width:124,
         value:100,
         labelAlgin:'right',
         xtype:'combo',
@@ -26,13 +27,22 @@ Ext.define('uas.view.grid.dataList.DataListPaging', {
             '1000',1000
         ]],
         listeners:{
-            change:function(me,newValue){
-                const store = me.ownerCt.ownerCt.store;
-                store.setPageSize(newValue);
-                store.loadPage(1)
+            change:function(me,newValue,oldValue){
+                const paging = me.ownerCt;
+                const grid = paging.ownerCt;
+                const { store } = grid;
+                const pageCountItem = paging.down('#pageCountItem');
+                const dataCount = paging.down('#dataCountItem');
+                if(newValue!==oldValue){
+                    store.setPageSize(newValue);
+                    pageCountItem.update(Ext.String.format(paging.afterPageText,'*'));
+                    dataCount.setValue("行/共*行");
+                    store.loadPage(1)
+                }
             }
         }
     },{
+        itemId: 'dataCountItem',
         cls:'x-dl-paging-display',
         xtype:'displayfield',
         value:'行/共*行'
@@ -120,4 +130,13 @@ Ext.define('uas.view.grid.dataList.DataListPaging', {
             }
         ];
     },
+    moveLast: function() {
+        var me = this, 
+            last = me.getPageData().pageCount;
+        if (me.fireEvent('beforechange', me, last) !== false) {
+            me.store.loadPage(Number.MAX_SAFE_INTEGER);
+            return true;
+        }
+        return false;
+    },
 });

+ 51 - 8
app/view/grid/dataList/DataListPanel.js

@@ -36,34 +36,77 @@ Ext.define('uas.view.grid.dataList.DataListPanel', {
         me.callParent(arguments);
     },
 
-    // Dispatch named listener and handler methods to this instance
-    defaultListenerScope: true,
-
     dockedItems: [{
+        name:'operateToolbar',
+        cls:'x-grid-operateToolbar',
         xtype: 'toolbar',
         dock: 'top',
-        height:40,
+        height:32,
         items:[{
             xtype:'button',
-            text:'筛选'
+            text:'筛选',
+            handler:function(me){
+                const grid = me.up('dataListPanel');
+                if(!grid.searchPlanWindow){
+                    grid.searchPlanWindow = Ext.create('widget.searchPlanWindow',{
+                        height:grid.getHeight()*0.8,
+                        width:grid.getWidth()*0.8,
+                        renderTo:grid.getEl()
+                    }).show();
+                }else{
+                    grid.searchPlanWindow.show();
+                }
+            }
+        },{
+            margin:'0 0 0 6',
+            xtype:'button',
+            text:'批处理'
+        },{
+            margin:'0 0 0 6',
+            xtype:'button',
+            text:'上一页'
+        },{
+            margin:'0 0 0 6',
+            xtype:'button',
+            text:'下一页'
+        },{
+            margin:'0 0 0 6',
+            xtype:'button',
+            text:'导出'
         },{
-            margin:'0 0 0 10',
+            margin:'0 0 0 6',
             xtype:'button',
-            text:'处理'
+            text:'个性设置'
+        },{
+            margin:'0 0 0 12',
+            xtype:'button',
+            text:'关闭'
         }]
     },{
         xtype: 'toolbar',
         dock: 'top',
+        name:'searchPlan',
+        cls:'x-grid-searchPlan',
         height:32,
         items:[{
             xtype:'displayfield',
             value:'查询方案:'
+        },{
+            xtype:'button',
+            text:'缺省方案'
+        },{
+            xtype:'button',
+            text:'新方案A'
+        },{
+            xtype:'button',
+            text:'新方案B'
         }]
     },{
         xtype: 'toolbar',
         dock: 'top',
         name:'filterToolbar',
-        height:46,
+        cls:'x-grid-filterToolbar',
+        height:32,
         items:[{
             xtype:'displayfield',
             value:'筛选条件:'

+ 44 - 0
app/view/grid/dataList/DataListPanel.scss

@@ -4,6 +4,41 @@
     }
 }
 
+.x-grid-filterToolbar{
+    .x-form-display-field-default{
+        margin-top: 2px;
+    }
+    .x-btn-default-toolbar-small{
+        top: 2px !important;
+        height: 18px;
+        padding:0px;
+    }
+}
+.x-grid-searchPlan{
+    .x-form-display-field-default{
+        margin-top: 6px;
+    }
+    .x-btn-default-toolbar-small{
+        top: 3px !important;
+        height: 23px;
+        padding:0px;
+        background: unset;
+        border:none;
+        .x-btn-inner-default-toolbar-small{
+            color:#5fa2dd
+        }
+    }
+}
+.x-grid-operateToolbar{
+    border-bottom-width: 1px !important;
+    .x-btn-default-toolbar-small{
+        padding: 2px;
+        border-color: #ababab;
+        height: 20px;
+        background: unset;
+    }
+}
+
 .x-dataListPaging{
     height:36px;
     .x-box-inner{
@@ -27,15 +62,24 @@
             height: 20px;
         }
         .x-form-text-wrap{
+            line-height: 20px;
             height: 15px;
         }
         .x-form-text-default{
+            padding: 4px;
             height: 15px;
+            line-height: 20px;
             min-height:15px;
         }
         .x-form-trigger {
+            width: 16px;
             height: 20px;
             display: inline-block;
         }
+        .x-form-trigger-default:before {
+            margin-top: -6px;
+            margin-left: -4px;
+            position: absolute;
+        }
     }
 }

+ 14 - 0
app/view/grid/dataList/SearchPlanWindow.js

@@ -0,0 +1,14 @@
+Ext.define('uas.view.grid.dataList.SearchPlanWindow', {
+    extend: 'Ext.window.Window',
+    alias: 'widget.searchPlanWindow',
+    xtype: 'searchPlanWindow',
+    cls: 'x-window-dbfind',
+    title: '筛选方案',
+    scrollable: true,
+    bodyPadding: 10,
+    constrain: true,
+    modal: true,
+    closable: true,
+    layout: 'fit',
+    closeAction: 'hide'
+});

+ 12 - 5
server/data/dataList.js

@@ -19,15 +19,22 @@ var dataLists = (function(){
 
 module.exports = function(query){
     console.log(query);
-    var page = query.page || 1;
-    var start = query.start || 0;
-    var limit = query.limit || 0;
+    var page = Number(query.page) || 1;
+    var start = Number(query.start) || 0;
+    var limit = Number(query.limit) || 0;
     var result = {
-        total:-1
+        total:Number.MAX_SAFE_INTEGER
     };
 
-    if((Number(start)+Number(limit))>=dataLists.length){
+    if(page===Number.MAX_SAFE_INTEGER){
         result.total = dataLists.length
+        page = dataLists.length/limit;
+        page = page>parseInt(page)?page+1:page;
+        start = (page-1)*limit;
+    }else{
+        if(start<=dataLists.length&&(start+limit)>=dataLists.length){
+            result.total = dataLists.length
+        }
     }
 
     if(limit > 0) {

+ 1 - 1
server/server.js

@@ -9,7 +9,7 @@ var command = require("./command");
  */
 var commandParams = command
     .version('0.0.1')
-    .option('-p, --port <number>', 'change server port', 3000)//本地调试需改成24002
+    .option('-p, --port <number>', 'change server port', 24002)//本地调试需改成24002
     .parse(process.argv.slice(2));
     
 var port = commandParams.port;