吹一波element封装组件-D2-curd

1,715 阅读1分钟

第一次接触D2

刚刚入职公司,给我分配了后台管理系统的任务,只要使用Vue框架和D2组件。刚开始想,玩的还挺花,干嘛不直接用element!最后还是被打脸了,所以,不要用自己的逻辑去揣测领导的做法!下面说一下这个组件。

D2-crud

下面是文档地址

https://d2.pub/zh/doc/d2-crud-v2/

最简单表格和element相似::columns是动态表格头、:data="data"是数据。

 <d2-crud
 ref="d2Crud"
 :columns="columns"
 :data="data"/>

一个表格要有标题告诉用户这是什么表-- table-caption

<d2-container class="container">
    <table-caption >线上鉴定订单<black-filter @black-filter="handleBlackFilter" /></table-caption>
 <d2-crud
 ref="d2Crud"
 :columns="columns"
 :data="data"/>
</d2-container>

表格数据要进行搜索,那就用插槽,这样就吧输入框放在表格上,而且在标题下。 search-filter是我封装的子组件,里面有不同的输入框,并且通过$emit触发search函数。

 <d2-crud
 ref="d2Crud"
 :columns="columns"
 :data="data">
  <div class="content-filter" slot="header">
        <search-filter @filter-submit="search">
        </search-filter>
  </div>
</d2-crud>

如果要在表格行内进行操作,比如修改单独一行的数据,这样就可以使用了。其实就是父子传参那一套,d2-crud组件里用了@row-edit接受表格的传参

 <d2-crud
      ref="d2Crud"
      :columns="columns"
      :data="data"
      :rowHandle="rowHandle"
      @row-edit="handleRowEdit"
    >
data(){
    return{
        rowHandle: {
        columnHeader: '操作',
     
        custom: [
          { text: '修改', size: 'mini', type: 'primary',icon:"el-icon-info", emit: 'row-edit'},
        ]
      },
    }
}
  methods: {
  handleRowEdit({ index, row }){
  //index是第几行
  //row是这一行的数据
  console.log('修改函数')
  }
  }

一个简单表格页面就写好了

上面代码是最简单的页面,也是d2的基本功能。在文档的介绍里,功能众多,有脚手架快速建立项目,其中还封装了表格的导入导出,不过目前我还没遇到导入。