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

news2025/4/25 5:27:46
功能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.value
    listProperty_value(queryParams.value).then((response) => {
        property_valueList.value = response.rows;
        total.value = response.total;
        loading.value = false;
    });
}

function getListById(propertyId) {
    proId.value = propertyId
    getList()
}

getListById(route.params && route.params.propertyId);

二.功能验证

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

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

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

相关文章

PCB封装主要组成元素

PCB&#xff08;Printed Circuit Board&#xff0c;印刷电路板&#xff09;封装是指将电子元件固定在 PCB 上&#xff0c;并实现电气连接的方式。主要包括以下几类。 1. 焊盘&#xff08;Pad&#xff09; 作用&#xff1a;焊盘是 PCB 封装中最重要的元素之一&#xff0c;它是…

《ATPL地面培训教材13:飞行原理》——第1章:概述与定义

翻译&#xff1a;刘远贺&#xff1b;辅助工具&#xff1a;Cluade 3.7 第1章&#xff1a;概述与定义 目录 概述一般定义术语表符号列表希腊符号其他自我评估问题答案 概述 飞机的基本要求如下&#xff1a; 机翼产生升力&#xff1b; 机身容纳载荷&#xff1b; 尾部表面增加…

实时数字人——DH_LIVE

前两天亲手搭建了实时对话数字人VideoChat&#xff0c;今天来搭建下DH_LIVE。 DH_LIVE一个实时数字人解决方案&#xff0c;从输入文字到数字人对口型说话用时2-3秒。 今天就来实际操作下dh_live的搭建过程。 首先贴上git地址&#xff1a;https://github.com/kleinlee/DH_liv…

SDC命令详解:使用remove_sdc命令移除约束

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 remove_sdc命令用于移除当前设计中设置的所有SDC约束&#xff0c;需要注意的是&#xff0c;UPF约束不会被移除&#xff0c;要想移除UPF约束&#xff0c;需要使用r…

UI界面工程,如何使用控制台

我们通常会使用print函数向控制台输出调试信息。但创建UI界面工程时&#xff0c;默认不会显示控制台。 通过如下方法切换到控制台 项目属性—链接器—系统—子系统—窗口改为控制台

Elasticsearch 堆内存使用情况和 JVM 垃圾回收

作者&#xff1a;来自 Elastic Kofi Bartlett 探索 Elasticsearch 堆内存使用情况和 JVM 垃圾回收&#xff0c;包括最佳实践以及在堆内存使用过高或 JVM 性能不佳时的解决方法。 堆内存大小是分配给 Elasticsearch 节点中 Java 虚拟机的 RAM 数量。 从 7.11 版本开始&#xff…

网络开发基础(游戏)之 域名解析

域名 &#xff08;Domain Name&#xff09; 是互联网中用于标识和定位网站、服务器或其他网络资源的字符串&#xff08;如 baidu.com、google.com&#xff09;&#xff0c;它充当了人类可读的“门牌号”。 其核心作用有以下几点&#xff1a; 1. 代替IP地址&#xff0c;便于记…

【数字图像处理】机器视觉(1)

判别相对应的点 1. 图像灰度化 2. 局部特征 3. 仿射不变性特征 图像变化的类型 【1】几何变化&#xff1a;旋转、相似&#xff08;旋转 各向相同的尺度缩放&#xff09;、仿射&#xff08;非各向相同的尺度缩放&#xff09; 【2】灰度变化&#xff1a;仿射灰度变化 角点 角…

C++项目 —— 基于多设计模式下的同步异步日志系统(4)(双缓冲区异步任务处理器(AsyncLooper)设计)

C项目 —— 基于多设计模式下的同步&异步日志系统&#xff08;4&#xff09;&#xff08;双缓冲区异步任务处理器&#xff08;AsyncLooper&#xff09;设计&#xff09; 异步线程什么是异步线程&#xff1f;C 异步线程简单例子代码解释程序输出关键点总结扩展&#xff1a;使…

