forked from fanruan/fineui
Dailer
6 years ago
12 changed files with 288 additions and 69 deletions
@ -0,0 +1,104 @@ |
|||||||
|
/** |
||||||
|
* 加号表示的组节点 |
||||||
|
* |
||||||
|
* Created by GUY on 2016/1/27. |
||||||
|
* @class BI.MultiLayerSelectTreePlusGroupNode |
||||||
|
* @extends BI.NodeButton |
||||||
|
*/ |
||||||
|
BI.MultiLayerSelectTreePlusGroupNode = BI.inherit(BI.NodeButton, { |
||||||
|
_defaultConfig: function () { |
||||||
|
var conf = BI.MultiLayerSelectTreePlusGroupNode.superclass._defaultConfig.apply(this, arguments); |
||||||
|
return BI.extend(conf, { |
||||||
|
extraCls: "bi-multilayer-select-tree-first-plus-group-node bi-list-item-active", |
||||||
|
layer: 0, // 第几层级
|
||||||
|
id: "", |
||||||
|
pId: "", |
||||||
|
readonly: true, |
||||||
|
open: false, |
||||||
|
height: 24 |
||||||
|
}); |
||||||
|
}, |
||||||
|
_init: function () { |
||||||
|
BI.MultiLayerSelectTreePlusGroupNode.superclass._init.apply(this, arguments); |
||||||
|
var self = this, o = this.options; |
||||||
|
this.node = BI.createWidget({ |
||||||
|
type: "bi.select_tree_plus_group_node", |
||||||
|
cls: "bi-list-item-none", |
||||||
|
stopPropagation: true, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
id: o.id, |
||||||
|
pId: o.pId, |
||||||
|
open: o.open, |
||||||
|
height: o.height, |
||||||
|
hgap: o.hgap, |
||||||
|
text: o.text, |
||||||
|
value: o.value, |
||||||
|
py: o.py |
||||||
|
}); |
||||||
|
this.node.on(BI.Controller.EVENT_CHANGE, function (type) { |
||||||
|
self.setSelected(self.isSelected()); |
||||||
|
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); |
||||||
|
}); |
||||||
|
|
||||||
|
var needBlankLayers = []; |
||||||
|
var pNode = o.pNode; |
||||||
|
while (pNode) { |
||||||
|
if (pNode.isLastNode) { |
||||||
|
needBlankLayers.push(pNode.layer) |
||||||
|
} |
||||||
|
pNode = pNode.pNode; |
||||||
|
} |
||||||
|
|
||||||
|
var items = []; |
||||||
|
BI.count(0, o.layer, function (index) { |
||||||
|
items.push({ |
||||||
|
type: "bi.layout", |
||||||
|
cls: BI.contains(needBlankLayers, index) ? "" : "base-line-conn-background", |
||||||
|
width: 12, |
||||||
|
height: o.height |
||||||
|
}); |
||||||
|
}); |
||||||
|
items.push(this.node); |
||||||
|
BI.createWidget({ |
||||||
|
type: "bi.td", |
||||||
|
element: this, |
||||||
|
columnSize: BI.makeArray(o.layer, 12), |
||||||
|
items: [items] |
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
isOnce: function () { |
||||||
|
return true; |
||||||
|
}, |
||||||
|
|
||||||
|
doRedMark: function () { |
||||||
|
this.node.doRedMark.apply(this.node, arguments); |
||||||
|
}, |
||||||
|
|
||||||
|
unRedMark: function () { |
||||||
|
this.node.unRedMark.apply(this.node, arguments); |
||||||
|
}, |
||||||
|
|
||||||
|
isSelected: function () { |
||||||
|
return this.node.isSelected(); |
||||||
|
}, |
||||||
|
|
||||||
|
setSelected: function (b) { |
||||||
|
BI.MultiLayerSelectTreePlusGroupNode.superclass.setSelected.apply(this, arguments); |
||||||
|
this.node.setSelected(b); |
||||||
|
}, |
||||||
|
|
||||||
|
doClick: function () { |
||||||
|
BI.NodeButton.superclass.doClick.apply(this, arguments); |
||||||
|
this.node.setSelected(this.isSelected()); |
||||||
|
}, |
||||||
|
|
||||||
|
setOpened: function (v) { |
||||||
|
BI.MultiLayerSelectTreePlusGroupNode.superclass.setOpened.apply(this, arguments); |
||||||
|
this.node.setOpened(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
BI.shortcut("bi.multilayer_select_tree_plus_group_node", BI.MultiLayerSelectTreePlusGroupNode); |
@ -0,0 +1,86 @@ |
|||||||
|
/** |
||||||
|
* 加号表示的组节点 |
||||||
|
* Created by GUY on 2015/9/6. |
||||||
|
* @class BI.SelectTreePlusGroupNode |
||||||
|
* @extends BI.NodeButton |
||||||
|
*/ |
||||||
|
BI.SelectTreePlusGroupNode = BI.inherit(BI.NodeButton, { |
||||||
|
_defaultConfig: function () { |
||||||
|
var conf = BI.SelectTreePlusGroupNode.superclass._defaultConfig.apply(this, arguments); |
||||||
|
return BI.extend(conf, { |
||||||
|
baseCls: (conf.baseCls || "") + " bi-select-tree-plus-group-node bi-list-item-active", |
||||||
|
logic: { |
||||||
|
dynamic: false |
||||||
|
}, |
||||||
|
id: "", |
||||||
|
pId: "", |
||||||
|
readonly: true, |
||||||
|
open: false, |
||||||
|
height: 24 |
||||||
|
}); |
||||||
|
}, |
||||||
|
_init: function () { |
||||||
|
BI.SelectTreePlusGroupNode.superclass._init.apply(this, arguments); |
||||||
|
var self = this, o = this.options; |
||||||
|
this.checkbox = BI.createWidget({ |
||||||
|
type: "bi.tree_node_checkbox", |
||||||
|
stopPropagation: true |
||||||
|
}); |
||||||
|
this.text = BI.createWidget({ |
||||||
|
type: "bi.label", |
||||||
|
textAlign: "left", |
||||||
|
whiteSpace: "nowrap", |
||||||
|
textHeight: o.height, |
||||||
|
height: o.height, |
||||||
|
hgap: o.hgap, |
||||||
|
text: o.text, |
||||||
|
value: o.value, |
||||||
|
keyword: o.keyword, |
||||||
|
py: o.py |
||||||
|
}); |
||||||
|
this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) { |
||||||
|
if (type === BI.Events.CLICK) { |
||||||
|
if (this.isSelected()) { |
||||||
|
self.triggerExpand(); |
||||||
|
} else { |
||||||
|
self.triggerCollapse(); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left); |
||||||
|
var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, { |
||||||
|
width: 24, |
||||||
|
el: this.checkbox |
||||||
|
}, this.text); |
||||||
|
BI.createWidget(BI.extend({ |
||||||
|
element: this |
||||||
|
}, BI.LogicFactory.createLogic(type, BI.extend(o.logic, { |
||||||
|
items: items |
||||||
|
})))); |
||||||
|
}, |
||||||
|
|
||||||
|
isOnce: function () { |
||||||
|
return true; |
||||||
|
}, |
||||||
|
|
||||||
|
doRedMark: function () { |
||||||
|
this.text.doRedMark.apply(this.text, arguments); |
||||||
|
}, |
||||||
|
|
||||||
|
unRedMark: function () { |
||||||
|
this.text.unRedMark.apply(this.text, arguments); |
||||||
|
}, |
||||||
|
|
||||||
|
doClick: function () { |
||||||
|
BI.NodeButton.superclass.doClick.apply(this, arguments); |
||||||
|
}, |
||||||
|
|
||||||
|
setOpened: function (v) { |
||||||
|
BI.SelectTreePlusGroupNode.superclass.setOpened.apply(this, arguments); |
||||||
|
if (BI.isNotNull(this.checkbox)) { |
||||||
|
this.checkbox.setSelected(v); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
BI.shortcut("bi.select_tree_plus_group_node", BI.SelectTreePlusGroupNode); |
Loading…
Reference in new issue