|
|
|
@ -10620,7 +10620,7 @@ if (!_global.BI) {
|
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
var F = function () { |
|
|
|
|
}, spp = sp.prototype; |
|
|
|
|
}, spp = sp.prototype; |
|
|
|
|
F.prototype = spp; |
|
|
|
|
sb.prototype = new F(); |
|
|
|
|
sb.superclass = spp; |
|
|
|
@ -10650,14 +10650,12 @@ if (!_global.BI) {
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
freeze: function (value) { |
|
|
|
|
if (Object.freeze) { |
|
|
|
|
// 在ES5中,如果这个方法的参数不是一个对象(一个原始值),那么它会导致 TypeError
|
|
|
|
|
// 在ES2015中,非对象参数将被视为要被冻结的普通对象,并被简单地返回。
|
|
|
|
|
if (Object.freeze && BI.isObject(value)) { |
|
|
|
|
return Object.freeze(value); |
|
|
|
|
} else { |
|
|
|
|
if (!BI.isObject(value)) { |
|
|
|
|
throw new TypeError('Object.freeze can only be called on Objects.'); |
|
|
|
|
} |
|
|
|
|
return value; |
|
|
|
|
} |
|
|
|
|
return value; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 数字和字符串可以作为key
|
|
|
|
@ -10856,7 +10854,7 @@ if (!_global.BI) {
|
|
|
|
|
var pending = false; |
|
|
|
|
var timerFunc; |
|
|
|
|
|
|
|
|
|
function nextTickHandler() { |
|
|
|
|
function nextTickHandler () { |
|
|
|
|
pending = false; |
|
|
|
|
var copies = callbacks.slice(0); |
|
|
|
|
callbacks = []; |
|
|
|
@ -10889,7 +10887,7 @@ if (!_global.BI) {
|
|
|
|
|
setTimeout(nextTickHandler, 0); |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
return function queueNextTick(cb) { |
|
|
|
|
return function queueNextTick (cb) { |
|
|
|
|
var _resolve; |
|
|
|
|
var args = [].slice.call(arguments, 1); |
|
|
|
|
callbacks.push(function () { |
|
|
|
@ -19537,8 +19535,7 @@ BI.TooltipsController = BI.inherit(BI.Controller, {
|
|
|
|
|
type: "bi.tooltip", |
|
|
|
|
text: text, |
|
|
|
|
level: level, |
|
|
|
|
stopEvent: true, |
|
|
|
|
height: this._const.height |
|
|
|
|
stopEvent: true |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -49444,8 +49441,7 @@ BI.Tooltip = BI.inherit(BI.Tip, {
|
|
|
|
|
text: "", |
|
|
|
|
level: "success", // success或warning
|
|
|
|
|
stopEvent: false, |
|
|
|
|
stopPropagation: false, |
|
|
|
|
height: 18 |
|
|
|
|
stopPropagation: false |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
_init: function () { |
|
|
|
@ -49489,8 +49485,7 @@ BI.Tooltip = BI.inherit(BI.Tip, {
|
|
|
|
|
textAlign: "left", |
|
|
|
|
whiteSpace: "normal", |
|
|
|
|
text: o.text, |
|
|
|
|
height: o.height, |
|
|
|
|
textHeight: o.height - 2, |
|
|
|
|
textHeight: 18, |
|
|
|
|
hgap: this._const.hgap |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
@ -68669,23 +68664,9 @@ BI.MultiLayerSelectTreeCombo = BI.inherit(BI.Widget, {
|
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getSyncConfig: function () { |
|
|
|
|
var o = this.options; |
|
|
|
|
var baseConfig = this._getBaseConfig(); |
|
|
|
|
baseConfig.el = { |
|
|
|
|
type: "bi.single_tree_trigger", |
|
|
|
|
text: o.text, |
|
|
|
|
height: o.height, |
|
|
|
|
items: o.items, |
|
|
|
|
value: o.value |
|
|
|
|
}; |
|
|
|
|
return baseConfig; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getAsyncConfig: function () { |
|
|
|
|
_getSearchConfig: function() { |
|
|
|
|
var self = this, o = this.options; |
|
|
|
|
var config = this._getBaseConfig(); |
|
|
|
|
return BI.extend(config, { |
|
|
|
|
return { |
|
|
|
|
el: { |
|
|
|
|
type: "bi.multilayer_select_tree_trigger", |
|
|
|
|
allowEdit: o.allowEdit, |
|
|
|
@ -68735,9 +68716,28 @@ BI.MultiLayerSelectTreeCombo = BI.inherit(BI.Widget, {
|
|
|
|
|
self.trigger.stopEditing(); |
|
|
|
|
} |
|
|
|
|
}] |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getSyncConfig: function () { |
|
|
|
|
var o = this.options; |
|
|
|
|
var baseConfig = this._getBaseConfig(); |
|
|
|
|
return BI.extend(baseConfig, o.allowEdit ? this._getSearchConfig() : { |
|
|
|
|
el: { |
|
|
|
|
type: "bi.single_tree_trigger", |
|
|
|
|
text: o.text, |
|
|
|
|
height: o.height, |
|
|
|
|
items: o.items, |
|
|
|
|
value: o.value |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getAsyncConfig: function () { |
|
|
|
|
var config = this._getBaseConfig(); |
|
|
|
|
return BI.extend(config, this._getSearchConfig()); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
setValue: function (v) { |
|
|
|
|
v = BI.isArray(v) ? v : [v]; |
|
|
|
|
this.combo.setValue(v); |
|
|
|
@ -69020,6 +69020,10 @@ BI.MultiLayerSelectTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
|
|
|
|
|
render: function () { |
|
|
|
|
var self = this, o = this.options; |
|
|
|
|
if(o.itemsCreator === BI.emptyFn) { |
|
|
|
|
this.tree = new BI.Tree(); |
|
|
|
|
this.tree.initTree(BI.deepClone(BI.Tree.treeFormat(BI.deepClone(o.items)))); |
|
|
|
|
} |
|
|
|
|
var content = { |
|
|
|
|
type: "bi.htape", |
|
|
|
|
items: [ |
|
|
|
@ -69074,7 +69078,7 @@ BI.MultiLayerSelectTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
if(o.itemsCreator === BI.emptyFn) { |
|
|
|
|
var finding = BI.Func.getSearchResult(o.items, keyword); |
|
|
|
|
var matched = finding.match, find = finding.find; |
|
|
|
|
callback(find.concat(matched)); |
|
|
|
|
callback(self._fillTreeStructure4Search(find.concat(matched))); |
|
|
|
|
} else { |
|
|
|
|
callback(); |
|
|
|
|
} |
|
|
|
@ -69116,6 +69120,29 @@ BI.MultiLayerSelectTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 将搜索到的节点进行补充,构造成一棵完整的树
|
|
|
|
|
_fillTreeStructure4Search: function (leaves) { |
|
|
|
|
var result = BI.map(leaves, "id"); |
|
|
|
|
var queue = leaves.reverse() || []; |
|
|
|
|
while (BI.isNotEmptyArray(queue)) { |
|
|
|
|
var node = queue.pop(); |
|
|
|
|
var pNode = this.tree.search(this.tree.getRoot(), node.pId, "id"); |
|
|
|
|
if (pNode != null) { |
|
|
|
|
queue.push(pNode); |
|
|
|
|
result.push(pNode.id); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
var nodes = []; |
|
|
|
|
BI.each(this.options.items, function (idx, item) { |
|
|
|
|
if(BI.contains(result, item.id)) { |
|
|
|
|
nodes.push(BI.extend({}, item, { |
|
|
|
|
open: true |
|
|
|
|
})) |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return nodes; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_digest: function (v) { |
|
|
|
|
var o = this.options; |
|
|
|
|
return o.valueFormatter(v) || o.text; |
|
|
|
@ -69648,23 +69675,9 @@ BI.MultiLayerSingleTreeCombo = BI.inherit(BI.Widget, {
|
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getSyncConfig: function () { |
|
|
|
|
var o = this.options; |
|
|
|
|
var baseConfig = this._getBaseConfig(); |
|
|
|
|
baseConfig.el = { |
|
|
|
|
type: "bi.single_tree_trigger", |
|
|
|
|
text: o.text, |
|
|
|
|
height: o.height, |
|
|
|
|
items: o.items, |
|
|
|
|
value: o.value |
|
|
|
|
}; |
|
|
|
|
return baseConfig; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getAsyncConfig: function () { |
|
|
|
|
_getSearchConfig: function() { |
|
|
|
|
var self = this, o = this.options; |
|
|
|
|
var config = this._getBaseConfig(); |
|
|
|
|
return BI.extend(config, { |
|
|
|
|
return { |
|
|
|
|
el: { |
|
|
|
|
type: "bi.multilayer_single_tree_trigger", |
|
|
|
|
allowEdit: o.allowEdit, |
|
|
|
@ -69714,9 +69727,28 @@ BI.MultiLayerSingleTreeCombo = BI.inherit(BI.Widget, {
|
|
|
|
|
self.trigger.stopEditing(); |
|
|
|
|
} |
|
|
|
|
}] |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getSyncConfig: function () { |
|
|
|
|
var o = this.options; |
|
|
|
|
var baseConfig = this._getBaseConfig(); |
|
|
|
|
return BI.extend(baseConfig, o.allowEdit ? this._getSearchConfig() : { |
|
|
|
|
el: { |
|
|
|
|
type: "bi.single_tree_trigger", |
|
|
|
|
text: o.text, |
|
|
|
|
height: o.height, |
|
|
|
|
items: o.items, |
|
|
|
|
value: o.value |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_getAsyncConfig: function () { |
|
|
|
|
var config = this._getBaseConfig(); |
|
|
|
|
return BI.extend(config, this._getSearchConfig()); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
setValue: function (v) { |
|
|
|
|
v = BI.isArray(v) ? v : [v]; |
|
|
|
|
this.combo.setValue(v); |
|
|
|
@ -69998,6 +70030,10 @@ BI.MultiLayerSingleTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
|
|
|
|
|
render: function () { |
|
|
|
|
var self = this, o = this.options; |
|
|
|
|
if(o.itemsCreator === BI.emptyFn) { |
|
|
|
|
this.tree = new BI.Tree(); |
|
|
|
|
this.tree.initTree(BI.deepClone(BI.Tree.treeFormat(BI.deepClone(o.items)))); |
|
|
|
|
} |
|
|
|
|
var content = { |
|
|
|
|
type: "bi.htape", |
|
|
|
|
items: [ |
|
|
|
@ -70052,7 +70088,7 @@ BI.MultiLayerSingleTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
if(o.itemsCreator === BI.emptyFn) { |
|
|
|
|
var finding = BI.Func.getSearchResult(o.items, keyword); |
|
|
|
|
var matched = finding.match, find = finding.find; |
|
|
|
|
callback(find.concat(matched)); |
|
|
|
|
callback(self._fillTreeStructure4Search(find.concat(matched))); |
|
|
|
|
} else { |
|
|
|
|
callback(); |
|
|
|
|
} |
|
|
|
@ -70094,6 +70130,29 @@ BI.MultiLayerSingleTreeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 将搜索到的节点进行补充,构造成一棵完整的树
|
|
|
|
|
_fillTreeStructure4Search: function (leaves) { |
|
|
|
|
var result = BI.map(leaves, "id"); |
|
|
|
|
var queue = leaves.reverse() || []; |
|
|
|
|
while (BI.isNotEmptyArray(queue)) { |
|
|
|
|
var node = queue.pop(); |
|
|
|
|
var pNode = this.tree.search(this.tree.getRoot(), node.pId, "id"); |
|
|
|
|
if (pNode != null) { |
|
|
|
|
queue.push(pNode); |
|
|
|
|
result.push(pNode.id); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
var nodes = []; |
|
|
|
|
BI.each(this.options.items, function (idx, item) { |
|
|
|
|
if(BI.contains(result, item.id)) { |
|
|
|
|
nodes.push(BI.extend({}, item, { |
|
|
|
|
open: true |
|
|
|
|
})) |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return nodes; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_digest: function (v) { |
|
|
|
|
var o = this.options; |
|
|
|
|
return o.valueFormatter(v) || o.text; |
|
|
|
|