使用若依二次开发商城系统-4:商品属性

功能3:商品分类
功能2:商品品牌
功能1:搭建若依运行环境

前言

商品属性功能类似若依自带的字典管理,分两步,先设置属性名,再设置对应的属性值。

一.操作步骤

1)数据库表product_property和product_property_value

使用建表语句在数据库中创建表

drop table if exists product_property;
CREATE TABLE IF NOT EXISTS `product_property` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT '属性id',`name` varchar(64) COMMENT '属性名称',`remark` varchar(255) COMMENT '备注',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品属性';drop table if exists product_property_value;
CREATE TABLE IF NOT EXISTS `product_property_value` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',`property_id` bigint COMMENT '属性id',`name` varchar(64) COMMENT '属性值',`remark` varchar(255) COMMENT '备注',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品属性值';

2)代码生成

系统工具
代码生成
导入
在这里插入图片描述

3)配置product_property

选中刚才创建的表product_property。点击确定。
在操作列,点击编辑图标

基本信息

在这里插入图片描述

实体类名称:对应java代码中的实体类的类名。
作者:对应java代码中的注释

字段信息

在这里插入图片描述

插入列:控制新增页面的显示项。
显示类型列:控制生成的组件类型。文本框,下拉框,单选框,复选框,图片上传等。
编辑列:控制修改页面的显示项。前期一般配置成跟插入列一致。
列表列:控制页面表格的显示列。
查询列:控制页面查询条件项。勾选的字段会被生成页面查询条件。
必填列:控制新增和修改页面中的对应字段是否必填。
具体配置需要参考项目的页面原型。

生成信息

在这里插入图片描述

生成包路径:生成的java代码,会放在对应的包路径下。
生成功能名:在页面上显示菜单名称
上级菜单:选中之前新建的一级目录,商品中心。

在操作列,点击生成代码图标。
浏览器会下载一个zip压缩包。

4)配置product_property_value

选中刚才创建的表product_property_value。点击确定。
在操作列,点击编辑图标

基本信息

在这里插入图片描述
实体类名称:对应java代码中的实体类的类名。
作者:对应java代码中的注释

字段信息

在这里插入图片描述

插入列:控制新增页面的显示项。
显示类型列:控制生成的组件类型。文本框,下拉框,单选框,复选框,图片上传等。
编辑列:控制修改页面的显示项。前期一般配置成跟插入列一致。
列表列:控制页面表格的显示列。
查询列:控制页面查询条件项。勾选的字段会被生成页面查询条件。
必填列:控制新增和修改页面中的对应字段是否必填。
具体配置需要参考项目的页面原型。

生成信息

在这里插入图片描述

生成包路径:生成的java代码,会放在对应的包路径下。
生成功能名:在页面上显示菜单名称
上级菜单:选中之前新建的一级目录,商品中心。

在操作列,点击生成代码图标。
浏览器会下载一个zip压缩包。

5)代码附件-商品属性页面

将product_property表的java代码和vue代码放在对应的位置,sql语句也在数据库中执行。
商品属性页面的单表增删改查。
在这里插入图片描述

6)商品属性值页面

将商品属性页面中的属性名称列设置为可点击,打开属性值设置页面。

      <el-table-column label="属性名称" align="center"><template #default="scope"><router-link :to="'/mall/property-data/index/' + scope.row.id" class="link-type"><span>{{ scope.row.name }}</span></router-link></template></el-table-column>

修改src\router\index.js,新增动态路由

  {path: '/mall/property-data',component: Layout,hidden: true,permissions: ['mall:property:list'],children: [{path: 'index/:propertyId(\\d+)',component: () => import('@/views/mall/property/data'),name: 'PropertyData',meta: { title: '商品属性值', activeMenu: '/mall/property' }}]}

新建文件src\views\mall\property\data.vue。将product_property_value表生成的vue代码复制到文件内。
在这里插入图片描述
在这里插入图片描述
生成的java代码复制到对应路径
在这里插入图片描述

新增查询条件,实现商品属性值页面只显示点击的对应属性下的值。
mapper/mall/ProductPropertyValueMapper.xml

    <select id="selectProductPropertyValueList" parameterType="ProductPropertyValue" resultMap="ProductPropertyValueResult"><include refid="selectProductPropertyValueVo"/><where><if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if><if test="propertyId != null">and property_id = #{propertyId}</if></where></select>

修改文件src\views\mall\property\data.vue。保存属性ID,每次查询时都要带上。实现属性值页面只展示指定属性ID下的。

