|
|
@@ -116,37 +116,19 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
|
|
|
/**
|
|
|
* 获取form数据
|
|
|
- * @param all: true:取全部数据,false:排除忽视字段
|
|
|
*/
|
|
|
- getFormData: function(all) {
|
|
|
+ getFormData: function() {
|
|
|
var me = this,
|
|
|
viewModel = me.getViewModel(),
|
|
|
allData = viewModel.getData(),
|
|
|
- bindFields = allData._bindFields,
|
|
|
- formData = {
|
|
|
- main: {},
|
|
|
- detail: []
|
|
|
+ formData = allData['form'],
|
|
|
+ detailStore = allData['detailStore'],
|
|
|
+ data = {
|
|
|
+ main: formData,
|
|
|
+ detail: detailStore.getData().items
|
|
|
};
|
|
|
|
|
|
- for(k in allData) {
|
|
|
- var d = allData[k];
|
|
|
- // 主表数据
|
|
|
- if(all) {
|
|
|
- formData.main[k] = d;
|
|
|
- }else {
|
|
|
- if(bindFields.indexOf(k) != -1) {
|
|
|
- formData.main[k] = d;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 从表数据
|
|
|
- if(k == '_detailStore') {
|
|
|
- storeData = d.getData().items;
|
|
|
- formData.detail = storeData;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return formData;
|
|
|
+ return data;
|
|
|
},
|
|
|
|
|
|
setFormData: function(formData) {
|
|
|
@@ -165,25 +147,37 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
*/
|
|
|
setBindFields: function(items) {
|
|
|
var me = this,
|
|
|
- viewModel = me.getViewModel(),
|
|
|
- bindFields = [];
|
|
|
+ viewModel = me.getViewModel();
|
|
|
|
|
|
Ext.Array.each(items, function(item) {
|
|
|
- var ignore = item.ignore,
|
|
|
- bind = item.bind;
|
|
|
+ var bind = item.bind,
|
|
|
+ name = item.name,
|
|
|
+ ignore = item.ignore,
|
|
|
+ defaultValue = item.defaultValue;
|
|
|
|
|
|
- if(!ignore && bind) {
|
|
|
- if(!Ext.isString(bind)) {
|
|
|
- // 这里默认所有的fields都绑定的value,如果是其他属性则需要在加载成组件之后去获取他的defaultBind
|
|
|
- bind = bind.value;
|
|
|
- }
|
|
|
+ // 设置model绑定
|
|
|
+ if(!ignore) {
|
|
|
if(bind) {
|
|
|
- bind = bind.replace(/[{|}]/g, '');
|
|
|
- bindFields.push(bind);
|
|
|
+ if(!Ext.isString(bind)) {
|
|
|
+ bind = name;
|
|
|
+ Ext.apply(bind, {
|
|
|
+ value: '{form.' + bind + '}'
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ bind = bind.replace(/[{|}]/g, '');
|
|
|
+ item.bind = '{form.' + bind + '}';
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ bind = name;
|
|
|
+ item.bind = '{form.' + bind + '}';
|
|
|
+ }
|
|
|
+ // 设置默认值
|
|
|
+ if(defaultValue) {
|
|
|
+ viewModel.set('form.' + bind, defaultValue);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
- viewModel.set('_bindFields', bindFields);
|
|
|
},
|
|
|
|
|
|
initFormData: function(formData) {
|