管理后台项目-03-SPU列表-增删改SPU-获取SKU

news2025/1/17 21:47:51

目录

1-spu模块分析

2-spu三级分类和列表页面

3-添加修改spu

3.1-点击新增和修改逻辑分析和功能实现

3.2-图片上传逻辑分析

3.3-销售属性逻辑分析

3.4-保存spu信息


1-spu模块分析

我们看到spu组件模块,上面是三级联动,这个我们已经在上一篇属性那边做成了全局组件,不需要开发,直接引入就行,当点击三级分类的时候,需要拉取spu列表,这个也类似前一篇的属性列表。
这里我们看到有三种内容切换(展示SPU列表结构,添加|修改SPU结构,展示添加SKU结构),这个时候我们需要通过变量来控制模块的显示和隐藏。由于添加|修改SPU结构内容比较多(避免页面显得臃肿),我们拆分为子组件,添加SKU也拆分为一个子组件。

src\views\product\spu\index.vue
src\views\product\spu\skuForm\index.vue
src\views\product\spu\spuForm\index.vue

2-spu三级分类和列表页面

当选中三级列表的时候,我们需要向服务器发送请求,获取spu数据动态渲染在表格上,还需要加上分页插件。

编写api接口

 定义数据

 确定三级分类发送请求

 页面动态渲染

 分页器改变页码和页大小的时候,方法回调编写;页码改变我们可以和获取分页列表使用同一个方法,改变页大小我们需要写一个回调重新赋值当前页。

3-添加修改spu

当我们新增和修改spu的时候,我们需要展示对应的form,我们已经封装了对应的子组件,显示对应的form;

 

3.1-点击新增和修改逻辑分析和功能实现

当我们点击添加SPU或者点击列表的编辑/修改 按钮的时候,我们需要展示form表单;我们分析form表单的结构,有个品牌下拉列表,还有个销售属性下拉列表,然后我们编辑的时候,需要获取当前spu信息,还需要获取照片墙信息;根据接口文档,我们点击添加按钮和编辑调用的接口不一样;新增的时候2个(品牌下拉列表信息,销售属性下拉列表信息),编辑|修改的时候4个(品牌下拉列表信息,销售属性下拉列表信息,当前spu信息,照片墙信息)。

我们点击的是新增和编辑是在父组件中,获取数据和渲染数据是在子组件中,我们可以通过ref来实现(然后我们理论上也可以在父组件获取传递给使用props传递给子组件,但是子组件理论还有自己的逻辑,需要动态变更数据这里采用ref实现更好)。

 

 this.$refs.spu.addSpuData(this.category3Id);this.$refs.spu.initSpuData(row);在spuForm子组件中需要定义方法addSpuData,initSpuData;实现父子组件通信。

 

 

3.2-图片上传逻辑分析
 

上传图片我们需要用到elementUI的upload组件组件 | Element,我们需要展示或者上传多张图片,需要使用到照片墙信息,需要注意的是
file-list:照片墙需要展示的数据【数组:数组里面的元素务必要有name、url属性】

 

3.3-销售属性逻辑分析

1-当我们点击添加销售属性的时候,我们需要把我们选中的属性显示在下面的table中,我们使用v-model 收集下面option中的value值;在table中动态渲染,并且还需要计算还有多少个属性没有添加,并且当我们没有选中销售属性名字的时候,添加销售属性按钮不可用。

 

此外我们还需要计算出未选择的,使用placeholder展示给用户...

 

2-我们需要展示属性值名称列表,没有的时候我们显示添加,点击添加的时候,我们需要有input输入框可以输入属性值名称,当输入完成,我们需要展示为类似span标签的效果;这里我们需要使用到elementUI中的tag组件,组件 | Element;通过inputVisible的true或者false来实现input和button切换。

