This commit is contained in:
walkor 2022-12-19 11:48:02 +08:00
parent 30508c0a68
commit 35a9e84b71
5 changed files with 85 additions and 53 deletions

View File

@ -60,10 +60,14 @@ class RoleController extends Crud
return view('role/update');
}
[$id, $data] = $this->updateInput($request);
// id为1的管理员权限固定为*
// id为1的权限权限固定为*
if (isset($data['rules']) && $id == 1) {
$data['rules'] = '*';
}
// id为1的上级pid固定为0
if (isset($data['pid']) && $id == 1) {
$data['pid'] = 0;
}
$this->doUpdate($id, $data);
return $this->json(0);
}

View File

@ -10,6 +10,7 @@ use plugin\admin\app\model\Base;
* @property string $rules 权限
* @property string $created_at 创建时间
* @property string $updated_at 更新时间
* @property integer $pid 上级id
*/
class Role extends Base
{

View File

@ -10,44 +10,7 @@
<body class="pear-container">
<!-- 顶部查询表单 -->
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form top-search-from">
<div class="layui-form-item">
<label class="layui-form-label">角色名</label>
<div class="layui-input-block">
<input type="text" name="name" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-block">
<div class="layui-input-block" id="created_at">
<input type="text" autocomplete="off" name="created_at[]" id="created_at-date-start" class="layui-input inline-block" placeholder="开始时间">
-
<input type="text" autocomplete="off" name="created_at[]" id="created_at-date-end" class="layui-input inline-block" placeholder="结束时间">
</div>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label"></label>
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query">
<i class="layui-icon layui-icon-search"></i>查询
</button>
<button type="reset" class="pear-btn pear-btn-md" lay-submit lay-filter="table-reset">
<i class="layui-icon layui-icon-refresh"></i>重置
</button>
</div>
<div class="toggle-btn">
<a class="layui-hide">展开<i class="layui-icon layui-icon-down"></i></a>
<a class="layui-hide">收起<i class="layui-icon layui-icon-up"></i></a>
</div>
</form>
</div>
</div>
<!-- 数据表格 -->
<div class="layui-card">
@ -76,6 +39,7 @@
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script src="/app/admin/admin/js/common.js"></script>
<script>
// 相关常量
@ -86,14 +50,6 @@
const INSERT_URL = "/app/admin/role/insert";
const UPDATE_URL = "/app/admin/role/update";
// 字段 创建时间 created_at
layui.use(["laydate"], function() {
layui.laydate.render({
elem: "#created_at",
range: ["#created_at-date-start", "#created_at-date-end"],
});
})
// 表格渲染
layui.use(["table", "form", "common", "popup", "util"], function() {
let table = layui.table;
@ -109,7 +65,6 @@
},{
title: "主键",
field: "id",
hide: true,
},{
title: "角色名",
field: "name",
@ -131,12 +86,24 @@
},{
title: "更新时间",
field: "updated_at",
},{
title: "上级id",
field: "pid",
templet: function (d) {
let field = "pid";
if (typeof d[field] == "undefined") return "";
let items = [];
layui.each((d[field] + "").split(","), function (k , v) {
items.push(apiResults[field][v] || v);
});
return util.escape(items.join(","));
}
},{
title: "操作",
toolbar: "#table-bar",
align: "center",
fixed: "right",
width: 130,
width: 120,
}
];
@ -166,8 +133,10 @@
// 获取表格中下拉或树形组件数据
let apis = [];
apis.push(["rules", "/app/admin/rule/get?type=0,1,2"]);
apis.push(["pid", "/app/admin/role/select?format=tree"]);
let apiResults = {};
apiResults["rules"] = [];
apiResults["pid"] = [];
let count = apis.length;
layui.each(apis, function (k, item) {
let [field, url] = item;

View File

@ -27,6 +27,13 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">上级id</label>
<div class="layui-input-block">
<div name="pid" id="pid" value="" ></div>
</div>
</div>
</div>
</div>
@ -47,6 +54,7 @@
<script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script>
// 相关接口
@ -65,8 +73,29 @@
name: "rules",
initValue: initValue,
data: e.data,
tree: {"show":true},
toolbar: {"show":true,"list":["ALL","CLEAR","REVERSE"]},
tree: {"show":true,expandedKeys:initValue},
toolbar: {show:true,list:["ALL","CLEAR","REVERSE"]},
})
}
});
});
// 字段 上级id pid
layui.use(["jquery", "xmSelect"], function() {
layui.$.ajax({
url: "/app/admin/role/select?format=tree",
dataType: "json",
success: function (e) {
let value = layui.$("#pid").attr("value");
let initValue = value ? value.split(",") : [];
layui.xmSelect.render({
el: "#pid",
name: "pid",
initValue: initValue,
data: e.data,
model: {"icon":"hidden","label":{"type":"text"}},
clickClose: true,
radio: true,
})
}
});

View File

@ -27,6 +27,13 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">上级id</label>
<div class="layui-input-block">
<div name="pid" id="pid" value="" ></div>
</div>
</div>
</div>
</div>
@ -46,6 +53,7 @@
<script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script>
// 相关接口
@ -89,8 +97,29 @@
name: "rules",
initValue: initValue,
data: e.data,
tree: {show: true, expandedKeys: initValue},
toolbar: {show: true, list: ["ALL","CLEAR","REVERSE"]},
tree: {"show":true,expandedKeys:initValue},
toolbar: {show:true,list:["ALL","CLEAR","REVERSE"]},
})
}
});
});
// 字段 上级id pid
layui.use(["jquery", "xmSelect"], function() {
layui.$.ajax({
url: "/app/admin/role/select?format=tree",
dataType: "json",
success: function (e) {
let value = layui.$("#pid").attr("value");
let initValue = value ? value.split(",") : [];
layui.xmSelect.render({
el: "#pid",
name: "pid",
initValue: initValue,
data: e.data,
model: {"icon":"hidden","label":{"type":"text"}},
clickClose: true,
radio: true,
})
}
});