Vue el-checkbox 虚拟滚动解决多选框全选卡顿问题 - 高性能处理大数据量选项列表

一、背景 在我们开发项目中&#xff0c;经常会遇到需要展示大量选项的多选框场景&#xff0c;比如权限配置、数据筛选等。当选项数量达到几百甚至上千条时&#xff0c;传统的渲染方式全选时会非常卡顿&#xff0c;导致性能问题。本篇文章&#xff0c;记录我使用通过虚拟滚动实现…

声音识别(声纹识别)和语音识别的区别

目录 引言一、语音识别1.声学模型2.语言模型3.词典 二、声音识别&#xff08;声纹识别&#xff09;三、语音识别、声音识别、语义识别的区别四、总结 引言 咋一看这个标题是不是很多小伙伴都迷糊了&#xff0c;哇哈&#xff0c;这两个不是一样的吗&#xff1f; 结论是&#x…

使用Mybaitis-plus提供的各种的免写SQL的Wrapper的使用方式

文章目录 内连接JoinWrappers.lambda和 new MPJLambdaWrapper 生成的MPJLambdaWrapper对象有啥区别&#xff1f;LambdaQueryWrapper 和 QueryWrapper的区别&#xff1f;LambdaQueryWrapper和MPJLambdaQueryWrapper的区别&#xff1f;在作单表更新时建议使用&#xff1a;LambdaU…

springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。本系统采用B/S架构&#xff0c;数据库是MySQL…

秀丸编辑器 使用技巧

参考资料 第II部〜知っていると便利な秀丸の機能 検索テキストファイルの16進表示について秀丸エディタヘルプ目次秀丸エディタ&#xff31;&#xff06;&#xff21;集(第9.6版)&#xff08;HTML 形式&#xff09;テンプレート&#xff08;Ver9.43対応版&#xff09; 目录 零…

什么是量子计算?它能做什么?

抛一枚硬币。要么正面朝上&#xff0c;要么反面朝上&#xff0c;对吧&#xff1f;当然&#xff0c;那是在我们看到硬币落地的结果之后。但当硬币还在空中旋转时&#xff0c;它既不是正面也不是反面&#xff0c;而是正面和反面都有一定的可能性。 这个灰色地带就是量子计算的简…

【新能源科学与技术】MATALB/Simulink小白教程(一)实验文档【新能源电力转换与控制仿真】

DP读书&#xff1a;新能源科学与工程——专业课「新能源发电系统」 2025a 版本 MATLAB下面进入正题 仿真一&#xff1a;Buck 电路一、仿真目的二、仿真内容&#xff08;一&#xff09;Buck电路基本构成及工作原理&#xff08;二&#xff09;Buck电路仿真模型及元件连接&#xf…

快速生成安卓证书并打包生成安卓apk(保姆教程)

一.生成安卓证书 目前市面上生成可以快速生成安卓证书的网站有很多个人推荐香蕉云编以下是网站链接 香蕉云编-app打包上架工具类平台 1.进入网站如下图 2.点击生成签名证书 3.点击立即创建证书 4.点击创建安卓证书 5.按照指引完成创建 6.点击下载就可使用 二.打包安卓apk …

mysql mvvc 实现方案

Mysql 事务隔离级别 并发问题 mysql中事务并发时&#xff0c;会产生的问题如下 脏读: 读到了其他事务中&#xff0c;暂未提交的数据 脏读 (Dirty Read) 是数据库事务隔离级别中最低的一种隔离级别 (READ UNCOMMITTED) 下可能出现的一种并发问题。 它指的是一个事务读取了另…

校园外卖服务系统的设计与实现(代码+数据库+LW)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;外卖信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

纷析云:开源财务管理软件的创新与价值

在企业数字化转型中&#xff0c;纷析云作为一款优秀的开源财务管理软件&#xff0c;正为企业财务管理带来新变革&#xff0c;以下是其核心要点。 一、产品概述与技术架构 纷析云采用微服务架构&#xff0c;功能组件高内聚低耦合&#xff0c;可灵活扩展和定制。前端基于现代框…