Преглед изворни кода

调整trigger输入结束后自动选中正确的grid单元格/style格式错误时打开编辑框提示信息/数据源检测自动执行

zhuth пре 8 година
родитељ
комит
e7dac27a73

+ 0 - 28
kanban-console/src/main/webapp/resources/app/view/boardmodel/modeleditpanel.js

@@ -54,14 +54,6 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 				handler:function(){
 					me.importXml();
 				}
-			}, '-', {
-				xtype:'button',
-				text:'检测',
-				handler:function(){
-					if(me.check()) {
-						showErrorMsg('成功', '未发现未定义参数。');
-					}
-				}
 			}]
 		});
 		me.callParent(arguments); 
@@ -235,26 +227,6 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 		}
 		me.save(content,extraParams);
 	},
-	check: function() {
-		var me = this;
-		var builderPanel = Ext.getCmp('modelbuilderpanel');
-		var items = builderPanel.items.items;
-		var content = me.getComponentXml(items,builderPanel);
-		
-		var contentParams = me.getParams(content);
-		if(!me.checkParams(contentParams, 'content')) {
-			return false;
-		}
-		var form = Ext.getCmp('tplSetForm');
-		if(form) {
-			var extraParams = form.getForm().getValues();
-			var titleParams = me.getParams(extraParams.title);
-			if(!me.checkParams(titleParams, 'title')) {
-				return false;
-			}
-		}
-		return true;
-	},
 	getParams: function(content) {
 		var reg = /\$P{([^\}]{0,})\}/g
 		var result = content.match(reg);

+ 11 - 2
kanban-console/src/main/webapp/resources/app/view/core/trigger/FormRenderTrigger.js

