浏览代码

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

yingp 7 年之前
父节点
当前提交
f9c8ab7476

+ 21 - 1
frontend/saas-web/app/util/BaseUtil.js

@@ -1,3 +1,23 @@
 Ext.define('saas.util.BaseUtil', {
 Ext.define('saas.util.BaseUtil', {
-    
+
+    /**
+     * 发起Ajax请求
+     * @param url: 请求路径
+     * @param params: 请求参数
+     */
+    request: function(url, params) {
+        return new Ext.Promise(function (resolve, reject) {
+            Ext.Ajax.request({
+                url: url,
+                params: params,
+                success: function(response, opts) {
+                    resolve(response);
+                },
+                failure: function(response, opts) {
+                    console.log('server-side failure with status code ' + response.status);
+                    return reject(response);
+                }
+            });
+        })
+    }
 });
 });

+ 9 - 12
frontend/saas-web/app/util/FormUtil.js

@@ -1,22 +1,19 @@
 Ext.define('saas.util.FormUtil', {
 Ext.define('saas.util.FormUtil', {
+
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    
     /**
     /**
      * 获得form的字段配置
      * 获得form的字段配置
      * @param form: form组件
      * @param form: form组件
      * @param url: url
      * @param url: url
      */
      */
     getFormItems: function(form, url, callback) {
     getFormItems: function(form, url, callback) {
-        Ext.Ajax.request({
-            url: url,
-            success: function(response, opts) {
-                var items = Ext.decode(response.responseText);
-                form.add(items);
-
-                typeof callback == 'function' && callback(form, items);
-            },
-       
-            failure: function(response, opts) {
-                console.log('server-side failure with status code ' + response.status);
-            }
+        this.BaseUtil.request(url)
+        .then(function(response) {
+            var items = Ext.decode(response.responseText);
+            form.add(items);
+        }).catch(function(response) {
+            console.log(response);
         });
         });
     }
     }
 });
 });

+ 24 - 27
frontend/saas-web/app/util/GridUtil.js

@@ -1,29 +1,29 @@
 Ext.define('saas.util.GridUtil', {
 Ext.define('saas.util.GridUtil', {
+
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+
     /**
     /**
      * 获取grid列配置
      * 获取grid列配置
      * @param grid grid组件
      * @param grid grid组件
      * @param url 请求url
      * @param url 请求url
      */
      */
     setColumns: function(grid, url) {
     setColumns: function(grid, url) {
-        Ext.Ajax.request({
-            url: url,
-            success: function(response, opts) {
-                var columns = Ext.decode(response.responseText);
-                var fields = columns.map(column => column.dataIndex);
-                var store = Ext.create('Ext.data.Store', {
-                    fields,
-                });
-                if(grid.showIndex) {
-                    columns.unshift({ xtype: 'rownumberer' });
-                }
-                grid.reconfigure(store, columns);
-
-                grid.fireEvent('afterSetColumns', grid, columns);
-            },
-       
-            failure: function(response, opts) {
-                console.log('server-side failure with status code ' + response.status);
+        this.BaseUtil.request(url)
+        .then(function(response) {
+            var columns = Ext.decode(response.responseText);
+            var fields = columns.map(column => column.dataIndex);
+            var store = Ext.create('Ext.data.Store', {
+                fields,
+            });
+            if(grid.showIndex) {
+                columns.unshift({ xtype: 'rownumberer' });
             }
             }
+            grid.reconfigure(store, columns);
+
+            grid.fireEvent('afterSetColumns', grid, columns);
+        })
+        .catch(function(response) {
+            // something...
         });
         });
     },
     },
 
 
@@ -33,18 +33,15 @@ Ext.define('saas.util.GridUtil', {
      * @param url 请求url
      * @param url 请求url
      */
      */
     loadData: function(grid, url) {
     loadData: function(grid, url) {
-        Ext.Ajax.request({
-            url: url,
-            success: function(response, opts) {
-                var data = Ext.decode(response.responseText);
+        this.BaseUtil.request(url)
+        .then(function(response) {
+            var data = Ext.decode(response.responseText);
                 grid.getStore().loadData(data);
                 grid.getStore().loadData(data);
 
 
                 grid.fireEvent('afterLoadData', grid, data);
                 grid.fireEvent('afterLoadData', grid, data);
-            },
-       
-            failure: function(response, opts) {
-                console.log('server-side failure with status code ' + response.status);
-            }
+        })
+        .catch(function(response) {
+            // something...
         });
         });
     }
     }
 });
 });

+ 1 - 1
frontend/saas-web/app/view/core/form/DbfindTrigger.js

@@ -42,7 +42,7 @@ Ext.define('saas.view.core.form.DbfindTrigger', {
                 xtype:'core-dbfindgridpanel',
                 xtype:'core-dbfindgridpanel',
                 configUrl: f.configUrl,
                 configUrl: f.configUrl,
                 dataUrl: f.dataUrl,
                 dataUrl: f.dataUrl,
-                relative: f.relative
+                dbfinds: f.dbfinds
             }]
             }]
         });
         });
         win.show();
         win.show();

