254 lines
7.5 KiB
JavaScript
254 lines
7.5 KiB
JavaScript
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 : smz_ht_url + '/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": {
|
||
"url": "../../../js/plugin/datatables/Chinese.lang"
|
||
},
|
||
"ajax": {
|
||
"url": smz_ht_url + "/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 = smz_ht_url + '/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": [] //在栏目列上显示排序功能
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 保存分包商和工程之间的关系
|
||
*/
|
||
function doSave() {
|
||
if (proId == '-1' || proId == '0') {
|
||
layer.msg("请选择工程")
|
||
return;
|
||
}
|
||
save(proId, isSelected.toString())
|
||
}
|
||
|
||
/**
|
||
* 保存
|
||
*/
|
||
function save(proId, userId) {
|
||
$.ajax({
|
||
type: 'get',
|
||
url: smz_ht_url + '/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();
|
||
}
|
||
|