Browse Source

Merge remote-tracking branch 'origin/dev' into dev

zhouy 7 years ago
parent
commit
7f4c852165
26 changed files with 353 additions and 10 deletions
  1. 7 1
      base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/controller/ViewController.java
  2. 9 1
      base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/controller/co/CoViewController.java
  3. 4 0
      base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/service/ViewService.java
  4. 4 0
      base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/service/co/CoViewService.java
  5. 57 0
      frontend/saas-web/app/view/core/form/DbfindTrigger.js
  6. 2 1
      frontend/saas-web/app/view/core/form/FormPanel.js
  7. 50 0
      frontend/saas-web/app/view/core/grid/DbfindGridPanel.js
  8. 0 1
      frontend/saas-web/app/view/core/tab/Panel.js
  9. 1 1
      frontend/saas-web/app/view/main/Main.js
  10. 5 1
      frontend/saas-web/app/view/main/Main.scss
  11. 1 0
      frontend/saas-web/app/view/main/MainContainerWrap.js
  12. 6 2
      frontend/saas-web/app/view/main/MainController.js
  13. 7 2
      frontend/saas-web/app/view/main/MainModel.js
  14. 9 0
      frontend/saas-web/app/view/purchase/list/GridPanel.js
  15. 27 0
      frontend/saas-web/app/view/purchase/list/ListController.js
  16. 1 0
      frontend/saas-web/app/view/purchase/order/FormModel.js
  17. 23 0
      frontend/saas-web/app/view/purchase/panel/FormPanel.js
  18. 19 0
      frontend/saas-web/app/view/purchase/panel/FormPanelController.js
  19. 11 0
      frontend/saas-web/app/view/purchase/panel/GridPanel.js
  20. 6 0
      frontend/saas-web/app/view/test/order/FormController.js
  21. 15 0
      frontend/saas-web/app/view/test/order/FormModel.js
  22. 10 0
      frontend/saas-web/app/view/test/order/FormPanel.js
  23. 36 0
      frontend/saas-web/resources/json/purchase/formItems.json
  24. 21 0
      frontend/saas-web/resources/json/purchase/vendorColumnsDbfind.json
  25. 17 0
      frontend/saas-web/resources/json/purchase/vendorDataDbfind.json
  26. 5 0
      frontend/saas-web/resources/json/purchase/vendorRelativeDbfind.json

+ 7 - 1
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/controller/ViewController.java

@@ -23,10 +23,16 @@ public class ViewController {
      * 获取通用视图配置
      * 获取通用视图配置
      *
      *
      * @param name
      * @param name
+     * @param refresh 是否强制刷新
      * @return
      * @return
      */
      */
     @GetMapping("/config")
     @GetMapping("/config")
-    public Result<Object> getViewConfig(@RequestParam String name) {
+    public Result<Object> getViewConfig(@RequestParam String name, Boolean refresh) {
+//        if (null != refresh && refresh) {
+//            viewService.cacheEvict(name);
+//        }
+        viewService.cacheEvict(name);// 暂时强制刷新
         return Result.success(viewService.getDeepConfig(name));
         return Result.success(viewService.getDeepConfig(name));
     }
     }
+
 }
 }

+ 9 - 1
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/controller/co/CoViewController.java

