|
|
@@ -8,14 +8,20 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
id:'template',
|
|
|
resData:null,
|
|
|
record:null,
|
|
|
+ respoint: null, // 关联资源点
|
|
|
respointStore:null,
|
|
|
initComponent:function(){
|
|
|
+ var me = this;
|
|
|
+ me.refreshWindow(true);
|
|
|
+ me.callParent(arguments);
|
|
|
+ },
|
|
|
+ refreshWindow: function(firstBuild) {
|
|
|
var me = this;
|
|
|
var record = me.record;
|
|
|
var code = record.get('code');
|
|
|
var templateCode = record.get('templateCodes');
|
|
|
-
|
|
|
var view = Ext.getCmp('desktopDataView');
|
|
|
+
|
|
|
view.getEl().mask('loading...');
|
|
|
if(me.record){
|
|
|
Ext.Ajax.request({
|
|
|
@@ -27,30 +33,44 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
if(response.responseText){
|
|
|
var res = Ext.decode(response.responseText);
|
|
|
me.resData = res;
|
|
|
- Ext.create('erp.store.resourcepoint',{
|
|
|
+ me.respoint = record.get('resourcePointCode') || 'all';
|
|
|
+ me.respointStore = Ext.create('erp.store.resourcepoint',{
|
|
|
proxy:{
|
|
|
type:'ajax',
|
|
|
- url:'resourcePoint/get/' + '52AF232A414',
|
|
|
+ url:'resourcePoint/get/' + me.respoint,
|
|
|
reader: {
|
|
|
type: 'json'
|
|
|
}
|
|
|
},
|
|
|
- autoLoad: true,
|
|
|
- listeners: {
|
|
|
- load: function(store, operation, eOpts) {
|
|
|
- }
|
|
|
+ autoLoad: true
|
|
|
+ }).load(function(records, operation, success) {
|
|
|
+ // 删除第一个非资源点看板
|
|
|
+ me.respointStore.removeAt(0);
|
|
|
+ // 显示资源点名称
|
|
|
+ var boardForm = Ext.getCmp('paramsForm');
|
|
|
+ var form = boardForm.getForm();
|
|
|
+ var respointName = form.findField('respointName');
|
|
|
+ if(records.length > 1) {
|
|
|
+ respointName.setValue('非资源点看板');
|
|
|
+ }else{
|
|
|
+ respointName.setValue(records[0].get('name'));
|
|
|
}
|
|
|
});
|
|
|
var globalItems = me.parseGlobalParam(res.globalParameters);
|
|
|
var items = me.getConfig(globalItems,templateCode,res);
|
|
|
- Ext.apply(me,{
|
|
|
- items:items
|
|
|
- });
|
|
|
+
|
|
|
+ if(firstBuild) {
|
|
|
+ Ext.apply(me,{
|
|
|
+ items:items
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ me.removeAll();
|
|
|
+ me.add(items);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- me.callParent(arguments);
|
|
|
},
|
|
|
parseGlobalParam:function(globalParameters){
|
|
|
var me = this;
|
|
|
@@ -146,6 +166,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
return item;
|
|
|
},
|
|
|
getConfig:function(items,templateCode,res){
|
|
|
+ var me = this;
|
|
|
var config = [{
|
|
|
xtype:'form',
|
|
|
id:'paramsForm',
|
|
|
@@ -159,8 +180,8 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
items:[{
|
|
|
xtype: 'displayfield',
|
|
|
fieldLabel: '关联资源点',
|
|
|
- value: '',
|
|
|
- hidden: res.respoint == 'all' ? true : false
|
|
|
+ name: 'respointName',
|
|
|
+ value: 'unknown'
|
|
|
},{
|
|
|
xtype:'fieldset',
|
|
|
title:'基础信息',
|
|
|
@@ -214,8 +235,8 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
width: 300,
|
|
|
title: '选择模板',
|
|
|
hideHeaders:true,
|
|
|
- store: Ext.data.StoreManager.lookup('boardmodel'),
|
|
|
- selModel: Ext.create('Ext.selection.CheckboxModel'),
|
|
|
+ store: Ext.data.StoreManager.lookup('boardmodel'),
|
|
|
+ selModel: Ext.create('Ext.selection.CheckboxModel'),
|
|
|
columnLines:true,
|
|
|
columns: [
|
|
|
{text: '选择模板', dataIndex:'name', width: 150,flex:1},
|
|
|
@@ -225,27 +246,99 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
|
|
|
tbar:{
|
|
|
items: [{
|
|
|
xtype: 'button',
|
|
|
- text: '确定',
|
|
|
+ text: '保存',
|
|
|
handler: function() {
|
|
|
- // 生成实例
|
|
|
- // 刷新面板
|
|
|
+ if(me.getSelectedModels().length == 0) {
|
|
|
+ Ext.Msg.alert('警告','请至少选中一个模板!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var params = me.getBoardConfig();
|
|
|
+ Ext.Ajax.request({
|
|
|
+ url:'kanban/update',
|
|
|
+ method:'POST',
|
|
|
+ params:{
|
|
|
+ json:Ext.encode(params)
|
|
|
+ },
|
|
|
+ callback:function(options,success,response){
|
|
|
+ me.refreshWindow(false);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}]
|
|
|
},
|
|
|
listeners: {
|
|
|
afterrender:function(grid){
|
|
|
grid.store.load(function() {
|
|
|
- // 根据资源点过滤展示模板
|
|
|
- grid.store.filterBy(function(record, id) {
|
|
|
- return true
|
|
|
- });
|
|
|
- // 选中默认配置模板
|
|
|
+ me.modelStoreFilter();
|
|
|
+ me.selectModel();
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}];
|
|
|
return config;
|
|
|
},
|
|
|
+ modelStoreFilter: function() {
|
|
|
+ var me = this;
|
|
|
+ var models = []; // 所有产线的模板code数组
|
|
|
+ var respointData = me.respointStore.data.items;
|
|
|
+ // 如果存在多个产线说明该看板是非资源点看板,不进行过滤
|
|
|
+ if(respointData.length > 1) {
|
|
|
+ me.selectModel();
|
|
|
+ return;
|
|
|
+ }else {
|
|
|
+ // 这里虽然用的是map,其实数组中应该只有一个对象
|
|
|
+ respointData.map(function(respoint) {
|
|
|
+ respoint.get('templateCodes').map(function(modelCode) {
|
|
|
+ models.push(modelCode);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ var modelGrid = Ext.getCmp('paramsGrid');
|
|
|
+ var modelStore = modelGrid.getStore();
|
|
|
+ modelStore.filterBy(function(record) {
|
|
|
+ if(models.indexOf(record.get('code')) != -1) {
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectModel: function() {
|
|
|
+ var me = this;
|
|
|
+ var codes = me.record.get('templateCodes');
|
|
|
+ var modelGrid = Ext.getCmp('paramsGrid');
|
|
|
+ var modelStore = modelGrid.getStore();
|
|
|
+ var records = [];
|
|
|
+ codes.map(function(code) {
|
|
|
+ var record = modelStore.findRecord('code',code);
|
|
|
+ if(record) {
|
|
|
+ records.push(record);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ modelGrid.getSelectionModel().select(records || []);
|
|
|
+ },
|
|
|
+ getBoardConfig: function() {
|
|
|
+ var me = this;
|
|
|
+ var templateCodes = me.getSelectedModels().map(function(model) {
|
|
|
+ return model.get('code');
|
|
|
+ });
|
|
|
+ var resData = me.record;
|
|
|
+ var config = resData.data;
|
|
|
+ resData.set('templateCodes', templateCodes);
|
|
|
+ return {
|
|
|
+ code: config.code,
|
|
|
+ name: config.name,
|
|
|
+ iconCls: config.iconCls,
|
|
|
+ display: config.display,
|
|
|
+ templateCodes: config.templateCodes,
|
|
|
+ resourcePointCode: config.resourcePointCode
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getSelectedModels: function() {
|
|
|
+ var modelGrid = Ext.getCmp('paramsGrid');
|
|
|
+ var selectedModels = modelGrid.getSelectionModel().getSelection();
|
|
|
+ return selectedModels || [];
|
|
|
+ },
|
|
|
saveBoardSetting:function(){
|
|
|
var me = this;
|
|
|
var check = me.checkFrequency();
|