【前端项目笔记】7 商品管理

商品管理

效果展示:
在这里插入图片描述

在功能开发之前,创建商品列表的子分支
git branch 查看所有分支
git checkout -b goods_list 创建并切换到新分支goods_list
git push -u origin goods_list 将新分支goods_list推送到云端仓库origin并命名为goods_list保存

通过路由形式加载商品列表

在这里插入图片描述
在这里插入图片描述
效果展示:
在这里插入图片描述

渲染商品列表基本结构

面包屑导航+卡片视图区域(输入文本框+搜索图标+添加商品按钮)
在这里插入图片描述

获取商品列表数据

在这里插入图片描述
在这里插入图片描述

渲染商品列表table表格

在这里插入图片描述

创建一个全局的时间过滤器以处理时间格式问题

当前是以毫秒的形式展示
在main.js中注册一个格式化时间的过滤器:
在这里插入图片描述
在这里插入图片描述

过滤器用法:(来自itpeilibo【Vue2.0源码学习】过滤器篇)
过滤器经常会被用来格式化模板中的文本。
使用形式:使用形式都是

表达式 | 过滤器1 | 过滤器2 | ...

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加分页区域

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现搜索与清空的功能

输入文本,显示所有包含该文本的商品,清空文本直接显示所有商品
在这里插入图片描述

实现删除商品按钮的功能

  1. 在删除商品之前先弹出提示框提示用户是否确认删除(弹框MessageBox)
  2. 在使用弹框时需要捕获取消删除行为
  3. 发起删除商品的请求
    在这里插入图片描述
    在这里插入图片描述
    效果展示:
    在这里插入图片描述

实现添加商品按钮的功能

点击添加商品按钮通过路由导航的方式跳转到添加商品页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绘制添加商品页面的基本页面

面包屑导航+卡片视图区域(Alert警告区域+进度条区域+tab面板)
在这里插入图片描述
在这里插入图片描述

实现tab栏和步骤条的数据联动效果

tab栏通过v-model实现数据双向绑定,点击不同的tab-pane面板会绑定到v-model中,改变tab栏面板;steps步骤条通过active控制激活项
要想步骤条steps和tab栏保持一致,只要tab中v-model与steps中active绑定的变量保持一致即可
注意:由于active只接受数值类型,v-model只接受字符串类型,故需要将activeIndex-0转为数值类型
在这里插入图片描述
需要将5个pane面板统一进行包裹,所以将表单放在5个tab面板之外
标签在上,文本框在下:
在这里插入图片描述
在这里插入图片描述

绘制基本信息面板中的表单

在这里插入图片描述
在这里插入图片描述
获取商品列表
在这里插入图片描述
绘制商品分类的级联选择器:
在这里插入图片描述
在这里插入图片描述
控制级联选择器的选择范围:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

阻止标签页的切换

未选择商品分类前不允许切换其他标签页,选择商品分类后可切换
如何监听标签页的切换行为,在事件的处理函数中判断当前是否除以第一个页签,同时还要判断选择的商品分类是否为三级商品分类(length是否为3,不等于3阻止切换)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果展示:
在这里插入图片描述

获取商品参数面板对应的数据

调用接口:获取参数列表
参数类型是many 动态参数
当点击第二个面板时发起对应的数据请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

渲染商品参数面板中的表单item项

以复选框形式出现
先处理参数项数组:
在这里插入图片描述
再把参数项以复选框形式出现
在这里插入图片描述
美化复选框:
在这里插入图片描述
间距过大且换行不对齐
原因:margin不一致有些有右边距,有些有左右边距
优化:仅添加右边距,并使其优先级最高
在这里插入图片描述

开发商品属性面板对应的功能

点击面板时应立即发起数据请求获取静态属性(only)
在这里插入图片描述

在这里插入图片描述

渲染商品静态属性列表为表单

在这里插入图片描述
效果展示:
在这里插入图片描述

完成图片上传的功能

使用upload上传 组件
第一次使用的组件需要全局注册!
这里的action前面一定要加冒号!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
解决一个bug:
在这里插入图片描述
msg为无效token且状态码为400,证明图片为真正上传到后台服务器
原因:无效token,一开始每次发axios请求都会配置一个token,但是upload组件内部发请求时没用到axios发ajax请求,而是组件内部自己封装了一套ajax,未调用axios携带authorization字段,需要在请求头自己加authorization。

在这里插入图片描述
利用headers自己添加authorization字段
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

图片上传成功之后的操作

上传图片,服务器存储图片,添加到表单中才成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图片的移除操作

