vue sku商品规格多选

24 篇文章 0 订阅
18 篇文章 0 订阅

vue sku商品规格多选

在这里插入图片描述

1.创建一个数据对象,用于存储SKU的选中状态。例如,可以使用一个数组来表示选中的SKU,每个元素代表一个SKU选项的id。

data() {
  return {
    selectedOptions: []
  }
}

2.在SKU选项列表中,使用v-bind:class绑定一个计算属性来判断当前选项是否被选中,如果选中则添加一个高亮的CSS类。

<div v-for="option in options" :key="option.id" :class="{'highlighted': isSelected(option.id)}">
  <!-- SKU选项内容 -->
</div>

3.在点击SKU选项时,触发一个方法来更新选中状态。可以使用v-on:click绑定一个方法,在方法中切换选中状态。

<div v-for="option in options" :key="option.id" :class="{'highlighted': isSelected(option.id)}" @click="toggleOption(option.id)">
  <!-- SKU选项内容 -->
</div>


methods: {
 isSelected(optionId) {
    return this.selectedOptions.includes(optionId);
  },
  toggleOption(optionId) {
    if (this.selectedOptions.includes(optionId)) {
      // 如果已经选中,则取消选中
      this.selectedOptions = this.selectedOptions.filter(id => id !== optionId);
    } else {
      // 如果未选中,则添加选中
      this.selectedOptions.push(optionId);
    }
  }
}

通过以上步骤,在Vue中可以实现SKU多选高亮的效果。当用户点击某个SKU选项时

搜索只保留最新的9条 去重 判空

<template>
  <div class="home">
    <div class="search">
      <van-search
        v-model="value"
        placeholder="请输入搜索关键词"
        @clear="clear"
        @search="search"
      />
    </div>
    <div>
      <div class="flex-s">
        <div>搜索历史</div>
        <div><img alt="" src="../../assets/images/order/dc_sc@2x.png" /></div>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    components: {},
    data() {
      return {
        value: '',
        searchHistory: [],
      }
    },
    computed: {},
    mounted() {},
    methods: {
      // 搜索
      search(val) {
        console.log(val)
        if (val) {
          this.addSearchRecord(val)
        }
      },
      // 清空
      clear() {
        this.value = ''
      },
      addSearchRecord(record) {
        // 判断记录是否已存在于数组中
        const index = this.searchHistory.indexOf(record)
        if (index !== -1) {
          // 如果已存在,则先将其从数组中删除
          this.searchHistory.splice(index, 1)
        }

        // 将记录添加到数组开头
        this.searchHistory.unshift(record)

        // 控制搜索历史最多只存储9条记录
        if (this.searchHistory.length > 9) {
          this.searchHistory = this.searchHistory.slice(0, 9)
        }
        console.log(this.searchHistory)
      },
    },
  }
</script>

<style lang="scss" scoped>
  .home {
    height: 100vh;
    overflow: hidden;
    background: #fff;
    .search {
      padding: 24px 0;
      margin-bottom: 20px;
      border-bottom: 1px solid #eeeeee;
      ::v-deep {
        .van-search {
          margin: 0 24px;
          display: -webkit-box;
          display: -webkit-flex;
          display: flex;
          -webkit-box-align: center;
          -webkit-align-items: center;
          align-items: center;
          box-sizing: border-box;
          height: 72px;
          background: #ffffff;
          border: 2px solid #dddddd;
          border-radius: 46px;
        }
        .van-search__content {
          display: -webkit-box;
          display: -webkit-flex;
          display: flex;
          -webkit-box-flex: 1;
          -webkit-flex: 1;
          flex: 1;
          padding-left: 12px;
          background-color: #ffffff;
          border-radius: 2px;
        }
      }
    }
  }
  .flex {
    display: flex;
  }
  .flex-s {
    display: flex;
    justify-content: space-between;
  }
</style>

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用内容,可以得知在Vue3中处理商品规格SKU的问题时,首先需要考虑将商品的所有规格渲染上去,并且可以根据数据得知该商品有三种规格:颜色、运行内存和存储。 在判断商品规格SKU的库存时,需要注意每点击一个规格属性,都要去判断其他规格属性是否有库存。这可以通过选中完整的规格信息来向父组件传递有效的数据,包括SKU的ID、价格、原价格、库存以及商品的说明等。 因此,在Vue3中处理商品规格SKU的方式可以是通过渲染所有规格属性,并在选中完整的规格信息后,通过传递有效数据来判断SKU的库存情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于Vue3 Sku的设计](https://blog.csdn.net/qq_43817005/article/details/121889677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue电商项目sku 规格 详细步骤](https://blog.csdn.net/m0_46846526/article/details/119142417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

周亚鑫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值