谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类

这篇具有很好参考价值的文章主要介绍了谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、总述

二、前端实现

三、后端实现

四、总结


一、总述

本次就是一个小的优化。

就是分组新增或者是修改的时候,直接显示商品分类的id可读性不高,新增的时候需要填写对商品分类的id,修改的时候,就只是给你一个商品分类的数字,并不能直接显示到底是什么分类。

那有什么办法可以解决这个问题呢?

elementUI中的级联选择器可以解决这个问题。

二、前端实现

前端这里就是一个级联选择器这个组件的使用,翻阅文档,知道哪些参数,如何配置就行了

下图是elementUI中的级联选择器:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

 复制这个直接到我们的分组组件中,在新增/删除对话框那里,将所属分类id下面的内容进行替换

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

 在数据域中声明好相关的属性:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

需要正确将分类数据显示出来的话,就需要在页面打开的时候就获取到分类数据,放到categorys中:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目 通过上述步骤,基本上就能显示了 ,但是会出现最后一级的分类是空的情况,这是由于这个级联组件可不管你的children集合里面没有元素,只要存在这个就渲染,空的也渲染,只是显示空白,没有数据罢了。

那么需要怎么办呢?

其实很简单,就是将后端返回的对应的那个实体类,在children字段上面加上注解,加上:

@JsonInclude(JsonInclude.Include.NON_EMPTY)

 谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

代表一但为空的话,这里的为空空集合也包括了,就不将这个字段以json返回给前端。

 到现在的话,在新增的时候就能级联显示分类信息了:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

当然这里选择的话,最终给我们的数据是,从父到孙的分类id数组,而我们最终提交的时候,只需要提交最后一级的分类id就行了,因此需要在提交之前做一下处理,修改表单中的绑定的分类值:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

那修改的时候,怎样还以这种级联的方式进行回显呢?

其实很简单,我们知道刚刚选择了最终我们得到的数据是"父-子-孙"的分类id数组,反正有这个数据,级联组件就能正确的进行显示。

那么现在思路其实就已经出来了,就是点击修改按钮的时候,前端肯定要向后端请求分组数据,只需要分组数据中携带好分类id的完整路径即可,然后将这个完整路径设置给数据域中的categoryIds,又因为这个categoryIds和级联组件进行了绑定,因此此时级联组件就能按照这个路径进行级联显示了。

所以现在只需要在后端携带好这个路径,然后在前端绑定好就行了。

后端携带这个路径是后端的事情,在后端实现中进行说明,现在直接说一下绑定:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

三、后端实现

在新增分组信息的后端没什么好说的,都不需要修改什么。

只是这个修改分组时因为需要将分类信息以级联的方式进行回显,而级联回显依赖的是分类路径。

所以这里后端主要是对分类信息获取接口改进一下,就是新增一个分类路径进行返回

1. controller

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

2. service

service接口:

public interface IAttrGroupService extends IService<AttrGroup> {

    AttrGroupVo getDetailGroup(Long attrGroupId);
}

service实现:

@Service
public class AttrGroupServiceImpl extends ServiceImpl<AttrGroupMapper, AttrGroup> implements IAttrGroupService {

    @Autowired
    private ICategoryService categoryService;
    @Override
    public AttrGroupVo getDetailGroup(Long attrGroupId) {
        AttrGroup group = getById(attrGroupId);
        AttrGroupVo attrGroupVo = new AttrGroupVo();
        BeanUtils.copyProperties(group,attrGroupVo);
        Long[] path = categoryService.categoryPath(group.getCatelogId());
        attrGroupVo.setCategoryPath(path);
        return attrGroupVo;
    }
}

这是分组这里,主要还是分类那里通过分类id获取其完整路径的核心方法:

service:

接口:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目 实现:

谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类,谷粒商城,SpringBoot,vue,spring boot,vue,项目

@Override
    public Long[] categoryPath(Long categoryId) {
        List<Long> path = new ArrayList<>();
        List<Long> categoryPath = path(categoryId, path);
        Collections.reverse(categoryPath);
        return categoryPath.toArray(new Long[categoryPath.size()]);
    }

    private List<Long> path(Long categoryId,List<Long> path){
        path.add(categoryId);
        Category category = getById(categoryId);
        Long parentCid = category.getParentCid();
        if(parentCid!=0){
            path(parentCid,path);
        }
        return path;
    }

