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

news2024/11/17 14:54:07

商品管理

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

在功能开发之前,创建商品列表的子分支
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 将本地分支推送到云端存储

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

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

相关文章

景色短视频:成都柏煜文化传媒有限公司

景色短视频:定格自然之美,邂逅心灵之旅 在这个被数字洪流包围的时代,短视频以其独特的魅力,为我们打开了一扇通往无限可能的大门。而在众多短视频类型中,景色短视频以其无与伦比的视觉冲击力,成为了许多人…

大模型周报|15 篇必读的大模型论文

大家好,今日必读的大模型论文来啦! 1.谷歌推出风格感知拖放新方法 Magic Insert 来自谷歌的研究团队提出了 Magic Insert,用于以物理上可信的方式将用户提供的图像中的对象拖放到不同风格的目标图像中,同时与目标图像的风格相匹…

利用C语言实现三子棋游戏

文章目录 1.游戏界面2.游戏内容2.1 棋盘类型2.2棋盘的初始化2.3 打印棋盘的界面展示 3.游戏操作3.1 玩家操作3.2 电脑操作3.3 胜负判定 4.代码整合 1.游戏界面 无论写任何程序,我们都需要先去了解它的大概框架,这里我们先把它的初始界面写出来。一个游戏…

使用maven搭建一个SpingBoot项目

1.首先创建一个maven项目 注意选择合适的jdk版本 2.添加依赖 2.在pom.xml中至少添加依赖 spring-boot-starter-web 依赖&#xff0c;目的是引入Tomcat&#xff0c;以及SpringMVC等&#xff0c;使项目具有web功能。 <!-- 引入 包含tomcat&#xff0c;SpringMVC&#xff0c…

广州星启帆:点亮自闭症儿童康复之路的璀璨星辰

在广州这座充满温情的城市中&#xff0c;广州星启帆自闭症康复中心如同一颗璀璨的星辰&#xff0c;照亮了无数自闭症儿童及其家庭的前行之路。这家机构以“点亮希望&#xff0c;启航未来”为使命&#xff0c;向所有踏入这里的家庭承诺&#xff1a;我们将携手并肩&#xff0c;共…

springcloud分布式架构网上商城 LW +PPT+源码+讲解

3系统分析 3.1可行性分析 在开发系统之前要进行系统可行性分析&#xff0c;目的是在用最简单的方法去解决最大的问题&#xff0c;程序一旦开发出来满足了用户的需要&#xff0c;所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。 3.1.1技术…

el-scrollbar组件使用踩坑记录

一、el-scrollbar和浏览器原生滚动条一起出现 问题描述 el-scrollbar组件主要用于替换浏览器原生导航条。如下图所示&#xff0c;使用el-scrollbar组件后&#xff0c;发现未能成功替换掉浏览器原生导航条&#xff0c;二者同时出现。 引发原因 el-scrollbar的height属性如果…

怎样把自己电脑ip改成动态ip:步骤与解析

在今天的网络世界中&#xff0c;IP地址是计算机与互联网沟通的桥梁。而动态IP地址&#xff0c;作为其中的一种类型&#xff0c;由于其自动分配和管理的特性&#xff0c;为用户提供了更大的便利性和灵活性。那么&#xff0c;您是否想知道怎样将电脑IP改为动态呢&#xff1f;本文…

win11中配制了系统的环境变量mvn/java,但是mvn/java就是提示不存在的解决方法。

1、已经配制了环境变量&#xff0c;但是提示mvn不存在 2、然后我们在开始程序中查看到cmd&#xff0c;然后以管理员运行&#xff1a; 这样的话&#xff0c;是可以mvn这个命令的&#xff0c;而且只有这种方式是可以的&#xff0c;其它的方式&#xff0c;就算设置了以管理员身份运…

CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)

CSS 样式选择器&#xff0c;用于选中页面中的 html 元素&#xff0c;以便添加 CSS 样式。 按渲染性能由高到低 依次是&#xff1a; ID 选择器 #id 通过元素的 id 属性选中元素&#xff0c;区分大小写 <p id"p1" >第一段</p>#p1{color: red; }但不推荐使…

mybatis-plus参数绑定异常

前言 最近要搞个发票保存的需求&#xff0c;当发票数据有id时说明是发票已经保存只需更新发票数据即可&#xff0c;没有id时说明没有发票数据需要新增发票&#xff1b;于是将原有的发票提交接口改造了下&#xff0c;将调用mybatis-plus的save方法改为saveOrUpdate方法&#xff…

Spring AOP、Spring MVC工作原理、发展演变、常用注解

Spring AOP 概念 AOP全称为Aspect Oriented Programming&#xff0c;表示面向切面编程。切面指的是将那些与业务无关&#xff0c;但业务模块都需要使用的功能封装起来的技术。 AOP基本术语 **连接点&#xff08;Joinpoint&#xff09;&#xff1a;**连接点就是被拦截到的程序执…

如何在Windows 11上复制文件和文件夹路径?这里提供几种方法

在Windows 11上复制文件或文件夹的路径就像在右键单击菜单中选择一个选项或按键盘快捷键一样简单。我们将向你展示如何在电脑上以各种方式进行操作。 从右键单击菜单 复制文件或文件夹路径的最简单方法是在该项目的右键单击菜单中选择一个选项。你也可以使用此方法复制多个项…

Golang | Leetcode Golang题解之第218题天际线问题

题目&#xff1a; 题解&#xff1a; type pair struct{ right, height int } type hp []pairfunc (h hp) Len() int { return len(h) } func (h hp) Less(i, j int) bool { return h[i].height > h[j].height } func (h hp) Swap(i, j int) { h[i], h[j]…

2024年【北京市安全员-B证】报名考试及北京市安全员-B证最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年北京市安全员-B证报名考试为正在备考北京市安全员-B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的北京市安全员-B证最新解析祝您顺利通过北京市安全员-B证考试。 1、【多选题】《中华人民共和国安…

【HICE】dns正向解析

1.编辑仓库 2.挂载 3.下载软件包 4.编辑named.conf 5.编辑named.haha 6.重启服务 7.验证本地域名是否解析

一个pdf分割成多个pdf,一个pdf分成多个pdf

在数字化办公和学习中&#xff0c;pdf格式因其良好的兼容性和稳定性而受到广泛欢迎。但有时候&#xff0c;我们可能需要将一个大的pdf文件分割成多个小文件&#xff0c;以便于分享、打印或编辑。今天&#xff0c;我就来教大家几种简单有效的方法&#xff0c;让你轻松实现pdf文件…

Python应用开发——30天学习Streamlit Python包进行APP的构建(13)

st.chat_input 显示聊天输入窗口小部件。 Function signature[source]st.chat_input(placeholder="Your message", *, key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None) Returns(str or None) The current (non-empty) value of…

HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)

html 中的表格 <table> 由行 <tr> 组成&#xff0c;每行由单元格 <td> 组成。 所以表格是由行组成&#xff08;行由列组成&#xff09;&#xff0c;而不是由行和列组成。 table 标签 display: table &#xff0c;属于块级元素。 table 的属性 border&#…