add: Grid.readonly
This commit is contained in:
parent
8712554f12
commit
09bdef19d5
@ -515,6 +515,12 @@ export class Grid {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
currentSource: null,
|
currentSource: null,
|
||||||
|
/**
|
||||||
|
* Grid 是否只读
|
||||||
|
* @type {boolean}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
readonly: false,
|
||||||
/**
|
/**
|
||||||
* 当前选中的列索引
|
* 当前选中的列索引
|
||||||
* @type {number}
|
* @type {number}
|
||||||
@ -976,6 +982,16 @@ export class Grid {
|
|||||||
*/
|
*/
|
||||||
get allSource() { return this._var.source?.map(s => s.values) }
|
get allSource() { return this._var.source?.map(s => s.values) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取或设置 Grid 是否为只读
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
get readonly() { return this._var.readonly }
|
||||||
|
set readonly(flag) {
|
||||||
|
this._var.readonly = flag;
|
||||||
|
this.refresh();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取已过滤的数据数组,或者设置数据并刷新列表
|
* 获取已过滤的数据数组,或者设置数据并刷新列表
|
||||||
* @type {GridItem[]}
|
* @type {GridItem[]}
|
||||||
@ -2094,6 +2110,7 @@ export class Grid {
|
|||||||
const exists = content.querySelectorAll('&>.ui-grid-row').length;
|
const exists = content.querySelectorAll('&>.ui-grid-row').length;
|
||||||
count -= exists;
|
count -= exists;
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
|
const readonly = this._var.readonly;
|
||||||
for (let i = 0; i < count; ++i) {
|
for (let i = 0; i < count; ++i) {
|
||||||
const row = createElement('tr', 'ui-grid-row');
|
const row = createElement('tr', 'ui-grid-row');
|
||||||
let left = this.expandable ? ExpandableWidth : 0;
|
let left = this.expandable ? ExpandableWidth : 0;
|
||||||
@ -2129,7 +2146,7 @@ export class Grid {
|
|||||||
if (style !== '') {
|
if (style !== '') {
|
||||||
cell.style.cssText = style;
|
cell.style.cssText = style;
|
||||||
}
|
}
|
||||||
if (GridColumnTypeEnum.isCheckbox(col.type)) {
|
if (!readonly && GridColumnTypeEnum.isCheckbox(col.type)) {
|
||||||
cell.appendChild(GridCheckboxColumn.createEdit(e => this._onRowChanged(e, exists + i, col, e.target.checked, cell)));
|
cell.appendChild(GridCheckboxColumn.createEdit(e => this._onRowChanged(e, exists + i, col, e.target.checked, cell)));
|
||||||
// this._var.colTypes[col.key] = GridCheckboxColumn;
|
// this._var.colTypes[col.key] = GridCheckboxColumn;
|
||||||
} else {
|
} else {
|
||||||
@ -2182,6 +2199,7 @@ export class Grid {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const offset = this.expandable ? 1 : 0;
|
const offset = this.expandable ? 1 : 0;
|
||||||
|
const readonly = this._var.readonly;
|
||||||
[...rows].forEach((row, i) => {
|
[...rows].forEach((row, i) => {
|
||||||
const vals = this._var.currentSource[startIndex + i];
|
const vals = this._var.currentSource[startIndex + i];
|
||||||
if (vals == null) {
|
if (vals == null) {
|
||||||
@ -2280,7 +2298,7 @@ export class Grid {
|
|||||||
const isCheckbox = GridColumnTypeEnum.isCheckbox(col.type);
|
const isCheckbox = GridColumnTypeEnum.isCheckbox(col.type);
|
||||||
const type = isCheckbox ? GridCheckboxColumn : this._var.colTypes[col.key] ?? GridColumn;
|
const type = isCheckbox ? GridCheckboxColumn : this._var.colTypes[col.key] ?? GridColumn;
|
||||||
let element;
|
let element;
|
||||||
if (!isCheckbox && typeof type.createEdit === 'function') {
|
if (!readonly && !isCheckbox && typeof type.createEdit === 'function') {
|
||||||
if (vals.__editing?.[col.key]) {
|
if (vals.__editing?.[col.key]) {
|
||||||
if (typeof type.leaveEdit === 'function') {
|
if (typeof type.leaveEdit === 'function') {
|
||||||
type.leaveEdit(cell.children[0], this._var.el);
|
type.leaveEdit(cell.children[0], this._var.el);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user