@@ -26,10 +26,18 @@ public class CoViewController {
      * 获取企业视图配置
      * 获取企业视图配置
      *
      *
      * @param name
      * @param name
+     * @param refresh 是否强制刷新
      * @return
      * @return
      */
      */
     @GetMapping("/config")
     @GetMapping("/config")
-    public Result<Object> getViewConfig(@RequestParam String name) {
+    public Result<Object> getViewConfig(@RequestParam String name, Boolean refresh) {
+//        if (null != refresh && refresh) {
+//            coViewService.cacheEvict(name);
+//            viewService.cacheEvict(name);
+//        }
+        coViewService.cacheEvict(name);// 暂时强制刷新
+        viewService.cacheEvict(name);
+
         Object config = coViewService.getDeepConfig(name);
         Object config = coViewService.getDeepConfig(name);
         if (null == config) {
         if (null == config) {
             // 企业配置不存在则取标准配置
             // 企业配置不存在则取标准配置

+ 4 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/service/ViewService.java

@@ -48,4 +48,8 @@ public class ViewService {
     public void deleteView(String name) {
     public void deleteView(String name) {
         viewRepository.deleteByName(name);
         viewRepository.deleteByName(name);
     }
     }
+
+    @CacheEvict(value = "viewConfig", key = "#name")
+    public void cacheEvict(String name) {
+    }
 }
 }

+ 4 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/service/co/CoViewService.java

@@ -52,4 +52,8 @@ public class CoViewService {
     public void deleteView(String name) {
     public void deleteView(String name) {
         viewRepository.deleteByCompanyIdAndName(BaseContextHolder.getCompanyId(), name);
         viewRepository.deleteByCompanyIdAndName(BaseContextHolder.getCompanyId(), name);
     }
     }
+
+    @CacheEvict(value = "coViewConfig", key = "#name")
+    public void cacheEvict(String name) {
+    }
 }
 }

+ 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'
+        }
+    }
+
+});

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

@@ -5,7 +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'),
+    
     layout: 'column',
     layout: 'column',
     autoScroll: true,
     autoScroll: true,
     border: 1,
     border: 1,

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

@@ -0,0 +1,50 @@
+Ext.define('saas.view.core.grid.DbfindGridPanel', {
+    extend: 'saas.view.core.grid.GridPanel',
+    xtype: 'core-dbfindgridpanel',
+
+    GridUtil: Ext.create('saas.util.GridUtil'),
+
+    configUrl: '',
+    dataUrl: '',
+
+    initComponent: function() {
+        var me = this;
+        me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
+        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+']');
+                    debugger
+                    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();
+        }
+    }
+});

+ 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',
     extend: 'Ext.panel.Panel',
     xtype: 'core-tab-panel',
     xtype: 'core-tab-panel',
     controller: 'core-tab-controller',
     controller: 'core-tab-controller',
-
     layout: 'fit'
     layout: 'fit'
 });
 });

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

@@ -81,7 +81,7 @@ Ext.define('saas.view.main.Main', {
                 }
                 }
             ]
             ]
         },
         },