@@ -21,7 +21,7 @@ Ext.define('erp.view.core.trigger.FormRenderTrigger', {
         });
         var renderEditor = Ext.create('Ext.window.Window', {
             field: trigger,
-            title: trigger.fieldLabel,
+            title: trigger.fieldLabel || '显示',
             width:700,
             height:400,
             modal:true,
@@ -111,7 +111,16 @@ Ext.define('erp.view.core.trigger.FormRenderTrigger', {
                         var selected = selections[0];
                         selected.set(fieldname, win.getRender());
                         var rowIndex = store.indexOf(selected);
-                        grid.getPlugin().startEditByPosition({row: rowIndex, column: 1});
+                        var colIndex = 0;
+                        var columns = grid.columnManager.columns;
+                        for(var i = 0; i < columns.length; i ++) {
+                            var column = columns[i];
+                            if(column.dataIndex == fieldname) {
+                                colIndex = i;
+                                break;
+                            }
+                        }
+                        grid.getPlugin().startEditByPosition({row: rowIndex, column: colIndex});
                     }else {
                         win.field.setValue(win.getRender());
                     }

+ 11 - 4
kanban-console/src/main/webapp/resources/app/view/core/trigger/GridRenderTrigger.js

@@ -21,7 +21,7 @@ Ext.define('erp.view.core.trigger.GridRenderTrigger', {
         });
         var renderEditor = Ext.create('Ext.window.Window', {
             field: trigger,
-            title: trigger.fieldLabel,
+            title: trigger.fieldLabel || '显示',
             width:600,
             height:400,
             modal:true,
@@ -107,9 +107,16 @@ Ext.define('erp.view.core.trigger.GridRenderTrigger', {
                         var selected = selections[0];
                         selected.set(fieldname, win.getRender());
                         var rowIndex = store.indexOf(selected);
-
-                        debugger;
-                        grid.getPlugin().startEditByPosition({row: rowIndex, column: 1});
+                        var colIndex = 0;
+                        var columns = grid.columnManager.columns;
+                        for(var i = 0; i < columns.length; i ++) {
+                            var column = columns[i];
+                            if(column.dataIndex == fieldname) {
+                                colIndex = i;
+                                break;
+                            }
+                        }
+                        grid.getPlugin().startEditByPosition({row: rowIndex, column: colIndex});
                     }else {
                         win.field.setValue(win.getRender());
                     }

+ 16 - 3
kanban-console/src/main/webapp/resources/app/view/core/trigger/StyleTrigger.js

@@ -4,6 +4,12 @@ Ext.define('erp.view.core.trigger.StyleTrigger', {
     triggerCls: 'style-trigger-icon-form',
     onTriggerClick: function() {
         var trigger = this;
+        try {
+            Ext.JSON.decode(trigger.getValue() || '{}');
+        }catch(e) {
+            showErrorMsg('失败', '样式格式有误!');
+            return;
+        }
         var styleEditor = Ext.create('Ext.window.Window', {
             field: trigger,
             title: trigger.fieldLabel,
@@ -19,7 +25,6 @@ Ext.define('erp.view.core.trigger.StyleTrigger', {
                 items: [{
                     xtype: 'triggerfield',
                     name: 'color',
-                    id: 'titlecolore',
                     _CLICK: new Date(),
                     fieldLabel: '字体颜色',
                     triggerCls: '',
@@ -183,7 +188,16 @@ Ext.define('erp.view.core.trigger.StyleTrigger', {
                         var selected = selections[0];
                         selected.set(fieldname, Ext.JSON.encode( win.getStyle() ) );
                         var rowIndex = store.indexOf(selected);
-                        grid.getPlugin().startEditByPosition({row: rowIndex, column: 1});
+                        var colIndex = 0;
+                        var columns = grid.columnManager.columns;
+                        for(var i = 0; i < columns.length; i ++) {
+                            var column = columns[i];
+                            if(column.dataIndex == fieldname) {
+                                colIndex = i;
+                                break;
+                            }
+                        }
+                        grid.getPlugin().startEditByPosition({row: rowIndex, column: colIndex});
                     }else {
                         win.field.setValue( Ext.JSON.encode( win.getStyle() ) );
                     }
@@ -199,7 +213,6 @@ Ext.define('erp.view.core.trigger.StyleTrigger', {
             listeners: {
                 afterrender: function() {
                     var me = this;
-                    trigger.record = 
                     me.setStyle(me.field.getValue());
                 }
             },

+ 53 - 9
kanban-console/src/main/webapp/resources/app/view/core/trigger/TextTrigger.js

@@ -7,6 +7,7 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
         var titleEditor = Ext.create('Ext.window.Window', {
             field: trigger,
             title: trigger.fieldLabel,
+            check: trigger.name == 'sql',
             width:420,
             height:320,
             modal:true,
@@ -24,14 +25,14 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
                     fieldLabel: '内容',
                     name: 'text'
                 }],
-                tbar: [{
-                    xtype: 'button',
-                    cls: 'ux-start-button',
-                    iconCls: 'ux-start-button-icon',
-                    menuAlign: 'bl-tl',
-                    text:'引入参数',
-                    menu:Ext.widget('startmenu'),
-                }]
+                // tbar: [{
+                //     xtype: 'button',
+                //     cls: 'ux-start-button',
+                //     iconCls: 'ux-start-button-icon',
+                //     menuAlign: 'bl-tl',
+                //     text:'引入参数',
+                //     menu:Ext.widget('startmenu'),
+                // }]
             }],
             buttonAlign: 'center',
             buttons:[{
@@ -39,6 +40,10 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
                 formBind:true,
                 handler:function(btn){
                     var win = btn.ownerCt.ownerCt;
+                    var params = win.getParams(win.getText());
+                    if(win.check && !win.checkParams(params)) {
+                        return;
+                    }
                     var componet = Ext.getCmp(win.field.ownerCt.el.dom.parentNode.id);
                     if(componet) {
                         var grid = componet;
@@ -48,7 +53,16 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
                         var selected = selections[0];
                         selected.set(fieldname, win.getText());
                         var rowIndex = store.indexOf(selected);
-                        grid.getPlugin().startEditByPosition({row: rowIndex, column: 1});
+                        var colIndex = 0;
+                        var columns = grid.columnManager.columns;
+                        for(var i = 0; i < columns.length; i ++) {
+                            var column = columns[i];
+                            if(column.dataIndex == fieldname) {
+                                colIndex = i;
+                                break;
+                            }
+                        }
+                        grid.getPlugin().startEditByPosition({row: rowIndex, column: colIndex});
                     }else {
                         win.field.setValue(win.getText());
                     }
@@ -83,6 +97,36 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
                 var me = this;
                 var form = me.down('form');
                 return form.getForm().findField('text').getValue();
+            },
+            /* 获得引用的参数数组 **/
+            getParams: function(content) {
+                var reg = /\$P{([^\}]{0,})\}/g
+                var result = content.match(reg);
+                var params = [];
+                Ext.Array.each(result, function(r) {
+                    var rs = reg.exec(r);
+                    if(rs) {
+                        params.push(rs[1]);
+                    }
+                });
+                return params;
+            },
+            /* 检测引用的参数是否定义 **/
+            checkParams: function(params) {
+                var paramsGrid = Ext.getCmp('modeltree');
+                var paramsRecord = paramsGrid.getStore().data.items;
+                var panelParams = [];
+                var success = true;
+                Ext.Array.each(paramsRecord, function(p) {
+                    panelParams.push(p.get('name'));
+                });
+                Ext.Array.each(params, function(p) {
+                    if(panelParams.indexOf(p) == -1) {
+                        showErrorMsg('警告', '使用的参数  ' + p + '  未定义!');
+                        success = false;
+                    }
+                });
+                return success;
             }
         });
         titleEditor.show();