追逐_梦想

追逐_梦想

310飞吻 2016-12-27 加入 来自浦东新区

(这个人懒得留下签名)

追逐_梦想 最近的提问

追逐_梦想 最近的回答

  • 2小时前询问框“确定”、“取消”按钮如何换位置中回答:

    @时间戳 这个还复杂啊。。。 只是利用aop的概念重写了一下 open方法。 这个是我自定义的函数。
  • 5天前lay-verify="email" 中回答:

    在一个全局的JS里面覆盖即可,以下代码仅供参考
    form.verify({
    "email"(value, item) {
    if ($strings.isBlank(value)) {
    return
    }
    if (!/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(value)) {
    return '邮箱格式不正确'
    }
    }
    });
  • 5天前询问框“确定”、“取消”按钮如何换位置中回答:

    假如你是想换个样式或者覆盖默认的某些操作,可以考虑增强下layer.open,下面是我的代码,仅供参考
    /**
    * 增强layer功能
    * 1、增加 layer.open {@code btnConfirmIndex} 参数,用于设置确认按钮索引,以修改默认样式
    */
    if (layui && layui.layer && !layui.layer.$enhanced) {

    let $open = layer.open
    layer.open = (config) => {
    let btnConfirmIndex = config.btnConfirmIndex
    if (!btnConfirmIndex) {
    return $open(config)
    }
    let $success = config.success
    config.success = (layero, index) => {
    layui.$(`${layero.selector} .layui-layer-btn->a:eq(0)`).removeClass("layui-layer-btn0")
    layui.$(`${layero.selector} .layui-layer-btn->a:eq(${btnConfirmIndex})`).addClass("layui-layer-btn0")
    $success && $success(layero, index)
    }

    return $open(config)
    }

    layui.layer.$enhanced = true
    }
  • 7天前layer弹出层的第一个按钮回调是yes怎么修改?中回答:

    可以考虑增强一下layer.open方法,下面是我的代码,仅供参考

    /**
    * 增强layer功能
    * 1、增加 layer.open {@code btnConfirmIndex} 参数,用于设置确认按钮索引,以修改默认样式
    */
    if (layui && layui.layer && !layui.layer.$enhanced) {

    let $open = layer.open
    layer.open = (config) => {
    let btnConfirmIndex = config.btnConfirmIndex
    if (!btnConfirmIndex) {
    return $open(config)
    }
    let $success = config.success
    config.success = (layero, index) => {
    layui.$(`${layero.selector} .layui-layer-btn->a:eq(0)`).removeClass("layui-layer-btn0")
    layui.$(`${layero.selector} .layui-layer-btn->a:eq(${btnConfirmIndex})`).addClass("layui-layer-btn0")
    $success && $success(layero, index)
    }

    return $open(config)
    }

    layui.layer.$enhanced = true
    }
  • 2019-9-4 15:43:10针对 layui table 做了一系列增强,分享给大家中回答:

    @不完全果皮箱 QQ:510835147
  • 2019-9-4 15:30:5针对 layui table 做了一系列增强,分享给大家中回答:

    @不完全果皮箱 $strings 是我自定义的一个字符串工具类,我重新修改了一下帖子,你重新copy一下试试
  • 2019-8-29 9:51:40表格中新增一行,新增的下拉框无法下拉显示中回答:

    你是通过什么样的方式新增的一行嘞? table.cache.push()???


    你可以尝试下 push之后进行reload

    或者参考我的帖子:https://fly.layui.com/jie/55345/
  • 2019-8-29 9:47:30为什么可编辑表格的官方文档里,没有新增一行的文档?中回答:

    也可参考我的帖子:https://fly.layui.com/jie/55345/
  • 2019-8-29 9:46:30table组件优化中回答:

    第一个可参考我的帖子,https://fly.layui.com/jie/55345/

    第二个,我也有这想法, 不过看了下源码,这个没有好的办法能扩展,只有改源码了
  • 2019-8-29 9:23:55针对 layui table 做了一系列增强,分享给大家中回答:

    @leeqico
    将上面的JS放到一个单独的文件中,例如:main.js

    !(function () {
    // 上面的JS copy至这个位置
    })()
    html中使用时,先加载 layui.all.js,再加载 main.js
    <script src="/lib/layui/layui.all.js"></script>
    <script src="/scripts/main.js"></script>
    再按正常的方式渲染表格
    layui.table.render({
    id: "listTable",
    elem: '#listTable',
    ............................. // 更多配置参考 官方文档
    })



    layui.table.addRow("listTable", 0 , { "name": "xxxx" } )
    layui.table.deleteRow("listTable", 0 )

    let ins = layui.table.getInstance("listTable")
    console.log(ins.config.cols) // 获取表格列名列表
  • 2019-8-16 22:34:30针对 layui table 做了一系列增强,分享给大家中回答:

    @唐麻花 放在一个能访问的 layui.table 的地方就可以了呀。 你放到一个单独的JS、再引入就好了
  • 2019-8-2 15:44:16静态表格的增删改中回答:

    好麻烦,上一份我实现的,仅供参考

        let $ = layui.$, table = layui.table, form = layui.form

    /**
    * 可编辑表格相关工具
    *
    */
    let editable = {

    /**
    * 监听表格,当表格的可编辑内容(文本框、下拉框、复选框等) 值改变后,同步更新表格缓存的值
    * @param tableId
    */
    watch(tableId) {
    if ($strings.isBlank(tableId)) {
    throw new Error(`The parameter tableId cannot be blank`)
    }
    if (!layui.table.cache[tableId]) {
    throw new Error(`The table ${tableId} is not exist,please first to init`)
    }
    let instance = table.getInstance(tableId)
    if(instance && instance.$watched ){
    // 已经监听,不再进行重复监听
    return
    }

    let trs = $(`[lay-id='${tableId}'] .layui-table tr:gt(0)`)

    // 监听文本框,当值有更新时,修改缓存中的数据
    $(document).on('change', `[lay-id='${tableId}'] .layui-table input[data-name]`, (e) => {
    let row = e.target.getAttribute('data-index')
    let name = e.target.getAttribute('data-name')
    layui.table.cache[tableId][row][name] = e.target.value
    })

    // 监听下拉框,当值有更新时,修改缓存中的数据
    let selects = $(`[lay-id='${tableId}'] .layui-table select[data-name] `)
    for (let i = 0; i < selects.length; i++) {
    let select = selects[i]
    form.on(`select(${select.getAttribute('lay-filter')})`, function (obj) {
    let row = obj.elem.getAttribute('data-index')
    let name = obj.elem.getAttribute('data-name')
    table.cache[tableId][row][name] = obj.value
    });
    }

    let checkboxs = $(`[lay-id='${tableId}'] .layui-table input[type='checkbox'][data-name] `)
    for (let i = 0; i < checkboxs.length; i++) {
    let checkbox = checkboxs[i]
    form.on(`checkbox(${checkbox.getAttribute('lay-filter')})`, function (obj) {
    let row = obj.elem.getAttribute('data-index')
    let name = obj.elem.getAttribute('data-name')
    table.cache[tableId][row][name] = obj.elem.checked ? 1 : 0
    });
    }

    instance.$watched = true
    },
    }

    window.$editable = editable
    使用方法:$editable.watch('table_id')
    获取数据:layui.table.cache['table_id']

    table.getInstance(id)
    此方法实现逻辑可参考:https://fly.layui.com/jie/55345/
  • 2019-7-28 23:1:4针对 layui table 做了一系列增强,分享给大家中回答:

    @唐麻花 layui.table.renderSpecRow('table_id', row_index, { column_name: "column_value" })
  • 2019-7-20 20:10:44table 数据表格优化建议中回答:

    https://fly.layui.com/jie/55345/

    我实现了其中一些功能,已发帖分享,等审核通过就能看到了


  • 2019-7-19 14:50:22强烈建议!!!! 为 table 异步数据接口 请求失败时 给一个回调.中回答:

    我觉得你可以针对 ajax 进行扩展,统一的方法拦截



    我数据访问用的 axios,为了和 layui 进行兼容,做了以上扩展,仅供参考
  • 2019-7-1 14:23:49数据表格工具栏不能更新中回答:



    今天也有这方面的需求,找资料找了半天没看到,没办法去跟了下源码。。
    虽然这个问题比较久了,不过为了能够帮助到后面的人,还是回答一下这个问题。。