Vue电商项目--平台售卖属性和的排序操作制作

news/2024/10/18 0:19:10/

平台售卖属性的操作

就是点击平台的售卖属性,下面显示对应的内容 

这里我们要借助这个props属性

这里块是平台的售卖属性,我们在这里绑定回调,一点击就把id传给父组件 

我们需要把这俩个参数传进入

商品属性的数组: ["属性ID:属性值:属性名"]

示例: ["2:6.0~6.24英寸:屏幕尺寸"]

 然后回到父组件,还需要给他绑定事件

这样页面就展示了相对应的数据了

 平台的售卖属性的面包屑展示,但是这么写会有个bug

没有考虑到数组去重

 这样就能实现数据去重的功能开发了

 删除数组的办法需要给数组传一个参数,例如4g告诉删除的就是这个4g的索引值 

 // 收集平台的信息attrInfo(attr,attrValue){let props=`${attr.attrId}:${attrValue}:${attr.attrName}`// 数组去重if(this.searchParams.props.indexOf(props)==-1)  this.searchParams.props.push(props)this.getData()},removeAttr(index){this.searchParams.props.splice(index,1)this.getData()},

排序操作上

大概的效果就是点击价格,可以按照价格升序或者降序。

这些价格不需要,我们来计算,只需要把参数传给后端服务器,让它帮我们搞

 排序方式

1: 综合,2: 价格 asc: 升序,desc: 降序 

示例: "1:desc" 

问题:order属性的属性值最多有多少中写法?

1:asc

1:desc

2:asc

2:desc

首先我们要有一个起始值,并且这个初始值应该是综合|降序

修改结构成这样。这个有active类名就是有背景色

考虑的问题

谁应该有类名:通过order属性当中包含1(综合)| 2(价格)

  为了避免冗余,我们直接在计算属性中封装这俩个办法 

我们现要考虑箭头

谁有类名,谁就有箭头

箭头用什么制作?

直接去阿里找,然后复制它的url,当然如果我们要在页面中去引用它,需要加https 

https://at.alicdn.com/t/c/font_4078647_4sihq5jwkj.css

 然后引用它,就有箭头了

那这个箭头是上还是下,这个取决于这个desc这个属性 

 

 <ul class="sui-nav"><li :class="{ active : isOne}"><a href="#">综合<span v-show="isOne" class="iconfont" :class="{'icon-up':isAcs,'icon-down':isDesc}"></span></a></li><li :class="{ active : isTwo}"><a href="#">价格<span v-show="isTwo" class="iconfont" :class="{'icon-up':isAcs,'icon-down':isDesc}"></span></a></li></ul>isOne(){return this.searchParams.order.indexOf('1')!=-1},isTwo(){return this.searchParams.order.indexOf('2')!=-1},isAcs(){return this.searchParams.order.indexOf('asc')!=-1},isDesc(){return this.searchParams.order.indexOf('desc')!=-1}

排序操作下

完成了上部分的逻辑,现在实现点击实现排序操作的功能 

因为,我们要判断到底是综合还是价格,因此我们需要传参

这个形参相到与是一个标记,代表用户点击的是综合(1)价格(2) 

将这个1:desc进行分割。这样好进行取反操作

做if()语句能确定点击的一定是综合或价格

 

changeOrder(flag){let originOrder=this.searchParams.order;let originFlag=this.searchParams.order.split(":")[0]let originSort=this.searchParams.order.split(":")[1]// 准备一个新的order属性值let newOrder=''// 点击的是综合if(flag==originFlag){newOrder=`${originFlag}:${originSort=='desc'?"asc":"desc"}`}else{// 点击的是价格newOrder=`${flag}:${'desc'}`}console.log(newOrder);// 将新的order赋予searchParamsthis.searchParams.order=newOrderthis.getData()}

 效果实现


http://www.ppmy.cn/news/80328.html

相关文章

js中setinterval怎么用?怎么才能让setinterval停下来?

setinterval()是定时调用的函数&#xff0c;可按照指定的周期&#xff08;以毫秒计&#xff09;来调用函数或计算表达式。 setinterval()的作用是在播放动画的时&#xff0c;每隔一定时间就调用函数&#xff0c;方法或对象。 setInterval() 方法会不停地调用函数&#xff0c;…

多态的原理、单继承和多继承的虚函数表、以及虚函数表的打印。

一、多态原理 1、下面这个结果是多少&#xff1f; class A { public:virtual void func(){cout << "func()" << endl;}private:int _a 1; };int main() {printf("%d\n", sizeof(A));return 0; } 是 4&#xff1f;8&#xff1f;还是多少&am…

CSS3多列布局:达到无与伦比的网站排版

随着互联网技术的日益发展&#xff0c;网站排版也变得越来越重要。对于网站设计师而言&#xff0c;如何用 CSS3 实现美观、简洁、灵活的多列布局是一项必修的技能。在本篇文章中&#xff0c;我们将会一步步介绍 CSS3 多列布局的使用方法&#xff0c;带你完成一个完整的布局&…

npm i 常见问题

需要注意的是&#xff0c;如果你在使用 NPM 安装包的过程中遇到了任何问题&#xff0c;可以尝试使用 --verbose 参数打印更详细的错误信息&#xff0c;以便更好地诊断问题。例如&#xff1a; npm install --verbose 1、vue老项目缺少编译环境安装依赖报错的问题 待下载的项目…

Splunk安装配置

前言 Splunk 社区 &#xff0c;包括白皮书&#xff0c;各类手册&#xff0c;资源下载&#xff0c;社区问答等 入门&#xff1a;Splunk 入门指南 | Splunk 手册&#xff1a;Splunk Enterprise - Splunk Documentation 资源下载:数据可视化工具Splunk Enterprise免费下载 | S…

python绘制密度图

本期目录 1、绘图参数2、使用 matplotlib 库绘制密度图时常用的参数3、案例4、 运行结果python绘图往期系列文章目录 1、绘图参数 可以使用多种库来绘制密度图&#xff0c;其中最常用的是 seaborn 和 matplotlib。以下是使用 seaborn 库绘制密度图时常用的参数&#xff1a; i…

【网络编程】协议定制+Json序列化与反序列化

目录 一、序列化与反序列化的概念 二、自定义协议设计一个网络计算器 2.1TCP协议&#xff0c;如何保证接收方收到了完整的报文呢&#xff1f; 2.2自定义协议的实现 2.3自定义协议在客户端与服务器中的实现 三、使用Json进行序列化和反序列化 3.1jsoncpp库的安装 3.2改造…

如何用c++制作人生模拟器

要制作一个人生模拟器&#xff0c;首先需要设计游戏的基本框架&#xff0c;并构思游戏的玩法&#xff0c;规则和内容。 然后&#xff0c;在C中实现这个框架并添加游戏所需的各种类、函数和变量。其中&#xff0c;有几个关键的方面需要考虑&#xff1a; 模拟生命周期&#xff…