添加一张新图片时,会立即将图片的信息封装成一个object对象,在对象中包含一个pic属性。添加的新图片信息对象push到pic数组中,删除时将对象移除。
在这里插入图片描述

  1. 获取将要删除的图片的临时路径
  2. 从pics数组中,找到这个图片对应的索引值
  3. 调用数组的splice方法,把图片信息对象,从pics数组中移除
    在这里插入图片描述

在这里插入图片描述

splice函数用法:
splice():在数组中插入元素(会修改原数组)
删除:2个参数,开始位置 结束位置(左闭右开)
插入:3个参数,开始位置 删除元素数量(一般为0) 插入元素
替换:3个参数,开始位置 删除元素数量 插入任意多个元素

图片的预览操作

点击对应图片的名称时弹出对话框完整展示图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
处理图片过大问题:
在这里插入图片描述

在商品内容面板中渲染一个富文本编辑器

  1. 首先用命令行安装依赖vue-quill-editor:
npm install vue-quill-editor --save

SSR,全称为Server Side Rendering,即服务器端渲染。
SPA 路由控制和视图转换框架

  1. 在main.js导入富文本编辑器、对应样式,并注册为全局可用样式
    在这里插入图片描述
  2. 使用富文本编辑器+添加商品按钮
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现商品内容的添加

  1. 在进行商品添加之前对整个表单进行数据校验(预验证)
    在add()函数中找到表单的引用对象this.$refs.addFormRef,调用validate函数,从它的回调函数中拿到验证结果valid,判断是否合法
  2. 根据API文档对goods_cat和attrs进行数据处理
    深拷贝:把某个对象原封不动的复制一份,和原对象互不相干。
    安装lodash
npm install lodash

导入并注册组件
在这里插入图片描述
3. 发起请求添加商品
在这里插入图片描述
在这里插入图片描述
效果展示:
在这里插入图片描述

实现修改商品按钮的功能

  1. 添加修改商品的对话框,添加表单及对应表单验证规则
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 修改对话框关闭后需要重置
在这里插入图片描述
在这里插入图片描述
3. 提交修改表单预校验,成功发起修改请求
在这里插入图片描述
在这里插入图片描述
效果展示:
在这里插入图片描述

提交商品管理代码

git status 查看文件状态
git branch 查看所有分支
git add . 将所有文件添加到暂存区
git commit -m "完成商品管理功能开发" 提交代码到当前代码goods_list中
git push 将本地代码推送到云端仓库中
本地代码中,goods_list分支代码已最新,但是master还是旧的代码
git checkout master 切换到主分支master
git merge goods_list 在本地上将goods_list代码合并到master中
git push 将本地分支推送到云端存储

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM学习记录

概述 语言模型的发展 语言模型经历过四个阶段的发展,依次从统计语言模型到神经网络语言模型(NLM),到出现以 BERT 和 Transformer 架构为代表的预训练语言模型(PLM),最终到大型语言模型阶段&am…

竞赛选题 交通目标检测-行人车辆检测流量计数 - 竞赛选题

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

【Java环境配置过程详解(包括IDEA配置Java)】

目录 一、JDK下载安装 1. 官网下载JDK 2. 本地安装JDK 3. 配置环境变量 4. 验证是否安装成功 ​编辑二、IDEA进行安装下载 1. 官网下载 IDEA 2、IDEA进行Java开发 1. 创建Java项目 2. 程序测试 一、JDK下载安装 1. 官网下载JDK 1)官网链接: https://www.o…

PTrade如何获取技术值班?如get_RSI - 相对强弱指标;PTrade量化软件如何获取?

get_RSI - 相对强弱指标 get_RSI(close, n6) 使用场景 该函数仅在回测、交易模块可用 接口说明 获取相对强弱指标RSI指标的计算结果 PTrade是恒生公司开发的一款专业量化软件,部分合作券商可提供,↑↑↑! 参数 close:价格…

C语言的数据结构:图的基本概念

