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();
|
|
|
|
|
|
}
|