mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 14:56:01 +00:00
node checked & column checked distuingish
This commit is contained in:
@@ -133,12 +133,16 @@ export abstract class PerspectiveTreeNode {
|
||||
get isExpanded() {
|
||||
return this.parentNodeConfig?.expandedColumns?.includes(this.codeName);
|
||||
}
|
||||
get isChecked() {
|
||||
get isCheckedColumn() {
|
||||
if (this.parentNodeConfig?.checkedColumns?.includes(this.codeName)) return true;
|
||||
// if (this.parentNodeConfig?.uncheckedColumns?.includes(this.codeName)) return false;
|
||||
// return this.defaultChecked;
|
||||
return false;
|
||||
}
|
||||
get isChecked() {
|
||||
return this.isCheckedColumn;
|
||||
}
|
||||
get isCheckedNode() {
|
||||
return !!this.config.nodes?.find(x => x.designerId == this.designerId)?.isNodeChecked;
|
||||
}
|
||||
get isSecondaryChecked() {
|
||||
return false;
|
||||
}
|
||||
@@ -198,6 +202,20 @@ export abstract class PerspectiveTreeNode {
|
||||
// }
|
||||
}
|
||||
|
||||
toggleCheckedNode(value?: boolean) {
|
||||
this.setConfig(cfg => ({
|
||||
...cfg,
|
||||
nodes: cfg.nodes.map(node =>
|
||||
node.designerId == this.designerId
|
||||
? {
|
||||
...node,
|
||||
isNodeChecked: value == null ? !node.isNodeChecked : value,
|
||||
}
|
||||
: node
|
||||
),
|
||||
}));
|
||||
}
|
||||
|
||||
toggleSecondaryChecked(value?: boolean) {}
|
||||
|
||||
createReferenceConfigColumns(): PerspectiveReferenceConfig['columns'] {
|
||||
@@ -540,28 +558,18 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode {
|
||||
}
|
||||
|
||||
get isSecondaryChecked() {
|
||||
return super.isChecked;
|
||||
return super.isCheckedColumn;
|
||||
}
|
||||
get isChecked() {
|
||||
if (this.foreignKey) return !!this.config.nodes?.find(x => x.designerId == this.designerId)?.isNodeChecked;
|
||||
return super.isChecked;
|
||||
if (this.foreignKey) return this.isCheckedNode;
|
||||
return super.isCheckedColumn;
|
||||
}
|
||||
get secondaryCheckable() {
|
||||
return !!this.foreignKey;
|
||||
}
|
||||
toggleChecked(value?: boolean) {
|
||||
if (this.foreignKey) {
|
||||
this.setConfig(cfg => ({
|
||||
...cfg,
|
||||
nodes: cfg.nodes.map(node =>
|
||||
node.designerId == this.designerId
|
||||
? {
|
||||
...node,
|
||||
isNodeChecked: value == null ? !node.isNodeChecked : value,
|
||||
}
|
||||
: node
|
||||
),
|
||||
}));
|
||||
this.toggleCheckedNode(value);
|
||||
} else {
|
||||
super.toggleChecked(value);
|
||||
}
|
||||
@@ -855,6 +863,14 @@ export class PerspectiveTableReferenceNode extends PerspectiveTableNode {
|
||||
return super.codeName;
|
||||
}
|
||||
|
||||
get isChecked() {
|
||||
return this.isCheckedNode;
|
||||
}
|
||||
|
||||
toggleChecked(value?: boolean) {
|
||||
this.toggleCheckedNode(value);
|
||||
}
|
||||
|
||||
getParentJoinCondition(alias: string, parentAlias: string): Condition[] {
|
||||
if (!this.foreignKey) return [];
|
||||
return this.foreignKey.columns.map(column => {
|
||||
|
||||
Reference in New Issue
Block a user