| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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 : '{' + storeName + '}'
- };
- var store = Ext.create('Ext.data.Store',{
- fields: item.columns ? item.columns.filter(function(c) {
- return !!c.dataIndex;
- }).map(function(c) {
- var type = "string";
- if(c.xtype!=""){
- if(c.xtype=="numbercolumn"){
- type = "float"
- }
- }
- return {name: c.dataIndex,type:type};
- }) : [],
- data:[]
- });
- formModel.set(storeName,store);
- }
- });
- }
- return form.addItems(items);
- }else {
- return []
- }
- })
- .then(function(items) {
- form.fireEvent('afterSetItems', form, items);
- })
- .catch(function(response) {
- console.error(response);
- });
- },
- loadData: function(form) {
- }
- });
|