前言 之前学过了其它的数据结构,如: 集合 \color{#5ecffd}集合 集合 —— 数据元素属于一个集合。 线型结构 \color{#5ecffd}线型结构 线型结构 —— 一个对一个,如线性表、栈、队列,每一个节点和其它节点之间的关系 一个对一个…

rpm包下载

内网无法下载、选择外网的一台机器下载rpm包 下载后上传rpm包 1、创建下载目录 mkdir /data/asap/test 2、下载能留存包的工具 sudo yum install yum-utils -y 报错就是环境问题没下载成功,我换了个环境正常的机器就可以了 3、下载rpm包到指定目录/data/asa…

一文彻底搞懂Transformer - Input(输入)

一、输入嵌入(Input Embedding) 词嵌入(Word Embedding):词嵌入是最基本的嵌入形式,它将词汇表中的每个单词映射到一个固定大小的向量上。这个向量通常是通过训练得到的,能够捕捉单词之间的语义…

GAMES104:04游戏引擎中的渲染系统1:游戏渲染基础-学习笔记

文章目录 概览:游戏引擎中的渲染系统四个课时概览 一,渲染管线流程二,了解GPUSIMD 和 SIMTGPU 架构CPU到GPU的数据传输GPU性能限制 三,可见性Renderable可渲染对象提高渲染效率Visibility Culling 可见性裁剪 四,纹理压…

如何在《中小学电教》期刊上发表论文?

如何在《中小学电教》期刊上发表论文? 《中小学电教》知网 学术期刊 教育厅25年下半年 3版 ①其他学科 不收甘肃和幼儿园 ②数学、英语、历史、政治(道德与法治)、音体美、科学学科的稿件 全bao 全bao不带课题 文章需要和信息…

【TS】TypeScript 原始数据类型深度解析

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript 原始数据类型深度解析一、引言二、基础原始数据类型2.1 boolean2.2 …

数据治理体系建设方案

数据治理体系建设方案 在当前的大数据时代,数据已经成为企业核心资产之一,其管理与治理的重要性愈加凸显。有效的数据治理体系不仅能提升数据质量和数据使用的效率,还能为企业创造更多的商业价值。本文将详细阐述数据治理的重要性、核心要素…

SpringBoot 如何处理跨域请求?你说的出几种方法?

引言:在现代的Web开发中,跨域请求(Cross-Origin Resource Sharing,CORS)是一个常见的挑战。随着前后端分离架构的流行,前端应用通常运行在一个与后端 API 不同的域名或端口上,这就导致了浏览器的…

AI生成电商模特图应用定制

🌟 广州AI生成电商模特图应用定制案例剖析— 触站AI,绘制智能图像的未来 🚀 🎨 触站AI,让创意与智能共绘辉煌 🎨在这座充满创新活力的广州城,触站AI以其尖端AI技术,开启了企业AI图像…

动态代理--通俗易懂

程序为什么需要代理?代理长什么样? 例子 梳理 代理对象(接口):要包含被代理的对象的方法 ---Star 被代理对象:要实现代理对象(接口) ---SuperStar 代理工具类:创建一个代理,返回值用代理对象&#xff0c…

yolov5实例分割跑通以及C#读取yolov5_Seg实例分割转换onnx进行检测部署

一、首先需要训练yolov5_seg的模型,可以去网上学习,或者你直接用我的, 训练环境和yolov5—7.0的环境一样,你可以直接拷过来用。 yolov5_seg算法 链接:https://pan.baidu.com/s/1m-3lFWRHwg5t8MmIOKm4FA 提取码&…

Zombie Voices Audio Pack(僵尸游戏音频包)

僵尸声音音频包是600多个高质量声波的集合。 它提供了僵尸主题游戏所需的一切,这要归功于它的20多个类别: 攻击、咬、呼吸、窒息、损坏、死亡、进食、血腥、咕噜、大笑、疼痛、反应、尖叫、喉咙、呕吐、单词和句子。 我们的僵尸动画包带来的额外奖励&am…

自从棋牌游戏有了AI助阵,赢“麻”了!看这篇就够了

毛主席曾经说过:“中国对世界的三大贡献,第一是中医,第二是曹雪芹的《红楼梦》,第三是麻将牌。”麻将起源于中国,是国粹。各地的麻将玩法各不相同,比如云贵川地区的“缺一门”打法,广东麻将流行…

【课程设计】基于python的一款简单的计算器

我们是大二本科生团队,主力两人耗时3天完成了这款计算器的制作。希望大家给我们多多引流!!!!!! 欢迎各位优秀的高考学子报考长安大学,报考长安大学电子信息工程专业。 欢迎有志于就…

vite项目如何在本地启动https协议

vite项目如何在本地启动https协议 本地启动正常配置在vite.config.js文件中默认启动http协议的请求,如何改成https呢?今天的开发中遇到了这个问题项目需求: 本地启动https协议的前端页面并且正常访问后台https协议的接口 解决方法&#xff1a…

python学习-tuple及str

为什么需要元组 定义元组 元组的相关操作 元组的相关操作 - 注意事项 元组的特点 字符串 字符串的下标(索引) 同元组一样,字符串是一个:无法修改的数据容器。 如果必须要修改字符串,只能得到一个新的字符串&#xff…