Ant Design of Vue中table的列表中显示图片

<template>
  
  <a-card :bordered="false">
    <s-table
      ref="table"
      size="default"
      bordered
      rowKey="examId"
      :columns="columns"
      :data="loadData"
      dataPath="informationList"
      showPagination="auto"
    >
    //展示图片
      <span slot="pic" slot-scope="text, record">
        <img style="width:50px;heigth:50px" :src="record.informationThumb" />
      </span>
     <span slot="action" slot-scope="text, record">
        <template>
          <a @click="modification(record)">修改</a>
          <a-divider type="vertical" />
          <a @click="close(record)" v-if="record.publishStatus == 1">关闭</a>

          <a-popconfirm
            title="确定要发布?"
            @confirm="handlePush(record)"
            okText="确定"
            cancelText="取消"
            v-if="record.publishStatus == 0"
          >
            <a herf="#" v-if="record.publishStatus == 0">发布</a>
          </a-popconfirm>
        </template>
      </span>
    </s-table>
    <addConsult ref="addConsult" @ok="handleOk" />
  </a-card>
</template>

<script>
import { STable, Ellipsis } from '@/components'
import { ERR_OK } from '@/utils/util'
import mixinCodeList from '@/utils/mixinCodeList'
export default {
  name: 'CarList',
  mixins: [mixinCodeList],
  components: {
    STable,
    Ellipsis 
  },
  data() {
    return {
      createValue: [],
      mdl: {},
      // 查询参数
      queryParam: {},
      // 表头
      columns: [
        {
          title: '标题',
          dataIndex: 'informationTitle'
        },
        {
          title: '标题图片',
          dataIndex: 'informationThumb',
          scopedSlots: { customRender: 'pic' }
        },
        {
          title: '频道',
          // dataIndex: 'updataTime'
          scopedSlots: { customRender: 'informationType' }
          // sorter: true
        },
        {
          title: '种类',
          dataIndex: 'updataTime'
          // sorter: true
        },
        {
          title: '阅读',
          dataIndex: 'readCnt'
        },
        {
          title: '点赞',
          dataIndex: 'praiseCnt'
          // scopedSlots: { customRender: 'status' }
        },

        {
          title: '评论',
          dataIndex: 'commentCnt'
          // sorter: true
        },
        {
          title: '置顶',
          scopedSlots: { customRender: 'stickStatus' }
        },

        {
          title: '发布状态',
          // dataIndex: 'publishStatus'
          scopedSlots: { customRender: 'publishStatus' }
          // sorter: true
        },
        {
          title: '操作',
          dataIndex: 'action',
          width: '150px',
          scopedSlots: { customRender: 'action' }
        }
      ],
      parameter: null,
      // 加载数据方法 必须为 Promise 对象
      loadData: parameter => {
        this.parameter = parameter
        // console.log(Object.assign(parameter, this.queryParam))
        return getInformationListByPage(Object.assign(parameter, this.queryParam)).then(res => {
          if (res.errorCode === ERR_OK) {
            console.log(res)
            return res
          }
        })
      },
      informationStateList: [
        {
          id: '1',
          text: '发布'
        },
        {
          id: '0',
          text: '关闭'
        }
      ],
      kindType: [
        {
          id: '1',
          text: '图文'
        },
        {
          id: '2',
          text: '视频'
        }
      ],
      channelType: [
        {
          id: '1',
          text: '医护'
        },
        {
          id: '2',
          text: '婴儿'
        }
      ],
      stickType: [
        {
          id: '1',
          text: '置顶'
        },
        {
          id: '0',
          text: '未置顶'
        }
      ]
    }
  },


}


在这里插入图片描述

Ant Design VueTable组件通常用于展示数据列表,并且支持通过点击某一行插入一个新的详情行。这通常涉及到表格的“编辑”或“详情查看”功能,可以分为以下几个步骤: 1. 安装依赖:首先确保已经安装了`@ant-design/vue-table`库。 2. 设置表头:在`<a-table>`标签内配置列定义,包括是否显示编辑按钮(如操作列),例如添加`editable`属性。 ```html <a-table :columns="columns" :data="tableData" :editable="{ type: 'cell', onCell: handleEditCell }"> ... </a-table> ``` 3. 编辑函数:定义`handleEditCell`函数,当用户点击编辑按钮时,会在这个函数里处理细节操作,比如打开新的模态框展示详情或允许用户输入新数据。 ```javascript methods: { handleEditCell(record) { // 打开编辑模态或跳转到详情页面 this.$router.push({ name: 'detail', params: { id: record.id } }); } } ``` 4. 插入详情页:创建一个新的路由组件`Detail.vue`或弹出式模态组件,用于显示或编辑详细的记录信息。 5. 返回或保存编辑:在详情页或模态完成编辑后,用户可以选择返回并更新原数据,这时需要将修改的数据传递回`tableData`数组。 请注意,以上代码示例简略,实际项目可能还需要处理更多复杂情况,例如使用Form组件收集用户输入、校验数据等。如果你需要在插入详情行后立即显示,可以考虑在`handleEditCell`直接合并数据,而不是新开页面。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值