+ 2 - 2
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -5,8 +5,8 @@ Ext.define('saas.view.core.form.FormPanel', {
     FormUtil: Ext.create('saas.util.FormUtil'),
     FormUtil: Ext.create('saas.util.FormUtil'),
 
 
     controller: 'core-form-formpanel',
     controller: 'core-form-formpanel',
-    viewModel: Ext.create('Ext.app.ViewModel'),
-    
+    viewModel: 'core-form-formpanel',
+
     layout: 'column',
     layout: 'column',
     autoScroll: true,
     autoScroll: true,
     border: 1,
     border: 1,

+ 4 - 0
frontend/saas-web/app/view/core/form/FormPanelModel.js

@@ -0,0 +1,4 @@
+Ext.define('saas.view.core.form.FormPanelModel', {
+    extend: 'Ext.app.ViewModel',
+    alias: 'viewmodel.core-form-formpanel'
+});

+ 75 - 17
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -8,23 +8,6 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
     margin: '0 5 5 0', // formpanel的fieldDefaults未生效
     margin: '0 5 5 0', // formpanel的fieldDefaults未生效
     height: 300,
     height: 300,
 
 
-    controller: 'core-form-field-detailgridfield',
-
-    dockedItems: [{
-        xtype: 'toolbar',
-        dock: 'bottom',
-        items: [{
-            iconCls: 'x-fa fa-plus',
-            handler: 'addDetail'
-        }, {
-            iconCls: 'x-fa fa-delete',
-            handler: 'deleteDetail'
-        }, {
-            text: '审核',
-            handler: 'add10EmptyRow'
-        }]
-    }],
-
     store: {
     store: {
         data: []
         data: []
     },
     },
@@ -34,7 +17,82 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
 
 
     initComponent: function() {
     initComponent: function() {
         var me = this;
         var me = this;
+        Ext.apply(me, {
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'bottom',
+                items: [{
+                    iconCls: 'x-fa fa-plus-circle',
+                    handler: me.addDetail
+                }, {
+                    iconCls: 'x-fa fa-trash',
+                    handler: me.deleteDetail
+                }, {
+                    iconCls: 'x-fa fa-arrow-up',
+                    handler: me.swapUp
+                }, {
+                    iconCls: 'x-fa fa-arrow-down',
+                    handler: me.swapDown
+                }]
+            }]
+        });
         me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
         me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
         me.callParent(arguments);
         me.callParent(arguments);
     },
     },
+
+    listeners: {
+        afterSetColumns: function(grid) {
+            grid.add10EmptyRow();
+        },
+        itemClick: function(tableView, record, item, index, e, eOpts) {
+            var grid = tableView.up('grid'),
+                store = grid.store,
+                count = store.getCount();
+
+            if(index == count - 1) {
+                grid.add10EmptyRow();
+            }
+        }
+    },
+
+    add10EmptyRow: function() {
+        var me = this,
+            store = me.getStore(),
+            selectedRecord = me.selModel.lastSelected,
+            datas = [];
+
+        Ext.Array.each(new Array(10), function() {
+            datas.push({});
+        })
+        store.insert(store.indexOf(selectedRecord) + 1, datas);
+    },
+
+    addDetail: function() {
+        var grid = this.up('grid'),
+            store = grid.getStore(),
+            selectedRecord = grid.selModel.lastSelected;
+
+        store.insert(store.indexOf(selectedRecord) + 1, {});
+    },
+
+    deleteDetail: function() {
+        var grid = this.up('grid'),
+            store = grid.getStore(),
+            selectedRecord = grid.selModel.lastSelected;
+
+        store.remove(selectedRecord);
+    },
+
+    swapUp: function() {
+        var grid = this.up('grid'),
+            store = grid.getStore(),
+            record = grid.selModel.lastSelected,
+            selectedIdx = store.indexOf(record),
+            to = store.getAt(selectedIdx - 1);
+
+    },
+
+    swapDown: function() {
+
+    }
 });
 });

+ 0 - 33
frontend/saas-web/app/view/core/form/field/DetailGridFieldController.js

