diff --git a/src/components/table/table-head.vue b/src/components/table/table-head.vue
index 9a39d949f..a8e02e087 100644
--- a/src/components/table/table-head.vue
+++ b/src/components/table/table-head.vue
@@ -17,7 +17,7 @@
{{ column.title || '' }}
-
+
{{ column.title || '#' }}
@@ -123,6 +123,22 @@
style.width = `${width}px`;
return style;
},
+ indeterminate () {
+ let isSelectPart = false
+ for (let i in this.objData) {
+ const objData = this.objData[i]
+ if (objData._isChecked) {
+ isSelectPart = true
+ break
+ } else if (objData.children && objData.children.length) {
+ isSelectPart = this.hasChildrenChecked(objData)
+ if (isSelectPart) {
+ break;
+ }
+ }
+ }
+ return isSelectPart && !this.isSelectAll;
+ },
isSelectAll () {
let isSelectAll = true;
if (!this.data.length) isSelectAll = false;
@@ -402,7 +418,21 @@
});
}
return status;
- }
+ },
+ hasChildrenChecked (objData) {
+ let status = false;
+ if (objData.children && objData.children.length) {
+ status = !!objData.children.find((row) => {
+ if (row._isChecked) {
+ return true;
+ } else if (row.children && row.children.length) {
+ return this.hasChildrenChecked(row)
+ }
+ return false;
+ });
+ }
+ return status;
+ },
}
};