hn_cloud_web/smz-web/js/work/basic/SubAndPro.js

252 lines
7.5 KiB
JavaScript
Raw Normal View History

2025-11-27 16:55:35 +08:00
var example = null;
var pers = null;
var selected = [];
var proId = "-1";//工程id
var layer;
var isSelected = [];
var arr = [];
var type = 1;
var count = 0;
$(function () {
layui.use(['layer'], function () {
layer = layui.layer;
});
pers = checkPermission();
init();
getMenuTreePro("");
$("#searchBt").click(function () {
var pattern = new RegExp("[%_<>]");
var keyWord = $("#keyWord").val();
if (pattern.test(keyWord)) {
return top.layer.msg('输入的内容包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
example.ajax.reload();
});
$("#save").click(function () {
doSave();
});
$("#treeSearchBt").click(function () {
var pattern = new RegExp("[%_<>]");
var treeKeyWord = $("#treeKeyWord").val();
if (pattern.test(treeKeyWord)) {
return top.layer.msg('输入的内容包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
getMenuTreePro(treeKeyWord);
});
})
function getMenuTreePro(treeKeyWord) {
$.ajax({
type : 'POST',
url : ctxPath + '/UserRelation/listParentProRelationPro',
data:{
"treeKeyWord":treeKeyWord
},
// contentType : "application/json; charset=utf-8",
async : false,
success : function(data) {
console.log(data)
if(data){
proId= "-1";
}
$.fn.zTree.init($("#treeDemo"),{
view:{
dblClickExpand:false,
selectedMulti:false,
nameIsHTML:true
},
data:{
simpleData:{
enable: true
}
},
callback:{
onClick:zTreeOnCheck
}
}, data.obj);
}
});
}
function zTreeOnCheck(event, treeId, treeNode) {
proId=treeNode.id;
reloadList();
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
//获得选中的节点
var nodes = zTree.getSelectedNodes(),
v = "";
//根据id排序
nodes.sort(function compare(a, b) {
return a.id - b.id;
});
for(var i = 0, l = nodes.length; i < l; i++) {
if(i !== 0) {
v += "," + nodes[i].name;
}
v += nodes[i].name;
}
//将选中节点的名称显示在文本框内
$("#treeKeyWord").val(v);
//隐藏zTree
return false;
}
function init() {
example =
$('#dt-table').DataTable({
"sort": false,
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
'scrollY': "620px",
'scroller': true,
'scrollCollapse':true,
"pagingType": "full_numbers", //首页|尾页
"language": {
2025-12-02 14:22:34 +08:00
"url": contentPath + "/js/plugin/datatables/Chinese.lang"
2025-11-27 16:55:35 +08:00
},
"ajax": {
"url": ctxPath + "/UserRelation",
"type": "get",
"data": function (d) {
d.keyWord = $("#keyWord").val();
d.proId = proId;
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"lengthMenu": [ [10, 20, 50], [10, 20, 50] ], // 设置每页显示数据量选项
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>><'dt-table-length'l>",
"columns": [
//复选框通过render渲染复选框
{
"data": null,
"bSortable": false,
render: function (data, type, full, meta) {
var node = '';
for (var i = 0; i < isSelected.length; i++) {
if (full.id == isSelected[i]) {
full.isSelected = 1;
}
}
node = '<input class="checkall" name="checked" onclick="showCheck(this)" value=\"' + full.id + '\" type="checkbox"/>';
if (full.isSelected == 1) {
isSelected.push(full.id);
node = '<input class="checkall" name="checked" checked="checked" onclick="showCheck(this)" value=\"' + full.id + '\" type="checkbox"/>';
}
return node;
}
},
{
width: '60px',
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
},
{"data": "subName", "defaultContent": ""},
{"data": "represent", "defaultContent": ""},
],
"order": [[0, "desc"], [1, "asc"]] //在栏目列上显示排序功能
});
}
/**
* 保存分包商和工程之间的关系
*/
function doSave() {
if (proId == '-1' || proId == '0') {
layer.msg("请选择工程")
return;
}
save(proId, isSelected.toString())
}
/**
* 保存
*/
function save(proId, userId) {
$.ajax({
type: 'get',
url: ctxPath + '/UserRelation/replaceSubAndPro',
async: false,
data: {
proId: proId,
proIds: userId
},
success: function (data) {
layer.msg(data.resMsg);
}
});
}
function showCheck(data){
if(data.checked){
isSelected.push(data.value);
}else{
var checkPro = [];
for (var i = 0; i < isSelected.length; i++) {
if (isSelected[i] != data.value){
checkPro.push(isSelected[i]);
}
}
isSelected = checkPro;
}
/**
* 对数组去重
* @returns {Array}
*/
Array.prototype.distinct = function () {
var arr = this,
i,
j,
len = arr.length;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
len--;
j--;
}
}
}
return arr;
}
isSelected.distinct();
}
function reloadList() {
isSelected.length =0;
example.ajax.reload();
}