IntelligentRecognition/ah-jjsp-web/.svn/pristine/20/202f3504066e336818a8ec6683f...

230 lines
5.7 KiB
Plaintext
Raw Normal View History

2024-05-24 16:09:40 +08:00
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); //再执行关闭
}