vue+iview table列表新增一行数据(折叠/展开)展示

需求: 有个表单优化需求,需要把项目中所有的备注内容/意见反馈等超长的字段单独抽出来一行展示,有的要默认展开/有的收起来就整理了下

// 第一步: 新建一个组件,remarkContent跟用到的页面放在同一个文件夹下
<template>
   <div class='remark-content'>
     <Row>
        <Col>
           <span class='remark-key'>备注内容: </span>
           <span>{{ row }}</span>
        </Col>
     </Row>
   </div>
</template>

<script>
   export default {
       name:'remarkContent',
       props: {
          row: String
       }
       data () {
          return {}
        },
      created () {},
     //方法
      methods: {}
   }
</script>
<style lang='less' scoped>
  .remark-content {
     .remark-key {
        margin-right: 10px;
        font-weight: bold;
        color: #515a6e;
        font-size: 12px;
     }
  }
</style>

在用到组件的页面,render渲染出来(组件根据需求还可以更优化,比如key可以在父组件直接设置好传不同的值,子组件只负责展示字段,看个人需求优化)

// 我是在formShowRisk等表单页面用到组件remarkContent(提示:table组件的运用在iview官网有各种样子按需选择)
<template>
   <div class='form-show-risk'>
     <Table border stripe highlight-row :columns='columns' :data='data'></Table>
   </div>
</template>

<script>
  import remarkContent from './remarkContent';
   export default {
       components: { remarkContent }
       name:'formShowRisk',
       data () {
          return {
            columns: [
              {
               title: '展开', type: 'expand', width: '60',
               render: (h, params) => {
                  return h(remarkContent, {
                     props: {
                        row: params.row.content  // 传给子组件的值
                       }
                  })
                }
              },
              {title: '备注时间', key: 'createtime'},
              {title: '备注原因', key: 'addreason'},
              {title: '客户电话', key: 'clientphone'},
              {title: '备注列队', key: 'logrolename'},
              {title: '备注人', key: 'logusername'},
              {title: '计划回复时间', key: 'intendReply'}
            ],
            data: []
          }
        },
      created () {
        this.getLogList()
      },
      methods: {
        getLogList () {
          let url = this.C.Api.GET_TASKLOG_LIST  // 根据统一封装的axios,调取接口
          let params = {}
          http.post(url, params).then(res => {
            if (res.code == '000000') {
              for (let i=0; i<res.rows.length; i++) {
                res.rows[i]._expanded = true  // _expanded属性控制展开/关闭
              }
              this.data = res.rows
            }
          })
        }
      }
   }
</script>
<style lang='less' scoped>
  .form-show-risk {}
</style>

最后样式是这样的
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤来删除 Vue + iView 表格中的某一行数据: 1. 在表格中添加一个“删除”列,并在该列中添加一个“删除”按钮,例如,可以使用如下代码: ```html <template> <Table :columns="columns" :data="tableData"> <template slot="operations" slot-scope="{row}"> <Button type="error" @click="deleteRow(row)">删除</Button> </template> </Table> </template> <script> export default { data() { return { columns: [ { title: '姓名', key: 'name' }, { title: '年龄', key: 'age' }, { title: '性别', key: 'gender' }, { title: '操作', slot: 'operations', align: 'center' }, ], tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' }, ], }; }, methods: { deleteRow(row) { const index = this.tableData.indexOf(row); this.tableData.splice(index, 1); }, }, }; </script> ``` 在上面的代码中,我们在表格中添加了一个名为“operations”的插槽,该插槽对应了一个“删除”按钮,当用户点击该按钮时,会触发 `deleteRow()` 方法,该方法会从表格数据源中删除指定的行。 2. 最后,如果你想要删除某一行数据时,弹出一个确认框,让用户确认是否删除,可以使用 iView 的 `Modal` 对话框组件,例如,可以使用如下代码: ```html <template> <Table :columns="columns" :data="tableData"> <template slot="operations" slot-scope="{row}"> <Button type="error" @click="showDeleteConfirm(row)">删除</Button> </template> </Table> </template> <script> import { Modal } from 'iview'; export default { data() { return { columns: [ { title: '姓名', key: 'name' }, { title: '年龄', key: 'age' }, { title: '性别', key: 'gender' }, { title: '操作', slot: 'operations', align: 'center' }, ], tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' }, ], }; }, methods: { showDeleteConfirm(row) { Modal.confirm({ title: '确认删除', content: `是否删除 ${row.name}?`, onOk: () => { const index = this.tableData.indexOf(row); this.tableData.splice(index, 1); }, }); }, }, }; </script> ``` 在上面的代码中,我们使用了 iView 的 `Modal` 对话框组件,当用户点击“删除”按钮时,会弹出一个确认框,让用户确认是否删除该行数据。如果用户点击“确定”按钮,则会从表格数据源中删除该行数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值