230 lines
5.7 KiB
Plaintext
230 lines
5.7 KiB
Plaintext
|
|
let dtree, util, tree, layer;
|
|||
|
|
let type = "";
|
|||
|
|
let nodeIndex = []
|
|||
|
|
let data = [];
|
|||
|
|
let nodeList;
|
|||
|
|
|
|||
|
|
function setForm() {
|
|||
|
|
layui.extend({
|
|||
|
|
dtree: '../../../../js/layui_dtree/dtree/dtree'
|
|||
|
|
}).use(['util', 'dtree', 'layer'], function () {
|
|||
|
|
util = layui.util;
|
|||
|
|
dtree = layui.dtree;
|
|||
|
|
layer = layui.layer;
|
|||
|
|
util.event('lay-active', {
|
|||
|
|
query: function () {
|
|||
|
|
},
|
|||
|
|
reset: function () {
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
getGroupNode("all");
|
|||
|
|
tree = dtree.render({
|
|||
|
|
elem: "#tree",
|
|||
|
|
initLevel: 2,
|
|||
|
|
data: [],
|
|||
|
|
toolbar: true,
|
|||
|
|
toolbarWay: "follow", // "contextmenu":右键菜单(默认),"fixed":"固定在节点后","follow":"跟随节点动态呈现"
|
|||
|
|
toolbarFun: {
|
|||
|
|
loadToolbarBefore: function (buttons, param, $div) {
|
|||
|
|
if (parseInt(param.level) > 2) { // 如果是叶子节点
|
|||
|
|
buttons.addToolbar = ""; // 取消新增功能
|
|||
|
|
}
|
|||
|
|
if (parseInt(param.level) === 1) { // 如果是叶子节点
|
|||
|
|
buttons.editToolbar = ""; // // 取消新增功能
|
|||
|
|
buttons.delToolbar = ""; // 取消新增功能
|
|||
|
|
}
|
|||
|
|
return buttons;
|
|||
|
|
},
|
|||
|
|
addTreeNode: function (treeNode, $div) {
|
|||
|
|
addNode(treeNode);
|
|||
|
|
},
|
|||
|
|
editTreeNode: function (treeNode, $div) {
|
|||
|
|
editNode(treeNode);
|
|||
|
|
},
|
|||
|
|
delTreeNode: function (treeNode, $div) {
|
|||
|
|
delNode(treeNode);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
done: function (res, $ul, first) {
|
|||
|
|
$('li[data-index="1"] div:first').addClass('top');
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function addNode(treeNode) {
|
|||
|
|
Ajax().post({
|
|||
|
|
headers: {
|
|||
|
|
"encrypt": sm3(JSON.stringify(treeNode))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'proteam/pot/deviceMachine/nodeAdd',
|
|||
|
|
data: treeNode,
|
|||
|
|
async: true,
|
|||
|
|
success: function (data) {
|
|||
|
|
msg(data);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function editNode(treeNode) {
|
|||
|
|
Ajax().post({
|
|||
|
|
headers: {
|
|||
|
|
"encrypt": sm3(JSON.stringify(treeNode))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'proteam/pot/deviceMachine/nodeSet',
|
|||
|
|
data: treeNode,
|
|||
|
|
async: true,
|
|||
|
|
success: function (data) {
|
|||
|
|
msg(data);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function delNode(treeNode) {
|
|||
|
|
Ajax().post({
|
|||
|
|
headers: {
|
|||
|
|
"encrypt": sm3(JSON.stringify(treeNode))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'proteam/pot/deviceMachine/nodeRemove',
|
|||
|
|
data: treeNode,
|
|||
|
|
async: true,
|
|||
|
|
success: function (data) {
|
|||
|
|
msg(data);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function msg(data) {
|
|||
|
|
if (data.code === 200) {
|
|||
|
|
parent.layer.msg(data.msg, {icon: 1, scrollbar: false, time: 2000,}, function () {
|
|||
|
|
getGroupNode("all");
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
parent.layer.msg(data.msg, {icon: 0, scrollbar: false, time: 2000,});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 树单选框监听事件
|
|||
|
|
* @type {{chooseDone: checkBarFun.chooseDone}}
|
|||
|
|
*/
|
|||
|
|
let checkBarFun = {
|
|||
|
|
chooseDone: function (obj) {
|
|||
|
|
let span = $('li[value=' + obj[0].parentId + '] span');
|
|||
|
|
span.text("(" + obj[0].context + ")");
|
|||
|
|
span.attr("value", obj[0].nodeId);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
*获取分组节点
|
|||
|
|
*/
|
|||
|
|
function getGroupNode(type) {
|
|||
|
|
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
|
|||
|
|
Ajax().post({
|
|||
|
|
headers: {
|
|||
|
|
"encrypt": sm3(JSON.stringify({
|
|||
|
|
"type": type
|
|||
|
|
}))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'proteam/pot/deviceMachine/groupNode',
|
|||
|
|
data: {
|
|||
|
|
"type": type
|
|||
|
|
},
|
|||
|
|
async: true,
|
|||
|
|
success: function (data) {
|
|||
|
|
layer.close(loadingMsg);
|
|||
|
|
if (data.code === 200) {
|
|||
|
|
traversalData(data.data);
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
error: function () {
|
|||
|
|
layer.close(loadingMsg);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***
|
|||
|
|
* 转换数据
|
|||
|
|
* @param data
|
|||
|
|
*/
|
|||
|
|
function traversalData(data) {
|
|||
|
|
let treeType = [];
|
|||
|
|
let treeData = [];
|
|||
|
|
$.each(data, function (index, item) {
|
|||
|
|
let obj = {
|
|||
|
|
id: item.index,
|
|||
|
|
title: item.name,
|
|||
|
|
parentId: item.parentIndex,
|
|||
|
|
children: []
|
|||
|
|
}
|
|||
|
|
if (obj.parentId === "0") {
|
|||
|
|
treeType.push(obj);
|
|||
|
|
} else {
|
|||
|
|
treeData.push(obj);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
itemList(treeType, treeData);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 树类型
|
|||
|
|
* @param treeType
|
|||
|
|
* @param treeData
|
|||
|
|
*/
|
|||
|
|
function itemList(treeType, treeData) {
|
|||
|
|
$.each(treeType, function (index, item) {
|
|||
|
|
$.each(treeData, function (indexData, itemData) {
|
|||
|
|
if (item.id === itemData.parentId) {
|
|||
|
|
item.children.push(itemData)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
dtree.reload(tree, {
|
|||
|
|
data: [{
|
|||
|
|
id: "0",
|
|||
|
|
title: '<span style="font-size: 24px">设备分组</span>',
|
|||
|
|
parentId: "-1",
|
|||
|
|
children: treeType,
|
|||
|
|
spread: true,
|
|||
|
|
}],
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 遍历数据
|
|||
|
|
* @param treeType
|
|||
|
|
* @param treeData
|
|||
|
|
*/
|
|||
|
|
function treeMenuList(treeType, treeData) {
|
|||
|
|
$.each(treeType, function (indexType, itemType) {
|
|||
|
|
let children = [];
|
|||
|
|
$.each(treeData, function (indexData, itemData) {
|
|||
|
|
if (itemType.id === itemData.parentId) {
|
|||
|
|
children.push(itemData);
|
|||
|
|
treeMenuList(itemData, treeData)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
itemType.children = children;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
data = treeType;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 关闭页面
|
|||
|
|
*/
|
|||
|
|
function closePage() {
|
|||
|
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|||
|
|
parent.layer.close(index); //再执行关闭
|
|||
|
|
}
|