iview实现动态编辑标签!

文章开始前,说几句废话。

其实这个很简单,在iview的文档中呢,提供了标签的动态使用 ——>点这里看iview标签,但它是不可编辑的,所以我写个文章记录一下,方便刚学习vue的小伙伴,直接使用,毕竟我开始也是不会到会。

首先,我给大家看一下我最初做的样子,我是写死的,然后进行点选。。。

这个效果不是我想要的,最代码现在也是分享博客的时候,默认选择一些类别。当然具体情况具体分析。我想要的效果什么呢,比如csdn发表文章添加标签一样。虽然当时想是这么想的,但没有去深究,今天好好研究了一下,把这个写出来了。

接下来,我就给大家上代码,讲一下怎么实现。

<iv-tag 
    v-for="item in countTags" 
    :key="item" 
    :name="item" 
     closable
     @on-close="handleClose">{{ item }}</iv-tag >
//tag参数
countTags: ['Java', 'Vue'],

 

//标签部分
handleClose(tag) {
  this.countTags.splice(this.countTags.indexOf(tag), 1);
},

注:iview中你使用tag,不是iv-tag,<Tag></Tag>,我这个是自定义引入,只使用我需要的iview插件。

如上代码段,遍历标签,不多解释,加了一个可关闭事件。参照iview中的官方文档,跟我这个大同小异。

 

接下来就是iview中没有的。

在iv-tag下写一个input。代码如下~

<iv-input
  class="input-new-tag"
  v-if="inputVisible"
  v-model="inputValue"
  ref="saveTagInput"
  size="small"
  @keyup.enter.native="handleInputConfirm"
  @blur="handleInputConfirm"
>

样式,写到你的style里
.input-new-tag {
  width: 80px;
  margin-left: 0px;
}

再加俩个初始参数,

inputVisible: false,
inputValue: '',

一个回车事件,一个元素失去焦点时所触发的事件,触发同一个事件。

handleInputConfirm() {
  let inputValue = this.inputValue;
  if (inputValue) {
    this.countTags.push(inputValue);   //简简单单,push一下
  }
  this.inputVisible = false;
  this.inputValue = '';
},

再在input下加一个button,使用ref引用上面的input,点击出现。

<iv-button v-else 
  size="small" 
  type="dashed" 
  icon="ios-add" 
  @click="showInput">+ 添加标签</iv-button>
showInput() {
  this.inputVisible = true;
  this.$nextTick(_ => {
    this.$refs.saveTagInput.$refs.input.focus();
  });
},

至此,全文结束。

看一下效果~

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在iview table的行编辑实现文件上传,您可以按照以下步骤进行操作: 1. 首先,在您的iview table中创建一个列,用于显示文件上传的按钮。您可以使用`slot-scope`来自定义列的内容,示例如下: ```html <template slot-scope="{ row }"> <Upload action="/your-upload-url" :on-success="handleSuccess" :on-error="handleError" :before-upload="beforeUpload" > <Button icon="ios-cloud-upload-outline">上传文件</Button> </Upload> </template> ``` 2. 在data中定义一个变量,用于存储上传成功后的文件链接。例如: ```javascript data() { return { fileList: [] }; }, ``` 3. 实现上传成功和失败的回调函数`handleSuccess`和`handleError`,以及上传前的钩子函数`beforeUpload`。示例如下: ```javascript methods: { handleSuccess(response, file, fileList) { // 上传成功后的处理逻辑 // 可以将文件链接存储到fileList中或者其他地方 this.fileList = fileList; }, handleError(error, file, fileList) { // 上传失败后的处理逻辑 console.log('上传失败:', error); }, beforeUpload(file) { // 可以在这里对上传的文件进行限制,比如大小、类型等 // 返回 false 可以阻止上传 console.log('准备上传:', file); } }, ``` 4. 最后,在您的iview table中的列配置中,将刚刚创建的列添加到需要编辑的行中。示例如下: ```html <Table :data="yourData"> <Table-column prop="yourProp" label="您的属性"></Table-column> <Table-column label="文件上传"> <template slot-scope="{ row }"> <!-- 文件上传列 --> </template> </Table-column> <!-- 其他列配置 --> </Table> ``` 通过以上步骤,您就可以在iview table的行编辑实现文件上传功能了。当用户点击上传按钮时,会触发文件上传操作,并在上传成功后将文件链接存储到`fileList`中。您可以根据实际需求进行进一步处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

答 案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值