@@ -1,33 +0,0 @@
-Ext.define('saas.view.core.form.field.MyFieldController', {
-    extend: 'Ext.app.ViewController',
-    alias: 'controller.core-form-field-detailgridfield',
-
-    control: {
-        'grid': {
-            afterSetColumns: 'add10EmptyRow'
-        }
-    },
-
-    add10EmptyRow: function() {
-        var me = this,
-            grid = me.getView(),
-            store = grid.getStore(),
-            selectedRecord = grid.selModel.lastSelected,
-            datas = [];
-
-        Ext.Array.each(new Array(10), function() {
-            datas.push({});
-        })
-        grid.store.insert(store.indexOf(selectedRecord) + 1, datas);
-    },
-
-    addDetail: function() {
-        var me = this,
-            grid = me.getView(),
-            store = grid.getStore(),
-            selectedRecord = grid.selModel.lastSelected;
-
-        grid.store.insert(store.indexOf(selectedRecord) + 1, {});
-    }
-
-});

+ 6 - 17
frontend/saas-web/app/view/core/grid/DbfindGridPanel.js

@@ -16,24 +16,13 @@ Ext.define('saas.view.core.grid.DbfindGridPanel', {
     listeners:{
     listeners:{
         itemClick: function(view,record) {
         itemClick: function(view,record) {
             var me = this;
             var me = this;
-            var relatives = [];
-            Ext.Ajax.request({
-                async:false,
-                url: me.relative,
-                success: function(response, opts) {
-                    relatives = Ext.decode(response.responseText);                   
-                },
-                failure: function(response, opts) {
-                    console.log('server-side failure with status code ' + response.status);
-                }
-            });
-            if(relatives.length>0){
-                for (let index = 0; index < relatives.length; index++) {
-                    var item = relatives[index];
-                    var field = me.ownerCt.belong.down('[name='+item.name+']');
-                    debugger
+            var dbfinds = me.dbfinds;
+            if(dbfinds.length>0){
+                for (let index = 0; index < dbfinds.length; index++) {
+                    var item = dbfinds[index];
+                    var field = me.ownerCt.belong.down('[name='+item.to+']');
                     if(field){
                     if(field){
-                        var val = record.get(item.name);
+                        var val = record.get(item.from);
                         if(field.xtype=='dbfindtrigger'){
                         if(field.xtype=='dbfindtrigger'){
                             field.setValue(val);
                             field.setValue(val);
                             field.setRawValue(val);
                             field.setRawValue(val);

+ 1 - 1
frontend/saas-web/app/view/main/MainContainerWrap.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.main.MainContainerWrap', {
             expanderOnly: false,
             expanderOnly: false,
             floatLeafItems: true,
             floatLeafItems: true,
             listeners: {
             listeners: {
-                selectionchange: 'onNavigationTreeSelectionChange'
+                itemClick: 'onNavigationTreeItemClick'
             }
             }
         },
         },
         {
         {

+ 3 - 1
frontend/saas-web/app/view/main/MainController.js

@@ -7,7 +7,9 @@ Ext.define('saas.view.main.MainController', {
 
 
     alias: 'controller.main',
     alias: 'controller.main',
 
 
-    onNavigationTreeSelectionChange: function (tree, node) {
+    onNavigationTreeItemClick: function(tree, info) {
+        var node = info.node;
+
         if (node && node.get('viewType')) {
         if (node && node.get('viewType')) {
             this.setActiveTab(node.getData());
             this.setActiveTab(node.getData());
         }
         }

+ 7 - 1
frontend/saas-web/resources/json/purchase/formItems.json

@@ -16,7 +16,13 @@
     "xtype": "dbfindtrigger",
     "xtype": "dbfindtrigger",
     "configUrl":"resources/json/purchase/vendorColumnsDbfind.json",
     "configUrl":"resources/json/purchase/vendorColumnsDbfind.json",
     "dataUrl":"resources/json/purchase/vendorDataDbfind.json",
     "dataUrl":"resources/json/purchase/vendorDataDbfind.json",
-    "relative":"resources/json/purchase/vendorRelativeDbfind.json",
+    "dbfinds":[{
+        "from":"pu_vendorcode",
+        "to":"pu_vendorcode"
+    },{
+        "from":"pu_vendorname",
+        "to":"pu_vendorname"
+    }],
     "name": "pu_vendorcode",
     "name": "pu_vendorcode",
     "bind": "{pu_vendorcode}",
     "bind": "{pu_vendorcode}",
     "fieldLabel": "供应商编号",
     "fieldLabel": "供应商编号",

+ 0 - 5
frontend/saas-web/resources/json/purchase/vendorRelativeDbfind.json

@@ -1,5 +0,0 @@
-[{
-    "name": "pu_vendorcode"
-}, {
-    "name": "pu_vendorname"
-}]