Browse Source

参数配置调整/各界面微调

zhuth 8 years ago
parent
commit
ec54b86598

+ 13 - 0
kanban-console/src/main/webapp/WEB-INF/views/board.html

@@ -23,6 +23,19 @@ Ext.application({
     }
 });
 
+var sep1 = 'board?code=';
+var sep2 = '&name=';
+var sep3 = '&panelCode=';
+var sep4 = '&panelName=';
+var start = window.location.href.indexOf(sep1) + sep1.length;
+var codes1 = decodeURI(window.location.href.substring(start)).split(sep2);
+var modelCode = codes1[0];
+var codes2 = codes1[1].split(sep3);
+var modelName = codes2[0];
+var codes3 = codes2[1].split(sep4);
+var panelCode = codes3[0];
+var panelName = codes3[1];
+
 </script>
 <style>
 .x-btn-default-toolbar-small{

+ 1 - 11
kanban-console/src/main/webapp/resources/app/controller/board.js

@@ -16,16 +16,6 @@ Ext.define('erp.controller.board', {
     	this.control({
     		'templatebuilderpanel':{
 				afterrender: function(view) {
-					var sep1 = 'board?code=';
-					var sep2 = '&name=';
-					var sep3 = '&panelCode=';
-					var start = window.location.href.indexOf(sep1) + sep1.length;
-					var codes1 = decodeURI(window.location.href.substring(start)).split(sep2);
-					view.modelCode = codes1[0];
-					var codes2 = codes1[1].split(sep3);
-					view.modelName = codes2[0];
-					view.panelCode = codes2[1];
-
 					var grid = Ext.getCmp('templatetree');
 					grid.loadGridData();
 				},
@@ -38,7 +28,7 @@ Ext.define('erp.controller.board', {
 
 					view.getEl().mask('loading...');
 					Ext.Ajax.request({
-						url:'kanban/get/' + view.modelCode,
+						url:'kanban/get/' + modelCode,
 						method:'POST',
 						callback:function(options,success,response){
 							view.getEl().unmask();

+ 4 - 2
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageLeftPanel.js

@@ -57,10 +57,10 @@ Ext.define('erp.view.desktop.BoardManageLeftPanel',{
 					listeners: {
 						select: function (view, record, eOpts) {
 							var mainpanel = Ext.getCmp('managemain');
-							mainpanel.load(record, me);
-
 							var managepanel = Ext.getCmp('manage');
+
 							managepanel.setSelectPanelRecord(record);
+							mainpanel.load(record, me);
 						},
 						deselect: function() {
 							var mainpanel = Ext.getCmp('managemain');
@@ -68,6 +68,8 @@ Ext.define('erp.view.desktop.BoardManageLeftPanel',{
 
 							var managepanel = Ext.getCmp('manage');
 							managepanel.setSelectPanelRecord(null);
+
+							mainpanel.setPanelDisabled();
 						}
 					}
 				});

+ 44 - 34
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageMainPanel.js

@@ -15,8 +15,10 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
         var dataTypeStore = Ext.create('Ext.data.Store', {
             fields: ['type', 'name'],
             data: [
-                { "type": "String", "name": "枚举值" },
-                { "type": "SQL", "name": "SQL取数" }
+                { "type": "String", "name": "下拉框" },
+				{ "type": "SQL", "name": "SQL取数" },
+				// { "type": "Date", "name": "日期"},
+				// { "type": "Number", "name": "数字"}
             ]
         });
         var dataTypeCombo = new Ext.form.ComboBox({
@@ -27,7 +29,13 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
             forceSelection: true,
             editable: false,
             triggerAction: 'all',
-            selectOnFocus: true
+			selectOnFocus: true,
+			listeners: {
+				change: function() {
+					var selected = Ext.getCmp('boardParamsGrid').getSelectionModel().getSelection()[0];
+					selected.set('optionalValues', '');
+				}
+			}
         });
 		me.items = [{
 			xtype: 'form',
@@ -51,7 +59,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 			},{
 				xtype: 'textfield',
 				name: 'name',
-				fieldLabel: '看板名称'
+				fieldLabel: '名称'
 			},{  
                 xtype:'triggerfield',  
                 name:'iconCls',  
@@ -69,14 +77,8 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 				columns: 2,
 				items: [
 		            { boxLabel: '自动切换', name: 'display', inputValue: 'AutoSwitch'},
-		            { boxLabel: '分屏展示', name: 'display', inputValue: 'SplitScreen' }
+		            // { boxLabel: '分屏展示', name: 'display', inputValue: 'SplitScreen' }
 		        ]
-			},{
-				xtype: 'textfield',
-				fieldLabel: '模板字段',
-				name: 'templateCodes',
-				id:'templateCodes',
-				// hidden:true
 			}, {
 				xtype:'combo',
 				columnWidth:0.75,
@@ -125,8 +127,8 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 					return returnvalue;
 				}
 			},
-				{ text: '值', dataIndex: 'optionalValues', flex: 2, editor: 'textfield' },
-				{ xtype:'actioncolumn', align: 'center', items:[{
+				{ text: '值', dataIndex: 'optionalValues', flex: 2 },
+				{ xtype:'actioncolumn', align: 'center', width: 50, items:[{
 					iconCls: 'save',
 					tooltip: '保存',
 					handler: function(th, rowIndex, colIndex) {
@@ -147,7 +149,11 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 				text: '添加参数',
 				disabled: true,
 				handler: function() {
-					var grid =this.up('grid');
+					if(!me.initRecord.get('code')) {
+						Ext.Msg.alert('提示', '请先保存面板再执行添加参数操作!');
+						return;
+					}
+					var grid = this.up('grid');
 					var record = {
 						name: '新参数',
 						type: 'String',
@@ -171,20 +177,33 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 						});
 					}
 				}
-			}, '->', {
-				xtype: 'button',
-				text: '刷新参数',
-				disabled: true,
-				handler: function() {
-					var grid =this.up('grid');
-					grid.loadGridData();
-				}
+			// }, '->', {
+			// 	xtype: 'button',
+			// 	text: '刷新',
+			// 	disabled: true,
+			// 	handler: function() {
+			// 		var grid =this.up('grid');
+			// 		grid.loadGridData();
+			// 	}
 			}],
 			plugins: [
 				Ext.create('Ext.grid.plugin.CellEditing', {
 					clicksToEdit: 2
 				})
 			],
+			listeners: {
+				celldblclick: function (gridview, colEl, colIndex, record, rowEl, rowIndex, e, eOpts) {
+					var types = ['String', 'SQL'];
+					var titles = ['下拉项', 'SQL定义'];
+					var i = types.indexOf(record.get('type'));
+					if(colIndex == 2 && i != -1) { // 值列
+						Ext.create('erp.view.desktop.ParamValueEditor',{
+							title: titles[i],
+							paramRecord: record
+						}).show();
+					}
+				}, 
+			},
 			loadGridData: function() {
 				var grid = this;
 				grid.getEl().mask('loading...');
@@ -213,7 +232,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 				var grid = this;
 				var type;
 				if(record['code']) {
-					type = 'update';
+					type = 'updatePart';
 				}else {
 					type = 'save';
 				}
@@ -273,16 +292,6 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 		// from添加数据
 		form.loadRecord(record);
 
-
-		var codes = record.data.templateCodes || [];
-		var data = codes.map(function(v, i) {
-			var r = modelstore.findRecord('code', v);
-			var name = r ? r.get('name') : '';
-			return {
-				name: name,
-				code: v
-			};
-		});
 		// 参数grid添加数据
 		var paramGrid = Ext.getCmp('boardParamsGrid');
 		paramGrid.loadGridData();
@@ -295,8 +304,9 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 	},
 	setPanelDisabled: function() {
 		var me = this;
-		var isDisabled = me.initRecord.get('code') ? false : true;
 		var rightpanel = Ext.getCmp('manageright');
+		var isDisabled =Ext.getCmp('manage').selectedPanelRecord ? false : true;
+
 		me.setButtonDisabled(isDisabled);
 		rightpanel.setButtonDisabled(isDisabled);
 	},

+ 15 - 9
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageRightPanel.js

@@ -44,6 +44,7 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
 							this[key] = value;
 						}
 						// delete data.content;
+						// delete data.title;
 						grid.saveModel(data);
 					}
 				}, '-', {
@@ -51,7 +52,8 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
                     tooltip: '看板配置',
                     handler: function(grid, rowIndex, colIndex, th, eOpts, record) {
 						var code = record.get('code');
-						window.open(basePath+'board?code=' + code + '&name=' + record.get('name') + '&panelCode=' + record.get('panelCode'), code);
+						var panelRecord = Ext.getCmp('managemain').initRecord;
+						window.open(basePath+'board?code=' + code + '&name=' + record.get('name') + '&panelCode=' + record.get('panelCode') + '&panelName=' + panelRecord.get('name'), code);
 					}
 				}] }
 			],
@@ -60,6 +62,10 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
 				text: '添加看板',
 				disabled: true,
 				handler: function() {
+					if(!Ext.getCmp('managemain').initRecord.get('code')) {
+						Ext.Msg.alert('提示', '请先保存面板再执行添加参数操作!');
+						return;
+					}
 					var grid = this.up('grid');
 					var record = {
 						name: '新看板',
@@ -85,14 +91,14 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
 						});
 					}
                 }
-			}, '->', {
-				xtype: 'button',
-				text: '刷新看板',
-				disabled: true,
-				handler: function() {
-					var grid = this.up('grid');
-					grid.loadGridData();
-                }
+			// }, '->', {
+			// 	xtype: 'button',
+			// 	text: '刷新',
+			// 	disabled: true,
+			// 	handler: function() {
+			// 		var grid = this.up('grid');
+			// 		grid.loadGridData();
+            //     }
 			}],
 			plugins: [
 				Ext.create('Ext.grid.plugin.CellEditing', {

+ 3 - 12
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageWindow.js

@@ -1,8 +1,8 @@
 Ext.define('erp.view.desktop.BoardManageWindow',{
 	extend: 'Ext.window.Window',
 	alias: 'widget.boardmanagewin',
-	width: 1000,
-	height: 550,
+	width: Ext.getBody().getViewSize().width,
+	height: Ext.getBody().getViewSize().height,
 	modal: true,
 	layout: 'fit',
 	id: 'manage',
@@ -25,7 +25,7 @@ Ext.define('erp.view.desktop.BoardManageWindow',{
 			},{
 				xtype: 'manageright',
 				region: 'east',
-				width:350
+				width:500
 			}]
 		}];
 		me.buttons = [{
@@ -55,15 +55,6 @@ Ext.define('erp.view.desktop.BoardManageWindow',{
 				return this.data;
 			}
 		};
-		// // 保存数据到后台
-		// var tplField = Ext.getCmp('templateCodes');
-		// var values = formpanel.getForm().getValues();
-		// values.templateCodes = tplField.templateCodes;
-		// values.respoint = values.respoint == '非资源点看板' ? 'all' :values.respoint;
-		// if(!values.templateCodes||values.templateCodes.length<=0){
-		// 	Ext.Msg.alert('提示','请先选择模板!');
-		// 	return;
-		// }
 
 		var values = formpanel.getForm().getValues();
 		

+ 13 - 2
kanban-console/src/main/webapp/resources/app/view/desktop/BoardParamWindow.js

@@ -66,8 +66,8 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 							name: v
 						}
 					})
-					var defaultValue = data[0].value;
-					for(var p in me.resData.parameters) {
+					var defaultValue = data[0].value || '';
+					for(var p of me.resData.parameters) {
 						if(p.code == item.code) {
 							defaultValue = p.value || data[0].value;
 						}
@@ -260,6 +260,17 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 					view.getEl().unmask();
 					if(response.responseText){
 						var res = Ext.decode(response.responseText);
+						var form = Ext.getCmp('paramForm');
+						var formData = {
+							data: {
+								refreshFrequency: res.refreshFrequency,
+								switchFrequency: res.switchFrequency,
+							},
+							getData: function() {
+								return this.data
+							}
+						}
+						form.loadRecord(formData);
 						res.parameters = Ext.decode(res.parameters)
 						me.resData = res;
 						me.load();

+ 133 - 0
kanban-console/src/main/webapp/resources/app/view/desktop/ParamValueEditor.js

@@ -0,0 +1,133 @@
+Ext.define('erp.view.desktop.ParamValueEditor',{
+	extend:'Ext.window.Window',
+	alias:'widget.paramvalueeditor',
+	id:'paramvalueeditor',
+	width:400,
+	height:250,
+	modal:true,
+    layout:'fit',
+	initComponent:function(){
+        var me = this;
+		me.items = [{
+            xtype:'form',
+            id:'paramValueForm',
+            layout: 'fit',
+            hidden: me.paramRecord.get('type') != 'SQL',
+            autoScroll: true,
+            items: [{
+                xtype: 'textarea',
+                name: 'value'
+            }],
+            // bbar: [{
+            //     xtype: 'button',
+            //     text: '检测',
+            //     handler: function(btn) {
+            //         me.save();
+            //         btn.ownerCt.ownerCt.ownerCt.close();
+            //     }
+            // }]
+            load: function() {
+                var form = this;
+                var sql = me.paramRecord.get('optionalValues');
+                var record = {
+                    data: {
+                        value: sql
+                    },
+                    getData: function() {
+                        return this.data;
+                    }
+                }
+                form.getForm().loadRecord(record);
+            },
+            getParamValue: function() {
+                var form = this;
+                return form.getForm().findField('value').getValue();
+            }
+        }, {
+            xtype:'grid',
+            id:'paramValueGrid',
+            hidden: me.paramRecord.get('type') != 'String',
+            autoScroll: true,
+            store: Ext.create('Ext.data.JsonStore',{
+				fields: ['value'],
+				data: []
+			}),
+			autoScroll: true,
+			forceFit: true,
+            columnLines: true,
+            hideHeaders: true,
+			columns: [
+				{ text: '值', dataIndex: 'value', editor: 'textfield' }
+            ],
+            plugins: [
+				Ext.create('Ext.grid.plugin.CellEditing', {
+					clicksToEdit: 2
+				})
+			],
+            rbar: [{
+                xtype: 'button',
+                text: '添加',
+                handler: function() {
+                    var grid = Ext.getCmp('paramValueGrid');
+                    grid.getStore().add({value: ''});
+                    grid.getPlugin().startEditByPosition({ row: grid.getStore().getCount() - 1, column: 0 });
+                }
+            },{
+                xtype: 'button',
+                text: '删除',
+                handler: function() {
+                    var grid = Ext.getCmp('paramValueGrid');
+                    var record = grid.getSelectionModel().getSelection()[0];
+                    grid.getStore().remove(record);
+                }
+            }],
+            load: function() {
+                var grid = this;
+                var params = me.paramRecord.get('optionalValues');
+                var record = params.map(function(p) {
+                    return {
+                        value: p
+                    }
+                });
+                grid.getStore().loadData(record);
+            },
+            getParamValue: function() {
+                var grid = this;
+                return grid.getStore().data.items.map(function(item){return item.data.value})
+            }
+        }];
+		me.callParent(arguments);
+    },
+    buttonAlign: 'center',
+	buttons:[{
+		text:'确定',
+		formBind:true,
+		handler:function(btn){
+			var me = Ext.getCmp('paramvalueeditor');
+            me.save();
+            btn.ownerCt.ownerCt.close()
+		}
+	},{
+		text:'取消',
+		handler:function(btn){
+			btn.ownerCt.ownerCt.close()
+		}
+	}],
+    listeners: {
+        afterrender: function() {
+            var me = this;
+            me.load();
+        }
+    },
+    load: function(){
+        var me = this;
+        var item = me.paramRecord.get('type') == 'SQL' ? Ext.getCmp('paramValueForm') : Ext.getCmp('paramValueGrid')
+        item.load();
+    },
+    save: function() {
+        var me = this;
+        var item = me.paramRecord.get('type') == 'SQL' ? Ext.getCmp('paramValueForm') : Ext.getCmp('paramValueGrid')
+        var value = item.getParamValue();
+        me.paramRecord.set('optionalValues', value);
+    }
+}); 

+ 3 - 3
kanban-console/src/main/webapp/resources/app/view/template/templateeditpanel.js

@@ -36,7 +36,7 @@ Ext.define('erp.view.template.templateeditpanel',{
 				disabled:true
 			},{
 				xtype:'button',
-				text:'看板设置',
+				text:'标题设置',
 				id:'tplSetBtn',
 				handler:me.setTemplateConfig,
 				disabled:true
@@ -161,9 +161,9 @@ Ext.define('erp.view.template.templateeditpanel',{
 		var win = record.win;
 		if(!win){
 			win = Ext.create('Ext.window.Window',{
-				title:'看板设置',
+				title:'标题设置',
 				width:580,
-				height:500,
+				// height:500,
 				modal:true,
 				layout:'fit',
 				id:'tplSet',

+ 2 - 3
kanban-console/src/main/webapp/resources/app/view/template/templatetree.js

@@ -5,7 +5,7 @@ Ext.define('erp.view.template.templatetree',{
 	layout: 'fit',
 	border: 0,
 	hideBorders: true, 
-	title: '面板参数',
+	title: panelName + '  >>  ' + modelName,
 	collapsible:true,
 	columnLines: true,
 	plugins:[Ext.create('erp.view.plugin.tplgridcontextmenu')],
@@ -14,7 +14,7 @@ Ext.define('erp.view.template.templatetree',{
 		data: []
 	}),
 	columns:[{
-		header:'名称',
+		header:'面板参数',
 		dataIndex:'name',
 		flex:1
 	}, {
@@ -24,7 +24,6 @@ Ext.define('erp.view.template.templatetree',{
 	}],
 	loadGridData: function() {
 		var grid = this;
-		var panelCode = Ext.getCmp('templatebuilderpanel').panelCode;
 		Ext.Ajax.request({
 			url:'parameter/get/byPanel/' + panelCode,
 			method:'POST',

+ 1 - 0
kanban-console/src/main/webapp/resources/app/view/template/viewport.js

@@ -2,6 +2,7 @@ Ext.define('erp.view.template.viewport',{
 	extend: 'Ext.Viewport', 
 	layout: 'border',
 	alias:'widget.boardset',
+	id: 'boardset',
 	title:'viewport',
 	border: 0,
 	hideBorders: true,