|
|
@@ -217,25 +217,20 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
|
|
|
store.each(function(s) {
|
|
|
var itemFields = s.fields,
|
|
|
itemData = s.getData(),
|
|
|
+ detno = itemData[detnoColumn],
|
|
|
+ id = itemData.id,
|
|
|
dirtyFields = [];
|
|
|
|
|
|
- for(var x = 0; x < itemFields.length; x++) {
|
|
|
- var field = itemFields[x],
|
|
|
- name = field.name,
|
|
|
- type = field.type;
|
|
|
-
|
|
|
- if(type == 'int' && itemData[name] == 0) {
|
|
|
- }else if(type == 'string' && itemData[name] == '') {
|
|
|
- }else if(type == 'float' && itemData[name] == 0) {
|
|
|
- }else if(type == 'date' && itemData[name] == null) {
|
|
|
- }else {
|
|
|
- dirtyFields.push(name);
|
|
|
- }
|
|
|
+ if(s.isDirty()) {
|
|
|
+ var modified = s.modified;
|
|
|
+ var dirtyFields = Ext.Object.getAllKeys(modified);
|
|
|
}
|
|
|
|
|
|
- // 如果有有效数据(非ID和序号列)才算dirty,否则直接commit
|
|
|
+ // 如果有有效数据才算dirty,否则直接commit
|
|
|
if(dirtyFields.length == 2 && Ext.Array.contains(dirtyFields, 'id') && Ext.Array.contains(dirtyFields, detnoColumn)) {
|
|
|
- s.commit()
|
|
|
+ s.commit();
|
|
|
+ }else if(!Ext.isNumber(id) && dirtyFields.length == 1 && dirtyFields[0] == detnoColumn) {
|
|
|
+ s.commit();
|
|
|
}
|
|
|
});
|
|
|
|