3-如果spu编辑信息的时候,我们的销售属性列表中肯定有之前新增的属性名称值,这个时候我们是展示组件中的button按钮,所以我们inputVisible我们取值是没有,是false;直接走else,就是展示button;我们发现条件判断inputVisible为true是就展示input,所以当我们点击销售属性table中的 属性名称列表 中的添加按钮,我们可以使用this.$set函数来实现给对象添加一个属性inputVisible字段,值为true,我们需要收集当前input输入值,所以我们还需要给对象新增属性inputValue,通过v-model来收集,以便以后点击保存按钮,组装数据提交给服务器。



4-当输入完成el-input失去焦点的时候,我们需要触发事件,我们需要简单校验输入值不能为空,属性值不能和之前的相同/重复,还需要将inputVisible显示为button;

 

5-当我们点击销售属性列表后的删除按钮,我们需要将对应的销售属性从响应式属性数组中删除,此时不需要请求服务器,点击保存的时候才需要请求服务器。

3.4-保存spu信息

当我们点击下面的保存按钮,我们需要提交我们收集到的信息给服务器,需要组装数据,调用服务器相关接口,保存数据。清除数据,然后我们需要通知父组件切换场景(需要使用到自定义事件),如果是新增,返回列表第一页,如果是编辑修改就停留在当前页。当我们点击取消的时候,我们也需要清空响应式数据。

组件实例this._data,可以操作data当中响应式数据;this.$options可以获取配置对象,配置对象的data函数执行,返回的响应式数据为空的

 

 

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

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

相关文章

vue+oss实现服务端签名后直传的图片上传功能

vueoss实现服务端签名后直传的图片上传功能 vueoss实现服务端签名后直传的图片上传功能 vueoss实现服务端签名后直传的图片上传功能前言一、java服务端签名接口设计二、Vue element UI的upload图片上传三、前端直传oss可能出现跨域问题四、服务端签名流程总结 前言 基于Post …

Java基层卫生健康云源码 医院HIS信息管理系统源码

近年来,随着互联网技术的快速发展,云计算技术也得到了广泛的应用。云计算技术不仅可以提高计算效率,还可以实现资源的共享和协同,为基层卫生健康事业的发展提供了新的思路和机遇。 基层卫生健康云系统是指利用云计算技术&#xf…

【Java|golang】1026. 节点与其祖先之间的最大差值---避坑,注意:golang中同一个包下的全局变量只加载一次。

给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B…

环境变量的初始

目录 : 1.引出环境变量 2. 简单使用一下环境变量 3.环境变量的概念 4.本地变量 5.环境变量的相关命令 6.环境变量获取和操作的方式 7. getenv(最常用的程序获取环境变量的方式) 8.环境变量的全局属性 -------------------------------------…

擎创动态 | 二等奖!擎创携手国家电网喜获“浪潮信息杯”绝佳成绩

近日,2022电力行业信息化年会于湖南省长沙市圆满落下帷幕。据悉,今年是电力行业信息化年会举办的第二十周年,年会的主题为“低碳数字新动力 电力转型新发展”,紧密围绕“十四五”数据经济发展,“双碳”战略、新型电力系…

10分钟学会使用Jmeter工具做接口自动化测试

Jmeter接口自动化测试项目实战视频教程地址:https://www.bilibili.com/video/BV1e44y1X78S/? 目录:导读 引言 一、软件下载 二、软件安装及设置环境变量 三、Jmeter做接口自动化测试的步骤 四、接口依赖的解决 引言 大家好!我是不二。…

《Linux基础》08. 日志管理 · 备份与恢复

Linux基础 - 08 1:日志管理1.1:系统常用日志1.2:日志管理1.2.1:日志服务1.2.2:配置文件1.2.3:自定义日志管理 1.3:日志轮替1.3.1:轮替服务1.3.2:配置文件1.3.3&#xff1…

顺序表(更新版)——“数据结构与算法”

各位CSDN的uu们你们好呀,今天小雅兰又来更新新专栏啦,其实之前我就已经写过了顺序表的内容,只是之前的内容不是最新版的顺序表,现在,我来更新一下最新版的顺序表,下面,就让我们进入更新版的顺序…

开发常用的 Linux 命令1(文件和目录)

