|
|
@@ -23,6 +23,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
showIndex: true,
|
|
|
configUrl: '',
|
|
|
editable: true,
|
|
|
+ readOnly: false,
|
|
|
allowEmpty: false, // 表格为空时校验合法
|
|
|
showCount: true, // 显示合计栏
|
|
|
|
|
|
@@ -37,7 +38,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
|
|
|
addRows = function(id) {
|
|
|
var grid = Ext.getCmp(id);
|
|
|
- if(grid.editable) {
|
|
|
+ if(grid.editable && !grid.readOnly) {
|
|
|
grid.addDetail(0);
|
|
|
}
|
|
|
};
|
|
|
@@ -88,7 +89,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
this.fireEvent('validChange');
|
|
|
},
|
|
|
itemmouseenter: function(view, record, item, index, e, eOpts) {
|
|
|
- if(!view.up('detailGridField').editable) {
|
|
|
+ if(!view.up('detailGridField').editable || view.up('detailGridField').readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
var lockedItems = view.el.dom.parentElement.parentElement.getElementsByClassName('x-grid-scrollbar-clipper-locked')[0].getElementsByClassName('x-grid-item');
|
|
|
@@ -100,7 +101,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
iconsItem.style.display = 'flex';
|
|
|
},
|
|
|
itemmouseleave: function(view, record, item, index, e, eOpts) {
|
|
|
- if(!view.up('detailGridField').editable) {
|
|
|
+ if(!view.up('detailGridField').editable || view.up('detailGridField').readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
var lockedItems = view.el.dom.parentElement.parentElement.getElementsByClassName('x-grid-scrollbar-clipper-locked')[0].getElementsByClassName('x-grid-item');
|
|
|
@@ -125,6 +126,10 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
}
|
|
|
});
|
|
|
me.callParent(arguments);
|
|
|
+
|
|
|
+ if(!!me.readOnly) {
|
|
|
+ me.setGridDisabled(true);
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
initColumns: function() {
|
|
|
@@ -224,7 +229,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
|
|
|
addDetail: function(v, d) {
|
|
|
var me = this;
|
|
|
- if(!me.editable) {
|
|
|
+ if(!me.editable || me.readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
var detnoColumn = me.detnoColumn,
|
|
|
@@ -271,7 +276,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
|
|
|
deleteDetail: function(v) {
|
|
|
var me = this;
|
|
|
- if(!me.editable) {
|
|
|
+ if(!me.editable || me.readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -282,7 +287,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
return r.get(detnoColumn) == v;
|
|
|
});
|
|
|
|
|
|
- var id = selectedRecord.data.id;
|
|
|
+ var id = selectedRecord.data[me.idColumn];
|
|
|
|
|
|
if(id&&id!=0&&(typeof id) == 'number') {
|
|
|
school.util.BaseUtil.showConfirm('警告', '确定删除该条明细')
|
|
|
@@ -317,7 +322,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
swapUp: function() {
|
|
|
var me = this;
|
|
|
var me = this;
|
|
|
- if(!me.editable) {
|
|
|
+ if(!me.editable || me.readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
var store = me.getStore(),
|
|
|
@@ -330,7 +335,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
swapDown: function() {
|
|
|
var me = this;
|
|
|
var me = this;
|
|
|
- if(!me.editable) {
|
|
|
+ if(!me.editable || me.readOnly) {
|
|
|
return;
|
|
|
}
|
|
|
var store = me.getStore(),
|
|
|
@@ -461,8 +466,8 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
Ext.Array.each(storeData, function(item){
|
|
|
var d = Object.assign({}, item.data);
|
|
|
|
|
|
- if((typeof d.id) != "number" && d.id.indexOf('-')>-1){
|
|
|
- d.id = 0;
|
|
|
+ if(d[me.idColumn] && (typeof d[me.idColumn]) != "number" && d[me.idColumn].indexOf('-')>-1){
|
|
|
+ d[me.idColumn] = 0;
|
|
|
}
|
|
|
for(k in d) {
|
|
|
if(Ext.isDate(d[k])) {
|
|
|
@@ -486,8 +491,8 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
dirty = item.dirty;
|
|
|
|
|
|
if(dirty){
|
|
|
- if((typeof d.id) != "number" && d.id.indexOf('-')>-1){
|
|
|
- d.id = 0;
|
|
|
+ if(d[me.idColumn] && (typeof d[me.idColumn]) != "number" && d[me.idColumn].indexOf('-')>-1){
|
|
|
+ d[me.idColumn] = 0;
|
|
|
}
|
|
|
for(k in d) {
|
|
|
if(Ext.isDate(d[k])) {
|
|
|
@@ -514,8 +519,8 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
dirty = item.dirty;
|
|
|
|
|
|
if(dirty){
|
|
|
- if((typeof d.id) != "number" && d.id.indexOf('-')>-1){
|
|
|
- d.id = 0;
|
|
|
+ if(d[me.idColumn] && (typeof d[me.idColumn]) != "number" && d[me.idColumn].indexOf('-')>-1){
|
|
|
+ d[me.idColumn] = 0;
|
|
|
}
|
|
|
for(k in d) {
|
|
|
if(Ext.isDate(d[k])) {
|
|
|
@@ -524,7 +529,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
|
|
|
}
|
|
|
trueData.push(d);
|
|
|
}else {
|
|
|
- if(typeof d.id == "number") {
|
|
|
+ if(d[me.idColumn] && typeof d[me.idColumn] == "number") {
|
|
|
for(k in d) {
|
|
|
if(Ext.isDate(d[k])) {
|
|
|
d[k] = Ext.Date.format(d[k], 'Y-m-d H:i:s');
|