Prechádzať zdrojové kódy

【看板整合】【更新修改到dev分支代码】

zhuth 8 rokov pred
rodič
commit
0ed6dac7c8

+ 5 - 4
kanban-console/src/main/webapp/resources/app/controller/board.js

@@ -71,9 +71,10 @@ Ext.define('erp.controller.board', {
     		},
     		'elementdetailgrid':{
     			edit:function(editor, e, eOpts){
+					var rowIdx = e.rowIdx;
     				var builderPanel = Ext.getCmp('templatebuilderpanel');
     				var currenSelectPanel = builderPanel.currenSelectPanel;
-    				currenSelectPanel.fireEvent('fieldnamechange',currenSelectPanel,e.record);
+    				currenSelectPanel.fireEvent('fieldnamechange',currenSelectPanel,e.record,rowIdx);
     			},
     			select:function(grid,record,index,eOpts){
     				var propertiesGrid = Ext.getCmp('detailpropertiesgrid');
@@ -101,7 +102,7 @@ Ext.define('erp.controller.board', {
     		},
     		'detailpropertiesgrid':{
     			edit:function(editor, e, eOpts){
-    				var rowIdx = e.rowIdx;
+					var rowIdx = e.rowIdx;
     				var detailGrid = Ext.getCmp('elementdetailgrid');
     				var detailSelect = detailGrid.getSelectionModel().getSelection()[0];
 					detailSelect.set('propconfig',me.getPropConfigByRecord(e.store.data.items));
@@ -274,8 +275,8 @@ Ext.define('erp.controller.board', {
 						{display: "列样式", property: "rowstyle", propvalue: v.getAttribute('rowstyle')},
 						{display: "显示", property: "rendername", propvalue: v.getAttribute('rendername')},
 						{display: "数据绑定", property: "dataindex", propvalue: v.getAttribute('dataindex')},
-						{display: "值(仅作展示)", property: "data", propvalue: v.getAttribute('data')},
-						{display: "变量名", property: "value", propvalue: v.getAttribute('value')});
+						{display: "值(仅作展示)", property: "data", propvalue: v.getAttribute('data')}/*,
+						{display: "变量名", property: "value", propvalue: v.getAttribute('value')}*/);
 	    		}else {
 	    			
 	    		}

+ 167 - 146
kanban-console/src/main/webapp/resources/app/view/component/formcomponent.js

@@ -1,182 +1,203 @@
-Ext.define('erp.view.component.formcomponent',{
-	extend:'Ext.form.Panel',
-	alias:'widget.formcomponent',
-	title:'Form Panel',
-	type:'form',
+Ext.define('erp.view.component.formcomponent', {
+	extend: 'Ext.form.Panel',
+	alias: 'widget.formcomponent',
+	title: 'Form Panel',
+	type: 'form',
 	mixins: ['erp.view.component.commonpanel'],
-	layout:'column',
-	closable:true,
-	detailData:null,
-	detailSelect:null,
-	baseConfigFormValue:null,
-	defaults:{
-	  //width:'100%',
-	  //height:'25%',
-	  margin:'5 0 5 5',
+	layout: 'column',
+	closable: true,
+	detailData: null,
+	detailSelect: null,
+	baseConfigFormValue: null,
+	defaults: {
+		//width:'100%',
+		//height:'25%',
+		margin: '5 0 5 5',
 	},
 	bodyPadding: '5 10 5 10',
-	initComponent:function(){		
+	initComponent: function () {
 		var me = this;
-		Ext.apply(me.listeners,this.mixins['erp.view.component.commonpanel'].listeners);
+		Ext.apply(me.listeners, this.mixins['erp.view.component.commonpanel'].listeners);
 		//加载数据
-		Ext.apply(me,{
-			config:{
-				baseConfigForm:[{
-					xtype:'textfield',
-					fieldLabel:'标题',
-					name:'title',
-					listeners:{
-						blur:function( field, e, eOpts ){
+		Ext.apply(me, {
+			config: {
+				baseConfigForm: [{
+					xtype: 'textfield',
+					fieldLabel: '标题',
+					name: 'title',
+					listeners: {
+						blur: function (field, e, eOpts) {
 							//修改title
-							var v=field.getValue();
-							if(v){
+							var v = field.getValue();
+							if (v) {
 								this.changeTitle(v);
 							}
 						},
-						scope:this				        
+						scope: this
 					}
-				},{
-					xtype:'numberfield', 
-					fieldLabel:'列数',
-					name:'columns',
+				}, {
+					xtype: 'numberfield',
+					fieldLabel: '列数',
+					name: 'columns',
 					minValue: 1,
 					value: 2
-				},{
-					xtype:'textfield', 
-					fieldLabel:'field-style',
-					name:'fieldstyle'
-				},{
-					xtype:'textfield', 
-					fieldLabel:'value-style',
-					name:'valuestyle'
-				},{
-					xtype:'textarea', 
-					fieldLabel:'数据源',
-					grow:true,
-					name:'sql',
-					listeners:{
-						afterrender:function(cmp){
-	        				cmp.getEl().set({
-				                'spellcheck': 'false'
-				            });
-	        			}						
+				}, {
+					xtype: 'textfield',
+					fieldLabel: 'field-style',
+					name: 'fieldstyle'
+				}, {
+					xtype: 'textfield',
+					fieldLabel: 'value-style',
+					name: 'valuestyle'
+				}, {
+					xtype: 'textarea',
+					fieldLabel: '数据源',
+					grow: true,
+					name: 'sql',
+					listeners: {
+						afterrender: function (cmp) {
+							cmp.getEl().set({
+								'spellcheck': 'false'
+							});
+						}
 					}
-				},this.mixins['erp.view.component.commonpanel'].basicLayoutForm],
-				itemDefault:{
-					xtype:'displayfield',
-					fieldLabel:'字段',
-					value:100,
+				}, this.mixins['erp.view.component.commonpanel'].basicLayoutForm],
+				itemDefault: {
+					xtype: 'displayfield',
+					fieldLabel: '字段',
+					value: 100,
 				},
-				propGridDefault:{
-					fieldname:'字段',
-					fieldvalue:100,
-					propconfig:[{
-						display:'变量名',
-						property:'value',
-						propvalue:''
-					},{
-						display:'宽度(%)',
-						property:'width',
-						propvalue:''
-					},{
-						display:'field-style',
-						property:'fieldstyle',
-						propvalue:''
-					},{
-						display:'value-style',
-						property:'valuestyle',
-						propvalue:''
-					},{
-						display:'显示',
-						property:'rendername',
-						propvalue:''
-					}]			
+				propGridDefault: {
+					fieldname: '字段',
+					fieldvalue: 100,
+					propconfig: [{
+						display: '变量名',
+						property: 'value',
+						propvalue: ''
+					}, {
+						display: '宽度(%)',
+						property: 'width',
+						propvalue: ''
+					}, {
+						display: 'field-style',
+						property: 'fieldstyle',
+						propvalue: ''
+					}, {
+						display: 'value-style',
+						property: 'valuestyle',
+						propvalue: ''
+					}, {
+						display: '显示',
+						property: 'rendername',
+						propvalue: ''
+					}]
 				}
 			}
 		});
 		me.callParent(arguments);
 	},
-	listeners:{
-		resetitemposition:function(form,fieldRecords){
-			var me = this;
-			Ext.each(fieldRecords,function(field,index){
-				item = form.getComponent(field.get('fieldid'));
-				form.remove(item,true);
-			});
-			var items = me.getFormItemsByRecords(fieldRecords);
-			form.add(items);
+	listeners: {
+		resetitemposition: function (form, fieldRecords, from, to) {
+			var items = form.getFormItems();
+			if (from < to) {
+				items.splice(to + 1, 0, items[from]);
+				items.splice(from, 1);
+			} else {
+				items.splice(to, 0, items[from]);
+				items.splice(from + 1, 1);
+			}
+			form.removeAll();
+			for (var i = 0; i < items.length; i++) {
+				form.add({
+					xtype: items[i].xtype,
+					fieldLabel: items[i].fieldLabel,
+					value: items[i].value
+				})
+			}
+
+			// Ext.each(fieldRecords,function(field,index){
+			// 	item = form.getComponent(field.get('fieldid'));
+			// 	form.remove(item,true);
+			// });
+			// var items = me.getFormItemsByRecords(fieldRecords);
+			// form.add(items);
 		},
-		addItem:function(form,detailGrid){
+		addItem: function (form, detailGrid) {
 			var fieldId = Ext.id();
 			var item = form.config.itemDefault;
 			var propDetail = form.config.propGridDefault;
 			item.id = fieldId;
 			propDetail.fieldid = fieldId;
 			form.add(item);
-			detailGrid.getStore().loadData([propDetail],true);			
+			detailGrid.getStore().loadData([propDetail], true);
 		},
-		fieldnamechange:function(form,record){
-			var field = form.getComponent(record.get('fieldid'));
-			field.setFieldLabel(record.get('fieldname'));
+		fieldnamechange: function (form, record, index) {
+			form.items.items[index].setFieldLabel(record.get('fieldname'));
 		},
-		fieldpropchange:function(form,record,index){
-			var field = form.getComponent(record.get('fieldid'));
-			var prop = record.get('propconfig')[index];
-			field[prop.property] = prop.propvalue;
-			form.removeAll(true);
-			var records = Ext.getCmp('elementdetailgrid').getStore().data.items;
-			var items = form.getFormItemsByRecords(records);
-			form.add(items);
+		fieldpropchange: function (form, record, index) {
+			// var detailGrid = Ext.getCmp('elementdetailgrid');
+			// var selectedrow = detailGrid.getSelectionModel().getSelection()[0];
+
+			// var field = form.getComponent(record.get('fieldid'));
+			// var prop = record.get('propconfig')[index];
+			// field[prop.property] = prop.propvalue;
+			// form.removeAll(true);
+			// var records = Ext.getCmp('elementdetailgrid').getStore().data.items;
+			// var items = form.getFormItemsByRecords(records);
+			// form.add(items);
 		},
-		fielddelete:function(form,record){
+		fielddelete: function (form, record) {
 			var field = form.getComponent(record.get('fieldid'));
 			form.remove(field);
 		},
 	},
-	getFormItemsByRecords:function(fieldRecords){
-  	 	var items = new Array();
-  	 	var obj = new Object();
-  	 	Ext.each(fieldRecords,function(record){
-  	 		obj = {
-  	 			xtype:'displayfield',
-  	 			fieldLabel:record.get('fieldname'),
-  	 			id:record.get('fieldid'),
-  	 			//value:record.get('fieldvalue')
-  	 		};
-  	 		Ext.each(record.get('propconfig'),function(prop){
-  	 			obj[prop.property] = prop.propvalue;
-  	 		});
-  	 		obj.value = '100'; //默认显示值设为100
-  	 		items.push(obj);
-  	 	});
-  	 	return items;
-  	 },
-  	 updateFormDefault:function(field){
-  	 	var me = this;
-		Ext.Array.each(me.config.propGridDefault.propconfig,function(prop){
-			if(prop.property==field.name){
+	getFormItemsByRecords: function (fieldRecords) {
+		var items = new Array();
+		var obj = new Object();
+		Ext.each(fieldRecords, function (record) {
+			obj = {
+				xtype: 'displayfield',
+				fieldLabel: record.get('fieldname'),
+				id: record.get('fieldid'),
+				//value:record.get('fieldvalue')
+			};
+			Ext.each(record.get('propconfig'), function (prop) {
+				obj[prop.property] = prop.propvalue;
+			});
+			obj.value = '100'; //默认显示值设为100
+			items.push(obj);
+		});
+		return items;
+	},
+	updateFormDefault: function (field) {
+		var me = this;
+		Ext.Array.each(me.config.propGridDefault.propconfig, function (prop) {
+			if (prop.property == field.name) {
 				prop.propvalue = field.getValue();
 			}
-		});  	 	
-  	 },
-  	 repaint: function() {
-//  	 	this.setPosition(this.toLeft,this.toTop);
-		this.setTitle(this.baseConfigFormValue.title);
-  	 	var items = [];
-  	 	var me = this;
-  	 	var prop = this.config.propGridDefault;
-		var item = Object.assign({},prop);
-		var arr = item.propconfig.map(function(c,i){return c.property;});
-  	 	this.detailData.map(function(v, i) {
-  	 		var item = {
-  	 			xtype: 'displayfield',
-  	 			fieldLabel: v.fieldname,
-  	 			/*width: me.getWidth() * (Number(eval(v.propconfig[arr.indexOf('width')].propvalue.replace('%','/100')))),
-  	 			height: me.getHeight() * (Number(eval(v.propconfig[arr.indexOf('height')].propvalue.replace('%','/100')))),*/
-  	 			value: 100
-  	 		}
-  	 		items.push(item);
-  	 	});
-  	 	this.add(items);
-  	 }
+		});
+	},
+	getFormItems: function () {
+		var form = this;
+		var items = Object.assign({}, form.items.items);
+		var allItems = [];
+		for (var i = 0; items[i]; i++) {
+			allItems.push({
+				xtype: items[i].xtype,
+				fieldLabel: items[i].fieldLabel,
+				value: items[i].value
+			})
+		}
+		return allItems;
+	},
+	repaint: function () {
+		var me = this;
+		me.setTitle(me.baseConfigFormValue.title);
+
+		me.detailData.map(function (v, i) {
+			var item = Object.assign({}, me.config.itemDefault);
+			item.fieldLabel = v.fieldname;
+			me.add(item);
+		});
+	}
 });

+ 9 - 12
kanban-console/src/main/webapp/resources/app/view/component/gridcomponent.js

@@ -104,11 +104,11 @@ Ext.define('erp.view.component.gridcomponent',{
 						display: '值(仅作展示)',
 						property: 'data',
 						propvalue: (Math.random()*100 | 0) + ',' + (Math.random()*100 | 0) + ',' + (Math.random()*100 | 0)
-					},{
+					}/*,{
 						display:'变量名',
 						property:'value',
 						propvalue:''
-					}]			
+					}*/]			
 				}
 			}
 		});
@@ -131,19 +131,14 @@ Ext.define('erp.view.component.gridcomponent',{
 			if(from < to) {
 				columns.splice(to+1, 0, columns[from]);
 				columns.splice(from, 1);
-				data.splice(to+1, 0, data[from]);
-				data.splice(from, 1);
 				fields.splice(to+1, 0, fields[from]);
 				fields.splice(from, 1);
 			}else {
 				columns.splice(to, 0, columns[from]);
 				columns.splice(from+1, 1);
-				data.splice(to, 0, data[from]);
-				data.splice(from+1, 1);
 				fields.splice(to, 0, fields[from]);
 				fields.splice(from+1, 1);
 			}
-			
 			this.createGrid(fields, data, columns);
 		},
 		addItem:function(grid,detailGrid){
@@ -165,10 +160,12 @@ Ext.define('erp.view.component.gridcomponent',{
 				data.push({},{},{})
 			}
 			var arr = item.propconfig.map(function(v,i) {return v.property;})
-			item.propconfig[arr.indexOf('data')].propvalue.split(',').map(function(v,i){
-				data[i][item.fieldindex] = v
+			var newdata = item.propconfig[arr.indexOf('data')].propvalue.split(',').map(function(v,i){
+				return v;
 			});
-			
+			for(var i = 0; i < data.length; i++) {
+				data[i][item.fieldindex] = newdata[i]
+			}
 			this.createGrid(fields, data, columns);
 		},
 		fieldnamechange:function(grid,record){
@@ -225,12 +222,12 @@ Ext.define('erp.view.component.gridcomponent',{
 	 * 添加grid行
 	 */
 	gridNewLine: function(detailGrid) {
-		var alldata = detailGrid.getStore().data.items;
+		var alldata = this.columnManager.columns;
 		var prop = this.config.propGridDefault;
 		var item = Object.assign({},prop);
 		var arr = [];
 		for(var i = 0; i < alldata.length; i++) {
-			arr.push(alldata[i].raw.fieldindex);
+			arr.push(alldata[i].dataIndex);
 		}
 		var count = 0;
 		for(var i = 0; i < arr.length; i++) {

+ 1 - 0
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageMainPanel.js

@@ -135,6 +135,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 		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;

+ 61 - 3
kanban-console/src/main/webapp/resources/app/view/desktop/BoardParamWindow.js

@@ -1,13 +1,14 @@
 Ext.define('erp.view.desktop.BoardParamWindow',{
 	extend:'Ext.window.Window',
 	alias:'widget.boardparamwin',
-	width:500,
+	width:800,
 	height:450,
 	modal:true,
-	layout:'fit',
+	layout:'border',
 	id:'template',
 	resData:null,
 	record:null,
+	respointStore:null,
 	initComponent:function(){
 		var me = this;
 		var record = me.record;
@@ -26,6 +27,20 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 					if(response.responseText){
 						var res = Ext.decode(response.responseText);
 						me.resData = res;
+						Ext.create('erp.store.resourcepoint',{
+							proxy:{
+								type:'ajax',
+								url:'resourcePoint/get/' + '52AF232A414',
+								reader: {
+									type: 'json'
+								}
+							},
+							autoLoad: true,
+							listeners: {
+								load: function(store, operation, eOpts) {
+								}
+							}
+						});
 						var globalItems = me.parseGlobalParam(res.globalParameters);
 						var items = me.getConfig(globalItems,templateCode,res);
 						Ext.apply(me,{
@@ -134,12 +149,19 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 		var config = [{
 			xtype:'form',
 			id:'paramsForm',
+			region: 'center',
 			layout:'column',
+			title: '启动配置',
 			defaults:{
 				columnWidth:1,
 				margin:'5 5 5 5'
 			},
 			items:[{
+				xtype: 'displayfield',
+				fieldLabel: '关联资源点',
+				value: '',
+				hidden: res.respoint == 'all' ? true : false
+			},{
 				xtype:'fieldset',
 				title:'基础信息',
 				items:items,
@@ -185,6 +207,42 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 					form.ownerCt.close();
 				}
 			}]
+		},{
+			xtype: 'grid',
+			id:'paramsGrid',
+			region: 'east',
+			width: 300,
+		    title: '选择模板',
+		    hideHeaders:true,
+		    store: Ext.data.StoreManager.lookup('boardmodel'),
+		    selModel: Ext.create('Ext.selection.CheckboxModel'),
+		    columnLines:true,
+		    columns: [
+		        {text: '选择模板', dataIndex:'name', width: 150,flex:1},
+		        {text: 'ID', dataIndex:'code', flex:1,hidden:true},
+		        {text: '备注', dataIndex:'description', flex:1}
+			],
+			tbar:{
+				items: [{
+					xtype: 'button',
+					text: '确定',
+					handler: function() {
+						// 生成实例
+						// 刷新面板
+					}
+				}]
+			},
+			listeners: {
+				afterrender:function(grid){
+					grid.store.load(function() {
+						// 根据资源点过滤展示模板
+						grid.store.filterBy(function(record, id) {
+							return true
+						});
+						// 选中默认配置模板
+					});
+				}
+			}
 		}];
 		return config;
 	},
@@ -261,5 +319,5 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
     		instanceCode:me.resData.code,
     		html:'<iframe src="boardshow?code=' + me.resData.code + '" width="100%" height="100%" style="border:none"></iframe>'
     	}).show();
-    }
+	}
 });