"use script"; //开发环境建议开启严格模式
|
|
//对应widget.js中MyWidget实例化后的对象
|
var thisWidget;
|
var layers = [];
|
var layersObj = {};
|
var indexCache = 0;
|
|
//当前页面业务
|
function initWidgetView(_thisWidget) {
|
thisWidget = _thisWidget;
|
|
thisWidget.getTreeUrl();
|
|
$("#btn_back").click(function (e) {
|
thisWidget.resetStyle();
|
$("#treeOverlays").jstree("uncheck_all", true);
|
$("#viewReset").hide();
|
});
|
}
|
|
function name2text(o) {
|
o.text = o.name;
|
|
//这块为了避免tree控件里的id不统一,所以加改变一下
|
o.eleid = o.id;
|
o.id = indexCache++;
|
|
layersObj[o.id] = o.eleid;
|
|
if ((!o.text || o.text.trim() == "") && o.type) {
|
o.text = o.type;
|
}
|
|
if (o.children) {
|
for (var i = 0; i < o.children.length; i++) {
|
name2text(o.children[i]);
|
}
|
}
|
}
|
|
function initSceneTree(scene) {
|
var data = [];
|
if (scene.scenes) {
|
for (var i = 0; i < scene.scenes.length; i++) {
|
var node = scene.scenes[i];
|
name2text(node);
|
data.push(node);
|
}
|
} else {
|
name2text(scene);
|
data.push(scene);
|
}
|
|
$("#treeOverlays").jstree({
|
core: {
|
data: data,
|
themes: {
|
name: "default-dark",
|
dots: true,
|
icons: true,
|
multiple: true,
|
},
|
},
|
checkbox: {
|
whole_node: false,
|
keep_selected_style: false,
|
tie_selection: false,
|
},
|
plugins: ["checkbox"],
|
});
|
|
$("#treeOverlays").on("changed.jstree", function (e, data) {
|
var node = data.node.original;
|
if (node && node.sphere) {
|
thisWidget.locateNode(node.eleid, node.sphere);
|
$("#viewReset").show();
|
}
|
});
|
|
// checkbox被选中
|
$("#treeOverlays").on("check_node.jstree", function (e, data) {
|
console.log(data);
|
var list = [];
|
var selectNode = [];
|
var arrNode = [];
|
//全选时获取所有子节点
|
let childrenNode = data.node.children_d;
|
let arr = data.selected;
|
//遍历出子节点
|
for (var i = 0; i < childrenNode.length; i++) {
|
let nodeId = layersObj[childrenNode[i]];
|
list.push(nodeId);
|
}
|
//遍历出selected的节点
|
for (var j = 0; j < arr.length; j++) {
|
let selectNodeId = layersObj[arr[j]];
|
selectNode.push(selectNodeId);
|
}
|
arrNode = [...list, ...selectNode];
|
thisWidget.showTitleStyle(arrNode);
|
});
|
//checkbox取消选中
|
$("#treeOverlays").on("uncheck_node.jstree", function (e, data) {
|
let list = [];
|
var childrenNode = data.node.children_d;
|
var arr = data.selected;
|
|
var c1 = arr.filter((a) => {
|
return !childrenNode.some((c) => c == a);
|
});
|
|
for (var j = 0; j < c1.length; j++) {
|
let node = layersObj[c1[j]];
|
list.push(node);
|
thisWidget.showTitleStyle(list);
|
}
|
//全部取消
|
if (c1.length === 0) {
|
thisWidget.cancelAll();
|
}
|
});
|
}
|