YnRealNameWeb/modules/bmw/src/main/resources/static/pages/role/addRole.html

358 lines
13 KiB
HTML

<!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);
}
ul .ztree {
width: 250px;
}
</style>
<body>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<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"><i class="tip-required" style="color: red; font-size: 20px">*</i>公司名称</label>
<div class="col-md-10">
<select id="companyId" 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="角色名称 不能为空">
<input type="text" hidden name="oldName" id="oldName">
</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="level" name="level" class="form-control selectpicker show-tick"
data-live-search="true"
data-bv-notempty="true" data-bv-notempty-message="">
<option value="1">公司级</option>
<option value="2">分公司级</option>
<option value="3">项目部级</option>
<option value="4">分包商级</option>
<option value="5">施工人员级</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" style="display: flex; align-items: center; justify-content: space-between; width: 50%;">
<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="location.href='roleList.html'">返回</button>
<button class="btn btn-primary" permission="sys:role:add" type="submit" onclick="add()">
<i class="fa fa-save"></i> 保存
</button>
</div>
</div>
</div>
</fieldset>
</form>
</div>
<script type="text/javascript" src="../../js/libs/jquery-3.6.0.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/MyRole/ztree-menu.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" src="../../js/select.js"></script>
<script type="text/javascript">
layui.use(['layer', 'laydate', 'form'], function () {
var layer = layui.layer;
var form = layui.form;
getPickerCompany("");
$('#companyId').selectpicker({
'selectedText': 'cat'
});
$(".selectpicker").selectpicker({
noneSelectedText: '请选择'//默认显示内容
});
let isRequired = false;
$("#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();
});
initData();
});
$.fn.zTree.init($("#treeDemo"), getSettting(), getMenuBackTree());
$.fn.zTree.init($("#treeAppDemo"), getSettting(), getMenuAppTree());
function initData() {
var id = getUrlParam("id");
if (id != "") {
$.ajax({
type: 'get',
url: ctxPath + '/roles/' + id,
async: false,
success: function (data) {
//回显参数
$("#id").val(data.id);
$("#name").val(data.name);
$("#oldName").val(data.name);
$("#description").val(data.description);
//checkbox回显
checkFindData(data.status);
//多选checkbox回显
selectedTypes(data.type);
//下拉框回显
// getPickerCompany("");
$("#companyId").selectpicker('val', data.companyId);
$("#companyId").selectpicker('refresh');
$("#level").selectpicker('val', data.level);
$("#level").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 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: ctxPath + '/roles',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(formdata),
success: function (data) {
if(data.code == 200){
layer.msg("成功", {shift: -1, time: 1500}, function () {
location.href = ctxPath + "/pages/role/roleList.html";
});
}else {
layer.msg(data.msg);
}
}
});
}
//获取注册按钮
function findCheck() {
var check = document.getElementById("checkInput");
if (check.checked) {
return "1";
} else {
return "0";
}
}
/**
* picker类型下拉选
* @param companyId 回显使用,不回显传空
*/
function getPickerCompany(companyId) {
$("#companyId").html("");
$.ajax({
type: 'get',
url: IP_URL + '/system/select/getCompany',
async: false,
success: function (data) {
if(data.code == 200){
let html = '<option value="">--请选择公司--</option>';
let resultObj = data.data;
let htm = setOption(companyId,resultObj,html);
$("#companyId").html(htm).selectpicker('refresh');
// layui.form.render();
}
},
error: function (err) {
console.log("获取公司下拉列表出错:", err);
}
});
}
</script>
</body>
</html>