Просмотр исходного кода

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

yingp 7 лет назад
Родитель
Сommit
63e8f6efb5
33 измененных файлов с 540 добавлено и 25 удалено
  1. 7 4
      frontend/saas-web/app/util/GridUtil.js
  2. 57 0
      frontend/saas-web/app/view/core/form/DbfindTrigger.js
  3. 35 5
      frontend/saas-web/app/view/core/form/FormPanel.js
  4. 6 0
      frontend/saas-web/app/view/core/form/FormPanelController.js
  5. 40 0
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  6. 33 0
      frontend/saas-web/app/view/core/form/field/DetailGridFieldController.js
  7. 51 0
      frontend/saas-web/app/view/core/grid/DbfindGridPanel.js
  8. 3 3
      frontend/saas-web/app/view/core/grid/GridPanel.js
  9. 19 0
      frontend/saas-web/app/view/core/grid/GridPanelController.js
  10. 0 1
      frontend/saas-web/app/view/core/tab/Panel.js
  11. 1 1
      frontend/saas-web/app/view/main/Main.js
  12. 5 1
      frontend/saas-web/app/view/main/Main.scss
  13. 1 0
      frontend/saas-web/app/view/main/MainContainerWrap.js
  14. 6 2
      frontend/saas-web/app/view/main/MainController.js
  15. 8 3
      frontend/saas-web/app/view/main/MainModel.js
  16. 3 3
      frontend/saas-web/app/view/purchase/list/GridPanel1.js
  17. 9 0
      frontend/saas-web/app/view/purchase/list/GridPanel2.js
  18. 16 2
      frontend/saas-web/app/view/purchase/list/ListController.js
  19. 12 0
      frontend/saas-web/app/view/purchase/list/ListController1.js
  20. 12 0
      frontend/saas-web/app/view/purchase/list/ListController2.js
  21. 6 0
      frontend/saas-web/app/view/purchase/order/FormController.js
  22. 14 0
      frontend/saas-web/app/view/purchase/order/FormModel.js
  23. 10 0
      frontend/saas-web/app/view/purchase/order/FormPanel.js
  24. 28 0
      frontend/saas-web/app/view/purchase/panel/FormPanel.js
  25. 19 0
      frontend/saas-web/app/view/purchase/panel/FormPanelController.js
  26. 11 0
      frontend/saas-web/app/view/purchase/panel/GridPanel.js
  27. 17 0
      frontend/saas-web/resources/json/detailGridColumns1.json
  28. 32 0
      frontend/saas-web/resources/json/formItems.json
  29. 0 0
      frontend/saas-web/resources/json/navigation.json
  30. 36 0
      frontend/saas-web/resources/json/purchase/formItems.json
  31. 21 0
      frontend/saas-web/resources/json/purchase/vendorColumnsDbfind.json
  32. 17 0
      frontend/saas-web/resources/json/purchase/vendorDataDbfind.json
  33. 5 0
      frontend/saas-web/resources/json/purchase/vendorRelativeDbfind.json

+ 7 - 4
frontend/saas-web/app/util/GridUtil.js

