|
|
@@ -36,31 +36,9 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
initComponent: function() {
|
|
|
|
|
|
var me = this;
|
|
|
- //me.FormUtil.setItems(me);
|
|
|
-
|
|
|
- //判断是否加载数据
|
|
|
-
|
|
|
- if(me.initId&&me.initId!=0){
|
|
|
- var url = me._dataModelUrl + me.initId,async=false;
|
|
|
- me.BaseUtil.request({url,async })
|
|
|
- .then(function(response) {
|
|
|
- var res = Ext.decode(response.responseText);
|
|
|
- if(res.success) {
|
|
|
- viewModel = me.getViewModel();
|
|
|
- viewModel.setData(res.data.main);
|
|
|
- viewModel.setData({'detailGridField':res.data.items});
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(function(response) {
|
|
|
- console.error(response);
|
|
|
- });
|
|
|
- }else{
|
|
|
- viewModel = me.getViewModel();
|
|
|
- viewModel.setData({'detailGridField':[{},{}]});
|
|
|
- }
|
|
|
+ me.FormUtil.setItems(me);
|
|
|
|
|
|
Ext.apply(me, {
|
|
|
- items:me.defaultItems,
|
|
|
dockedItems: [{
|
|
|
xtype: 'toolbar',
|
|
|
dock: 'top',
|
|
|
@@ -94,7 +72,74 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
},
|
|
|
|
|
|
addItems: function(items) {
|
|
|
+ var me = this;
|
|
|
+ me.setBindFields(items);
|
|
|
return this.add(items);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取form数据
|
|
|
+ */
|
|
|
+ getFormData: function() {
|
|
|
+ var me = this,
|
|
|
+ viewModel = me.getViewModel(),
|
|
|
+ allData = viewModel.getData(),
|
|
|
+ bindFields = allData.bindFields,
|
|
|
+ formData = {
|
|
|
+ main: {},
|
|
|
+ detail: []
|
|
|
+ };
|
|
|
+
|
|
|
+ for(k in allData) {
|
|
|
+ var d = allData[k];
|
|
|
+ // 主表数据
|
|
|
+ if(bindFields.indexOf(k) != -1) {
|
|
|
+ formData.main[k] = d;
|
|
|
+ }
|
|
|
+ // 从表数据
|
|
|
+ if(k == '_detailStore') {
|
|
|
+ storeData = d.getData().items;
|
|
|
+ formData.detail = storeData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return formData;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置需要绑定的字段
|
|
|
+ */
|
|
|
+ setBindFields: function(items) {
|
|
|
+ var me = this,
|
|
|
+ viewModel = me.getViewModel(),
|
|
|
+ bindFields = [];
|
|
|
+
|
|
|
+ Ext.Array.each(items, function(item) {
|
|
|
+ var ignore = item.ignore,
|
|
|
+ bind = item.bind;
|
|
|
+
|
|
|
+ if(!ignore && bind) {
|
|
|
+ if(!Ext.isString(bind)) {
|
|
|
+ // 这里默认所有的fields都绑定的value,如果是其他属性则需要在加载成组件之后去获取他的defaultBind
|
|
|
+ bind = bind.value;
|
|
|
+ }
|
|
|
+ if(bind) {
|
|
|
+ bind = bind.replace(/[{|}]/g, '');
|
|
|
+ bindFields.push(bind);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ viewModel.set('bindFields', bindFields);
|
|
|
+ },
|
|
|
+
|
|
|
+ initFormData: function(formData) {
|
|
|
+ var me = this,
|
|
|
+ main = formData.main,
|
|
|
+ detail = formData.detail,
|
|
|
+ viewModel = me.getViewModel();
|
|
|
+
|
|
|
+ viewModel.setData(main);
|
|
|
+ // viewModel.set('detailGridField');
|
|
|
}
|
|
|
|
|
|
});
|