const proId = ref("");/** 查询商品属性值列表 */
function getList() {loading.value = true;queryParams.value.propertyId = proId.valuelistProperty_value(queryParams.value).then((response) => {property_valueList.value = response.rows;total.value = response.total;loading.value = false;});
}function getListById(propertyId) {proId.value = propertyIdgetList()
}getListById(route.params && route.params.propertyId);

二.功能验证

运行项目,浏览器访问http://localhost/mall/property
在这里插入图片描述
点击属性名称列的颜色,打开商品属性值页面。只显示出颜色属性下的属性值。
在这里插入图片描述
点击尺码,只显示出尺码下的值。
在这里插入图片描述

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

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

相关文章

操作指南:vLLM 部署开源大语言模型(LLM)

vLLM 是一个专为高效部署大语言模型&#xff08;LLM&#xff09;设计的开源推理框架&#xff0c;其核心优势在于显存优化、高吞吐量及云原生支持。 vLLM 部署开源大模型的详细步骤及优化策略&#xff1a; 一、环境准备与安装 安装 vLLM 基础安装&#xff1a;通过 pip 直接安装…

32.768kHz晶振详解:作用、特性及与其他晶振的区别

一、32.768kHz晶振的核心作用 实时时钟&#xff08;RTC&#xff09;驱动&#xff1a; 提供精确的1Hz时钟信号&#xff0c;用于计时功能&#xff08;如电子表、计算机CMOS时钟&#xff09;。 分频公式&#xff1a; 1Hz 32.768kHz / 2^15&#xff08;通过15级二分频实现&#x…

第3讲、大模型如何理解和表示单词:词嵌入向量原理详解

1. 引言 大型语言模型&#xff08;Large Language Models&#xff0c;简称LLM&#xff09;如GPT-4、Claude和LLaMA等近年来取得了突破性进展&#xff0c;能够生成流畅自然的文本、回答复杂问题、甚至编写代码。但这些模型究竟是如何理解人类语言的&#xff1f;它们如何表示和处…

【Java面试笔记:进阶】19.Java并发包提供了哪些并发工具类?

Java 并发包(java.util.concurrent)提供了一系列强大的工具类,用于简化多线程编程、提升并发性能并确保线程安全。 1. Java 并发包的核心内容 并发包概述:java.util.concurrent 包及其子包提供了丰富的并发工具类,用于简化多线程编程。主要组成部分: 高级同步结构:如 C…

Matlab数字信号处理——小波阈值法去噪分析系统

&#x1f527; 系统简介 本系统通过 MATLAB GUI 图形界面&#xff0c;集成了 小波阈值去噪算法 的各个核心模块&#xff0c;可以实现以下功能&#xff1a; 打开语音文件&#xff1a;支持常见音频格式读取&#xff1b; 模拟加噪&#xff1a;系统内置白噪声模拟功能&#xff0…

EDI 如何与 ERP,CRM,WMS等系统集成

在数字化浪潮下&#xff0c;与制造供应链相关产业正加速向智能化供应链转型。传统人工处理订单、库存和物流的方式已难以满足下单客户对响应速度和数据准确性的严苛要求。EDI技术作为企业间数据交换的核心枢纽&#xff0c;其与ERP、CRM、WMS等业务系统的深度集成&#xff0c;成…

计算机组成原理-408考点-数的表示

常见题型&#xff1a;C语言中的有符号数和无符号数的表示。 【例】有如下C语言程序段: short si-32767&#xff1b;unsigned short usisi&#xff1b;执行上述两条语句后&#xff0c;usi的值为___。short和unsigned short均使用16位二进制数表示。 【分析】考点&#xff1a;同…

企业级AI开发利器:Spring AI框架深度解析与实战

企业级AI开发利器&#xff1a;Spring AI框架深度解析与实战 一、前言&#xff1a;Java生态的AI新纪元 在人工智能技术爆发式发展的今天&#xff0c;Java开发者面临着一个新的挑战&#xff1a;如何将大语言模型&#xff08;LLMs&#xff09;和生成式AI&#xff08;GenAI&#…

【金仓数据库征文】——选择金仓,选择胜利

目录 第一部分&#xff1a;金仓数据库——开创数据库技术的新时代 1.1 金仓数据库的技术底蕴 1.2 高可用架构与灾备能力 1.3 分布式架构与弹性扩展能力 第二部分&#xff1a;金仓数据库助力行业数字化转型 2.1 电信行业&#xff1a;核心系统国产化替代 2.2 医疗行业&…

用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。

