游客发表
layui做后台管理界面,用i页最省事的户管地方在于它把表格、表单、理系弹层这些高频组件都封装好了。用i页你不需要从零写CSS,户管也不用纠结分页逻辑怎么跟后端对接——它自带的理系分页组件传个page和limit参数就完事。我去年帮一个做建材批发的用i页客户改后台,他们原来的户管用户列表用原生table写,翻页要刷新整页,理系换成layui的用i页table模块后,数据渲染和分页全在ajax里完成,户管老板点下一页时连白屏都没出现。理系
先看用户列表页的用i页骨架。一个标准的户管layui用户管理界面,顶部是理系搜索栏,中间是数据表格,右侧或底部放操作按钮。搜索栏通常用form表单横向排列,输入框加select下拉,再加个“搜索”按钮。代码大概长这样:
<div class="layui-form layui-card-header"> <div class="layui-inline"> <input type="text" name="username" placeholder="用户名" class="layui-input"> </div> <div class="layui-inline"> <select name="status"> <option value="">全部状态</option> <option value="1">正常</option> <option value="0">禁用</option> </select> </div> <button class="layui-btn" lay-submit lay-filter="search">搜索</button> </div> 表格部分用layui的table.render。注意几个细节:cols里每一列的field要和后端返回的JSON字段名一致,templet可以自定义渲染,比如给状态列加个颜色标签。我习惯把操作列宽度设成180,里面放“编辑”“重置密码”“禁用”三个按钮,用layui-btn-xs缩小尺寸。有个坑是,如果表格数据量大,记得开page: true并设置limits: [10,20,30,50],不然默认每页10条翻页翻到崩溃。
新增和编辑用户一般用弹层。layui的layer.open配type: 1,content可以传一个隐藏的div,也可以直接传HTML字符串。我偏向在页面里预埋一个form模板,用display:none藏着,弹层时再显示。表单验证用layui的lay-verify,比如lay-verify="required|phone"能直接校验手机号。提交时监听submit事件,把数据序列化后发ajax。这里有个小技巧:如果编辑时要回显密码字段,别直接填明文,留空表示不修改,后端根据空值跳过更新。
删除和批量操作得加确认框。layer.confirm的文案别写“确定删除吗”,太干。我一般写成“删除后该用户无法登录,且关联的订单记录会保留但无法查看详情,确认继续?”——把后果说清楚,运营人员点的时候会多看一眼。批量删除要先取table.checkStatus('userTable').data,拿到选中行的数组,再拼ids传给后端。
权限控制这块layui本身不提供,得自己在前端做按钮显隐。比如普通管理员看不到“删除”按钮,就在templet里判断当前登录角色,返回空字符串或者一个禁用的span。但别依赖前端,后端接口必须再验一次权限。我见过一个项目前端把删除按钮藏了,结果接口没鉴权,有人直接调API删了三百多个用户。
最后说样式微调。layui默认的表格行高偏矮,如果用户信息里包含头像和两行文字,得用css把td的padding调大。还有分页栏,默认居右,想居中就加个style。搜索栏的select在移动端会撑不开,加个layui-inline和固定宽度就行。整体配色别乱改,layui的经典蓝灰虽然老气,但后台系统稳定比好看重要。真要换主题,用layui的theme变量覆盖,别直接改源码,不然升级时哭都来不及。
友情链接