Ant Design Vue笔记——表格详情

1.表格中添加详情按钮

<template>
  <a-table
    ref="table"
    size="middle"
    bordered
    rowKey="filename"
    :scroll="{x:true}"
    :columns="columns"
    :dataSource="dataSource">
        <span slot="action" slot-scope="text, record">
            <a @click="handleDetail(record)"> 详情 </a>
        </span>
  </a-table>
</template>

<script>
export default {
  name: 'dataRecord',
  data() {
    return {
      /* 表头 */
      columns: [
        {
          title: '序号',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function(t, r, index) {
            return parseInt(index) + 1
          }
        },
        {
          title: '文件名称',
          dataIndex: 'filename',
          align: 'center'
        },
        {
          title: '时间',
          dataIndex: 'time',
          align: 'center'
        },
        {
          title: '用户',
          dataIndex: 'username',
          align: 'center'
        },
        {
          title: '状态',
          dataIndex: 'status',
          align: 'center'
        },
        {
          title: '结果',
          dataIndex: 'action',
          scopedSlots: { customRender: 'action' },
          align: 'center'
        }
      ],
      dataSource: [
        {
          key: '1',
          filename: '胡彦斌.jpg',
          time: '2022.02.21',
          username:'户户',
          status: '成功',
        },
      ]
    }
  }
}
</script>

2.点击表格详情的时候获取父组件中的数据

(1)引入公共组件

        通过接口调用数据时,添加loadData方法.

        点击详情按钮调用的方法是handleDetail,将数据获取到传给公共组件

<template>
  <a-card>
    <a-table
      ref="table"
      size="middle"
      bordered
      rowKey="filename"
      :scroll="{x:true}"
      :columns="columns"
      :dataSource="dataSource">
        <span slot="action" slot-scope="text, record">
            <a @click="handleDetail(record)"> 详情 </a>
        </span>
    </a-table>
    <public-component-modules ref="modalForm"></public-component-modules>
  </a-card>
</template>

<script>
import { getAction } from '@api/manage'
import publicComponentModules from '@views/EcomLink/modules/publicComponentModules'

export default {
  name: 'dataRecord',
  components:{
    publicComponentModules
  },
  data() {
    return {
      /* 表头 */
      columns: [
        {
          title: '序号',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function(t, r, index) {
            return parseInt(index) + 1
          }
        },
        {
          title: '文件名称',
          dataIndex: 'filename',
          align: 'center'
        },
        {
          title: '时间',
          dataIndex: 'time',
          align: 'center'
        },
        {
          title: '用户',
          dataIndex: 'username',
          align: 'center'
        },
        {
          title: '状态',
          dataIndex: 'status',
          align: 'center'
        },
        {
          title: '结果',
          dataIndex: 'action',
          scopedSlots: { customRender: 'action' },
          align: 'center'
        }
      ],
      dataSource: [
        {
          key: '1',
          filename: '胡彦斌.jpg',
          time: '2022.02.21',
          username:'户户',
          status: '成功',
        },
      ],
    }
  },
  methods: {
    loadData() {
      getAction(this.url.list).then((res) => {
        if (res.success) {
          this.dataSource = res.result;
        }
      })
    },
    // 表格详情 弹窗
    handleDetail:function(record){
      this.$refs.modalForm.title="详情";
      this.$refs.modalForm.record(record)
    },
  }
}
</script>

(2)公共组件引入子组件

<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <!--  详情  -->
    <data-record-detail ref="record" @ok="submitCallback" :disabled="disableSubmit"></data-record-detail>

  </j-modal>
</template>