@@ -4,7 +4,7 @@ Ext.define('saas.util.GridUtil', {
      * @param grid grid组件
      * @param url 请求url
      */
-    getGridColumns: function(grid, url, callback) {
+    setColumns: function(grid, url) {
         Ext.Ajax.request({
             url: url,
             success: function(response, opts) {
@@ -13,9 +13,12 @@ Ext.define('saas.util.GridUtil', {
                 var store = Ext.create('Ext.data.Store', {
                     fields,
                 });
+                if(grid.showIndex) {
+                    columns.unshift({ xtype: 'rownumberer' });
+                }
                 grid.reconfigure(store, columns);
 
-                typeof callback == 'function' && callback(grid, columns);
+                grid.fireEvent('afterSetColumns', grid, columns);
             },
        
             failure: function(response, opts) {
@@ -29,14 +32,14 @@ Ext.define('saas.util.GridUtil', {
      * @param grid grid组件
      * @param url 请求url
      */
-    loadData: function(grid, url, callback) {
+    loadData: function(grid, url) {
         Ext.Ajax.request({
             url: url,
             success: function(response, opts) {
                 var data = Ext.decode(response.responseText);
                 grid.getStore().loadData(data);
 
-                typeof callback == 'function' && callback(grid, data);
+                grid.fireEvent('afterLoadData', grid, data);
             },
        
             failure: function(response, opts) {

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

@@ -0,0 +1,57 @@
+Ext.define('saas.view.core.form.DbfindTrigger', {
+    extend: 'Ext.form.ComboBox',
+    xtype: 'dbfindtrigger',
+    queryMode: 'local',
+    displayField: 'dispaly',
+    valueField: 'value',
+    triggerCls: 'x-form-search-trigger',
+    GridUtil: Ext.create('saas.util.GridUtil'),
+    initComponent:function() {
+        var me = this;
+        this.displayField='display';	   
+		this.valueField='value';
+		this.queryMode='local';
+		if(me.value){
+			me.store=Ext.create('Ext.data.Store', {
+				   fields: ['display','value'],
+				   data : [{
+					   'display':me.value,
+					   'value':me.value
+				   }]
+			});
+		}
+        this.callParent();
+    },
+    onTriggerClick:function(f){
+        //判断dbfindtrigger归属
+        f.judge(f);
+        var win = Ext.create('Ext.window.Window', {   
+            trigger:f,
+            belong:f.ownerCt,  
+            modal:true,
+            height: '80%',
+            width: '80%',
+            title: '查找',
+            scrollable: true,
+            bodyPadding: 10,
+            constrain: true,
+            closable: true,
+            layout:'fit',
+            renderTo:f.ownerCt.getEl(),
+            items:[{
+                xtype:'core-dbfindgridpanel',
+                configUrl: f.configUrl,
+                dataUrl: f.dataUrl,
+                relative: f.relative
+            }]
+        });
+        win.show();
+    },
+
+    judge:function(f){
+        if(f.ownerCt.xtype.indexOf('FormPanel')>-1){
+            f.belong = 'form'
+        }
+    }
+
+});

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

@@ -4,16 +4,46 @@ Ext.define('saas.view.core.form.FormPanel', {
 
     FormUtil: Ext.create('saas.util.FormUtil'),
 
-    layout: 'column',
+    controller: 'core-form-formpanel',
 
-    configUrl: '',
+    layout: 'column',
+    autoScroll: true,
+    border: 1,
+    bodyPadding: 5,
 
-    defautls: {
-        margin: '0 2 2 0',
+    fieldDefaults: {
+        margin: '0 5 5 0',
         labelAlign: 'right',
-        labelWidth: 90
+        labelWidth: 90,
+        columnWidth: 0.25,
+        blankText: '该字段不能为空'
     },
 
+    dockedItems: [{
+        xtype: 'toolbar',
+        dock: 'top',
+        style: {
+            'border-bottom': '1px solid #35baf6 !important'
+        },
+        items: [{
+            xtype: 'tbtext',
+            bind: '单据编号:{id}'
+        }, '->', {
+            xtype: 'button',
+            text: '新增',
+        }, {
+            xtype: 'button',
+            text: '保存'
+        }, {
+            xtype: 'button',
+            text: '审核'
+        }]
+    }],
+
+    items: [],
+    
+    configUrl: '',
+    
     initComponent: function() {
         var me = this;
         me.configUrl && me.FormUtil.getFormItems(me, me.configUrl);

+ 6 - 0
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -0,0 +1,6 @@
+Ext.define('saas.view.core.form.FormPanelController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.core-form-formpanel',
+
+    
+});

+ 40 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -0,0 +1,40 @@
+Ext.define('saas.view.core.form.field.DetailGridField', {
+    extend: 'Ext.grid.Panel',
+    xtype: 'detailGridField',
+
+    GridUtil: Ext.create('saas.util.GridUtil'),
+
+    border: 1,
+    margin: '0 5 5 0', // formpanel的fieldDefaults未生效
+    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: {
+        data: []
+    },
+
+    showIndex: true,
+    configUrl: '',
+
+    initComponent: function() {
+        var me = this;
+        me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
+        me.callParent(arguments);
+    },
+});

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

@@ -0,0 +1,33 @@
+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, {});
+    }
+
+});

+ 51 - 0
frontend/saas-web/app/view/core/grid/DbfindGridPanel.js

@@ -0,0 +1,51 @@
+Ext.define('saas.view.core.grid.DbfindGridPanel', {
+    extend: 'Ext.grid.Panel',
+    xtype: 'core-dbfindgridpanel',
+
+    GridUtil: Ext.create('saas.util.GridUtil'),
+
+    configUrl: '',
+    dataUrl: '',
+
+    initComponent: function() {
+        var me = this;
+        me.configUrl && me.GridUtil.getGridColumns(me, me.configUrl, function() {
+            me.dataUrl && me.GridUtil.loadData(me, me.dataUrl);
+        });
+        me.callParent(arguments);
+    },
+
+    listeners:{
+        itemClick: function(view,record) {
+            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+']');
+                    if(field){
+                        var val = record.get(item.name);
+                        if(field.xtype=='dbfindtrigger'){
+                            field.setValue(val);
+                            field.setRawValue(val);
+                            field.lastTriggerValue=val;
+                        }else{
+                            field.setValue(val);
+                        }    
+                    }
+                }
+            }
+            me.ownerCt.close();
+        }
+    }
+});

+ 3 - 3
frontend/saas-web/app/view/core/grid/GridPanel.js

@@ -4,14 +4,14 @@ Ext.define('saas.view.core.grid.GridPanel', {
 
     GridUtil: Ext.create('saas.util.GridUtil'),
 
+    controller: 'core-grid-gridpanel',
+
     configUrl: '',
     dataUrl: '',
 
     initComponent: function() {
         var me = this;
-        me.configUrl && me.GridUtil.getGridColumns(me, me.configUrl, function() {
-            me.dataUrl && me.GridUtil.loadData(me, me.dataUrl);
-        });
+        me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
         me.callParent(arguments);
     }
 });

+ 19 - 0
frontend/saas-web/app/view/core/grid/GridPanelController.js

@@ -0,0 +1,19 @@
+Ext.define('saas.view.core.grid.GridPanelController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.core-grid-gridpanel',
+
+    control: {
+        'grid': {
+            afterSetColumns: '_initLoadData'
+        }
+    },
+
+    _initLoadData: function() {
+        var me = this,
+            grid = me.getView(),
+            GridUtil = grid.GridUtil,
+            dataUrl = grid.dataUrl;
+        
+        dataUrl && GridUtil.loadData(grid, dataUrl);
+    }
+});

+ 0 - 1
frontend/saas-web/app/view/core/tab/Panel.js

@@ -2,6 +2,5 @@ Ext.define('saas.view.core.tab.Panel', {
     extend: 'Ext.panel.Panel',
     xtype: 'core-tab-panel',
     controller: 'core-tab-controller',
-
     layout: 'fit'
 });

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

@@ -81,7 +81,7 @@ Ext.define('saas.view.main.Main', {
                 }
             ]
         },
-        {
+        {         
             xtype: 'maincontainerwrap'
         }
     ]

+ 5 - 1
frontend/saas-web/app/view/main/Main.scss

@@ -28,7 +28,7 @@ $treelist-nav-ui: (
         item-text-over-color: mix(white, $panel-navigation-item-text-color, 50%),
         item-text-font-size: 14px,
         item-icon-font-size: 18px,
-        item-icon-width: 44px,
+        //item-icon-width: 44px,
         item-expander-font-size: 16px,
         item-expander-width: 24px,
         row-indicator-width: 5px,
@@ -37,6 +37,10 @@ $treelist-nav-ui: (
         row-indicator-over-color: transparent
 );
 
+.x-treelist-item-text{
+    padding-left: 10px;
+}
+
 .main-logo-wrap {
     background-color: $base-color;
     height: 65px;

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

@@ -44,6 +44,7 @@ Ext.define('saas.view.main.MainContainerWrap', {
             xtype: 'tabpanel',
             region: 'center',
             flex: 1,
+            id:'main-tab-panel',
             reference: 'mainTabPanel',
             cls: 'main-right-tabpanel',
             itemId: 'contentPanel',

+ 6 - 2
frontend/saas-web/app/view/main/MainController.js

@@ -19,7 +19,9 @@ Ext.define('saas.view.main.MainController', {
             mainTab = refs.mainTabPanel,
             // existingItem = mainTab.child(type),
             newView,
-            id = 'tab-' + nodeData.id,
+            id = 'maintab-' + nodeData.id 
+
+,
             title = nodeData.text;
             existingItem = mainTab.down('[id=' + id + ']'),
             lastView = mainTab.getActiveTab();
@@ -64,7 +66,9 @@ Ext.define('saas.view.main.MainController', {
             collapsing = !navigationList.getMicro(),
             new_width = collapsing ? 64 : 250;
 
-        if (Ext.isIE9m || !Ext.os.is.Desktop) {
+        if (Ext.isIE9m || !Ext.os.is 
+
+.Desktop) {
             Ext.suspendLayouts();
 
             refs.mainLogo.setWidth(new_width);

+ 8 - 3
frontend/saas-web/app/view/main/MainModel.js

@@ -26,21 +26,26 @@ Ext.define('saas.view.main.MainModel', {
                                 text: '采购单据',
                                 children: [
                                     {
+                                        id: 'purchaseList',
+                                        text: '采购单',
+                                        viewType: 'grid',
+                                        leaf: true
+                                    }, {
                                         id: 'list1',
                                         text: '列表界面1',
-                                        viewType: 'purchase-list-gridpanel',
+                                        viewType: 'purchase-list-gridpanel1',
                                         leaf: true
                                     },
                                     {
                                         id: 'list2',
                                         text: '列表界面2',
-                                        viewType: 'purchase-list-gridpanel',
+                                        viewType: 'purchase-list-gridpanel2',
                                         leaf: true
                                     },
                                     {
                                         id: 'form1',
                                         text: '主从表界面1',
-                                        viewType: 'form',
+                                        viewType: 'purchase-order-formpanel',
                                         leaf: true
                                     },
                                     {

+ 3 - 3
frontend/saas-web/app/view/purchase/list/GridPanel.js → frontend/saas-web/app/view/purchase/list/GridPanel1.js

@@ -1,8 +1,8 @@
-Ext.define('saas.view.purchase.list.GridPanel', {
+Ext.define('saas.view.purchase.list.GridPanel1', {
     extend: 'saas.view.core.grid.GridPanel',
-    xtype: 'purchase-list-gridpanel',
+    xtype: 'purchase-list-gridpanel1',
 
-    controller: 'purchase-list-listcontroller',
+    controller: 'purchase-list-listcontroller1',
     
     configUrl: 'resources/json/gridColumns1.json',
     dataUrl: 'resources/json/gridData1.json'

+ 9 - 0
frontend/saas-web/app/view/purchase/list/GridPanel2.js

@@ -0,0 +1,9 @@
+Ext.define('saas.view.purchase.list.GridPanel2', {
+    extend: 'saas.view.core.grid.GridPanel',
+    xtype: 'purchase-list-gridpanel2',
+
+    controller: 'purchase-list-listcontroller2',
+    
+    configUrl: 'resources/json/gridColumns2.json',
+    dataUrl: 'resources/json/gridData2.json'
+});

+ 16 - 2
frontend/saas-web/app/view/purchase/list/ListController.js

@@ -4,9 +4,23 @@ Ext.define('saas.view.purchase.list.ListController', {
 
     control: {
         'grid': {
-            itemClick: function() {
+            itemClick: function(view,record) {
                 console.log('grid1: click.....');
+                var id = record.get('id');
+                var mainTab = Ext.getCmp('main-tab-panel');
+                var title = '采购单明细',
+                existingItem = mainTab.down('[id=' + id + ']');
+
+                lastView = mainTab.getActiveTab();
+
+                if (!existingItem) {
+                    var form = Ext.create('saas.view.purchase.panel.FormPanel', {
+                        id,
+                        title
+                    });
+                    mainTab.setActiveTab(mainTab.add(form));
+                }
             }
         }
-    },
+    }
 });

+ 12 - 0
frontend/saas-web/app/view/purchase/list/ListController1.js

@@ -0,0 +1,12 @@
+Ext.define('saas.view.purchase.list.ListController1', {
+    extend: 'saas.view.core.grid.GridPanelController',
+    alias: 'controller.purchase-list-listcontroller1',
+
+    control: {
+        'grid': {
+            itemClick: function() {
+                console.log('grid1: click.....');
+            }
+        }
+    },
+});

+ 12 - 0
frontend/saas-web/app/view/purchase/list/ListController2.js

@@ -0,0 +1,12 @@
+Ext.define('saas.view.purchase.list.ListController2', {
+    extend: 'saas.view.core.grid.GridPanelController',
+    alias: 'controller.purchase-list-listcontroller2',
+
+    control: {
+        'grid': {
+            itemClick: function() {
+                console.log('grid2: click.....');
+            }
+        }
+    },
+});

+ 6 - 0
frontend/saas-web/app/view/purchase/order/FormController.js

@@ -0,0 +1,6 @@
+Ext.define('saas.view.purchase.order.FormController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.purchase-order-formcontroller',
+
+
+});

+ 14 - 0
frontend/saas-web/app/view/purchase/order/FormModel.js

@@ -0,0 +1,14 @@
+Ext.define('saas.view.purchase.order.FormModel', {
+    extend: 'Ext.app.ViewModel',
+    alias: 'viewmodel.purchase-order-formmodel',
+
+    data: {
+        id: 'TC-1032301'
+    },
+
+    formulas: {
+        sum: function(get) {
+            return get('num1') + get('num2');
+        }
+    }
+});

+ 10 - 0
frontend/saas-web/app/view/purchase/order/FormPanel.js

@@ -0,0 +1,10 @@
+Ext.define('saas.view.purchase.order.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'purchase-order-formpanel',
+
+    controller: 'purchase-order-formcontroller',
+    viewModel: 'purchase-order-formmodel',
+
+    configUrl: 'resources/json/formItems.json',
+
+});

+ 28 - 0
frontend/saas-web/app/view/purchase/panel/FormPanel.js

@@ -0,0 +1,28 @@
+Ext.define('saas.view.purchase.panel.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'purchase-panel-FormPanel',
+    controller: 'purchase-panel-FormPanelController',
+
+    frame: true,
+    resizable: true,
+    width: 610,
+    minWidth: 610,
+    minHeight: 300,
+
+    layout: 'column',
+
+    defaults: {
+        columnWidth:0.25,
+        xtype: 'textfield',
+        margin:'5'
+    },
+
+    configUrl: 'resources/json/purchase/formItems.json',
+
+   
+
+    tbar: ['->',
+        { text: '保存' , handler: 'onOK' },
+        { text: '关闭', handler: 'onCancel' }
+    ]
+});

+ 19 - 0
frontend/saas-web/app/view/purchase/panel/FormPanelController.js

@@ -0,0 +1,19 @@
+Ext.define('saas.view.purchase.panel.FormPanelController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.purchase-panel-FormPanelController',
+
+    control: {
+        // '#pu_code':{
+        //     beforerender:function(f){
+        //         Ext.configIf(f,{
+        //             dbfinds:[
+        //                 {from:'ve_code',to:'pu_vendcode'},
+        //                 {from:'ve_name',to:'pu_vendname'}],
+        //             fields:[],
+        //             url:
+        //         }) ;   
+
+        //     }
+        // }
+    },
+});

+ 11 - 0
frontend/saas-web/app/view/purchase/panel/GridPanel.js

@@ -0,0 +1,11 @@
+Ext.define('saas.view.purchase.grid.GridPanel', {
+    extend: 'saas.view.core.grid.GridPanel',
+    xtype: 'purchase-panel-GridPanel',
+
+    configUrl: 'resources/json/gridColumns1.json',
+    dataUrl: 'resources/json/gridData1.json',
+
+    frame:true,
+
+    margin:'3'
+});

+ 17 - 0
frontend/saas-web/resources/json/detailGridColumns1.json

@@ -0,0 +1,17 @@
+[{
+    "text": "列1",
+    "dataIndex": "col1",
+    "width": 100
+}, {
+    "text": "列2",
+    "dataIndex": "col2",
+    "width": 200
+}, {
+    "text": "列3",
+    "dataIndex": "col3",
+    "width": 400
+}, {
+    "text": "列4",
+    "dataIndex": "col4",
+    "width": 600
+}]

+ 32 - 0
frontend/saas-web/resources/json/formItems.json

@@ -26,4 +26,36 @@
     "fieldLabel": "和",
     "allowBlank": false,
     "columnWidth": 1
+}, {
+    "xtype": "detailGridField",
+    "columnWidth": 1,
+    "configUrl": "resources/json/detailGridColumns1.json"
+}, {
+    "xtype": "datefield",
+    "name": "createTime",
+    "bind": "{createTime}",
+    "fieldLabel": "制单日期",
+    "allowBlank": true,
+    "columnWidth": 0.25 
+}, {
+    "xtype": "textfield",
+    "name": "creator",
+    "bind": "{creator}",
+    "fieldLabel": "制单人",
+    "allowBlank": true,
+    "columnWidth": 0.25 
+}, {
+    "xtype": "textfield",
+    "name": "field1",
+    "bind": "{field1}",
+    "fieldLabel": "field1",
+    "allowBlank": true,
+    "columnWidth": 1 
+}, {
+    "xtype": "textfield",
+    "name": "field2",
+    "bind": "{field2}",
+    "fieldLabel": "field2",
+    "allowBlank": true,
+    "columnWidth": 1 
 }]

+ 0 - 0
frontend/saas-web/resources/json/navigation.json


+ 36 - 0
frontend/saas-web/resources/json/purchase/formItems.json

@@ -0,0 +1,36 @@
+[{
+    "xtype": "textfield",
+    "name": "pu_code",
+    "bind": "{pu_code}",
+    "fieldLabel": "采购单号",
+    "allowBlank": true,
+    "columnWidth": 0.25
+}, {
+    "xtype": "textfield",
+    "name": "pu_kind",
+    "bind": "{pu_kind}",
+    "fieldLabel": "采购类型",
+    "allowBlank": true,
+    "columnWidth": 0.25
+}, {
+    "xtype": "dbfindtrigger",
+    "configUrl":"resources/json/purchase/vendorColumnsDbfind.json",
+    "dataUrl":"resources/json/purchase/vendorDataDbfind.json",
+    "relative":"resources/json/purchase/vendorRelativeDbfind.json",
+    "name": "pu_vendorcode",
+    "bind": "{pu_vendorcode}",
+    "fieldLabel": "供应商编号",
+    "allowBlank": true,
+    "columnWidth": 0.25
+}, {
+    "xtype": "textfield",
+    "name": "pu_vendorname",
+    "bind": "{pu_vendorname}",
+    "fieldLabel": "供应商简称",
+    "allowBlank": true,
+    "columnWidth": 0.25
+}, {
+    "xtype": "purchase-panel-GridPanel",
+    "allowBlank": true,
+    "columnWidth":1
+}]

+ 21 - 0
frontend/saas-web/resources/json/purchase/vendorColumnsDbfind.json

@@ -0,0 +1,21 @@
+[{
+    "text": "供应商编号",
+    "flex": 1,
+    "dataIndex": "pu_vendorcode",
+    "width": 100,
+    "xtype": "",
+    "items": null
+}, {
+    "text": "供应商名称",
+    "flex": 1,
+    "dataIndex": "pu_vendorname",
+    "xtype": "",
+    "items": null
+}, {
+    "text": "业务员",
+    "flex": 0,
+    "dataIndex": "saller",
+    "width": 200,
+    "xtype": "",
+    "items": null
+}]

+ 17 - 0
frontend/saas-web/resources/json/purchase/vendorDataDbfind.json

@@ -0,0 +1,17 @@
+[{
+    "pu_vendorcode": "TEST0000001",
+    "pu_vendorname": "测试供应商0000001",
+    "saller": "小李"
+}, {
+    "pu_vendorcode": "TEST0000002",
+    "pu_vendorname": "测试供应商0000002",
+    "saller": "小王"
+}, {
+    "pu_vendorcode": "TEST0000003",
+    "pu_vendorname": "测试供应商0000003",
+    "saller": "小明"
+}, {
+    "pu_vendorcode": "TEST0000004",
+    "pu_vendorname": "测试供应商0000004",
+    "saller": "小黄"
+}]

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

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