Ext.define('saas.util.FormUtil', { BaseUtil: Ext.create('saas.util.BaseUtil'), // 请求页面组件接口模板 baseUrl: 'http://192.168.0.181:8560/api/ui/co_view/config?name={viewName}', // 模板替换正则 urlRe: /(.*){viewName}(.*)/g, /** * 获得form的字段配置 * @param form: form组件 * @param url: url */ setItems: function(form) { var me = this, viewName = form.viewName, defaultItems = form.defaultItems, formModel = form.getViewModel(), url = me.baseUrl.replace(me.urlRe, '$1' + viewName); this.BaseUtil.request({url, async: false}) .then(function(response) { var res = Ext.decode(response.responseText); if(res.success) { var config = res.data || true, items = defaultItems || []; if(config) { var cusItems = config.items || []; Ext.Array.each(cusItems, function(cusItem) { var item = items.find(function(item) { return item.name == cusItem.name; }); Ext.apply(item, cusItem); }); Ext.Array.each(items, function(item) { if(item.xtype == 'detailGridField') { var storeName = item.name || item.xtype + Ext.id(); item.bind = { store: { data : '{' + storeName + '}' } }; item.store = { fields: item.columns ? item.columns.filter(function(c) { return !!c.dataIndex; }).map(function(c) { return c.dataIndex; }) : [], data: [] }; } }); } return form.addItems(items); }else { return [] } }) .then(function(items) { form.fireEvent('afterSetItems', form, items); }) .catch(function(response) { console.error(response); }); }, loadData: function(form) { } });