Vue电商项目--详情页面完成

news2024/11/24 4:34:31

放大镜操作上

<script>        
  var mySwiper = new Swiper ('.swiper', {
    direction: 'vertical', // 垂直切换选项
    loop: true, // 循环模式选项
    
    // 如果需要分页器
    pagination: {
      el: '.swiper-pagination',
    },
    
    // 如果需要前进后退按钮
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    
    // 如果需要滚动条
    scrollbar: {
      el: '.swiper-scrollbar',
    },
  })        
  </script>

 首先搞这个轮播图的,先把轮播图初始化。就是把官网的复制下来,删除一些,我们不需要的内容

但是存在bug,它默认只存在一个

看官网解决问题slidesPerView_Swiper参数选项 

  // 设置图片的个数
          slidesPerView:3,
          // 每次切换一个图片
          slidesPerGroup:1

现在实现了一个点击添加active样式的效果。除了这个我们还需要添加:通知兄弟组件,当前索引是几,然后上面展示相应的图片

 然后接收它

放大镜结束

为什么我们点击的永远是第一张呢?这是因为.skuImageList[0]写死了索引,它只能为第一张,我们应该定义的变量来保存索引,保障这是活的索引

ok,这样就成功了。此时我们需要考虑一下这个放大镜是如何实现的 

就是鼠标移入,然后让这个蒙版跟着鼠标移动

e.offsetX-mask.offsetWidth/2就是这个打钩的距离

这样就能动了,但是没有约束范围

但是还有bug,那就是大图并没有发生变化,我们需要采用同样的方式设置大图

 

 handler(e){
        let mask=this.$refs.mask
        let big=this.$refs.big
        let left =e.offsetX-mask.offsetWidth/2
        let top=e.offsetY-mask.offsetHeight/2
        // 约束范围
        if(left<=0) left=0;
        if(left>=mask.offsetWidth) left=mask.offsetWidth
        if(top<=0) top=0;
        if(top>=mask.offsetWidth) top=mask.offsetHeight
        // 修改mask的left|top的值
        mask.style.left=left+'px'
        mask.style.top=top+'px'
        big.style.left=-2*left+'px'
        big.style.top=-2*top+'px'
      }

购买产品个数的操作

完成了这一块点击按钮++,--效果

  

 changeSkuNum(e){
       let value=e.target.value*1
      //  如果用户输入进来的非法,出现nan或者小于1
       if(isNaN(value)||value<1){
        this.skuNum=1
       }else{
        // 不能出现小数
        this.skuNum=parseInt(value)
       }
      }

加入购物车

就是要告诉服务器,谁加入到服务器,向服务器发请求。然后进行路由跳转

添加到购物车(对已有物品进行数量改动)接口说明

请求地址

/api/cart/addToCart/{ skuId }/{ skuNum }

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

skuID

string

Y

商品ID

skuNum

string

Y

商品数量

正数代表增加

负数代表减少

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

 先写接口

export const reqAddOrUpdateShopCart=(skuId,skuNum)=>requests({url:`/api/cart/addToCart/${skuId}/${skuNum }`,method:'post'})

 先绑定加入购物车的函数

1.发请求--将产品加入数据库(通知服务器)

2.服务器存储成功--进行路由跳转传递参数

3.失败,给用户进行提示

首先,我们需要先拿到我们数据,然后在配送数据

然后发现了错误,404,查看一下应该是服务器接口的问题,果然加了/api导致错误 

 

 这样成功发起请求了

 这里要注意服务器写入数据成功,并没有返回其他的数据,只返回code=200,表示这次操作成功

因为服务器没有返回其余数据,因此咋们不需要三连环存储数据

加入购物车成功与失败的判断

就是原先我们配发了一个action,也拿到了服务器的请求。但我们还要加入购物车成功与失败的判断,成功进行路由的跳转,失败就提示信息

它返回的是一个 是Promise对象,那就有失败和成功的回调。因为上面的代码就是调用仓库的addOrUpdateShopCart,这个方法加上asyn,返回的一定是一个Promise对象

 注意的一点就是我们要使用try……catch……监听异常 

加入购物车操作

先复制写好的成功后跳转的路由的组件。然后注册路由

   

路由传递参数结合会话存储

