|
@@ -1,8 +1,9 @@
|
|
|
Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
extend:'Ext.window.Window',
|
|
|
alias:'widget.boardparamwin',
|
|
|
- width:800,
|
|
|
- height:450,
|
|
|
+ width: '80%',
|
|
|
+ height: '80%',
|
|
|
+ resizable: false,
|
|
|
modal:true,
|
|
|
layout:'border',
|
|
|
id:'template',
|
|
@@ -11,9 +12,182 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
initComponent:function(){
|
|
|
var me = this;
|
|
|
me.items = [{
|
|
|
- xtype:'form',
|
|
|
+ xtype: 'panel',
|
|
|
+ region: 'west',
|
|
|
+ id: 'areaPanel',
|
|
|
+ title: '多画面配置',
|
|
|
+ collapsible: true,
|
|
|
+ animCollapse: false,
|
|
|
+ collapsed: true,
|
|
|
+ layout: 'anchor',
|
|
|
+ width: 300,
|
|
|
+ items: [{
|
|
|
+ xtype: 'form',
|
|
|
+ id: 'areaForm',
|
|
|
+ layout: 'vbox',
|
|
|
+ anchor: '100% 40%',
|
|
|
+ defaults: {
|
|
|
+ margin: 5
|
|
|
+ },
|
|
|
+ items: [{
|
|
|
+ xtype: 'hidden',
|
|
|
+ fieldLabel: '多画面code',
|
|
|
+ name: 'viewcode'
|
|
|
+ }, {
|
|
|
+ xtype: 'combobox',
|
|
|
+ fieldLabel: '多画面展示方式',
|
|
|
+ name: 'viewtype',
|
|
|
+ editable: false,
|
|
|
+ allowBlank: false,
|
|
|
+ store: Ext.create('Ext.data.Store', {
|
|
|
+ fields: ['value', 'name'],
|
|
|
+ data: [{value: 'single', name: '单屏显示'}, {value: 'more', name: '多屏显示'}]
|
|
|
+ }),
|
|
|
+ queryMode: 'local',
|
|
|
+ displayField: 'name',
|
|
|
+ valueField: 'value',
|
|
|
+ value: 'single',
|
|
|
+ listeners: {
|
|
|
+ change: function(typefield) {
|
|
|
+ var areaForm = Ext.getCmp('areaForm'),
|
|
|
+ f = areaForm.getForm(),
|
|
|
+ countfield = f.findField('areacount'),
|
|
|
+ rowsfield = f.findField('arearows'),
|
|
|
+ colsfield = f.findField('areacols');
|
|
|
+
|
|
|
+ if(typefield.getValue() == 'more') {
|
|
|
+ countfield.setValue(1);
|
|
|
+ countfield.show();
|
|
|
+ rowsfield.hide();
|
|
|
+ rowsfield.setValue(1);
|
|
|
+ colsfield.hide();
|
|
|
+ colsfield.setValue(1);
|
|
|
+ }else {
|
|
|
+ countfield.setValue(1);
|
|
|
+ countfield.hide();
|
|
|
+ rowsfield.setValue(1);
|
|
|
+ rowsfield.show();
|
|
|
+ colsfield.setValue(1);
|
|
|
+ colsfield.show();
|
|
|
+ }
|
|
|
+ var areaForm = Ext.getCmp('areaForm'),
|
|
|
+ areaView = Ext.getCmp('areaView'),
|
|
|
+ f = areaForm.getForm();
|
|
|
+ var values = f.getValues();
|
|
|
+ areaView.createArea(values);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ xtype: 'numberfield',
|
|
|
+ fieldLabel: '分屏数量',
|
|
|
+ name: 'areacount',
|
|
|
+ value: 1,
|
|
|
+ minValue: 1,
|
|
|
+ maxValue: 8,
|
|
|
+ hidden: true,
|
|
|
+ listeners: {
|
|
|
+ change: function(countfiedl) {
|
|
|
+ if(!countfiedl.isValid()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var areaForm = Ext.getCmp('areaForm'),
|
|
|
+ areaView = Ext.getCmp('areaView'),
|
|
|
+ f = areaForm.getForm();
|
|
|
+ var values = f.getValues();
|
|
|
+ areaView.createArea(values);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ xtype: 'numberfield',
|
|
|
+ fieldLabel: '多画面展示行数',
|
|
|
+ name: 'arearows',
|
|
|
+ value: 1,
|
|
|
+ minValue: 1,
|
|
|
+ maxValue: 2,
|
|
|
+ listeners: {
|
|
|
+ change: function(rowsfield) {
|
|
|
+ var colsfield = rowsfield.nextSibling();
|
|
|
+ if(!colsfield.isValid() || !rowsfield.isValid()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ me.refreshAreaView();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ xtype: 'numberfield',
|
|
|
+ fieldLabel: '多画面展示列数',
|
|
|
+ name: 'areacols',
|
|
|
+ value: 1,
|
|
|
+ minValue: 1,
|
|
|
+ maxValue: 4,
|
|
|
+ listeners: {
|
|
|
+ change: function(colsfield) {
|
|
|
+ var rowsfield = colsfield.previousSibling();
|
|
|
+ if(!colsfield.isValid() || !rowsfield.isValid()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ me.refreshAreaView();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ loadData: function() {
|
|
|
+ var form = this,
|
|
|
+ record = me.record,
|
|
|
+ code = record.get('code');
|
|
|
+
|
|
|
+ Ext.Ajax.request({
|
|
|
+ url:'panelView/get/byPanel/' + code,
|
|
|
+ method:'POST',
|
|
|
+ callback:function(options, success, response){
|
|
|
+ Ext.getCmp('desktopDataView').getEl().unmask();
|
|
|
+ var f = form.getForm(),
|
|
|
+ areaView = Ext.getCmp('areaView');
|
|
|
+
|
|
|
+ if(response.responseText){
|
|
|
+ var res = Ext.decode(response.responseText),
|
|
|
+ areaConfig = res.areaConfig,
|
|
|
+ length = areaConfig.length;
|
|
|
+
|
|
|
+
|
|
|
+ if(length > 1 || res.viewType == 'more') {
|
|
|
+ var areaPanel = Ext.getCmp('areaPanel');
|
|
|
+ areaPanel.expand();
|
|
|
+ areaPanel.animCollapse = true;
|
|
|
+ }
|
|
|
+ areaConfig = areaConfig.map(function(c, i) {
|
|
|
+ var p = c.viewParameters;
|
|
|
+ c.viewParameters = Ext.decode(p);
|
|
|
+ return c;
|
|
|
+ });
|
|
|
+ areaView.oldAreaConfig = areaConfig;
|
|
|
+
|
|
|
+ f.findField('viewcode').setValue(res.code);
|
|
|
+ f.findField('viewtype').setValue(res.viewType);
|
|
|
+ f.findField('areacount').setValue(res.areaCount);
|
|
|
+ f.findField('arearows').setValue(res.areaRows);
|
|
|
+ f.findField('areacols').setValue(res.areaCols);
|
|
|
+ }
|
|
|
+ var values = f.getValues();
|
|
|
+ areaView.createArea(values);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ xtype: 'areaview',
|
|
|
+ id: 'areaView',
|
|
|
+ anchor: '100% 60%'
|
|
|
+ }],
|
|
|
+ listeners: {
|
|
|
+ expand: function() {
|
|
|
+ var areaview = Ext.getCmp('areaView');
|
|
|
+ areaview.fireEvent('layoutHeight', areaview);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ xtype:'form',
|
|
|
+ region: 'center',
|
|
|
id:'paramForm',
|
|
|
- region: 'center',
|
|
|
+ anchor: '100% 100%',
|
|
|
layout:'column',
|
|
|
autoScroll: true,
|
|
|
defaults:{
|
|
@@ -22,7 +196,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
},
|
|
|
items:[{
|
|
|
xtype:'fieldset',
|
|
|
- title:'参数设置',
|
|
|
+ title:'画面1参数设置',
|
|
|
hidden: true
|
|
|
},{
|
|
|
xtype:'fieldset',
|
|
@@ -37,53 +211,25 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
fieldLabel:'刷新/切换频率(秒/次)',
|
|
|
value:'5',
|
|
|
minValue:1,
|
|
|
- allowBlank:false
|
|
|
- },
|
|
|
- xtype:'numberfield',
|
|
|
- id:'switchFrequency',
|
|
|
- name:'switchFrequency',
|
|
|
- fieldLabel:'切换频率(秒/次)',
|
|
|
- minValue:3,
|
|
|
- value:'30',
|
|
|
- minValue:1
|
|
|
- }*/]
|
|
|
+ allowBlank:false,
|
|
|
+ listeners: {
|
|
|
+ change: function(field) {
|
|
|
+ if(field.isValid())
|
|
|
+ me.setViewParameters();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }]
|
|
|
}],
|
|
|
-
|
|
|
- * 添加面板参数下拉组件
|
|
|
- */
|
|
|
- addParamCombo: function() {
|
|
|
- var form = this;
|
|
|
- var items = me.resData.parameters;
|
|
|
- var paramFieldSet = form.items.items[0];
|
|
|
- paramFieldSet.removeAll();
|
|
|
- var comboxs = [];
|
|
|
- Ext.Array.each(items, function(item, index) {
|
|
|
- var data = item.optionalValues ? item.optionalValues.map(function (v) {
|
|
|
- return {
|
|
|
- value: v,
|
|
|
- name: v
|
|
|
- }
|
|
|
- }) : []
|
|
|
- var combox = new Ext.form.field.ComboBox({
|
|
|
- fieldLabel: item.name,
|
|
|
- name: item.code,
|
|
|
- store: Ext.create('Ext.data.Store', {
|
|
|
- fields: ['value', 'name'],
|
|
|
- data: data
|
|
|
- }),
|
|
|
- queryMode: 'local',
|
|
|
- displayField: 'name',
|
|
|
- valueField: 'value',
|
|
|
- value: item.value || '',
|
|
|
- allowBlank: false,
|
|
|
- });
|
|
|
- comboxs.push(combox);
|
|
|
- });
|
|
|
- paramFieldSet.add(comboxs);
|
|
|
- if(comboxs.length != 0) {
|
|
|
- paramFieldSet.show();
|
|
|
- }
|
|
|
- form.doLayout();
|
|
|
+ setDefaultValues: function(values) {
|
|
|
+ this.defaultValues = values;
|
|
|
+ },
|
|
|
+ getDefaultValues: function() {
|
|
|
+ return this.defaultValues;
|
|
|
+ },
|
|
|
+ getCusParams: function() {
|
|
|
+ var values = this.getForm().getValues();
|
|
|
+ delete values[refreshFrequency];
|
|
|
+ return values;
|
|
|
}
|
|
|
},{
|
|
|
xtype: 'grid',
|
|
@@ -107,38 +253,52 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
}
|
|
|
],
|
|
|
listeners: {
|
|
|
- afterLayout: function(grid) {
|
|
|
- grid.getSelectionModel().deselectAll();
|
|
|
- grid.selectModel();
|
|
|
- },
|
|
|
+ selectionchange: function(selectModel) {
|
|
|
+ Ext.getCmp('areaView').setViewModel(selectModel.getSelection().map(function(s) {
|
|
|
+ return s.get('code');
|
|
|
+ }));
|
|
|
+ }
|
|
|
},
|
|
|
- loadGridData: function() {
|
|
|
+ loadGridData: function(callbackFunc) {
|
|
|
var grid = this;
|
|
|
- res = me.resData.relatedKanbans || [];
|
|
|
- grid.getStore().loadData(res);
|
|
|
- grid.getStore().sort('enabled', 'DESC');
|
|
|
+ var record = me.record;
|
|
|
+ var code = record.get('code');
|
|
|
+ Ext.Ajax.request({
|
|
|
+ url:'kanban/getEnableKanbans/byPanel/' + code,
|
|
|
+ method:'POST',
|
|
|
+ callback:function(options, success, response){
|
|
|
+ if(response.responseText){
|
|
|
+ var res = Ext.decode(response.responseText);
|
|
|
+ if(success) {
|
|
|
+ me.relatedKanbans = res;
|
|
|
+ grid.getStore().loadData(res);
|
|
|
+
|
|
|
+ callbackFunc.call();
|
|
|
+ }else {
|
|
|
+ Ext.getCmp('desktopDataView').getEl().unmask();
|
|
|
+ showErrorMsg('失败', res.message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- selectModel: function() {
|
|
|
- var grid = this;
|
|
|
- if(!me.resData) {
|
|
|
- return;
|
|
|
+ selectModels: function(codes) {
|
|
|
+ var grid = this, allRecords = grid.store.data.items, selectRecords, selectRecord = [],
|
|
|
+ selectModel = grid.getSelectionModel();
|
|
|
+ for(var i = 0; i < allRecords.length; i++) {
|
|
|
+ var record = allRecords[i];
|
|
|
+ if(codes.indexOf(record.get('code')) != -1) {
|
|
|
+ selectRecord.push(record);
|
|
|
+ }
|
|
|
}
|
|
|
- var selectedModels = me.resData.relatedKanbans || [];
|
|
|
- var modelStore = grid.getStore();
|
|
|
- var records = [];
|
|
|
- selectedModels.map(function(model) {
|
|
|
- var record = modelStore.findRecord('code',model['code']);
|
|
|
- if(record && model.enabled) {
|
|
|
- records.push(record);
|
|
|
- }
|
|
|
- });
|
|
|
- grid.getSelectionModel().select(records || []);
|
|
|
+ selectModel.deselectAll()
|
|
|
+ selectModel.select(selectRecord || []);
|
|
|
},
|
|
|
getSelectedModels: function() {
|
|
|
var grid = this;
|
|
|
var selectedModels = grid.getSelectionModel().getSelection();
|
|
|
return selectedModels || [];
|
|
|
- },
|
|
|
+ }
|
|
|
}];
|
|
|
me.callParent(arguments);
|
|
|
},
|
|
@@ -147,21 +307,16 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
text:'确定',
|
|
|
formBind:true,
|
|
|
handler:function(){
|
|
|
- var me = Ext.getCmp('template');
|
|
|
- var formpanel = Ext.getCmp('paramForm');
|
|
|
- if(formpanel.isValid()) {
|
|
|
- var modelGrid = Ext.getCmp('modelGrid');
|
|
|
- if(modelGrid.getSelectedModels().length == 0) {
|
|
|
- showErrorMsg('警告','请至少选中一个看板!');
|
|
|
- return;
|
|
|
- }
|
|
|
- if(!me.checkFrequency()) {
|
|
|
- return;
|
|
|
- }
|
|
|
- me.setFullScreen();
|
|
|
- me.savePanelInstance();
|
|
|
- }else {
|
|
|
- showErrorMsg('警告', '有必填项未填!');
|
|
|
+ var me = Ext.getCmp('template'),
|
|
|
+ areaView = Ext.getCmp('areaView'),
|
|
|
+ areaConfig = areaView.getAreaConfig(),
|
|
|
+ emptyKanbanIndex = [];
|
|
|
+
|
|
|
+ if(me.checkAreaConfig(areaConfig)) {
|
|
|
+ if(Ext.getCmp('areaForm').getForm().findField('viewtype').getValue()=='single') {
|
|
|
+ me.setFullScreen();
|
|
|
+ }
|
|
|
+ me.saveAreaView();
|
|
|
}
|
|
|
}
|
|
|
},{
|
|
@@ -171,18 +326,73 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
}
|
|
|
}],
|
|
|
listeners: {
|
|
|
- afterLayout: function(me) {
|
|
|
+ afterrender: function(me) {
|
|
|
me.init();
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+ * 添加面板参数下拉组件
|
|
|
+ */
|
|
|
+ addParamCombo: function(form, items, areaIndex) {
|
|
|
+ var me = this;
|
|
|
+ var paramFieldSet = form.items.items[0];
|
|
|
+ paramFieldSet.removeAll();
|
|
|
+ var comboxs = [];
|
|
|
+ Ext.Array.each(items, function(item, index) {
|
|
|
+ var data = item.optionalValues ? item.optionalValues.map(function (v) {
|
|
|
+ return {
|
|
|
+ value: v,
|
|
|
+ name: v
|
|
|
+ }
|
|
|
+ }) : []
|
|
|
+ var combox = new Ext.form.field.ComboBox({
|
|
|
+ fieldLabel: item.name,
|
|
|
+ name: item.code,
|
|
|
+ store: Ext.create('Ext.data.Store', {
|
|
|
+ fields: ['value', 'name'],
|
|
|
+ data: data
|
|
|
+ }),
|
|
|
+ queryMode: 'local',
|
|
|
+ displayField: 'name',
|
|
|
+ valueField: 'value',
|
|
|
+ value: item.value || '',
|
|
|
+ allowBlank: false,
|
|
|
+ areaIndex: areaIndex,
|
|
|
+ listeners: {
|
|
|
+ change: function(field) {
|
|
|
+ if(field.isValid())
|
|
|
+ me.setViewParameters();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ comboxs.push(combox);
|
|
|
+ });
|
|
|
+ if(areaIndex) {
|
|
|
+ paramFieldSet.setTitle('画面'+areaIndex+'参数设置');
|
|
|
+ }else {
|
|
|
+ paramFieldSet.setTitle('参数设置');
|
|
|
+ }
|
|
|
+ paramFieldSet.add(comboxs);
|
|
|
+ if(comboxs.length != 0) {
|
|
|
+ paramFieldSet.show();
|
|
|
+ }
|
|
|
+ form.doLayout();
|
|
|
+ form.setDefaultValues(form.getForm().getValues());
|
|
|
+ },
|
|
|
load: function() {
|
|
|
var me = this;
|
|
|
+
|
|
|
|
|
|
var paramForm = Ext.getCmp('paramForm');
|
|
|
- paramForm.addParamCombo();
|
|
|
+ var items = me.parameterItems;
|
|
|
+ me.addParamCombo(paramForm, items, 1);
|
|
|
|
|
|
var modelGrid = Ext.getCmp('modelGrid');
|
|
|
- modelGrid.loadGridData();
|
|
|
+ modelGrid.loadGridData(function() {
|
|
|
+
|
|
|
+ var areaForm = Ext.getCmp('areaForm');
|
|
|
+ areaForm.loadData();
|
|
|
+ });
|
|
|
},
|
|
|
init: function() {
|
|
|
var me = this;
|
|
@@ -193,28 +403,17 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
view.getEl().mask('loading...');
|
|
|
if(me.record){
|
|
|
Ext.Ajax.request({
|
|
|
- url:'panelInstance/get/byPanel/'+code,
|
|
|
+ url:'parameter/getParseSQLData/byPanel/'+code,
|
|
|
method:'POST',
|
|
|
callback:function(options, success, response){
|
|
|
- view.getEl().unmask();
|
|
|
if(response.responseText){
|
|
|
var res = Ext.decode(response.responseText);
|
|
|
if(success) {
|
|
|
var form = Ext.getCmp('paramForm');
|
|
|
- var formData = {
|
|
|
- data: {
|
|
|
- refreshFrequency: res.refreshFrequency,
|
|
|
- switchFrequency: res.refreshFrequency,
|
|
|
- },
|
|
|
- getData: function() {
|
|
|
- return this.data
|
|
|
- }
|
|
|
- }
|
|
|
- form.loadRecord(formData);
|
|
|
- res.parameters = Ext.decode(res.parameters) || [];
|
|
|
- me.resData = res;
|
|
|
+ me.parameterItems = res;
|
|
|
me.load();
|
|
|
}else {
|
|
|
+ view.getEl().unmask();
|
|
|
showErrorMsg('失败', res.message, Ext.getCmp('template'));
|
|
|
}
|
|
|
}
|
|
@@ -222,16 +421,29 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
-
|
|
|
- * 生成面板实例后打开展示界面
|
|
|
- */
|
|
|
- savePanelInstance: function() {
|
|
|
- var me = this;
|
|
|
-
|
|
|
- var params = me.getBoardConfig();
|
|
|
+ saveAreaView: function() {
|
|
|
+ var me = this,
|
|
|
+ areaForm = Ext.getCmp('areaForm'),
|
|
|
+ areaFormValues = areaForm.getForm().getValues(),
|
|
|
+ areaCode = areaFormValues.viewcode,
|
|
|
+ type = areaCode ? 'update' : 'save',
|
|
|
+ areaView = Ext.getCmp('areaView'),
|
|
|
+ areaConfig = areaView.getAreaConfig();
|
|
|
+ var params = {
|
|
|
+ panelCode: me.record.get('code'),
|
|
|
+ panelVersion: me.record.get('version'),
|
|
|
+ userCode: getCookie('code'),
|
|
|
+ viewType: areaFormValues.viewtype,
|
|
|
+ areaCount: areaFormValues.areacount,
|
|
|
+ areaRows: areaFormValues.arearows,
|
|
|
+ areaCols: areaFormValues.areacols,
|
|
|
+ areaConfig: areaConfig
|
|
|
+ };
|
|
|
+ if(type == 'update') {
|
|
|
+ params.code = areaCode;
|
|
|
+ }
|
|
|
Ext.Ajax.request({
|
|
|
- url:'panelInstance/updatePart/',
|
|
|
+ url:'panelView/' + type + '/',
|
|
|
method:'POST',
|
|
|
params:{
|
|
|
json:Ext.encode(params)
|
|
@@ -239,65 +451,88 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
callback:function(options,success,response){
|
|
|
var res = JSON.parse(response.responseText);
|
|
|
if(success) {
|
|
|
- me.viewBoard();
|
|
|
+ var viewData = res;
|
|
|
+ if(type == 'update') {
|
|
|
+ viewData = params;
|
|
|
+ }else {
|
|
|
+ areaForm.getForm().findField('viewcode').setValue(res.code);
|
|
|
+ }
|
|
|
+ me.viewBoard(viewData);
|
|
|
}else {
|
|
|
showErrorMsg('失败', res.message);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- },
|
|
|
- getBoardConfig: function() {
|
|
|
- var me = this;
|
|
|
- var modelGrid = Ext.getCmp('modelGrid');
|
|
|
- var selectedModelCodes = modelGrid.getSelectedModels().map(function(model) {
|
|
|
- return model.get('code');
|
|
|
- });
|
|
|
- var relatedKanbans = me.resData.relatedKanbans.map(function(kanban) {
|
|
|
- kanban.enabled = selectedModelCodes.indexOf(kanban.code) != -1;
|
|
|
- return kanban;
|
|
|
- });
|
|
|
- var paramForm = Ext.getCmp('paramForm');
|
|
|
- var config = paramForm.getForm().getValues();
|
|
|
-
|
|
|
- var parameters = me.resData.parameters.map(function(p) {
|
|
|
- p.value = config[p.code];
|
|
|
- return p
|
|
|
- })
|
|
|
- return {
|
|
|
- code: me.resData.code,
|
|
|
- parameters: Ext.encode(parameters),
|
|
|
- refreshFrequency: config.refreshFrequency,
|
|
|
- switchFrequency: config.refreshFrequency,
|
|
|
- relatedKanbans: relatedKanbans
|
|
|
+ },
|
|
|
+
|
|
|
+ * 检查画面配置是否合法
|
|
|
+ */
|
|
|
+ checkAreaConfig: function(areaConfig) {
|
|
|
+ var me = this,
|
|
|
+ errorKanbanIndex = [],
|
|
|
+ errorParamIndex = [],
|
|
|
+ message = '';
|
|
|
+
|
|
|
+ for(var i = 0; i < areaConfig.length; i++) {
|
|
|
+ var config = areaConfig[i],
|
|
|
+ viewKanbans = config.viewKanbans;
|
|
|
+ if(!(viewKanbans instanceof Array) || viewKanbans.length == 0) {
|
|
|
+ errorKanbanIndex.push(i + 1);
|
|
|
+ }
|
|
|
}
|
|
|
- },
|
|
|
- checkFrequency:function(){
|
|
|
- var me = this;
|
|
|
- var refreshFreq = Ext.getCmp('refreshFrequency').value;
|
|
|
- var switchFreq = Ext.getCmp('refreshFrequency').value;
|
|
|
- if(switchFreq){
|
|
|
- if(refreshFreq>switchFreq){
|
|
|
- showErrorMsg('警告','刷新频率必须小于切换频率!');
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if(errorKanbanIndex.length > 0 || errorParamIndex.length > 0) {
|
|
|
+ message += errorKanbanIndex.length > 0 ? (areaConfig.length == 1 ? '' : ('画面[' + errorKanbanIndex.join() + ']')) + '未勾选看板' : '';
|
|
|
+ showErrorMsg('错误', message);
|
|
|
+ return false;
|
|
|
}else {
|
|
|
- var modelGrid = Ext.getCmp('modelGrid');
|
|
|
-
|
|
|
- if(modelGrid.getSelectedModels().length >= 2) {
|
|
|
- showErrorMsg('警告','切换频率不可为空');
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return true;
|
|
|
}
|
|
|
- return true;
|
|
|
},
|
|
|
- viewBoard:function(){
|
|
|
- var me = this;
|
|
|
-
|
|
|
- Ext.create('erp.view.desktop.BoardWindow',{
|
|
|
- instanceCode:me.resData.code,
|
|
|
- html:'<iframe src="boardshow?code=' + me.resData.code + '" width="100%" height="100%" style="border:none"></iframe>'
|
|
|
- }).show();
|
|
|
+ viewBoard:function(viewData){
|
|
|
+ var me = this,
|
|
|
+ viewType = viewData.viewType;
|
|
|
+ if(viewType == 'single') {
|
|
|
+ Ext.create('erp.view.desktop.BoardWindow',{
|
|
|
+ items: me.createViewPanels(viewData)
|
|
|
+ }).show();
|
|
|
+ }else if(viewType == 'more') {
|
|
|
+ var code = viewData.code,
|
|
|
+ areaConfig = viewData.areaConfig;
|
|
|
+
|
|
|
+ areaConfig.map(function(c, i) {
|
|
|
+ setTimeout(function() {
|
|
|
+ window.open(basePath+'boardshow?code='+code+'&index='+i, code+'_'+i);
|
|
|
+ }, 20);
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
+ createViewPanels: function(viewData) {
|
|
|
+ var code = viewData.code,
|
|
|
+ rows = viewData.areaRows,
|
|
|
+ cols = viewData.areaCols;
|
|
|
+
|
|
|
+
|
|
|
+ var me = this, panels = [], num = 1;
|
|
|
+ for(var i = 0; i < rows; i++) {
|
|
|
+ for(var j = 0; j < cols; j++) {
|
|
|
+ panels.push({
|
|
|
+ xtype: 'panel',
|
|
|
+ height: 80,
|
|
|
+ columnWidth: 1/cols,
|
|
|
+ bodyCls: 'x-board-view',
|
|
|
+ index: num-1,
|
|
|
+ html: '<iframe src="boardshow?code=' + code + '&index=' + (num-1) + '" width="100%" height="100%" style="border:none"></iframe>',
|
|
|
+ listeners: {
|
|
|
+ viewresize: function(panel, viewHeight) {
|
|
|
+ panel.setHeight(viewHeight / rows);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return panels;
|
|
|
+ },
|
|
|
setFullScreen: function () {
|
|
|
var element = document.documentElement;
|
|
|
if (element.requestFullscreen) {
|
|
@@ -309,5 +544,17 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
} else if (element.msRequestFullscreen) {
|
|
|
element.msRequestFullscreen();
|
|
|
}
|
|
|
+ },
|
|
|
+ setViewParameters: function() {
|
|
|
+ var areaView = Ext.getCmp('areaView');
|
|
|
+ var values = Ext.getCmp('paramForm').getForm().getValues();
|
|
|
+ areaView.setViewParameters(values);
|
|
|
+ },
|
|
|
+ refreshAreaView: function() {
|
|
|
+ var form = Ext.getCmp('areaForm');
|
|
|
+ var values = form.getForm().getValues();
|
|
|
+ var view = Ext.getCmp('areaView');
|
|
|
+
|
|
|
+ view.createArea(values);
|
|
|
}
|
|
|
});
|