四、总结

前端的话就是一个级联组件的使用,后端的话主要是分类路径的获取文章来源地址https://www.toymoban.com/news/detail-630295.html

到了这里,关于谷粒商城第十天-分组新增级联显示商品分类&分组修改级联回显商品分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谷粒商城第七天-商品服务之分类管理下的分类的拖拽功能的实现

    目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端实现 2.1 判断是否能进行拖拽 2.2 收集受影响的节点,提交给服务器 三、后端实现 四、总结 这个拖拽功能对于这种树形的列表,整体的搬迁是很方便的。但是其实现却并不是那么的简单。 花样主要体现在前端上面,前端有两

    2024年02月14日
    浏览(108)
  • 谷粒商城--整合Elasticsearch和商品的上架

    索引,类型,文档是什么? 索引就像是Mysql中的库 类型就像是Mysql中的表 文档就像是数据 属性就是列名 所有的数据都是Json格式 倒排索引 简约理解版本2.0 正向索引 ,数据库创建索引,增加搜索速度。 倒排索引 是根据去找文档,然后记录一下出现的位置和次数。 根

    2023年04月08日
    浏览(53)
  • 谷粒商城笔记+踩坑(9)——上架商品spu到ES索引库

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1、ES回顾 2、ES整合商品上架  2.1、分析 2.2、创建sku的es索引库 2.2.1、两种索引库设计方案分析 2.2.2、最终选用的索引库方案,nested类型 2.3、SkuEsModel模型类 2.4、【库存模块】库存量查询 2.5、【查询模块】保存ES文档 2.5.1、常量类 2.5.2、

    2024年02月05日
    浏览(52)
  • 商城-学习整理-基础-商品服务API-属性分组(七)

    在admin数据库里面创建表sys_menus.sql 查看页面 根据逆向生成的代码,剩余的前端代码和后端代码自己写,根据接口文档去编写。 在前端modules下创建common目录,创建category.vue文件。 在product目录下,创建属性分组attrgroup.vue文件。最终做成的效果就是左边是一个菜单,右边是一个

    2024年02月14日
    浏览(31)
  • Spring Boot + Vue的网上商城之商品分类

    在网上商城中,商品分类是非常重要的一个功能,它可以帮助用户更方便地浏览和筛选商品。本文将介绍如何使用Spring Boot和Vue来实现商品分类的功能,包括一级分类和二级分类的管理以及前台按分类浏览商品的实现。 数据库设计:设计商品分类表和商品表,商品分类表包含

    2024年02月09日
    浏览(50)
  • LTD266次升级 | 商城(小程序)界面换新更轻松 • 视频素材可分组 • 营销数据可导出 • 官微名片(独立版)新增个性化简介

    1、商城样式全面焕新、购买流程优化; 2、小程序商城文章列表新增多分组、支持原生详情页; 3、全员营销数据优化展示、支持导出; 4、独立版名片小程序支持显示企业简介; 5、其他已知问题修复与优化; nbsp;nbsp; 1) 商城样式与购买流程优化 在本次升级中,我们对商城的

    2024年04月16日
    浏览(45)
  • 谷粒商城实战(012 业务-商城业务)

    Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第203p-第p210的内容 介绍 这段除了210集都是商城业务,无太多可学习的,可跳过这7集,直接看第210集 一个页面需要获取多个 API 数据的情况 通常有两种主要的方式来处理:

    2024年04月17日
    浏览(38)
  • 谷粒商城----ES篇

    P128 ES在内存中,所以在检索中优于mysql。ES也支持集群,数据分片存储。 需求: 上架的商品才可以在网站展示。 上架的商品需要可以被检索。 分析sku在es中如何存储 商品mapping 分析:商品上架在es中是存sku还是spu? 1)、检索的时候输入名字,是需要按照sku的title进行全文检

    2024年02月09日
    浏览(44)
  • 【笔记】谷粒商城高级篇

    全文检索工具:快速储存、搜索和分析海量数据。 Index (索引) → Mysql的库 动词,相当于MySQL中的insert; 名词,相当于MySQL中的Database。 Type (类型) → Mysql的表(过时) 在Index中,可以定义一个或多个类型。类似于MySQL中的Table;每一种类型的数据放在一起。 Document (文档) →

    2023年04月21日
    浏览(46)
  • 谷粒商城(三)

    简介 全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选,它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包