这是一款可以赋予输入框更实用的表格选择器的能力, 就是这么简单
理论上兼容所有人类浏览器, 包括但不限于国产套壳浏览器及浏览器内置的极速模式. 谷歌/火狐浏览器, 可能在苹果设备上会有少许差异, 这个暂时无解. 因为本人穷, 买不起苹果! 也不喜欢苹果! 谢谢! 如果是 Mac 端遇到"兼容性"问题, 请自行 fork 一份代码解决后私信我. 代码合适的话会合并过来.
releases
页面找到压缩包.libs/layui_exts
layui.config
和 layui.extend
配置和注册扩展.layui.use
来引用和初始化扩展如果你是通过直接拉取本仓库的完整代码来"离线阅读"扩展. 那么可以了解下基本的目录格式.
example --- 示例目录
libs --- 扩展目录
libs/layui --- Layui 框架目录
libs/layui_exts --- 扩展目录
index.html --- 文档入口(基于docsify)
直接看示例页面, 通常该页面位于 example
目录下, 示例页面大概率包含了你想要的效果
学习一些 API, 你可以在本页面阅读或访问本项目的 Gitee Page
地址.
首先, 你需要引入 layui, 代码类似于这样
<!-- 引入layui -->
<script src="../libs/layui/layui.js"></script>
<link rel="stylesheet" href="../libs/layui/css/layui.css" />
你不需要单独引入扩展的 js 和 css 文件, layui 已经帮你简化了这些操作, 你可以使用类似于如下的代码来引入和注册扩展!
<!-- 配置扩展 -->
<script>
// 配置扩展路径
layui.config({
base: "../libs/layui_exts/",
});
// 注册扩展
layui.extend({
tableSelected: "tableSelected/index",
});
</script>
同样的, 你可以使用 layui 提供的 layui.use
方法来引入扩展, 如果你在 配置扩展 环节没有问题, 那么当你走到这一步的时候, 就等于已经成功了!
layui.use(["tableSelected"], function () {
// 引用扩展
var tableSelected = layui.tableSelected;
// 使用扩展的渲染函数初始化
tableSelected.render();
});
准备好了吗? 如果示例文件内的内容不能满足你的野心, 那么可以试试学习更多的 API, 看是否能满足你的需求, 如果不能, 你可以自行修改源代码或把你的诉求告诉作者并等待作者更新!
true
top
bottom
showSearchInput
使用更加刺激!100%
tableConfig
下配置表格高度解决rowKey
使用input
直接 value
属性的值limit=0
表示多选无上限limit=1
表示单选(radio)limit>1
比如 limit=2
表示多选且最多可以选 2 个(checkbox)分隔符
对象
确认在不同场景下的分隔符
可配置值:
native
,
render
,
rowKey,echoKey
使用event.formatRowKey
事件使用弹层内表单配置
对象
可配置项:
inputValue
inputPlaceholder
在列表内搜索
submitText
搜索
请选择
已选择%s个
%s
会被替换成实际的值确认
id,elem,done
三个被保留, 其他全部可直接使用官方的设置事件位于 event
下, 它看上去长得像这样
layui.use(["tableSelected"], function () {
var tableSelected = layui.tableSelected;
tableSelected.render(".checkbox_auto", {
event: {
beforeCreate: function () {},
created: function () {},
beforeMount: function () {},
mounted: function () {},
beforeUpdate: function () {},
updated: function () {},
formatRowKey: function () {},
tableDone: function () {},
change: function () {},
checked: function () {},
submit: function () {},
search: function () {},
checkbox: function () {},
radio: function () {},
},
});
});
古人云, 取其精华去其糟粕, Vue 大法好! 因此, 你同样可以看到和 Vue 生命周期一样的机制在扩展中的表达
相关数据的集合
相关数据的集合
知道你们没理解, 我来个简单的说明吧! 其实你们看示例就知道这个是干嘛的了..
场景举例
比如你现在在一个输入框选择用户, 你希望输入框内显示的是 玩家昵称(name)
但是录入的数据是 玩家ID(id)
, 这就分别对应着 echoKey(回显键名)
和 rowKey(行唯一标识)
很多场景下都分页的, 比如你客户一共 1W 人, 你不可能不分页直接一次性 1W 条数据全出来. 比如一页数据是 100
条, 但是由于你存的是 id
, 但你显示的是昵称.
这时候问题就来了, 比如选的用户有一个用户正好不是第一页的数据, 比如是第 101 条数据, 那么这时候, 由于扩展本身没有"下一页"的数据,
必然没办法吧 101 条记录的 id 转移成 name, 这个事件就是做这个用的. 传递 id, 让后端查出来给你就行了. 简单粗暴. 查完了 next 塞回去给扩展即可.
layui本身 table done 给你返回什么这里就返回什么
数据合集
数据合集
数据合集
数据合集
选中行数据集合
当前选中行
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。