-        {
+        {         
             xtype: 'maincontainerwrap'
             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-over-color: mix(white, $panel-navigation-item-text-color, 50%),
         item-text-font-size: 14px,
         item-text-font-size: 14px,
         item-icon-font-size: 18px,
         item-icon-font-size: 18px,
-        item-icon-width: 44px,
+        //item-icon-width: 44px,
         item-expander-font-size: 16px,
         item-expander-font-size: 16px,
         item-expander-width: 24px,
         item-expander-width: 24px,
         row-indicator-width: 5px,
         row-indicator-width: 5px,
@@ -37,6 +37,10 @@ $treelist-nav-ui: (
         row-indicator-over-color: transparent
         row-indicator-over-color: transparent
 );
 );
 
 
+.x-treelist-item-text{
+    padding-left: 10px;
+}
+
 .main-logo-wrap {
 .main-logo-wrap {
     background-color: $base-color;
     background-color: $base-color;
     height: 65px;
     height: 65px;

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

@@ -44,6 +44,7 @@ Ext.define('saas.view.main.MainContainerWrap', {
             xtype: 'tabpanel',
             xtype: 'tabpanel',
             region: 'center',
             region: 'center',
             flex: 1,
             flex: 1,
+            id:'main-tab-panel',
             reference: 'mainTabPanel',
             reference: 'mainTabPanel',
             cls: 'main-right-tabpanel',
             cls: 'main-right-tabpanel',
             itemId: 'contentPanel',
             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,
             mainTab = refs.mainTabPanel,
             // existingItem = mainTab.child(type),
             // existingItem = mainTab.child(type),
             newView,
             newView,
-            id = 'maintab-' + nodeData.id,
+            id = 'maintab-' + nodeData.id 
+
+,
             title = nodeData.text;
             title = nodeData.text;
             existingItem = mainTab.down('[id=' + id + ']'),
             existingItem = mainTab.down('[id=' + id + ']'),
             lastView = mainTab.getActiveTab();
             lastView = mainTab.getActiveTab();
@@ -64,7 +66,9 @@ Ext.define('saas.view.main.MainController', {
             collapsing = !navigationList.getMicro(),
             collapsing = !navigationList.getMicro(),
             new_width = collapsing ? 64 : 250;
             new_width = collapsing ? 64 : 250;
 
 
-        if (Ext.isIE9m || !Ext.os.is.Desktop) {
+        if (Ext.isIE9m || !Ext.os.is 
+
+.Desktop) {
             Ext.suspendLayouts();
             Ext.suspendLayouts();
 
 
             refs.mainLogo.setWidth(new_width);
             refs.mainLogo.setWidth(new_width);

+ 7 - 2
frontend/saas-web/app/view/main/MainModel.js

@@ -26,6 +26,11 @@ Ext.define('saas.view.main.MainModel', {
                                 text: '采购单据',
                                 text: '采购单据',
                                 children: [
                                 children: [
                                     {
                                     {
+                                        id: 'purchaseList',
+                                        text: '采购单',
+                                        viewType: 'purchase-list-gridpanel',
+                                        leaf: true
+                                    }, {
                                         id: 'list1',
                                         id: 'list1',
                                         text: '列表界面1',
                                         text: '列表界面1',
                                         viewType: 'purchase-list-gridpanel1',
                                         viewType: 'purchase-list-gridpanel1',
@@ -39,8 +44,8 @@ Ext.define('saas.view.main.MainModel', {
                                     },
                                     },
                                     {
                                     {
                                         id: 'form1',
                                         id: 'form1',
-                                        text: '主从表界面1',
-                                        viewType: 'purchase-order-formpanel',
+                                        text: '测试-采购单明细界面',
+                                        viewType: 'test-order-formpanel',
                                         leaf: true
                                         leaf: true
                                     },
                                     },
                                     {
                                     {

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

@@ -0,0 +1,9 @@
+Ext.define('saas.view.purchase.list.GridPanel', {
+    extend: 'saas.view.core.grid.GridPanel',
+    xtype: 'purchase-list-gridpanel',
+
+    controller: 'purchase-list-listcontroller',
+    
+    configUrl: 'resources/json/gridColumns1.json',
+    dataUrl: 'resources/json/gridData1.json'
+});

+ 27 - 0
frontend/saas-web/app/view/purchase/list/ListController.js

@@ -0,0 +1,27 @@
+Ext.define('saas.view.purchase.list.ListController', {
+    extend: 'saas.view.core.grid.GridPanelController',
+    alias: 'controller.purchase-list-listcontroller',
+
+    control: {
+        'grid': {
+            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,
+                        viewModel: Ext.create('Ext.app.ViewModel')
+                    });
+                    mainTab.setActiveTab(mainTab.add(form));
+                }
+            }
+        }
+    }
+});

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

@@ -3,6 +3,7 @@ Ext.define('saas.view.purchase.order.FormModel', {
     alias: 'viewmodel.purchase-order-formmodel',
     alias: 'viewmodel.purchase-order-formmodel',
 
 
     data: {
     data: {
+        num1:2,
         id: 'TC-1032301'
         id: 'TC-1032301'
     },
     },
 
 

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

@@ -0,0 +1,23 @@
+Ext.define('saas.view.purchase.panel.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'purchase-panel-FormPanel',
+    controller: 'purchase-panel-FormPanelController',
+    viewModel: Ext.create('Ext.app.ViewModel'),
+
+    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',
+
+});

+ 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'
+});

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

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

+ 15 - 0
frontend/saas-web/app/view/test/order/FormModel.js

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

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

@@ -0,0 +1,10 @@
+Ext.define('saas.view.test.order.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'test-order-formpanel',
+
+    controller: 'test-order-formcontroller',
+    viewModel: 'test-order-formmodel',
+
+    configUrl: 'resources/json/formItems.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"
+}]