ZBLOG

要实现当你选择 v-for 下拉的标签时,使 placeholder 显示为选中的内容,并且取消显示 v-for 标签,可以按照以下步骤进行修改:

  1. 在数据中增加一个变量来存储当前选中的电池编号。
  2. 当用户点击某个项目时,更新这个变量并清空列表。

以下是修改后的代码示例:

<template>
  <uni-easyinput 
    :placeholder="selectedBatteryNo || '请输入搜索内容'" 
    prefixIcon="search" 
    v-model="inputValue" 
    @iconClick="iconClick"
    @input="input"
    class="search-bar uni-search-bar">
  </uni-easyinput>

  <!-- 如果没有选择项目,就显示过滤后的列表 -->
  <view v-if="!selectedBatteryNo" v-for="(item, index) in filteredList" :key="index" :class="item.show ? 'items' : ''" class="view-for"
        @click="viewData(item)">
      {{ item.batteryNo }}
      <text v-if="item.factory == 1" style="color: green; margin-left: 20px; font-weight: bold;">(60S 原厂)</text>
      <text v-if="item.factory == 2" style="color: green; margin-left: 20px; font-weight: bold;">(80V 原厂)</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      inputValue: '',
      selectedBatteryNo: '', // 用于存储选中的电池编号
      actarr: [],
      batteryData: [], // 假设这是你的电池数据
    };
  },
  
  computed: {
    // 根据搜索文本过滤数据列表
    filteredList() {
      let arr = this.batteryData.filter(item => item.batteryNo.includes(this.inputValue));
      console.log('arr=', arr);
      return arr;
    }
  },

  methods: {
    viewData(item) {
      if (this.actarr.includes(item.batteryNo)) {
        const index = this.actarr.indexOf(item.batteryNo);
        this.actarr.splice(index, 1);
        item.show = false; // 隐藏已选择的项
        this.selectedBatteryNo = ''; // 清空选中状态
        this.inputValue = ''; // 清空输入框内容
      } else {
        this.actarr.push(item.batteryNo);
        item.show = true;
        
        // 更新选中电池编号并清空其他项
        this.selectedBatteryNo = item.batteryNo;
        
        // 可选择清空输入框,以避免后续输入影响结果。
        this.inputValue = '';
      }
      
      console.log(this.actarr, '当前选中的数组');
    },
    
    input(res) {
      this.inputValue = res;
      console.log('inputValue:', this.inputValue);
      
      // 当有输入时,清除选中的电池编号,使其可以重新搜索和选择其他内容。
      if (res) { 
          this.selectedBatteryNo = '';
       }
   },

   iconClick() {
       // 图标点击事件处理逻辑(如需要)
   }
}
</script>

<style scoped>
/* 添加相关样式 */
</style>

修改说明:

  • 新增selectedBatteryNo:用于保存当前选中的电池编号。
  • viewData 方法中:更新 selectedBatteryNo 的值以显示在 placeholder 中,并在点击时隐藏下拉项。
  • 更新filteredList渲染条件:仅当没有选中项目时才显示过滤后的列表。这样,当用户选择一项后,下拉项会消失,仅展示所选内容。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19143

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?