hn_cloud_web/smz-web/pages/role/addRole.html

397 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-us" id="extr-page">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css">
<link rel="stylesheet" href="../../css/ztree/zTreeStyle/zTreeStyle.css" type="text/css">
<link rel="stylesheet" href="../../css/ztree/demo.css" type="text/css">
<link rel="stylesheet" type="text/css" media="screen" href="../../layui/css/layui.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap-select.min.css">
</head>
<style>
.switch {
width: 60px;
height: 34px;
margin-left: 1%;
position: relative;
display: inline-block;
}
#checkInput {
display: none;
}
.round {
border-radius: 24px;
}
.slider {
background-color: red;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
transition: all .4s;
cursor: pointer;
}
#sPan {
margin-top: 0.4%;
margin-left: 5%;
position: fixed;
}
.slider:after {
content: '';
width: 26px;
height: 26px;
display: block;
border-radius: 50%;
background-color: #fff;
position: absolute;
top: 4px;
left: 4px;
transition: all .4s;
}
#checkInput:checked + .slider {
background: #70B603;
}
#checkInput:checked + .slider:after {
transform: translateX(26px);
}
</style>
<body>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" style="padding: 0 24px 0 24px;">
<form class="form-horizontal" onsubmit="return false" id="form">
<fieldset>
<input type="hidden" id="id" name="id">
<!--<div class="form-group">-->
<!--<label class="col-md-2 control-label">公司名称</label>-->
<!--<div class="col-md-10">-->
<!--<input class="form-control" placeholder="公司名称" type="text" name="companyName" id="companyName"-->
<!--data-bv-notempty="true"-->
<!--data-bv-notempty-message="公司名称 不能为空">-->
<!--</div>-->
<!--</div>-->
<div class="form-group">
<label class="col-md-2 control-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>公司名称</label>
<div class="col-md-10">
<select id="orgId" name="companyId" class="form-control selectpicker show-tick"
data-live-search="true"
data-bv-notempty="true" data-bv-notempty-message="公司名称不能为空"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>角色名称</label>
<div class="col-md-10">
<input class="form-control" placeholder="角色" type="text" name="name" id="name"
data-bv-notempty="true"
data-bv-notempty-message="角色名称 不能为空">
</div>
<label id="roleLevelName" class="col-md-2 control-label"
style="color: red; margin-left: 11%;width: auto;"></label>
</div>
<div class="form-group">
<label class="col-md-2 control-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>角色级别</label>
<div class="col-md-10">
<select name="roleLevel" id="roleLevel" class="form-control layui-select">
<option value="1">公司级</option>
<option value="2">分公司级</option>
<option value="3">项目部级</option>
<option value="4">分包商级</option>
<option value="5">施工人员级</option>
<option value="6">总部</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>注册启用</label>
<label class="switch">
<input id="checkInput" type="checkbox"/>
<div id="btnCheck" class="slider round"></div>
<span id="sPan" style="color: red">*开启:用户注册可以选择该角色,关闭:不可选择</span>
</label>
</div>
<div class="form-group">
<label class="col-md-2 control-label"><i class="tip-required" style="color: red; font-size: 20px">*</i>权限类型</label>
<div class="col-md-10" style="margin-top: 0.5%;" id="types">
<input required lay-verify="required" type="checkbox" value="1"
name="permissionType"><label>大屏</label>
<input required lay-verify="required" type="checkbox" value="2"
name="permissionType"><label>后台</label>
<input required lay-verify="required" type="checkbox" id="work" value="3"
name="permissionType"><label>施工</label>
<input required lay-verify="required" type="checkbox" id="sup" value="4"
name="permissionType"><label>监督</label>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">描述</label>
<div class="col-md-10">
<textarea class="form-control" placeholder="描述" name="description" id="description"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">权限</label>
<div class="col-md-10">
<ul id="treeDemo" class="ztree"></ul>
<ul id="treeAppDemo" class="ztree"></ul>
</div>
</div>
<div class="form-actions">
<div class="row" align="center">
<div class="col-md-12">
<button class="btn btn-primary" onclick="cancel()">返回</button>
<button class="btn btn-primary" permission="sys:role:add" type="submit" onclick="add()">
保存
</button>
</div>
</div>
</div>
</fieldset>
</form>
</div>
<script type="text/javascript" src="../../js/libs/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../js/jq.js"></script>
<script type="text/javascript" src="../../js/plugin/bootstrapvalidator/bootstrapValidator.min.js"></script>
<script type="text/javascript" src="../../js/common.js"></script>
<script type="text/javascript" src="../../layui/layui.js"></script>
<script type="text/javascript" src="../../js/libs/jquery.ztree.all-3.5.min.js"></script>
<script type="text/javascript" src="../../js/my/ztree-menu.js"></script>
<script type="text/javascript" src="../../../public/public.js"></script>
<script type="text/javascript" src="../../js/publicJs.js"></script>
<script type="text/javascript" src="../../js/bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" src="../../js/bootstrap/bootstrap-select.min.js"></script>
<script type="text/javascript">
$(function () {
$('#orgId').selectpicker({
'selectedText': 'cat'
});
$(".selectpicker").selectpicker({
noneSelectedText: '请选择'//默认显示内容
});
});
layui.use(['layer', 'laydate', 'form'], function () {
var layer = layui.layer;
var form = layui.form;
$("#roleLevel").change(function () {
var opt = $("#roleLevel").val();
if (opt == 5 || opt == "5") {
document.getElementById("roleLevelName").innerText = "“角色名称”请填写“班组长”或“施工人员”";
} else {
document.getElementById("roleLevelName").innerText = "";
}
});
$("#work").change(function () {
if ($(this).is(':checked')) {
$('#sup').attr("disabled", 'disabled');
$("#pro-tip").css("display", "inline-block");
isRequired = true;
} else {
$("#pro-tip").css("display", "none");
$('#sup').removeAttr("disabled").prop();
isRequired = false;
}
form.render();
});
$("#sup").change(function () {
if ($(this).is(':checked')) {
$('#work').attr("disabled", 'disabled');
$("#pro-tip").css("display", "inline-block");
isRequired = true;
} else {
$("#pro-tip").css("display", "none");
$('#work').removeAttr("disabled").prop();
isRequired = false;
}
form.render();
});
getOrg(form);
initData(form);
});
$.fn.zTree.init($("#treeDemo"), getSettting(), getMenuBackTree());
$.fn.zTree.init($("#treeAppDemo"), getSettting(), getMenuAppTree());
function initData(form) {
var id = localStorage.getItem("roleId");
if (id != "") {
$.ajax({
type: 'get',
url: smz_ht_url + '/roles/' + id,
async: false,
success: function (data) {
//$("#companyName").val(data.companyName);
$("#id").val(data.id);
$("#name").val(data.name);
$("#description").val(data.description);
$("#roleLevel").find('option[value=\'' + data.roleLevel + '\']').prop("selected", "selected");
checkFindData(data.status);
selectedTypes(data.type);
console.log(data.companyId);
var company = data.companyId;
//getOrg(form);
//$("#orgId").val(company);
//form.render('select');
$("#orgId").selectpicker('val', company);
$("#orgId").selectpicker('refresh');
}
});
initMenuBackDatas(id);
initMenuAppDatas(id);
}
}
//是否启用赋值
function checkFindData(data) {
var check = document.getElementById("checkInput");
var btnCheck = document.getElementById("btnCheck");
if (data == "0") {
check.chechked = false;
} else if (data == "1") {
check.click();
check.chechked = true;
} else {
check.chechked = false;
}
}
function selectedTypes(type) {
if (type != null) {
$(type.split(",")).each(function (i, dom) {
$("input[name='permissionType'][value=" + dom + "]").prop("checked", true);
if (dom == 3) {
$('#sup').attr("disabled", 'disabled');
} else if (dom == 4) {
$('#work').attr("disabled", 'disabled');
}
});
}
}
$('#form').bootstrapValidator();
function add() {
var opt = $("#roleLevel").val();
if (opt == 5 || opt == "5") {
var name = $("#name").val();
if (name == '班组长' || name == '施工人员') {
} else {
layer.msg('请填写"班组长"或"施工人员"');
return;
}
} else {
}
var bootstrapValidator = $("#form").data('bootstrapValidator');
bootstrapValidator.validate();
if (!bootstrapValidator.isValid()) {
return;
}
var formdata = $("#form").serializeObject();
formdata.permissionIds = getCheckedMenuIds();
formdata.status = findCheck();//是否启用
var radio = document.getElementsByName("permissionType");
var type = "";
for (var j = 0; j < radio.length; j++) {
if (radio[j].checked) {
if (type != "") {
type += "," + radio[j].value;
} else {
type += radio[j].value;
}
}
}
formdata.type = type;//权限类型
$.ajax({
type: 'post',
url: smz_ht_url + '/roles',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(formdata),
success: function (data) {
layer.msg("成功", {shift: -1, time: 1000}, function () {
setTimeout("reloading()", 2100);
});
}
});
}
function getOrg() {
$.ajax({
type: 'post',
url: smz_ht_url + '/project/getCompanys',
async: false,
dataType: "json",
success: function (data) {
$("#orgId").empty();
var select = $("#orgId");
if (data.length > 1) {
select.append("<option value=''>请选择公司</option>");
}
for (var i = 0; i < data.length; i++) {
select.append("<option value='" + data[i].id + "'>" + data[i].name + "</option>");
}
select.selectpicker('refresh');
}
});
}
//获取注册按钮
function findCheck() {
var check = document.getElementById("checkInput");
if (check.checked) {
return "1";
} else {
return "0";
}
}
//设置弹窗关闭
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.example.ajax.reload(null, false); // 刷新页面
}
function cancel() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
}
</script>
</body>
</html>