用ant-degin-vue实现一个盒子的右边小盒子input框输入内容回车或离开输入框左边盒子里形为tag标签,标签不能超过10个并且小于1个时左变得盒子隐藏
时间: 2024-03-27 18:39:25 浏览: 163
好的,我来解答你的问题。
首先,你需要使用 ant-design-vue 组件库中的 Input 和 Tag 组件。在 Input 组件中监听回车或离开输入框事件,将输入的内容添加到一个数组中。然后,在 Tag 组件中使用 v-for 指令循环渲染数组中的标签。
下面是一个简单的示例代码,可以帮助你实现上述功能:
```html
<template>
<div>
<div :class="{ 'hidden': tags.length < 1 }">
<div v-for="(tag, index) in tags" :key="index" class="tag">
{{ tag }}
</div>
</div>
<a-input
v-model="inputValue"
@pressEnter="handleInput"
@blur="handleInput"
:disabled="tags.length >= 10"
:placeholder="tags.length >= 10 ? '标签已达到上限' : '请输入标签'"
/>
</div>
</template>
<script>
export default {
data() {
return {
tags: [],
inputValue: ''
};
},
methods: {
handleInput() {
if (this.inputValue.trim() && this.tags.length < 10) {
this.tags.push(this.inputValue.trim());
this.inputValue = '';
}
}
}
};
</script>
<style>
.hidden {
display: none;
}
.tag {
display: inline-block;
margin-right: 8px;
margin-bottom: 8px;
padding: 4px 8px;
border-radius: 4px;
background-color: #f0f0f0;
}
</style>
```
在上面的代码中,通过 v-bind:class 指令动态绑定样式,根据 tags 数组长度是否大于等于 1 来判断是否隐藏左边的盒子。在 handleInput 方法中,通过 trim 方法去除输入内容的前后空格,并判断 tags 数组长度是否小于 10,如果满足条件,则将输入内容添加到 tags 数组中,并清空输入框内容。
希望这个示例可以帮助你实现功能。如果还有任何问题,欢迎随时提出。
阅读全文