var GetTableSelectData = null; layui.config({ base: "/js/" }).use(['form', 'vue', 'ztree', 'layer', 'jquery', 'table', 'droptree', 'hhweb', 'utils'], function () { var form = layui.form, layer = layui.layer, $ = layui.jquery; var table = layui.table; var hhweb = layui.hhweb, //userId targetArrValueUserId = null, stationId = null; teamCode = null; var toplayer = (top == undefined || top.layer === undefined) ? layer : top.layer; //顶层的LAYER layui.droptree("/base/UserSession/GetOrgs", "#Organizations", "#OrganizationIds"); var menu = GetUrlParam("menuFlag"), page = GetUrlParam("page"); if (menu == null) { menu = 1; } $("#menus").loadMenus("SysUser", menu); //主列表加载,可反复调用进行刷新 var config = {}; //table的参数,如搜索key,点击tree的id var mainList = function (options) { if (options != undefined) { $.extend(config, options); } let index = layer.load(0); //添加laoding,0-2两种方式 table.reload('mainList', { url: '/base/SysUser/Load', method: 'POST', where: config, load: false, done: function (res, curr, count) { layer.close(index); if (res.Code === 200) { //工位人员 选择人员信息 if (page == "stationUserRel") { targetArrValueUserId = GetUrlParam("targetArrValue").split(","); stationId = GetUrlParam("stationId").split(","); tableCheckboxClick(); SetTableCheck(targetArrValueUserId, res, "Id"); } //班组人员 选择人员信息 else if (page == "baseTeamUserRel") { targetArrValueUserId = GetUrlParam("targetArrValue").split(","); teamCode = GetUrlParam("teamCode").split(","); tableCheckboxClickBaseTeam(); SetTableCheck(targetArrValueUserId, res, "Id"); } else if (page == "delivery") { targetArrValueUserId = GetUrlParam("targetArrValue").split(","); SetTableCheck(targetArrValueUserId, res, "Account"); } } } }); } //左边树状机构列表 var ztree = function () { var url = '/base/UserSession/GetOrgs'; var zTreeObj; var setting = { view: { selectedMulti: false }, data: { key: { name: 'Name', title: 'Name' }, simpleData: { enable: true, idKey: 'Id', pIdKey: 'ParentId', rootPId: "" } }, callback: { onClick: function (event, treeId, treeNode) { mainList({ orgId: treeNode.Id }); } } }; var load = function () { $.getJSON(url, function (json) { zTreeObj = $.fn.zTree.init($("#tree"), setting); var newNode = { Name: "根节点", Id: null, ParentId: "" }; json.push(newNode); zTreeObj.addNodes(null, json); mainList({ orgId: "" }); zTreeObj.expandAll(true); }); }; load(); return { reload: load } }(); $("#tree").height($("div.layui-table-view").height()); //添加(编辑)对话框 var editDlg = function () { var vm = new Vue({ el: "#formEdit" }); var update = false; //是否为更新 var show = function (data) { var title = update ? "编辑" : "新增"; if (update) { $(".Password").hide(); } else { $(".Password").show(); } index = layer.open({ title: title, area: ["500px", "400px"], type: 1, content: $('#divEdit'), success: function () { vm.$set('$data', data); $(":radio[name='Sex'][value='" + data.Sex + "']").prop("checked", "checked"); $("input:checkbox[name='Status']").prop("checked", data.Status == 1); form.render(); } }); var url = "/base/SysUser/Add"; if (update) { url = "/base/SysUser/Update"; } //提交数据 form.on('submit(formSubmit)', function (data) { //密码强度正则,最少8位,包括至少1个大写字母,1个小写字母,1个数字 var pPattern = /^.*(?=.{8,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).*$/; if (data.field.Password == data.field.Account) { layer.alert('密码不能用账户一致'); return false; } //else if (!pPattern.test(data.field.Password)) { // layer.alert('密码不符合规则!!密码最少8位,包括至少1个大写字母,1个小写字母,1个数字'); // return false; //} else { let indexs = layer.load(); debugger $.post(url, data.field, function (data) { layer.msg(data.Message); if (data.Code == 200) { layer.close(index); mainList(); } layer.close(indexs); }, "json"); } return false; }); }; return { add: function () { //弹出添加 update = false; show({ Id: '', Status: 1, Password: '123456', }); }, update: function (data) { //弹出编辑框 update = true; show(data); } }; }(); //绑定方法提交 var bindingSubimt = function (data, edit) { debugger var formFile = new FormData(); formFile.append("excelfile", $("#UserImage")[0].files[0]); formFile.append("account", data[0].Account); formFile.append("userImage", $("#UserImage_a").attr("src")); formFile.append("jobCard", $("#JobCard").val()); formFile.append("edit", edit); let index = layer.load(); var ajaxConfig = { data: formFile, dataType: "json", type: "post", url: "/base/SysUser/BindingAdd", cache: false,//上传文件无需缓存 processData: false,//用于对data参数进行序列化处理 这里必须false contentType: false, //必须 success: function (result) { layer.close(index); if (result.Code == 200) { layer.msg(result.Message); mainList(); setTimeout(() => { layer.closeAll(); }, 1000); } else { layer.alert(result.Message, { icon: 2, shadeClose: true, title: "操作失败" }); } } }; $.ajax(ajaxConfig); return false; } function SetTableCheck(targetValue, res, resKey) { if (menu != -2) return; //checkbox选中状态 for (var i = 0; i < targetValue.length; i++) { for (var j = 0; j < res.Result.length; j++) { if (targetValue[i] != res.Result[j][resKey]) continue; res.Result[j]["LAY_CHECKED"] = true; var index = res.Result[j]["LAY_TABLE_INDEX"], trCheckbox = $(".layui-table-fixed-l tr[data-index=" + index + '] input[type="checkbox"]'); trCheckbox.prop("checked", true); trCheckbox.next().addClass("layui-form-checked"); } } //如果构成全选 var checkStatus = table.checkStatus('mainList'), tableHeaderTh = $('.layui-table-header th[data-field="0"] input[type="checkbox"]'); if (checkStatus.isAll) { tableHeaderTh.prop('checked', true); tableHeaderTh.next().addClass('layui-form-checked'); } } //监听页面主按钮操作 //监听页面主按钮操作 var active = { btnDelete: function () { //批量删除 var checkStatus = table.checkStatus('mainList') , data = checkStatus.data; hhweb.del("/base/SysUser/Delete", data.map(function (e) { return e.Id; }), mainList); }, btnAdd: function () { //添加 editDlg.add(); }, btnEdit: function () { //编辑 var checkStatus = table.checkStatus('mainList') , data = checkStatus.data; if (data.length != 1) { layer.alert("请选择编辑的行,且同时只能编辑一行", { icon: 2, shadeClose: true, title: "错误信息" }); return; } editDlg.update(data[0]); }, search: function () { //搜索 debugger var data = { Name: $('#Name').val(), Idcard: $("#Idcard").val() }; mainList(data); }, btnRefresh: function () { mainList(); }, btnAccessModule: function () { var checkStatus = table.checkStatus('mainList') , data = checkStatus.data; if (data.length != 1) { toplayer.msg("请选择要分配的用户"); return; } var index = toplayer.open({ title: "为用户【" + data[0].Name + "】分配模块", type: 2, area: ['750px', '600px'], content: "/base/SysModule/Assign?type=UserModule&menuType=UserElement&id=" + data[0].Id, success: function (layero, index) { } }); }, btnAccessRole: function () { var checkStatus = table.checkStatus('mainList') , data = checkStatus.data; if (data.length != 1) { toplayer.msg("请选择要分配的用户"); return; } var index = toplayer.open({ title: "为用户【" + data[0].Name + "】分配角色", type: 2, area: ['750px', '600px'], content: "/base/SysRole/Assign?type=UserRole&id=" + data[0].Id, success: function (layero, index) { } }); }, btnResetPwd: function () { layer.confirm("你确定重置密码吗?", { icon: 3 }, function (index) { var checkStatus = table.checkStatus('mainList'), data = checkStatus.data; if (data.length != 1) { layer.msg("只能编辑一行"); return; } $.post("/base/SysUser/ResetPassword", { user: data[0], }, function (result) { if (result.Code == 200) { layer.msg("密码重设成功"); return; } layer.alert(result.Message, { icon: 2, shadeClose: true, title: "操作失败" }); }, "json"); }); }, binding: function () { //绑定 var checkStatus = table.checkStatus('mainList') , data = checkStatus.data; var edit = false; if (data.length != 1) { toplayer.msg("请选择要分配的用户"); return; } $("#UserImage").val(""); var objfile = {}; var selFile = document.querySelector('#UserImage'); selFile.addEventListener('change', function (e) { // 这里进行事件操作 filechange("UserImage", objfile, function () { $("#UserImage_a").attr("src", objfile.base64); }); }); layer.open({ title: "为用户【" + data[0].Name + "】绑定登录方式", area: ["800px", "500px"], type: 1, content: $('#divBinding'), btn: ['保存', '关闭'], yes: function (index, layero) { if (objfile.base64 == null && $("#JobCard").val() == "") { layer.msg("请至少选择选择一种绑定登录方式"); return; } bindingSubimt(data, edit); }, success: function () { $("#JobCard").val(data[0].Idcard); $('#UserImage_a').attr("src", data[0].FacePicture); if (data[0].FacePicture != null || data[0].Idcard != null) edit = true; } }); }, btnBindClient: function () {//绑定客户 var checkStatus = table.checkStatus('mainList'), data = checkStatus.data; var edit = false; if (data.length != 1) { toplayer.msg("请选择要绑定客户的用户!"); return; } var url = `/configure/BaseClientInfo/Index?menuFlag=-2&selectColKeyCustom=keys&page=sysuser&userAccount=${data[0].Account}`;//menuFlag=-2 菜单隐藏 var index = layer.open({ title: "为用户【" + data[0].Name + "】绑定客户<span style='color:red;'>(目前只支持用户绑定单个客户,当已绑定勾选某个客户需要解绑再点击一次即可)</span>", area: ["1000px", "600px"], type: 2, content: url, }); }, //搜索 btnQuery: function () { $("#panelSearch").toggle("fast"); active.search(); }, btnClose: function () { $("#panelSearch").toggle("fast"); } }; $('.toolList .layui-btn').on('click', function () { var type = $(this).data('type'); active[type] ? active[type].call(this) : ''; }); //监听页面主按钮操作 end function tableCheckboxClick() { if (menu == -2) { let objData; //单元格点击事件 fileEvent 图片预览 table.on(`row(list)`, function (obj) { objData = obj.data; }); //分配及取消分配 table.on('checkbox(list)', function (obj) { var userIds = GetObjData(obj), url = "/configure/StationUserRel/Assign", flag = "check"; debugger; if ($.isEmptyObject(obj.data) && obj.type == "one") userIds = objData.Id; if (!obj.checked) { flag = "unCheck"; } $.post(url, { stationId: stationId.join(), userIds: userIds, flag: flag }, function (data) { layer.msg(data.Message); }, "json"); }); } } //监听页面主按钮操作 end function tableCheckboxClickBaseTeam() { if (menu == -2) { let objData; //单元格点击事件 fileEvent 图片预览 table.on(`row(list)`, function (obj) { objData = obj.data; }); //分配及取消分配 table.on('checkbox(list)', function (obj) { var userIds = GetObjData(obj), url = "/configure/BaseTeam/Assign", flag = "check"; debugger; if ($.isEmptyObject(obj.data) && obj.type == "one") userIds = objData.Id; if (!obj.checked) { flag = "unCheck"; } $.post(url, { teamCode: teamCode.join(), userIds: userIds, flag: flag }, function (data) { layer.msg(data.Message); }, "json"); }); } } function GetObjData(obj) { var editdata; if (obj.type == "one") { editdata = obj.data.Id; } else { editdata = table.cache["mainList"].map(x => { return x["Id"]; }).join(); } return editdata; } GetTableSelectData = function () { return table.checkStatus('mainList'); }; }); //文件选择改变事件 function filechange(fileId, obj, fn) { var selectFile = document.getElementById(fileId); //var filePath = selectFile.value;//文件路径 var fileName = selectFile.files[0].name;//上传的文件名称 var file = selectFile.files[0];//上传的文件 //var extn = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();//文件后缀 //文件base64string获取 if (window.FileReader) { var reader = new FileReader(); reader.readAsDataURL(file); let index = layer.load(); //监听文件读取结束后事件 reader.onloadend = function (e) { layer.close(index); var base64String = e.target.result; if (obj != null) obj["base64"] = base64String; if (fn != null) fn(); }; } } function GetUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }