vue-split-table【表格合并和编辑插件】

vue-split-table应用的效果图

vue-split-table开源地址,欢迎star,现在已经开源和同步到npm上 轻松搞定表格拆分或者合并,编辑,再也不怕被产品怼啦

1.核心源码分析

  1. 里面嵌套实现表格拆分;
  2. 原生实现复选框的单选和全选功能;
  3. props属性像父组件暴露属性值;
  4. $emit自定义事件方法向父组件传值;
  5. 作用域插槽由父向子传入html标签;
  6. 嵌套input标签实现表格编辑,v-for不允许input标签里面使用v-model改变item值问题解决;
  7. webpack打包配置
  8. vue-split-table开源地址,欢迎star和pr

    2.暴露的Attributes

    参数说明类型是否必传Default
    headData表头内容Array必传-
    bodyData表体内容Array必传-
    checkFlag是否有复选列Boolean可选True
    tableEditFlag表格是否可编辑Boolean可选True
    operFlag是否有操作列Boolean可选True

    3.暴露的Events

    name说明参数
    multipleData当选项发生变化触发multipleData
    editData表格编辑文本框失焦触发editData

    4.slot

    事件名说明
    operate配置操作列后就可通过设置slot来配置操作的内容

    5.撸起示例代码

    基于vue工程
    <template>
      <split-table :headData="headData" :bodyData="bodyData" @multipleData="multipleData" @editData="editData">
        <template slot="operate" slot-scope="props">
          <span @click="splitEdit(props.rowData)">修改</span>
          <span @click="splitAdd(props.rowData)">新增</span>
          <span @click="splitDel(props.rowData)">删除</span>
        </template>
      </split-table>
    </template>
    
    <script>
      import SplitTable from 'vue-split-table';
      export default {
        components: { SplitTable },
        data () {
          return {
             headData: ["城市", "美食", "好玩的地方"],
          bodyData: [
            { city: "北京", food: "北京烤鸭", fun: ["故宫", "颐和园", "长城"] },
            {
              city: "深圳",food: ["肠粉", "牛肉火锅"],fun: ["西冲", "华侨城", "世界之窗"]
            },
            {
              city: ["重庆", "成都", "武汉"],
              food: ["重庆老火锅","重庆烤鱼","重庆小面","成都小吃","武汉热干面"],
              fun: ["洪崖洞", "峨眉山", "黄鹤楼"]
            }
          ], 
          }
        },
        methods: {
        splitEdit(rowData) {
          console.log("rowData值为", rowData);
        },
    
        editData(data) {
          console.log("编辑所在行的值为", data);
        }
    
        splitAdd(data) {
          console.log("新增所在行的值为", data);
        },
    
        splitDel(data) {
          console.log("删除所在行的值为", data);
        },
    
        multipleData(data) {
          console.log("复选框选择的值为", data);
        }
        }
      }
    </script>
    

    参考文章:

    时钟组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值