ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

表格选择器,能够直接打开对应的列表表格选择数据,支持多选和单选。

使用curd命令时,如果是关联表或明确指定table,则会使用本组件生成代码。

效果截图

会在表单中生成一个选择框,点击之后打开弹框,选择对应的数据。


打开的弹框页面就是实际的curd生成的页面,一般的定制开发不会影响表格选择器。

代码

  1. <div class="layui-form-item">
  2. <label class="layui-form-label">软件</label>
  3. <div class="layui-input-block">
  4. <div data-toggle="table-data"
  5. data-index="{:__url('app.program/index')}"
  6. data-select-index="{:__url('app.program/index',['status'=>1])}"
  7. data-readonly="1"
  8. data-select-type="radio"
  9. data-select-value="{$row.program_id|default=''}"
  10. data-value-field="id"
  11. data-name="program_id"
  12. data-field-name="title"
  13. data-type="input"
  14. data-required="1">
  15. </div>
  16. </div>
  17. </div>

参数

data-index

要加载数据的地址,一般是curd生成的页面地址,建议使用__url助手函数生成。

data-select-index

v2.0.114+

要打开的表格的页面,可不填,默认使用data-index。一般是curd生成的页面地址,建议使用__url助手函数生成。
有时候我们希望在打开页面选择时,传递特殊的参数,比如只加载status为开启的数据,这时候就可以在这个参数传递对应的值,比如

  1. data-select-index="{:__url('site.category/index',['status'=>1])}"

然后在对应的表格页面上获取url中的参数,实现默认搜索:

  1. defaultSearchValue: ua.getQueryVariable('status', '')

这样,在新打开的页面中,就只会加载status为1的数据了。

我们不能直接把status参数加到data-index的链接上,这可能导致表单中无法预览数据(因为数据的status被禁用了)

data-readonly

只读模式,不能选择和单选

data-select-type

选择器模式:

  • 单选:radio
  • 多选:checkbox

data-select-value

表单提交数据库的值,一般是要选择的数据的主键id。

这里提交的是program表的主键ID,存储的字段名是program_id

  1. data-select-value="{$row.program_id|default=''}"

data-value-field

打开的表格中,要选择的字段,如果不需要选择id,也可以选择title。

不过使用title时,可能再次打开弹框,会导致重名的title同样被过滤。

data-name

表单要提交的name,相当于input的name属性

data-field-name

匹配到数据后对应的名称,比如提交的id是1,这里会查询到1对应的记录的title字段。

data-required

是否必填

data-width

弹框宽度,默认自动获取

data-height

谭康高度,默认自动获取

data-placeholder

placeholder内容

data-type

输入框类型,支持:input,textarea

data-selectConfirmCallback

回调函数名,挂载到window上的一个函数,默认为:onTableDataConfirm,请不要冲突,如果冲突可以自定义一个名称。

data-trim

v2.0.113+

提交时是否在两侧添加逗号,,默认0,只有在多选时生效。
单选时无论如何设置,都不会拼接逗号。在多选时默认会拼接逗号。设置为1不会拼接逗号。

当多选时可以用like "%,id,%" 的方式查询,并且不影响直接in查询。(影响sql的in语句,但是tp会处理这种情况,会清空右侧的逗号,左侧拼接0,如果你的数据存在0,那么需要注意这一点)

原文标题:table-data列表选择器

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/632d141dcc809/zh-cn/2.x.html

原文平台:奥宏文档

2.x