当前位置: 首页 > article >正文

uniapp商城项目之商品详情

文章目录

  • 一、商品详情组件
    • 1.新建页面并处理参数
    • 2.封装API接口
    • 5.初始化调用
  • 二、轮播图交互
    • 1.更新下标
    • 2.放大预览
  • 三、弹出层组件交互
    • 1.弹出层组件
    • 2.实现交互


一、商品详情组件

1.新建页面并处理参数

pages下新建一个文件夹goods——> goods.vue,在分类category.vue父组件中确保传递商品的id,goods.vue中接收传递过来的id
在这里插入图片描述
获取页面参数,根据商品的id查询到某个商品的详细信息展示给用户
在这里插入图片描述

2.封装API接口

在这里插入图片描述

类型声明
src—types—goods.d.ts

import type { GoodsItem } from './global'

/** 商品信息 */
export type GoodsResult = {
  /** id */
  id: string
  /** 商品名称 */
  name: string
  /** 商品描述 */
  desc: string
  /** 当前价格 */
  price: number
  /** 原价 */
  oldPrice: number
  /** 商品详情: 包含详情属性 + 详情图片 */
  details: Details
  /** 主图图片集合[ 主图图片链接 ] */
  mainPictures: string[]
  /** 同类商品[ 商品信息 ] */
  similarProducts: GoodsItem[]
  /** sku集合[ sku信息 ] */
  skus: SkuItem[]
  /** 可选规格集合备注[ 可选规格信息 ] */
  specs: SpecItem[]
  /** 用户地址列表[ 地址信息 ] */
  userAddresses: AddressItem[]
}

/** 商品详情: 包含详情属性 + 详情图片 */
export type Details = {
  /** 商品属性集合[ 属性信息 ] */
  properties: DetailsPropertyItem[]
  /** 商品详情图片集合[ 图片链接 ] */
  pictures: string[]
}

/** 属性信息 */
export type DetailsPropertyItem = {
  /** 属性名称 */
  name: string
  /** 属性值 */
  value: string
}

/** sku信息 */
export type SkuItem = {
  /** id */
  id: string
  /** 库存 */
  inventory: number
  /** 原价 */
  oldPrice: number
  /** sku图片 */
  picture: string
  /** 当前价格 */
  price: number
  /** sku编码 */
  skuCode: string
  /** 规格集合[ 规格信息 ] */
  specs: SkuSpecItem[]
}

/** 规格信息 */
export type SkuSpecItem = {
  /** 规格名称 */
  name: string
  /** 可选值名称 */
  valueName: string
}

/** 可选规格信息 */
export type SpecItem = {
  /** 规格名称 */
  name: string
  /** 可选值集合[ 可选值信息 ] */
  values: SpecValueItem[]
}

/** 可选值信息 */
export type SpecValueItem = {
  /** 是否可售 */
  available: boolean
  /** 可选值备注 */
  desc: string
  /** 可选值名称 */
  name: string
  /** 可选值图片链接 */
  picture: string
}

/** 地址信息 */
export type AddressItem = {
  /** 收货人姓名 */
  receiver: string
  /** 联系方式 */
  contact: string
  /** 省份编码 */
  provinceCode: string
  /** 城市编码 */
  cityCode: string
  /** 区/县编码 */
  countyCode: string
  /** 详细地址 */
  address: string
  /** 默认地址,1为是,0为否 */
  isDefault: number
  /** 收货地址 id */
  id: string
  /** 省市区 */
  fullLocation: string
}

5.初始化调用

在这里插入图片描述

二、轮播图交互

商品详情里轮播图滑动切换时,右下角更新自定义下标,当图片被点击时放大预览
在这里插入图片描述
在这里插入图片描述

1.更新下标

在这里插入图片描述

2.放大预览

在这里插入图片描述

三、弹出层组件交互

参考效果图
uni-ui 弹出层组件:https://uniapp.dcloud.net.cn/component/uniui/uni-popup.html
在这里插入图片描述

1.弹出层组件

在这里插入图片描述
组合式API写法如下:
在这里插入图片描述
在需要的地方调用
在这里插入图片描述

2.实现交互

点击送至和服务均打开弹出层,准备两个vue,商品goods.vue导入后,将其放在uni-popup中
关闭按钮在子组件,要调用父组件的弹出层关闭(子调父)
在这里插入图片描述

在这里插入图片描述
子组件如下
在这里插入图片描述


http://www.kler.cn/a/519634.html

相关文章:

  • Transfoemr的解码器(Decoder)与分词技术
  • RNN实现阿尔茨海默症的诊断识别
  • Oracle查看数据库表空间使用情况
  • GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
  • Linux的常用指令的用法
  • debian12.9编译freeswitch1.10.12【默认安装】
  • 在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
  • 家政预约小程序10首先显示服务内容
  • 有关ORM
  • golang命令大全1--概述
  • Maven面试试题及其答案解析
  • 基础项目实战——学生管理系统(c++)
  • 【Elasticsearch】Springboot编写Elasticsearch的RestAPI
  • Vue 响应式渲染 - 模板语法
  • BroadCom-RDMA博通网卡如何进行驱动安装和设置使得对应网口具有RDMA功能以适配RDMA相机
  • 如何实现一个简单的中文错别字高亮系统?
  • 使用python-docx包进行多文件word文字、字符批量替换
  • 【数据分享】1929-2024年全球站点的逐日降水量数据(Shp\Excel格式)
  • springboot使用tomcat浅析
  • 【全栈】SprintBoot+vue3迷你商城(7)
  • 从入门到精通:HttpClient深度剖析与实战指南
  • SpringBoot--基本使用(配置、整合SpringMVC、Druid、Mybatis、基础特性)
  • Maven的继承与聚合特性:大型项目管理的利器
  • 【Linux笔记】Day5
  • Vue 3 30天精进之旅:Day 04 - 计算属性与侦听器
  • Labview替代平台ATECLOUD的兼容性如何?