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); //再执行关闭
|
||
} |