就是在路由跳转的时候还需要将产品的信息带给下一级的路由组件

一些简单的数据skuNum,通过query形式给路由组件传递过去

产品信息的数据【比较简单:skuInfo】通过会话存储(不持久化,会话结束数据在消失)

本地存储|会话存储:一般存储的是字符串

 存储到会话中 

 然后计算属性加工一下,渲染到页面上就可以了 

购物车静态组件与修改

之前完成了跳转到购物车页面,但我们现在点击要回去

 当然要把id给带回去,然后完成点击去购物车结算 >模块

 先捞组件,然后配置路由

 修改静态组件        

 

 搞定 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

14.2:派对的最大快乐值

派对的最大快乐值 员工信息的定义如下: class Employee { public int happy; // 这名员工可以带来的快乐值 List subordinates; // 这名员工有哪些直接下级 } 公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、 没有环的多叉树 树的头节点是公…

框架解耦神器 -- REventBus

REventBus背景 在实际的项目开发中&#xff0c;经常会遇到业务与业务&#xff0c;组件与组件&#xff0c;业务与组件之间的通信&#xff0c;举个例子&#xff1a;当有烟雾传感器检测到烟雾超标时&#xff0c;需要打开排气扇排气&#xff0c;同时显示烟雾浓度显示到显示器中&am…

centos7升级rockylinux 未写完

前言 查看centos的版本 &#xff0c;我这台服务器是虚拟机 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_server 3.10.0-1160.83.1.el7.x86_64 #1 SMP Wed Jan 25 16:41:43 UTC 2023 x86_64 …

PIC 使能485/422笔记(修订中...)

1.需求 工作中需要把目前设备的单向232转为485/422模式&#xff0c;实现双向通讯&#xff0c;目前查找相关资料。突然想到一件事&#xff0c;我是否能让232现有的单向上发线同时连工控机的tx,rx&#xff0c;然后靠协议&#xff0c;来定时切换PIC一侧的tx rx?PIC可能不支持这个…

Python之pyecharts的常见用法2-柱状图-折线图

Pyecharts是一个基于Echarts的Python可视化库&#xff0c;可以用Python语言轻松地生成各种交互式图表和地图。它支持多种图表类型&#xff0c;包括折线图、柱状图、散点图、饼图、地图等&#xff0c;并且可以通过简单的API调用实现数据可视化。 Pyecharts的优点包括&#xff1a…

关于 Oracle Schema 级别的权限问题

作者 | JiekeXu 来源 |公众号 JiekeXu DBA之路&#xff08;ID: JiekeXu_IT&#xff09; 如需转载请联系授权 | (个人微信 ID&#xff1a;JiekeXu_DBA) 大家好&#xff0c;我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看关于 Oracle Schema 级别的权限问题&#xff0c…

PyCaret 3.0介绍 -- Python中的开源、低代码机器学习库

PyCaret是一个Python中的开源、低代码机器学习库&#xff0c;可以自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具&#xff0c;可以成倍地加快实验周期&#xff0c;提高工作效率。 与其他开源机器学习库相比&#xff0c;PyCaret是一个替代的低代码库&#xff0c…

如何利用外卖小程序源码,快速开启你的外卖生意?

作为外卖行业不可或缺的一部分&#xff0c;外卖小程序越来越受到人们的关注。它不仅可以提高用户的订餐体验&#xff0c;还可以为商家带来更高的收益。然而&#xff0c;对于一些想通过外卖小程序来开启自己的外卖生意的商家来说&#xff0c;开发一款定制化的外卖小程序需要投入…

浙江大华后端开发一面面经

目录 1.SpringBuffer和SpringBuilder的区别是什么&#xff1f;2.常用的集合类有哪些&#xff1f;HashMap的底层数据结构&#xff1f;推荐一下线程安全的Map&#xff1f;3.TCP和UDP的差异是什么&#xff1f;4.MySQL的左连接和右连接的区别&#xff1f;5.MySQL慢查询如何排查&…

01 【Vue简介 初识Vue 模板语法和数据绑定】

01 【Vue简介 初识Vue 模板语法和数据绑定】 1.Vue简介 1.1官网 英文官网中文官网 1.2介绍与描述 Vue 是一套用来动态构建用户界面的渐进式JavaScript框架 ○构建用户界面&#xff1a;把数据通过某种办法变成用户界面 ○渐进式&#xff1a;Vue可以自底向上逐层的应用&…

图解LeetCode——108. 将有序数组转换为二叉搜索树

一、题目 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 二、示例 2.1> 示例 1&#xff1a; 【输入】n…

企业邮箱大文件发送指南:推荐一个适用于大文件的邮箱服务

大多数电子邮件服务都不安全并且限制附件文件的大小&#xff0c;但是有一些方法可以安全地发送大文件。如果您曾尝试将多个图像或视频文件附加到电子邮件&#xff0c;您就会知道它并不总是有效。下面为大家介绍一款可以发送大文件的企业邮箱--Zoho Mail。 一、电子邮件发送大文…

【Python】Python系列教程--Python3 环境搭建(二)

文章目录 前言Python3 下载Python 安装Unix & Linux 平台安装 Python3:Window 平台安装 Python:MAC 平台安装 Python: 环境变量配置在 Unix/Linux 设置环境变量在 Windows 设置环境变量在命令提示框中(cmd) : 输入 Python 环境变量运行 Python1、交互式解释器&#xff1a;2…

品牌如何给自己创建一个百度百科词条,在百科上传企业资料方法

对于企业来说&#xff0c;很多人都想给自己企业或者品牌上传正面简介内容到百度百科平台&#xff0c;但创建一个品牌百度百科词条似乎并不是那么简答&#xff0c;很多自己尝试创建品牌百度百科词条的朋友最终都失败了&#xff0c;下面洛希爱做百科网教教大家如何给自己品牌创建…

1.矢量引入

目录 一.什么是矢量 1.1 定义 1.2 公理与体系 1.3 矢量几何化 二.矢量间的相互作用 1.点积 2.点积应用 3.叉积 4. 叉积应用 三.矢量除法 1.单用叉积无法唯一定义矢量除法 2.矢量除法 四.复杂相互作用 1.混合积 2.双叉积 3.Laplace公式 五.泛函的广义矢量理论…

从业十三年SEO大佬干货总结,满满五千字,图文结合,30min带你真正学会SEO

目录 seo优化 介绍seo是什么 网站更新&#xff1a; 网站排名在21世纪的意义: 网站为电商引流 百度算法规则 排名流程 seo策略 规则——“学会在线球里玩” 单页面收录显示 必要条件——链接数量 日志统计——及时优化seo策略 降低识别难度 收录越多排名就越大吗 …

B/S电子病历编辑器源码

电子病历编辑器&#xff0c;简称EMRE&#xff08;EMR Editor&#xff09;&#xff0c;是电子病历系统的核心关键基础技术。 B/S电子病历编辑器源码&#xff0c;带演示&#xff0c;自主研发&#xff0c;官方正版授权 ▶本套电子病历系统主要面向医疗机构医生、护士&#xff0c…

【远程办公】外网远程访问公司内网用友畅捷通T财务软件

文章目录 前言1.本地访问简介2. cpolar内网穿透3. 公网远程访问4. 固定公网地址 转发自cpolar极点云的文章&#xff1a;外网远程访问公司内网用友畅捷通T财务软件 – 远程办公 前言 用友畅捷通T适用于异地多组织、多机构对企业财务汇总的管理需求&#xff1b;全面支持企业对远…

微信小程序构建npm(js和ts)

先吐槽一下&#xff0c;官方文档写的就是一坨粑粑&#xff01;真垃圾 微信小程序构建npm js版本下构建npm1.需要在电脑上按照node&#xff0c;并确保环境变量配置完毕2.新建一个小程序项目&#xff0c;js版本3.从小程序根目录打开cmd命令行4.在命令行中执行npm init -y5.继续执…

Linux UIO驱动

目录 什么是UIO&#xff1f; UIO驱动与普通驱动的区别 How UIO works 重要的结构体 UIO驱动源码 APP实现 测试 UIO驱动的优缺点 UIO在DPDK中的使用 什么是UIO&#xff1f; UIO&#xff08;User-space I/O&#xff09;驱动是一种特殊的Linux内核驱动&#xff0c;允许设…