开发常用的 Linux 命令汇总1(文件和目录) 作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,…

小项目发布:TLC_Browers--一个开源的基于vb6基于Webview2 Runtime支持html5和多标签的浏览器

项目名称:TLC浏览器(TLC_NLP机器人的附属产品) 技术架构:webview2 runtime,可参考链接WebView2 - Microsoft Edge Developer 目录介绍: kernel:控制webview2内核的代码 client:主程序代码,将kernel变为自己的子窗体, 进程通信方式:共享文件 release:正…

Jenkins 在linux安装配置

下载Jenkins 安装包 官网地址:https://www.jenkins.io/index.html 因为我的是centos,所以我选择redhat的长期支持版本 linux上执行: wget https://get.jenkins.io/redhat-stable/jenkins-2.222.1-1.1.noarch.rpm安装 使用rpm安装&#xf…

【Linunx报错】程序在运行时无法找到一个名为 “libctemplate.so.3“ 的共享库文件

第一个报错: error while loading shared libraries: libctemplate.so.3: cannot open shared object file: No such file or directory 解决方法: 这个错误信息提示你的程序在运行时无法找到一个名为 “libctemplate.so.3” 的共享库文件,因…

GAMES302等几何分析(IGA)---- 课程简介及等几何分析的介绍

文章目录 前言提纲产品数字化设计\仿真\优化全流程介绍计算机辅助设计(CAD)NURBS理论基础计算机辅助工程(CAE)什么是CAE为什么用CAECAE典型应用CAE解决问题的一般过程CAE方法体系及软件 结构优化创成式设计设计仿真类工业软件国产…

mybatis注解的详解和开发(增、删、改、查以及一对一、一对多/多对一、多对多的关系联查)

mybatis注解的基本理解和开发(增、删、改、查以及一对一、一对多/多对一、多对多的关系联查) 使用mybatis注解开发的原因? 注解提供了一种简单的方式来实现简单映射语句,而不会引入大量的开销。能够读懂别人写的代码,特别是框架相关的代码。…

Java——反转链表

题目链接 牛客在线oj题——反转链表 题目描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: 0≤n≤1000 要求&#xff1…

OpenAI最新官方ChatGPT聊天插件接口《插件示例demo》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(四)(附源码)

Example plugins 插件示例demo 前言Introduction 导言Learn how to build a simple todo list plugin with no auth 了解如何构建一个简单的待办事项列表插件,无需授权Learn how to build a simple todo list plugin with service level auth 了解如何构建一个简单的…

【Unity VR开发】结合VRTK4.0:瞬移点

语录: 如果把童年再放映一遍,我们一定会先大笑,然后放声痛哭,最后挂着泪,微笑着睡去。 前言: 移动的限制除了设置移动区域,也可以使用瞬移点:Locomotors.TeleportTargets.Point。 正…

HQChart报价列表高级应用教程7-创建走势图列

HQChart报价列表高级应用教程7-创建走势图列 走势图列效果图步骤1. 走势图列数据截图数据结构HQChart代码地址走势图列 在行情报价里面,使用单独的一列显示每一个股票的价格走势的缩略图。 效果图 步骤 1. 走势图列 REPORT_COLUMN_ID.CLOSE_LINE_ID 走势图列在创建报价列…

ChatGPT: 人工智能对话模型的前沿技术与应用探析

ChatGPT: 人工智能对话模型的前沿技术与应用探析 引言 ChatGPT作为一种人工智能对话模型,在近年来引起了广泛的关注和研究。随着人工智能技术的不断发展,ChatGPT作为一种前沿技术在人机对话领域具有重要地位和广泛的应用价值。本文将介绍ChatGPT的背景和…

【CocosCreator入门】CocosCreator组件 | ProgressBar(进度条)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的ProgressBar组件是一种用于实现进度条效果的重要组件。它可以让我们在游戏中展示各种进度条效果,例如加载进度条、血条等。 目录 一、组件介绍 二、组件属性 三、脚本…