vue表格-增加/删除一行

表格增加一行或者减少一行

xx.vue

<template>
  <div>
    <el-table :data="linkData" style="width:70%;" max-height="250">
      <el-table-column
        prop="linkName"
        label="链接名称"
        align="center"
        show-overflow-tooltip
        min-width="30%"
      >
        <template slot-scope="scope">
          <el-input size="small" v-model="linkData[scope.$index].linkName" placeholder="请填写链接名称"></el-input>
        </template>
      </el-table-column>
      <el-table-column
        align="center"
        show-overflow-tooltip
        min-width="70%"
        prop="href"
        label="链接地址"
        type="url"
      >
        <template slot-scope="scope">
          <el-input size="small" v-model="linkData[scope.$index].href"></el-input>
        </template>
      </el-table-column>
      <el-table-column
        prop="change"
        label="操作"
        align="center"
        show-overflow-tooltip
        min-width="16%"
      >
        <template slot-scope="scope">
          <!-- <el-button v-if="scope.$index === 0" @click="add" circle el-icon-plus>添加</el-button> -->
          <el-button
            size="small"
            v-if="scope.$index === 0"
            @click="add"
            type="primary"
            icon="el-icon-plus"
            circle
          ></el-button>
          <el-button
            size="small"
            v-if="scope.$index > 0"
            @click="deleteRow(scope.$index)"
            type="danger"
            icon="el-icon-close"
            circle
          ></el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data () {
    return {
      linkData: [
        {
          linkName: null,
          href: null
        }
      ]
    }
  },
  components: {
  },
  mounted (linkData) {
    console.log(linkData)
  },
  props: {
    linkData: {
      type: Object,
      default: null
    }
  },
  methods: {
    /**
    * 添加一行规格
    */
    add () {
      if (this.linkData.length >= 5) {
        this.$message.error('最多添加5个链接')
        return
      }
      this.linkData.push({ linkName: '', href: '' })
    },
    /**
     * 删除一行规格
     */
    deleteRow (index) {
      this.linkData.splice(index, 1)
    }
  }
}
</script>
<style lang="scss">
</style>
       
自定义table表头

在这里插入图片描述


<el-table-column prop="visitor" label="访客数" v-if="isVisible2" sortable>
        <!-- <template slot="header" :slot-scope="{ column, $index }"> -->
        <template slot="header">
          <span>访客数</span>
          <el-popover
            placement="top"
            width="200"
            trigger="hover"
            content="统计时间内,商品详情页被访问的去重人数,一个人在统计时间范围内访问多次记为一人。注意,若顾客浏览商品列表并直接加购、下单,未进入商详页,则不会记入该商品的访客数,此时,会出现商品的访客数小于支付人数的情况"
          >
            <i class="el-icon-question" slot="reference"></i>
          </el-popover>
        </template>
      </el-table-column>

Vue.js中,在表格中为每一行添加文件并使用`FormData`手动上传,你可以按照以下步骤操作: 1. 首先,创建一个包含文件选择按钮的模板组件,例如在`.vue`文件中: ```html <template> <tr v-for="(item, index) in items" :key="index"> <td> <input type="file" @change="handleFileChange(index)"> </td> <td> <button @click="uploadFile(index)">上传</button> </td> </tr> </template> <script> export default { data() { return { items: [], // 初始化数据数组,每个元素对应表格一行 }; }, methods: { handleFileChange(index) { const file = event.target.files[0]; this.items[index].file = file; // 将选中的文件保存到当前行的数据中 }, uploadFile(index) { const formData = new FormData(); formData.append('file', this.items[index].file); // 添加文件到FormData // 这里需要你处理实际的上传逻辑,可以发送axios请求,或者直接通过`URL.createObjectURL()`预览等 fetchUploadAPI(formData, index); }, fetchUploadAPI(formData, index) { // 在这里替换为你的实际上传函数 // axios.post('/api/upload', formData) // .then(response => { // console.log(response); // // 处理上传成功后的回调 // }) // .catch(error => { // console.error(error); // // 错误处理 // }); } } }; </script> ``` 2. `fetchUploadAPI` 函数是实际的上传处理部分,你需要根据项目需求(如后端API、库等)填写这部分内容。 **注意事项:** - 确保在服务器端支持接收`FormData`类型的上传,并配置好相应的路由和验证。 - 为了安全,最好在用户真正点击上传之前限制表单提交,比如加上一个阻止默认事件的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值