|
|
|
import {
|
|
|
|
shortcut,
|
|
|
|
extend,
|
|
|
|
createWidget,
|
|
|
|
makeArray,
|
|
|
|
HorizontalAdaptLayout,
|
|
|
|
isNotNull,
|
|
|
|
Controller,
|
|
|
|
Events
|
|
|
|
} from "@/core";
|
|
|
|
import { NodeButton } from "@/base";
|
|
|
|
import { FirstPlusGroupNode } from "@/case";
|
|
|
|
|
|
|
|
@shortcut()
|
|
|
|
export class MultiLayerSingleTreeFirstPlusGroupNode extends NodeButton {
|
|
|
|
static xtype = "bi.multilayer_single_tree_first_plus_group_node";
|
|
|
|
|
|
|
|
_defaultConfig() {
|
|
|
|
const conf = super._defaultConfig(...arguments);
|
|
|
|
|
|
|
|
return extend(conf, {
|
|
|
|
extraCls: "bi-multilayer-single-tree-first-plus-group-node bi-list-item",
|
|
|
|
layer: 0, // 第几层级
|
|
|
|
id: "",
|
|
|
|
pId: "",
|
|
|
|
open: false,
|
|
|
|
height: 24,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
_init() {
|
|
|
|
super._init(...arguments);
|
|
|
|
const o = this.options;
|
|
|
|
this.node = this._createNode();
|
|
|
|
|
|
|
|
const items = [];
|
|
|
|
|
|
|
|
items.push({
|
|
|
|
el: this.node,
|
|
|
|
lgap: (o.layer * BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT) / 2,
|
|
|
|
});
|
|
|
|
createWidget({
|
|
|
|
type: HorizontalAdaptLayout.xtype,
|
|
|
|
element: this,
|
|
|
|
columnSize: makeArray(o.layer, BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT / 2),
|
|
|
|
items,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
doRedMark() {
|
|
|
|
this.node.doRedMark(...arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
unRedMark() {
|
|
|
|
this.node.unRedMark(...arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
doClick() {
|
|
|
|
super.doClick(...arguments);
|
|
|
|
this.node.setSelected(this.isSelected());
|
|
|
|
}
|
|
|
|
|
|
|
|
setOpened(v) {
|
|
|
|
super.setOpened(...arguments);
|
|
|
|
if (isNotNull(this.node)) {
|
|
|
|
this.node.setOpened(v);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_createNode() {
|
|
|
|
const o = this.options;
|
|
|
|
|
|
|
|
return createWidget({
|
|
|
|
type: FirstPlusGroupNode.xtype,
|
|
|
|
cls: "bi-list-item-none",
|
|
|
|
logic: {
|
|
|
|
dynamic: true,
|
|
|
|
},
|
|
|
|
id: o.id,
|
|
|
|
pId: o.pId,
|
|
|
|
open: o.open,
|
|
|
|
isLastNode: o.isLastNode,
|
|
|
|
height: o.height,
|
|
|
|
hgap: o.hgap,
|
|
|
|
text: o.text,
|
|
|
|
value: o.value,
|
|
|
|
py: o.py,
|
|
|
|
keyword: o.keyword,
|
|
|
|
listeners: [
|
|
|
|
{
|
|
|
|
eventName: Controller.EVENT_CHANGE,
|
|
|
|
action: (...args) => {
|
|
|
|
const [type] = args;
|
|
|
|
if (type === Events.CLICK) {
|
|
|
|
// 本身实现click功能
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.fireEvent(Controller.EVENT_CHANGE, ...args);
|
|
|
|
},
|
|
|
|
}
|
|
|
|
],
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|