<script>
import dataRecordDetail from '@views/dataRecord/dataRecordDetail'
export default {
  name: 'publicComponentModules',
  components:{
    dataRecordDetail
  },
  data () {
    return {
      title:'',
      width:1400,
      visible: false,
      disableSubmit: false
    }
  },
  methods: {

    //详情
    record(data){
      this.visible = true
      this.$nextTick(()=>{
        this.$refs.record.show(data)
      })
    },

    add () {
      this.visible=true
      this.$nextTick(()=>{
        this.$refs.realForm.add();
      })
    },
    edit (record) {
      this.visible=true
      this.$nextTick(()=>{
        this.$refs.realForm.edit(record);
      })
    },
    close () {
      this.$emit('close');
      this.visible = false;
    },
    handleOk () {
      this.$refs.realForm.submitForm();
    },
    submitCallback(){
      this.$emit('ok');
      this.visible = false;
    },
    handleCancel () {
      this.close()
    }
  }
}
</script>

(3)子组件中将获取的数据转换为数组

        子组件获取到的数据为对象格式

        

        根据数据显示需求,此时我们需要将对象改为数组       

        在子组件代码中:

        

methods: {
  show(param) {
    this.visible = true
    this.source = param
    this.dataSource = [{}]
    let arr = new Array()
    for (const i in param){
      this.$set(this.dataSource[0], i,param[i])
    }
  }

}

        得到的数据格式如下:

         

         最终详情效果:

                

 

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ant Design Vue树形表格是一种基于Vue框架的组件,它可以用于展示具有层级关系的数据,例如文件夹结构、组织架构等。它具有可折叠、可拖拽、可排序等功能,可以方便地进行数据操作和展示。同时,Ant Design Vue树形表格还支持自定义样式和事件处理,可以满足不同场景下的需求。 ### 回答2: ant design vue树形表格是一种在vue框架下运用ant design组件库所开发的一种数据可视化展示方式。它不仅展示了表格数据的基本信息,而且通过嵌套层级的方式体现了数据的层次结构,让数据在视觉上更加直观、易于理解。树形表格可以应用于多个领域,如企业组织结构展示、财务数据展示等。 在实现树形表格时,需要通过父子关系的方式来描述数据之间的递进关系。在vue开发过程中,可以通过递归组件来实现树形表格的展示。ant design vue提供了一套完整的树形表格组件库,它可以帮助开发者轻松实现树形表格的各种样式和功能上的需求。 ant design vue树形表格的特点包括:可折叠展开、拖拽排序、筛选搜索、单元格编辑等。同时,ant design vue树形表格的样式也很美观、简洁,其风格也与ant design组件库的整体风格相呼应。开发者可以根据实际需求自由选择样式和功能,轻松实现自己想要的树形表格。 总的来说,ant design vue树形表格是一种功能强大、样式美观、易于使用的数据可视化展示方式,为开发者提供了极为方便的数据呈现方式。在企业信息化建设等领域应用广泛,为企业提供了更清晰的数据知晓方式,也提升了企业的数据处理效率。 ### 回答3: ant design vue树形表格是一个功能强大的Vue组件,它可以显示任意层级的数据,并支持展开/收起节点、勾选节点、展开/收起所有节点、获取勾选节点等多种操作。在数据量比较大、需要展示关系的数据时,使用树形表格会增加用户的使用体验,提高数据呈现的可读性和易用性。 ant design vue树形表格的核心思想是将树型结构转换为表格形式,每个节点都对应着表格中的一行数据。在这个组件中,我们可以通过配置来实现表格的样式、节点的展示、事件的响应等等。而且它提供了一系列的API,使得我们可以方便地控制数据的展示和交互,例如通过调用expandAll()方法一键展开所有节点,或者通过调用getRowKeys()方法获取当前勾选的节点。 在实际使用中,ant design vue树形表格的灵活性和可扩展性也给我们带来了很大的便利。我们可以通过自定义列、自定义节点、自定义图标等等组件和样式来满足不同的需求。同时,组件本身也支持多种选择器,方便我们快速定位到所需节点,进而进行数据操作。 在总体设计上,ant design vue树形表格的目标是提供一个易用、可靠、高性能、高度可定制的组件,方便处理大量数据和处理包含嵌套关系的数据。总的来说,它是一个出色的表格组件,强烈推荐使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值