更改实名制-施工人员管理页面代码
This commit is contained in:
parent
efdc90e439
commit
18e3905264
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title></title>
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
text-align: right;
|
||||
}
|
||||
|
||||
.layui-form-checkbox i{
|
||||
.layui-form-checkbox i {
|
||||
border-left: 1px solid #d2d2d2;
|
||||
}
|
||||
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
border: 1px solid #e6e6e6;
|
||||
padding: 8px 12px;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 2px 8px rgba(0,0,0,.1);
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, .1);
|
||||
font-size: 12px;
|
||||
color: #c00;
|
||||
z-index: 999;
|
||||
|
|
@ -76,32 +76,51 @@
|
|||
<input type="hidden" id="id" name="id">
|
||||
|
||||
<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="30" minlength="2" type="text" id="userName" name="userName" required lay-verify="required" class="layui-input" />
|
||||
<input maxlength="30" minlength="2" type="text" id="userName" name="userName" required
|
||||
lay-verify="required" class="layui-input"/>
|
||||
</div>
|
||||
</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="30" minlength="2" type="text" id="loginName" name="loginName" required lay-verify="required" 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"><i class="tip-required" style="color: red; font-size: 20px">*</i>联系方式:</label>
|
||||
<label class="layui-form-label">是否管理员:</label>
|
||||
<div class="layui-input-block">
|
||||
<input maxlength="11" type="text" id="phone" name="phone" required lay-verify="required|phone" class="layui-input" />
|
||||
<select name="isAdmin" id="isAdmin">
|
||||
<option value="0">不是</option>
|
||||
<option value="1">是</option>
|
||||
</select>
|
||||
</div>
|
||||
</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"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="tip-required"
|
||||
style="color: red; font-size: 20px">*</i>系统:</label>
|
||||
<div class="layui-input-block" id="types">
|
||||
<input type="checkbox" name="permissionType" value="1" title="实名制" id="smz">
|
||||
<input type="checkbox" name="permissionType" value="2" title="领导履职" id="ldlz">
|
||||
<input type="checkbox" name="permissionType" value="3" title="承载力" id="czl">
|
||||
<input type="checkbox" name="permissionType" value="1" title="承载力后台" id="czl_1">
|
||||
<input type="checkbox" name="permissionType" value="2" title="承载力大屏" id="czl_2">
|
||||
<input type="checkbox" name="permissionType" value="3" title="领导履职" id="ldlz">
|
||||
<input type="checkbox" name="permissionType" value="4" title="自有人员" id="smz_1">
|
||||
<input type="checkbox" name="permissionType" value="5" title="自有人员大屏" id="smz_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -132,7 +151,8 @@
|
|||
</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">
|
||||
<select id="roles" name="roleId" lay-filter="roleId"></select>
|
||||
<span id="qxSpan" style="color: red;display: none"></span>
|
||||
|
|
@ -143,26 +163,28 @@
|
|||
<div class="layui-form-item" id="idCard" style="display: none">
|
||||
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>身份证</label>
|
||||
<div class="layui-input-block">
|
||||
<input maxlength="18" type="text" id="idNumber" name="idNumber" onchange="querys()" class="layui-input">
|
||||
<input maxlength="18" type="text" id="idNumber" name="idNumber" onchange="querys()"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" id="pro" style="display: none">
|
||||
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>工程名称</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="proId" name="proId" lay-filter="proId" ></select>
|
||||
<select id="proId" name="proId" lay-filter="proId"></select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" id="sub" style="display: none">
|
||||
<label class="layui-form-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>分包商</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="subId" name="subId" lay-filter="subId" ></select>
|
||||
<select id="subId" name="subId" lay-filter="subId"></select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" id="team" style="display: none">
|
||||
<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">
|
||||
<select id="teamId" name="teamId" lay-filter="teamId"></select>
|
||||
</div>
|
||||
|
|
@ -173,10 +195,65 @@
|
|||
|
||||
<div class="layui-form-item" id="ldlzqx" 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>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-inline" style="width: 100%;">
|
||||
<div style="border: 0.5px solid #E6E6E6;height: 37px;text-indent: 10px;">
|
||||
<input class="FormElement ui-widget-content ui-corner-all" id="departmentldlz"
|
||||
readonly="readonly" value="点击进行部门选择" jyValidate="required" type="text"
|
||||
onclick="showRoleLdlz(); return false;"
|
||||
style="border: 0; margin-top: 1%;width: 100%; color: #757575;"/>
|
||||
<input type="hidden" id="departmentIdldlz" name="departmentIdldlz">
|
||||
<div id='orgContentldlz' class="menuContent ztreeMC">
|
||||
<ul id="departmentTreeldlz" class="ztree accountOrgTree"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="tip-required"
|
||||
style="color: red;font-size: 20px">*</i>角色:</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="roleIdLdlz" class="layui-select" name="roleIdLdlz" lay-verify="required"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" id="czlqx" 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>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-inline" style="width: 100%;">
|
||||
<div style="border: 0.5px solid #E6E6E6;height: 37px;text-indent: 10px;">
|
||||
<input class="FormElement ui-widget-content ui-corner-all" id="department"
|
||||
readonly="readonly" value="点击进行部门选择" jyValidate="required" type="text"
|
||||
onclick="showRoleCzl(); return false;"
|
||||
style="border: 0; margin-top: 1%;width: 100%; color: #757575;"/>
|
||||
<input type="hidden" id="departmentId" name="departmentId">
|
||||
<div id='orgContentCzl' class="menuContent ztreeMC">
|
||||
<ul id="departmentTree" class="ztree accountOrgTree"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="tip-required"
|
||||
style="color: red;font-size: 20px">*</i>角色:</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="roleIdCzl" class="layui-select" name="roleIdCzl" lay-verify="required"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" style="display: none">
|
||||
|
|
@ -195,7 +272,10 @@
|
|||
<script type="text/javascript" src="../../smz-web/js/common.js"></script>
|
||||
<script type="text/javascript" src="../../smz-web/layui/layui.js"></script>
|
||||
<script src="../public.js"></script>
|
||||
<script type="text/javascript" src="../login/js/companyTree.js" ></script>
|
||||
<script type="text/javascript" src="../login/js/treeBind.js"></script>
|
||||
<script type="text/javascript" src="../login/js/companyTree.js"></script>
|
||||
<script type="text/javascript" src="../login/js/companyTreeCzl.js"></script>
|
||||
<script type="text/javascript" src="../login/js/companyTreeLdlz.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
|
@ -211,105 +291,117 @@
|
|||
elem: '#birthday'
|
||||
});
|
||||
form.verify({
|
||||
required: function(value, item){
|
||||
if($(item).is(':visible') && !value){
|
||||
required: function (value, item) {
|
||||
if ($(item).is(':visible') && !value) {
|
||||
return '该字段不能为空';
|
||||
}
|
||||
},
|
||||
phone: [/^1\d{10}$/, '手机号格式不正确'],
|
||||
foremanIdNumber: function(value, item){
|
||||
foremanIdNumber: function (value, item) {
|
||||
// 只在显示且必填时校验身份证格式
|
||||
if ($('#smz').is(':checked') && $(item).is(':visible') && !value) {
|
||||
var reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
||||
if(!reg.test(value)){
|
||||
if (!reg.test(value)) {
|
||||
return '请输入18位身份证';
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
initTree();
|
||||
// initTree();
|
||||
|
||||
// 初始化:隐藏所有权限区域
|
||||
$('#smzqx, #ldlzqx, #czlqx').hide();
|
||||
|
||||
// 监听 checkbox 变化(Layui 方式)
|
||||
// 系统checkbox变化
|
||||
form.on('checkbox', function(data){
|
||||
form.on('checkbox', function (data) {
|
||||
var value = data.value;
|
||||
var checked = data.elem.checked;
|
||||
|
||||
var map = {'1':'smzqx','2':'ldlzqx','3':'czlqx'};
|
||||
var map = {
|
||||
'1': 'czlqx', // 承载力后台
|
||||
'2': 'czlqx', // 承载力大屏
|
||||
'3': 'ldlzqx', // 领导履职
|
||||
'4': 'smzqx', // 自有人员
|
||||
'5': 'smzqx' // 自有人员大屏
|
||||
};
|
||||
var targetId = map[value];
|
||||
if(targetId){
|
||||
$('#' + targetId).toggle(checked);
|
||||
|
||||
// 实名制动态必填
|
||||
if(targetId==='smzqx'){
|
||||
// 姓名/公司/角色/身份证
|
||||
// $('#orgName').attr('lay-verify', checked ? 'required' : '');
|
||||
$('#userName').attr('lay-verify', checked ? 'required' : '');
|
||||
$('#phone').attr('lay-verify', checked ? 'required|phone' : '');
|
||||
$('#orgName').attr('lay-verify', checked ? 'required' : '');
|
||||
$('#roles').attr('lay-verify', checked ? 'required' : '');
|
||||
$('#idNumber').attr('lay-verify', checked && $('#idCard').is(':visible') ? 'required|foremanIdNumber' : '');
|
||||
$('#proId').attr('lay-verify', checked && $('#pro').is(':visible') ? 'required' : '');
|
||||
$('#subId').attr('lay-verify', checked && $('#sub').is(':visible') ? 'required' : '');
|
||||
$('#teamId').attr('lay-verify', checked && $('#team').is(':visible') ? 'required' : '');
|
||||
if (targetId) {
|
||||
if (value == '1' || value == '2') {
|
||||
// 检查是否至少有一个承载力被选中
|
||||
var czlChecked = $('#czl_1').is(':checked') || $('#czl_2').is(':checked');
|
||||
$('#czlqx').toggle(czlChecked);
|
||||
getRoleCzl(form, null);
|
||||
loadOrgTree();
|
||||
} else if (value == '4' || value == '5') {
|
||||
var smzChecked = $('#smz_1').is(':checked') || $('#smz_2').is(':checked');
|
||||
$('#smzqx').toggle(smzChecked)
|
||||
} else if (value == '3') {
|
||||
$('#ldlzqx').toggle(checked);
|
||||
getRoleLdlz(form, null);
|
||||
loadOrgTreeLdlz();
|
||||
}
|
||||
}
|
||||
form1.render();
|
||||
});
|
||||
|
||||
// 角色下拉变化监听
|
||||
form.on('select(roleId)', function(data){
|
||||
form.on('select(roleId)', function (data) {
|
||||
findRoleType(data.value);
|
||||
});
|
||||
|
||||
// 工程下拉变化监听 → 联动分包商
|
||||
form.on('select(proId)', function(data){
|
||||
form.on('select(proId)', function (data) {
|
||||
getSubInfo(data.value);
|
||||
});
|
||||
|
||||
// 分包商下拉变化监听 → 联动班组
|
||||
form.on('select(subId)', function(data){
|
||||
findSubType(data.value,'');
|
||||
form.on('select(subId)', function (data) {
|
||||
findSubType(data.value, '');
|
||||
});
|
||||
|
||||
form.on('submit(formDemo)', function(data){
|
||||
form.on('submit(formDemo)', function (data) {
|
||||
clearErrors(); // 先清除所有错误样式
|
||||
if ($('#smz').is(':checked')) {
|
||||
var hasError = false;
|
||||
var dataType = data.field.permissionType;
|
||||
if (dataType) {
|
||||
if ($('#smz_1').is(':checked') || $('#smz_2').is(':checked')) {
|
||||
var hasError = false;
|
||||
if (!$('#userName').val()) {
|
||||
showError($('#userName'), '请输入用户名!');
|
||||
hasError = true;
|
||||
} else if (!/^1\d{10}$/.test($('#phone').val())) {
|
||||
showError($('#phone'), '手机号格式不正确!');
|
||||
hasError = true;
|
||||
} else if (!$('#orgId').val()) {
|
||||
showError($('#orgName'), '请选择分公司!');
|
||||
hasError = true;
|
||||
} else if (!$('#roles').val()) {
|
||||
showError($('#roles'), '请选择角色!');
|
||||
hasError = true;
|
||||
} else if (!$('#proId').val()) {
|
||||
showError($('#proId'), '请选择工程名称!');
|
||||
hasError = true;
|
||||
} else if (!$('#subId').val()) {
|
||||
showError($('#subId'), '请选择分包商!');
|
||||
hasError = true;
|
||||
} else if (!$('#teamId').val()) {
|
||||
showError($('#teamId'), '请选择班组!');
|
||||
hasError = true;
|
||||
}
|
||||
if (hasError) {
|
||||
return false; // 阻止提交
|
||||
}
|
||||
}
|
||||
|
||||
if (!$('#userName').val()) {
|
||||
showError($('#userName'), '请输入用户名!');
|
||||
hasError = true;
|
||||
}
|
||||
else if (!/^1\d{10}$/.test($('#phone').val())) {
|
||||
showError($('#phone'), '手机号格式不正确!');
|
||||
hasError = true;
|
||||
}
|
||||
else if (!$('#orgId').val()) {
|
||||
showError($('#orgName'), '请选择分公司!');
|
||||
hasError = true;
|
||||
}
|
||||
else if (!$('#roles').val()) {
|
||||
showError($('#roles'), '请选择角色!');
|
||||
hasError = true;
|
||||
}
|
||||
// ... 其他字段类似处理
|
||||
|
||||
if (hasError) {
|
||||
return false; // 阻止提交
|
||||
}
|
||||
add(data); // 触发你的提交函数
|
||||
} else {
|
||||
layer.msg('请选择系统类型!', {icon: 5});
|
||||
}
|
||||
add(data); // 触发你的提交函数
|
||||
return false; // 阻止默认跳转
|
||||
});
|
||||
});
|
||||
|
||||
function add(data) {
|
||||
console.log( "aa=",data)
|
||||
var fieldData = data.field || {};
|
||||
// 构建请求参数
|
||||
var requestData = {
|
||||
|
|
@ -324,7 +416,8 @@
|
|||
dataType: fieldData.permissionType || null, // 注意:后端可能期望 "type" 而不是 "permissionType"
|
||||
sex: fieldData.sex || null,
|
||||
teamId: fieldData.teamId || null,
|
||||
idCard: fieldData.idNumber || null
|
||||
idCard: fieldData.idNumber || null,
|
||||
isAdmin: fieldData.isAdmin || null
|
||||
};
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
|
|
@ -335,7 +428,7 @@
|
|||
if (data.code != 200) {
|
||||
layer.msg(data.msg);
|
||||
return;
|
||||
}else{
|
||||
} else {
|
||||
layer.msg(data.msg);
|
||||
parent.layer.close();
|
||||
}
|
||||
|
|
@ -345,24 +438,24 @@
|
|||
|
||||
|
||||
// 获取工程列表
|
||||
function getProInfo(orgId, proId){
|
||||
function getProInfo(companyId, proId) {
|
||||
var select = $('#proId');
|
||||
select.empty();
|
||||
select.append('<option value="">请选择工程</option>');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: request_url+'/realname/publicLogin/getProList',
|
||||
data: {companyId: orgId},
|
||||
url: request_url + '/realname/publicLogin/getProList',
|
||||
data: {companyId: companyId},
|
||||
async: false,
|
||||
success: function(data){
|
||||
success: function (data) {
|
||||
var data = data.data;
|
||||
if(data.length > 0){
|
||||
data.forEach(function(d){
|
||||
select.append('<option value="'+d.proId+'">'+d.proName+'</option>');
|
||||
if (data.length > 0) {
|
||||
data.forEach(function (d) {
|
||||
select.append('<option value="' + d.proId + '">' + d.proName + '</option>');
|
||||
});
|
||||
if(proId) select.val(proId);
|
||||
if (proId) select.val(proId);
|
||||
layui.form.render('select');
|
||||
}else{
|
||||
} else {
|
||||
select.append('<option value="">暂无数据</option>');
|
||||
layui.form.render('select');
|
||||
}
|
||||
|
|
@ -371,28 +464,31 @@
|
|||
}
|
||||
|
||||
|
||||
function getSubInfo(proId, subId){
|
||||
function getSubInfo(proId, subId) {
|
||||
var select = $('#subId');
|
||||
select.empty();
|
||||
select.append('<option value="">请选择分包商</option>');
|
||||
if(!proId){ layui.form.render('select'); return; }
|
||||
if (!proId) {
|
||||
layui.form.render('select');
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: request_url+'/realname/publicLogin/getSubList',
|
||||
url: request_url + '/realname/publicLogin/getSubList',
|
||||
data: {proId: proId},
|
||||
async: false,
|
||||
dataType:'json',
|
||||
success: function(data){
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var data = data.data;
|
||||
if(data.length <= 0){
|
||||
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>');
|
||||
} else {
|
||||
data.forEach(function (d) {
|
||||
select.append('<option value="' + d.id + '">' + d.name + '</option>');
|
||||
});
|
||||
if(subId) select.val(subId);
|
||||
if (subId) select.val(subId);
|
||||
layui.form.render('select');
|
||||
}
|
||||
}
|
||||
|
|
@ -401,46 +497,45 @@
|
|||
|
||||
|
||||
// 根据公司获取分包商
|
||||
function getSubInfoByCompanyId(companyId, ids){
|
||||
function getSubInfoByCompanyId(companyId, ids) {
|
||||
var select = $('#subId');
|
||||
select.empty();
|
||||
select.append('<option value="">请选择分包商</option>');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: request_url+'/realname/publicLogin/findSubListByCompanyId',
|
||||
url: request_url + '/realname/publicLogin/findSubListByCompanyId',
|
||||
data: {companyId: companyId},
|
||||
async: false,
|
||||
dataType:'json',
|
||||
success: function(data){
|
||||
data.forEach(function(d){
|
||||
select.append('<option value="'+d.id+'">'+d.name+'</option>');
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
data.forEach(function (d) {
|
||||
select.append('<option value="' + d.id + '">' + d.name + '</option>');
|
||||
});
|
||||
if(ids) select.val(ids);
|
||||
if (ids) select.val(ids);
|
||||
layui.form.render('select');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 初始化角色列表
|
||||
function initRoles(companyId, orgId){
|
||||
function initRoles(companyId, orgId) {
|
||||
var select = $('#roles');
|
||||
select.empty();
|
||||
select.append('<option value="">请选择角色</option>');
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: request_url+'/realname/publicLogin/getRoleList',
|
||||
url: request_url + '/realname/publicLogin/getRoleList',
|
||||
data: {companyId: companyId, orgId: orgId},
|
||||
async: false,
|
||||
success: function(data){
|
||||
success: function (data) {
|
||||
var data = data.data;
|
||||
if(data.length > 0){
|
||||
data.forEach(function(d){
|
||||
select.append('<option value="'+d.roleId+'">'+d.roleName+'</option>');
|
||||
if (data.length > 0) {
|
||||
data.forEach(function (d) {
|
||||
select.append('<option value="' + d.roleId + '">' + d.roleName + '</option>');
|
||||
});
|
||||
layui.form.render('select');
|
||||
}else{
|
||||
} else {
|
||||
select.append('<option value="">暂无数据</option>');
|
||||
layui.form.render('select');
|
||||
}
|
||||
|
|
@ -493,10 +588,10 @@
|
|||
roleType = type;
|
||||
|
||||
// 更新 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' : '');
|
||||
$('#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
|
||||
|
|
@ -544,7 +639,6 @@
|
|||
getProInfo(orgId, "");
|
||||
initRoles(companyId, orgId);
|
||||
getSubInfoByCompanyId(companyId, "");
|
||||
// getPostInfo(companyId);
|
||||
|
||||
$("#idNumber").val("");
|
||||
findSubType("", "");
|
||||
|
|
@ -557,25 +651,34 @@
|
|||
}
|
||||
|
||||
|
||||
|
||||
// 查询班组
|
||||
function findSubType(subId, ids){
|
||||
function findSubType(subId, ids) {
|
||||
var select = $('#teamId');
|
||||
select.empty();
|
||||
select.append('<option value="">请选择班组</option>');
|
||||
if(!subId){layui.form.render('select'); return;}
|
||||
if (!subId) {
|
||||
layui.form.render('select');
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type:'post',
|
||||
url: request_url+'/realname/publicLogin/getTeamList',
|
||||
data:{subId:subId},
|
||||
async:false,
|
||||
dataType:'json',
|
||||
success:function(data){
|
||||
data.forEach(function(d){
|
||||
select.append('<option value="'+d.id+'">'+d.name+'</option>');
|
||||
});
|
||||
if(ids) select.val(ids);
|
||||
layui.form.render('select');
|
||||
type: 'post',
|
||||
url: request_url + '/realname/publicLogin/getTeamList',
|
||||
data: {subId: subId},
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var data = data.data;
|
||||
data.forEach(function (d) {
|
||||
select.append('<option value="' + d.id + '">' + d.name + '</option>');
|
||||
});
|
||||
if (ids) select.val(ids);
|
||||
layui.form.render('select');
|
||||
} else {
|
||||
layer.msg(data.msg);
|
||||
select.empty();
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -593,7 +696,6 @@
|
|||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var data = data.data;
|
||||
if (data.code == 200) {
|
||||
var pro = document.getElementById("pro");
|
||||
var sub = document.getElementById("sub");
|
||||
|
|
@ -601,19 +703,19 @@
|
|||
pro.style.display = "block";
|
||||
sub.style.display = "block";
|
||||
team.style.display = "block";
|
||||
if (data.obj.length > 0) {
|
||||
if (data.obj[0].einStatus == "1") {
|
||||
getProInfo(ns, data.obj[0].proId);
|
||||
getSubInfo(data.obj[0].proId, data.obj[0].subId);
|
||||
findSubType(data.obj[0].subId, data.obj[0].teamId);
|
||||
if (data.data.length > 0) {
|
||||
if (data.data[0].einStatus == "1") {
|
||||
getProInfo(ns, data.data[0].proId);
|
||||
getSubInfo(data.data[0].proId, data.data[0].subId);
|
||||
findSubType(data.data[0].subId, data.data[0].teamId);
|
||||
|
||||
$("#orgName").val(data.obj[0].orgName);
|
||||
$("#companyId").val(data.obj[0].companyId);
|
||||
$("#auForm input[name$='orgId']").prop("value", data.obj[0].orgId);
|
||||
$("#orgName").val(data.data[0].orgName);
|
||||
$("#companyId").val(data.data[0].companyId);
|
||||
$("#auForm input[name$='orgId']").prop("value", data.data[0].orgId);
|
||||
} else {
|
||||
getProInfo(ns, data.obj[0].proId);
|
||||
getSubInfo(data.obj[0].proId, data.obj[0].subId);
|
||||
findSubType(data.obj[0].subId, data.obj[0].teamId);
|
||||
getProInfo(ns, data.data[0].proId);
|
||||
getSubInfo(data.data[0].proId, data.data[0].subId);
|
||||
findSubType(data.data[0].subId, data.data[0].teamId);
|
||||
}
|
||||
} else {
|
||||
getProInfo(ns, "");
|
||||
|
|
@ -642,13 +744,13 @@
|
|||
var $item = $field.closest('.layui-form-item');
|
||||
if ($item.length === 0) {
|
||||
console.warn('未找到 .layui-form-item 容器', $field);
|
||||
layer.msg(msg, { icon: 5 });
|
||||
layer.msg(msg, {icon: 5});
|
||||
return;
|
||||
}
|
||||
// 添加错误样式
|
||||
$item.addClass('layui-form-danger');
|
||||
// 弹出提示
|
||||
layer.msg(msg, { icon: 5 });
|
||||
layer.msg(msg, {icon: 5});
|
||||
// 尝试聚焦(只对可聚焦元素有效)
|
||||
setTimeout(() => {
|
||||
if ($field.is(':input')) {
|
||||
|
|
@ -673,9 +775,6 @@
|
|||
}
|
||||
}, 150);
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,86 +1,11 @@
|
|||
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;
|
||||
bindTreeSelector({
|
||||
inputTextId: "orgName",
|
||||
inputValueId: "orgId",
|
||||
panelId: "orgContent",
|
||||
treeId: "orgTree",
|
||||
ajaxUrl: request_url + "/realname/publicLogin/getDeptTree",
|
||||
extraSet: function (node) {
|
||||
$("#companyId").val(node.companyId || "");
|
||||
loadCompanyInfo(node.id, node.companyId);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
bindTreeSelector({
|
||||
inputTextId: "department",
|
||||
inputValueId: "departmentId",
|
||||
panelId: "orgContentCzl",
|
||||
treeId: "departmentTree",
|
||||
ajaxUrl: request_url + "/czl/publicLogin/getDeptTree",
|
||||
extraSet: function (node) {
|
||||
examPerfession = node.id;
|
||||
isParent = node.isParent;
|
||||
typeId = node.type;
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
bindTreeSelector({
|
||||
inputTextId: "departmentldlz",
|
||||
inputValueId: "departmentIdldlz",
|
||||
panelId: "orgContentLdlz",
|
||||
treeId: "departmentTreeldlz",
|
||||
ajaxUrl: request_url + "/ldlz/publicLogin/getDeptTree",
|
||||
extraSet: function (node) {
|
||||
examPerfessionLdlz = node.id;
|
||||
isParentLdlz = node.isParent;
|
||||
typeIdLdlz = node.type;
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
// 通用树组件:绑定一个树选择器
|
||||
function bindTreeSelector(options) {
|
||||
const {
|
||||
inputTextId, // 点击显示树的文本框 ID
|
||||
inputValueId, // 隐藏 value(ID)字段 ID
|
||||
panelId, // 树的弹出容器 ID
|
||||
treeId, // zTree 的 <ul> 元素 ID
|
||||
ajaxUrl, // 获取树结构的接口
|
||||
extraSet = null // 点击节点时执行的额外逻辑(可选)
|
||||
} = options;
|
||||
|
||||
let panelVisible = false;
|
||||
|
||||
// 1. 初始化树
|
||||
function loadTree() {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: ajaxUrl,
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
$.fn.zTree.init($("#" + treeId), {
|
||||
view: { dblClickExpand: false, selectedMulti: false, nameIsHTML: true },
|
||||
data: { simpleData: { enable: true } },
|
||||
callback: {
|
||||
onClick: onNodeClick
|
||||
}
|
||||
}, res.data || res.obj);
|
||||
},
|
||||
error: function () {
|
||||
console.error("树加载失败:" + ajaxUrl);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
loadTree();
|
||||
|
||||
// 2. 显示/隐藏
|
||||
function togglePanel() {
|
||||
if (panelVisible) {
|
||||
hidePanel();
|
||||
} else {
|
||||
const $input = $("#" + inputTextId);
|
||||
const pos = $input.position();
|
||||
|
||||
$("#" + panelId)
|
||||
.css({
|
||||
left: pos.left + "px",
|
||||
top: pos.top + $input.outerHeight() + "px",
|
||||
width: $input.outerWidth() + "px"
|
||||
})
|
||||
.slideDown("fast");
|
||||
|
||||
panelVisible = true;
|
||||
}
|
||||
}
|
||||
|
||||
function hidePanel() {
|
||||
$("#" + panelId).fadeOut("fast");
|
||||
panelVisible = false;
|
||||
}
|
||||
|
||||
// 3. 点击树节点事件
|
||||
function onNodeClick(event, tid, node) {
|
||||
if (!node) return;
|
||||
|
||||
const zTree = $.fn.zTree.getZTreeObj(treeId);
|
||||
const pathNodes = node.getPath();
|
||||
|
||||
let pathText = pathNodes.map(n => n.name).join("/");
|
||||
let idValue = node.id;
|
||||
|
||||
$("#" + inputTextId).val(pathText);
|
||||
$("#" + inputValueId).val(idValue);
|
||||
|
||||
if (extraSet && typeof extraSet === "function") {
|
||||
extraSet(node);
|
||||
}
|
||||
|
||||
hidePanel();
|
||||
}
|
||||
|
||||
// 4. 点击输入框显示树
|
||||
$("#" + inputTextId).on("click", function () {
|
||||
togglePanel();
|
||||
return false;
|
||||
});
|
||||
|
||||
// 点击空白关闭(如需要)
|
||||
$(document).on("click", function (e) {
|
||||
if (!$(e.target).closest("#" + panelId).length &&
|
||||
!$(e.target).is("#" + inputTextId)) {
|
||||
hidePanel();
|
||||
}
|
||||
});
|
||||
}
|
||||
Loading…
Reference in New Issue