更改实名制-施工人员管理页面代码

This commit is contained in:
lSun 2025-12-09 15:38:30 +08:00
parent faf8c086a3
commit 5418f1800a
6 changed files with 220 additions and 211 deletions

View File

@ -5,10 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>后台管理系统</title>
<script src ="public/login/js/tailwindcss.js"></script>
<!-- Font Awesome 备选方案 -->
<!-- <link rel="stylesheet" href="public/login/css/font-awesome.min.css">-->
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
<!-- 配置Tailwind自定义主题 -->
<script>
tailwind.config = {

View File

@ -25,22 +25,14 @@
<form class="form-inline layui-form" onsubmit="return false">
<div class="form-group">
<div class="layui-inline">
<input id="name" type="text" class="layui-input" placeholder="请输入班组名称">
<input id="keyWord" name="keyWord" type="text" class="layui-input" placeholder="请输入关键字">
</div>
<div class="layui-inline">
<input id="subName" type="text" class="layui-input" placeholder="请输入分包商名称">
</div>
<div class="layui-inline">
<select id="teamType" name="teamType" class="layui-input" lay-search="" ></select>
</div>
<button id="searchBt" class="layui-btn layui-btn-sm" permission="sys:TeamManager:query">搜索</button>
<button id="searchBt" class="layui-btn layui-btn-sm">搜索</button>
</div>
</form>
<div class="layui-inline" style="margin-top: 5px;">
<button class="layui-btn layui-btn-sm" onclick="insertTeamManager()" permission="sys:TeamManager:add">
<button class="layui-btn layui-btn-sm" onclick="insertTeamManager()">
添加
</button>
</div>
@ -58,12 +50,13 @@
<thead style="background-color: #FAFAFA !important;">
<tr>
<th>序号</th>
<th>班组名称</th>
<th>班组类别</th>
<th>班组编号</th>
<th>分包商名称</th>
<th>入场时间</th>
<th>出场时间</th>
<th>用户名</th>
<th>登录名</th>
<th>数据权限</th>
<th>手机号</th>
<th>身份证号码</th>
<th>创建时间</th>
<th>更新时间</th>
<th>操作</th>
</tr>
</thead>
@ -80,9 +73,8 @@
<script type="text/javascript" src="../../smz-web/js/jq.js"></script>
<script type="text/javascript" src="../../smz-web/js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../smz-web/js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../smz-web/js/my/permission.js"></script>
<script type="text/javascript" src="../../smz-web/layui/layui.js"></script>
<script type="text/javascript" src="../../smz-web/js/publicJs.js"></script>
<script src="../public.js"></script>
<script type="text/javascript" src="../../smz-web/js/dict.js"></script>
<script type="text/javascript" src="../../public/login/js/user.js" ></script>
<script type="text/javascript">

View File

@ -83,19 +83,16 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>联系方式:</label>
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>登录名</label>
<div class="layui-input-block">
<input maxlength="11" type="text" id="phone" name="phone" required lay-verify="required|phone" class="layui-input" />
<input maxlength="30" minlength="2" type="text" id="loginName" name="loginName" required lay-verify="required" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">健康状况:</label>
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>联系方式:</label>
<div class="layui-input-block">
<select name = "sex" id="sex" >
<option value="1"></option>
<option value="2"></option>
</select>
<input maxlength="11" type="text" id="phone" name="phone" required lay-verify="required|phone" class="layui-input" />
</div>
</div>
@ -108,7 +105,8 @@
</div>
</div>
<div id="smzqx">
<div id="smzqx" style="border: 3px solid #F0F0F0;padding: 10px;margin: 10px;">
<h2>实名制系统</h2>
<div class="layui-form-item">
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>公司名称/岗位</label>
@ -173,13 +171,12 @@
</div>
<div class="layui-form-item" id="ldlzqx">
<label class="layui-form-label">领导履职</label>
<div class="layui-form-item" id="ldlzqx" style="border: 3px solid #F0F0F0;padding: 10px;margin: 10px;">
<h2>领导履职系统</h2>
</div>
<div class="layui-form-item" id="czlqx">
<label class="layui-form-label">承载力</label>
<div class="layui-form-item" id="czlqx" style="border: 3px solid #F0F0F0;padding: 10px;margin: 10px;">
<h2>承载力系统</h2>
</div>
<div class="layui-form-item" style="display: none">
@ -197,8 +194,9 @@
<script type="text/javascript" src="../../smz-web/js/plugin/bootstrapvalidator/bootstrapValidator.min.js"></script>
<script type="text/javascript" src="../../smz-web/js/common.js"></script>
<script type="text/javascript" src="../../smz-web/layui/layui.js"></script>
<script type="text/javascript" src="../../smz-web/js/publicJs.js"></script>
<script type="text/javascript" src="../../smz-web/js/companyTree.js"></script>
<script src="../public.js"></script>
<script type="text/javascript" src="../login/js/companyTree.js" ></script>
<script type="text/javascript">
var form1;
@ -305,107 +303,42 @@
return false; // 阻止提交
}
}
insertSubcontractor(); // 触发你的提交函数
add(data); // 触发你的提交函数
return false; // 阻止默认跳转
});
// 如果是编辑页面,已有默认选中项,触发一次显示
setTimeout(function () {
form.render(); // 确保渲染完成
$('#types input[type="checkbox"]:checked').each(function () {
$(this).next('.layui-form-checkbox').trigger('click'); // 不推荐;更好的方式是手动调用逻辑
});
// 更安全的方式:直接根据初始状态显示
if ($('#smz').is(':checked')) $('#smzqx').show();
if ($('#ldlz').is(':checked')) $('#ldlzqx').show();
if ($('#czl').is(':checked')) $('#czlqx').show();
}, 100);
});
function add() {
var bootstrapValidator = $("#form").data('bootstrapValidator');
bootstrapValidator.validate();
var formdata = {};
//获取用户权限类型
// var roleIds = getCheckedRoleIds();
var userName = $('#userName').val();
var phone = $('#phone').val();
var orgId = $('#orgId').val();
var proId = $('#proId option:selected').val();
var subId = $('#subId option:selected').val();
var roleId = $('#roles option:selected').val();
var sex = $('#sex option:selected').val();
var teamId = $('#teamId option:selected').val();
var idNumber = $('#idNumber').val();
if (phone == null || phone == '') {
layer.msg('请输入手机号!');
return;
}
if (phone.length != 11) {
layer.msg('手机号格式错误!');
return;
}
if (userName == null || userName == '') {
layer.msg('请输入用户名!');
return;
}
if (orgId == null || orgId.length == 0) {
layer.msg('请选择分公司!');
return;
}
if (roleId == null || roleId.length == 0) {
layer.msg('请选择角色!');
return;
}
if (level.indexOf("4") != "-1") {
if (subId == null || subId == '' || subId == "-1") {
layer.msg('请选择分包商!');
return;
}
} else if (level.indexOf("5") != "-1") {
if (subId == null || subId == '' || subId == "-1") {
layer.msg('请选择分包商!');
return;
}
if (roleNames == '1') {
if (teamId == null || teamId == '' || teamId == "-1") {
layer.msg('请选择班组!');
return;
}
if (idNumber == null || idNumber == '') {
layer.msg('请输入身份证号!');
return;
}
}
}
formdata.userName = userName;
formdata.phone = phone;
formdata.orgId = orgId;
formdata.proId = proId;
formdata.subId = subId;
formdata.roleId = roleId;
formdata.type = roleType;
formdata.sex = sex;
formdata.teamId = teamId;
formdata.idNumber = idNumber;
console.log("formdata" + JSON.stringify(formdata))
function add(data) {
console.log( "aa=",data)
var fieldData = data.field || {};
// 构建请求参数
var requestData = {
userName: fieldData.userName || null,
loginName: fieldData.loginName || null,
userPhone: fieldData.phone || null,
orgId: fieldData.orgId || null,
proId: fieldData.proId || null,
subId: fieldData.subId || null,
roleId: fieldData.roleId || null,
type: roleType || null, // 注意:后端可能期望 "type" 而不是 "permissionType"
dataType: fieldData.permissionType || null, // 注意:后端可能期望 "type" 而不是 "permissionType"
sex: fieldData.sex || null,
teamId: fieldData.teamId || null,
idCard: fieldData.idNumber || null
};
$.ajax({
type: 'post',
url: ctxPath + '/users',
url: request_url + '/realname/publicLogin/addUserData',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(formdata),
data: JSON.stringify(requestData),
success: function (data) {
layer.msg("添加成功", {shift: -1, time: 1000}, function () {
location.href = ctxPath + "/pages/work/sysMag/userList.html";
});
if (data.code != 200) {
layer.msg(data.msg);
return;
}else{
layer.msg(data.msg);
parent.layer.close();
}
}
});
}
@ -418,15 +351,21 @@
select.append('<option value="">请选择工程</option>');
$.ajax({
type: 'post',
url: ctxPath+'/users/getProInfo',
url: request_url+'/realname/publicLogin/getProList',
data: {companyId: orgId},
async: false,
success: function(data){
data.forEach(function(d){
select.append('<option value="'+d.proId+'">'+d.proName+'</option>');
});
if(proId) select.val(proId);
layui.form.render('select');
var data = data.data;
if(data.length > 0){
data.forEach(function(d){
select.append('<option value="'+d.proId+'">'+d.proName+'</option>');
});
if(proId) select.val(proId);
layui.form.render('select');
}else{
select.append('<option value="">暂无数据</option>');
layui.form.render('select');
}
}
});
}
@ -439,16 +378,23 @@
if(!proId){ layui.form.render('select'); return; }
$.ajax({
type: 'post',
url: ctxPath+'/register/findSubList',
url: request_url+'/realname/publicLogin/getSubList',
data: {proId: proId},
async: false,
dataType:'json',
success: function(data){
data.forEach(function(d){
select.append('<option value="'+d.id+'">'+d.name+'</option>');
});
if(subId) select.val(subId);
layui.form.render('select');
var data = data.data;
if(data.length <= 0){
select.append('<option value="">暂无数据</option>');
layui.form.render('select');
return;
}else{
data.forEach(function(d){
select.append('<option value="'+d.id+'">'+d.name+'</option>');
});
if(subId) select.val(subId);
layui.form.render('select');
}
}
});
}
@ -461,7 +407,7 @@
select.append('<option value="">请选择分包商</option>');
$.ajax({
type: 'post',
url: ctxPath+'/register/findSubListByCompanyId',
url: request_url+'/realname/publicLogin/findSubListByCompanyId',
data: {companyId: companyId},
async: false,
dataType:'json',
@ -484,14 +430,20 @@
select.append('<option value="">请选择角色</option>');
$.ajax({
type: 'post',
url: ctxPath+'/users/getRoleInfo',
url: request_url+'/realname/publicLogin/getRoleList',
data: {companyId: companyId, orgId: orgId},
async: false,
success: function(data){
data.forEach(function(d){
select.append('<option value="'+d.roleId+'">'+d.roleName+'</option>');
});
layui.form.render('select');
var data = data.data;
if(data.length > 0){
data.forEach(function(d){
select.append('<option value="'+d.roleId+'">'+d.roleName+'</option>');
});
layui.form.render('select');
}else{
select.append('<option value="">暂无数据</option>');
layui.form.render('select');
}
}
});
}
@ -510,7 +462,7 @@
if (roleId != "") {
$.ajax({
type: 'POST',
url: ctxPath + '/register/findRoleType',
url: request_url + '/realname/publicLogin/findRoleType',
data: {roleId: roleId},
dataType: "json",
success: function (data) {
@ -540,14 +492,14 @@
}
roleType = type;
// 更新 lay-verify
// 更新 lay-verify
$('#idNumber').attr('lay-verify', idCard.style.display=='block' ? 'required|foremanIdNumber' : '');
$('#proId').attr('lay-verify', pro.style.display=='block' ? 'required' : '');
$('#subId').attr('lay-verify', sub.style.display=='block' ? 'required' : '');
$('#teamId').attr('lay-verify', team.style.display=='block' ? 'required' : '');
layui.form.render('select'); // 刷新 select
layui.form.render('checkbox'); // 刷新 checkbox
layui.form.render('select'); // 刷新 select
layui.form.render('checkbox'); // 刷新 checkbox
var info = "角色权限:";
if (type.indexOf("3") != "-1") {
@ -614,7 +566,7 @@
if(!subId){layui.form.render('select'); return;}
$.ajax({
type:'post',
url: ctxPath+'/register/findTeamList',
url: request_url+'/realname/publicLogin/getTeamList',
data:{subId:subId},
async:false,
dataType:'json',
@ -634,15 +586,15 @@
var roles = $("#roles").val();
$.ajax({
type: 'POST',
url: ctxPath + '/users/getTeam',
url: request_url + '/realname/publicLogin/getTeamInfo',
data: {
idNumber: idNumber,
roles: roles
},
dataType: 'json',
success: function (data) {
console.log(data)
if (data.res == 1) {
var data = data.data;
if (data.code == 200) {
var pro = document.getElementById("pro");
var sub = document.getElementById("sub");
var team = document.getElementById("team");

View File

@ -0,0 +1,86 @@
var token = localStorage.getItem("public_token")
// 初始化树节点
function initTree() {
$.ajax({
type: 'POST',
headers : {
"token" : token
},
url: request_url + '/realname/publicLogin/getDeptTree',
data: {},
dataType: 'json',
success: function (data) {
$.fn.zTree.init($("#orgTree"),{
view:{
dblClickExpand:false,
selectedMulti:false,
nameIsHTML:true
},
data:{
simpleData:{
enable: true
}
},
callback:{
onClick:clickRole
}
}, data.data);
},
error: function (e) {
console.log(e.resMsg);
},
});
}
var preisShow=false;//窗口是否显示
function showRole() {
if(preisShow){
hideRole();
}else{
var obj = $("#orgName");
var offpos = $("#orgName").position();
$("#orgContent").css({left:offpos.left+"px",top:offpos.top+obj.heigth+"px"}).slideDown("fast");
preisShow=true;
}
}
function emptyRole(){
$("#orgName").prop("value","");
$("#auForm input[name$='orgId']").prop("value","0");
}
function hideRole(n,c){
$("#orgId").val(n);
$("#companyId").val(c);
$("#orgContent").fadeOut("fast");
preisShow=false;
loadCompanyInfo(n,c);
}
function clickRole(e, treeId, treeNode) {
// var check = (treeNode && !treeNode.isParent);
var check = (treeNode);
if(check){
var zTree = $.fn.zTree.getZTreeObj("orgTree"),
nodes = zTree.getSelectedNodes(),v ="",n ="",o="",p="",c="";
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";//获取name值
n += nodes[i].id + ",";//获取id值
o += nodes[i].other + ",";//获取自定义值
c += nodes[i].companyId + ",";
var pathNodes=nodes[i].getPath();
for(var y=0;y<pathNodes.length;y++){
p+=pathNodes[y].name+"/";//获取path/name值
}
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
if (n.length > 0 ) n = n.substring(0, n.length-1);
if (o.length > 0 ) o = o.substring(0, o.length-1);
if (p.length > 0 ) p = p.substring(0, p.length-1);
if (c.length > 0 ) c = c.substring(0, c.length-1);
$("#orgName").val(p);
$("#companyId").val(c);
$("#auForm input[name$='orgId']").prop("value",n);
hideRole(n,c);
}
}

View File

@ -1,5 +1,4 @@
var example = null;
var pers = null ;
var layer ,form;
$(function () {
layui.use([ 'form','layer' ], function() {
@ -12,36 +11,13 @@ $(function () {
move: false, // 禁止拖动(可选)
zIndex: 19891014 // 设置合理的 z-index
});
getTeamType(form)
});
pers = checkPermission();
init();
$("#searchBt").click(function(){
example.ajax.reload();
});
})
/**
* 获取班组类别
* */
function getTeamType(form) {
$("#teamType").empty();
$.ajax({
type: 'post',
url: ctxPath + '/org/getTeamTypeList',
data: {},
dataType: 'json',
success: function (data) {
var str = '<option value="">请选择班组类别</option>';
for (var i = 0; i < data.obj.length; i++) {
str += '<option value=\'' + data.obj[i].id + '\'>' + data.obj[i].name + '</option>';
}
$("#teamType").html(str);
form.render();
}
})
}
function init(){
example =
$('#dt-table').DataTable({
@ -50,15 +26,16 @@ function init(){
"serverSide" : true,
"pagingType": "full_numbers", //首页|尾页
"language": {
"url": contentPath + "/js/plugin/datatables/Chinese.lang"
"url": contentPath + "/public/login/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url" : ctxPath + "/TeamManager",
"type":"get",
"url" : request_url + "/realname/publicLogin/getUserList",
"type":"POST",
"headers": {
"Authorization": "Bearer " + localStorage.getItem("public_token"),
},
"data":function(d){
d.teamType = $("#teamType").val();
d.name = $("#name").val();
d.subName = $("#subName").val();
d.keyWord = $("#keyWord").val();
},
"error":function(xhr, textStatus, errorThrown){
var msg = xhr.responseText;
@ -69,9 +46,9 @@ function init(){
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
localStorage.removeItem("public_token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function(){
location.href = ctxPath + '/login.html';
top.location.href = window.location.origin + contentPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
@ -119,12 +96,29 @@ function init(){
return c;
}
},
{ "data": "name", "defaultContent": ""},
{ "data": "teamType", "defaultContent": ""},
{ "data": "teamId", "defaultContent": ""},
{ "data": "subName", "defaultContent": ""},
{ "data": "einTime", "defaultContent": ""},
{ "data": "exitTime", "defaultContent": ""},
{ "data": "userName", "defaultContent": ""},
{ "data": "loginName", "defaultContent": ""},
{ "data": "", "defaultContent": "", "render":function(data, type, row){
var dataType = row['dataType'];
var html = '';
if(dataType == 1){
html += '<span class="label label-success">承载力后台</span>';
}else if(dataType == 2){
html += '<span class="label label-success">承载力大屏</span>';
}else if(dataType == 3){
html += '<span class="label label-success">领导履职</span>';
}else if(dataType == 4){
html += '<span class="label label-success">自有人员</span>';
}else if(dataType == 5){
html += '<span class="label label-success">自有人员大屏</span>';
}
return html;
}
},
{ "data": "userPhone", "defaultContent": ""},
{ "data": "idCard", "defaultContent": ""},
{ "data": "createTime", "defaultContent": ""},
{ "data": "updateTime", "defaultContent": ""},
{
"data": "",
"defaultContent": "",
@ -132,8 +126,8 @@ function init(){
"render": function (data, type, row) {
var id = row['id'];
var html = '';
html += buttonEdits(id, "sys:TeamManager:add", pers);
html+= buttonDel(id,"sys:TeamManager:del",pers);
html += buttonEdits(id,);
html+= buttonDel(id);
return html;
}
},
@ -229,24 +223,13 @@ function del(id) {
})
}
// 删除按钮
function buttonDel(id, permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
function buttonDel(id){
var btn = $("<button class='layui-btn layui-btn-xs' title='删除' onclick='del(\"" + id +"\")' style='background-color: transparent;color: #ff4d4f;'>删除</button>");
return btn.prop("outerHTML");
}
// 编辑按钮
function buttonEdits(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
function buttonEdits(id) {
var btn = $("<button class='layui-btn layui-btn-xs' title='编辑' onclick='edit(\"" + id + "\")' style='background-color: transparent;color: #009688;'>编辑</button>");
return btn.prop("outerHTML");
}

View File

@ -1,4 +1,4 @@
let web_url="http://127.0.0.1:8848"
let contentPath="/hn_cloud_web";
let request_url="http://192.168.0.38:42880"
let public_token=localStorage.getItem("public_token")
let public_token=localStorage.getItem("public_token")