一、思路概要和知识回顾 1.思路概要 ①中缀表达式计算&#xff1a; 需要处理运算符的优先级&#xff0c;可能需要用到栈结构。 ❗❗如何将中缀表达式转换为后缀表达式&#xff1f;或者直接计算&#xff1f; 通常&#xff0c;中缀转后缀&#xff08;逆波兰式&#xff09;再…

Langchain_Agent+数据库

本处使用Agent数据库&#xff0c;可以直接执行SQL语句。可以多次循环查询问题 前文通过chain去联系数据库并进行操作&#xff1b; 通过链的不断内嵌组合&#xff0c;生成SQL在执行SQL再返回。 初始化 import os from operator import itemgetterimport bs4 from langchain.ch…

Python 爬虫如何伪装 Referer?从随机生成到动态匹配

一、Referer 的作用与重要性 Referer 是 HTTP 请求头中的一个字段&#xff0c;用于标识请求的来源页面。它在网站的正常运行中扮演着重要角色&#xff0c;例如用于统计流量来源、防止恶意链接等。然而&#xff0c;对于爬虫来说&#xff0c;Referer 也可能成为被识别为爬虫的关…

Post-Processing PropertySource instance详解 和 BeanFactoryPostProcessor详解

PropertySourcesBeanFactoryPostProcessor详解 1. 核心概念 BeanFactoryPostProcessor 是 Spring 框架中用于在 BeanFactory 初始化阶段 对 Environment 中的 PropertySource 进行后处理的接口。它允许开发者在 Bean 创建之前 对属性源进行动态修改&#xff0c;例如添加、删除…

[C]基础13.深入理解指针(5)

博客主页&#xff1a;向不悔本篇专栏&#xff1a;[C]您的支持&#xff0c;是我的创作动力。 文章目录 0、总结1、sizeof和strlen的对比1.1 sizeof1.2 strlen1.3 sizeof和strlen的对比 2、数组和指针笔试题解析2.1 一维数组2.2 字符数组2.2.1 代码12.2.2 代码22.2.3 代码32.2.4 …

赛灵思 XCKU115-2FLVB2104I Xilinx Kintex UltraScale FPGA

XCKU115-2FLVB2104I 是 AMD Xilinx Kintex UltraScale FPGA&#xff0c;基于 20 nm 先进工艺&#xff0c;提供高达 1 451 100 个逻辑单元&#xff08;Logic Cells&#xff09;&#xff0c;77 721 600 bit 的片上 RAM 资源&#xff0c;以及 5 520 个 DSP 切片&#xff08;DSP48E…

CAPL编程_03

1_文件操作的相关函数&#xff1a; 读文本文件内容 读取文本文件操作的三部曲 1&#xff09;打开文件 —— openFileRead ( ) 2&#xff09;逐行读取 —— fileGetString ( ) 、fileGetStringSZ ( ) 3&#xff09;关闭文件 —— fileClose ( ) char content[100];…

2025年江西建筑安全员A证适合报考人群

江西建筑安全员A证适合报考人群 江西省建筑安全员A证&#xff08;建筑施工企业主要负责人安全生产考核合格证书&#xff09;主要面向建筑行业管理人员&#xff0c;适合以下人员报考&#xff1a; 1. 企业主要负责人 法人代表、总经理、分管安全副总&#xff1a;依法需持A证&a…

Docker安装(Ubuntu22版)

前言 你是否还在为Linux上配置Docker而感到烦恼&#xff1f; 你是否还在为docker search&#xff0c;docker pull连接不上&#xff0c;而感到沮丧&#xff1f; 本文将解决以上你的所有烦恼&#xff01;快速安装好docker&#xff01; Docker安装 首先&#xff0c;我们得先卸载…

Ubuntu18.04配置C++环境和Qt环境

Ubuntu18.04配置C环境和Qt环境 1、前言3.2 安装其他库3.3 查看有没有安装成功3.4测试C环境 4、配置Qt环境4.1 安装相关的库4.2 测试 5、总结 1、前言 记录一下Ubuntu18.04配置C环境和Qt环境的过程&#xff0c;方便自己日后回顾&#xff0c;也可以给有需要的人提供帮助。 # 2…

ACWing——算法基础课

置顶思考&#xff1a; 算法的本质是什么样的思想&#xff1f; 这种思想可以解决哪类问题&#xff1f; 有没有其他的解决思路&#xff1f; 关注数值范围&#xff0c;思考可不可以针对性解决问题&#xff1f; 目录 https://leetcode.cn/circle/discuss/RvFUtj/ 滑动窗口与双指针…