From 72c8828b10a42862b62bfa2ee459cf0ce9804715 Mon Sep 17 00:00:00 2001
From: cgx <2606784146@qq.com>
Date: Fri, 13 Dec 2024 22:28:35 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=84=E6=A0=BC=E3=80=82?=
=?UTF-8?q?=E5=9B=BE=E7=89=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/product/TbProductList.vue | 28 ++++
.../src/views/product/modules/TbProductForm.vue | 15 ++
.../src/views/productOrder/TbProductOrderList.vue | 29 ++++
.../productOrder/modules/TbProductOrderForm.vue | 16 ++
.../jeecg/modules/product/entity/TbProduct.java | 20 ++-
.../productOrder/entity/TbProductOrder.java | 20 +++
.../tbSpecs/controller/TbSpecsController.java | 156 +++++++++++++++++++
.../org/jeecg/modules/tbSpecs/entity/TbSpecs.java | 69 +++++++++
.../modules/tbSpecs/mapper/TbSpecsMapper.java | 14 ++
.../modules/tbSpecs/mapper/xml/TbSpecsMapper.xml | 5 +
.../modules/tbSpecs/service/ITbSpecsService.java | 14 ++
.../tbSpecs/service/impl/TbSpecsServiceImpl.java | 19 +++
.../org/jeecg/modules/tbSpecs/vue/TbSpecsList.vue | 171 +++++++++++++++++++++
.../modules/tbSpecs/vue/modules/TbSpecsForm.vue | 104 +++++++++++++
.../vue/modules/TbSpecsModal.Style#Drawer.vue | 84 ++++++++++
.../modules/tbSpecs/vue/modules/TbSpecsModal.vue | 60 ++++++++
.../org/jeecg/modules/tbSpecs/vue3/TbSpecs.api.ts | 61 ++++++++
.../org/jeecg/modules/tbSpecs/vue3/TbSpecs.data.ts | 23 +++
.../org/jeecg/modules/tbSpecs/vue3/TbSpecsList.vue | 162 +++++++++++++++++++
.../tbSpecs/vue3/components/TbSpecsModal.vue | 58 +++++++
.../alUser/controller/ProductController.java | 19 ++-
.../jeecg/modules/product/entity/ProductReq.java | 17 +-
.../product/service/impl/ProductServiceImpl.java | 15 +-
23 files changed, 1173 insertions(+), 6 deletions(-)
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/controller/TbSpecsController.java
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/entity/TbSpecs.java
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/TbSpecsMapper.java
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/xml/TbSpecsMapper.xml
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/ITbSpecsService.java
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/impl/TbSpecsServiceImpl.java
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/TbSpecsList.vue
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsForm.vue
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.Style#Drawer.vue
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.vue
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.api.ts
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.data.ts
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecsList.vue
create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/components/TbSpecsModal.vue
diff --git a/admin-hanhai-vue/src/views/product/TbProductList.vue b/admin-hanhai-vue/src/views/product/TbProductList.vue
index 63af222..0b33207 100644
--- a/admin-hanhai-vue/src/views/product/TbProductList.vue
+++ b/admin-hanhai-vue/src/views/product/TbProductList.vue
@@ -170,6 +170,31 @@
dataIndex: 'address'
},
+ {
+ title:'商品规格',
+ align:"center",
+ dataIndex: 'specsName'
+ },
+
+ {
+ title:'报价照片',
+ align:"center",
+ dataIndex: 'pic',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
+
+ {
+ title:'商品内容图片',
+ align:"center",
+ dataIndex: 'picDetail',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
+ {
+ title:'检测报告图片',
+ align:"center",
+ dataIndex: 'report',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
{
title:'单价',
align:"center",
@@ -246,6 +271,9 @@
fieldList.push({type:'string',value:'phone',text:'客户电话',dictCode:''})
fieldList.push({type:'string',value:'address',text:'提货地址',dictCode:''})
fieldList.push({type:'Text',value:'pic',text:'报价照片',dictCode:''})
+ fieldList.push({type:'Text',value:'picDetail',text:'商品内容图片',dictCode:''})
+ fieldList.push({type:'Text',value:'report',text:'检测报告图片',dictCode:''})
+ fieldList.push({type:'string',value:'specsName',text:'商品规格',dictCode:''})
fieldList.push({type:'BigDecimal',value:'price',text:'单价',dictCode:''})
fieldList.push({type:'int',value:'num',text:'暂定数量、',dictCode:''})
fieldList.push({type:'popup',value:'sortNum',text:'排序', popup:{code:'',field:'',orgFields:'',destFields:''}})
diff --git a/admin-hanhai-vue/src/views/product/modules/TbProductForm.vue b/admin-hanhai-vue/src/views/product/modules/TbProductForm.vue
index 5e1165d..e02292c 100644
--- a/admin-hanhai-vue/src/views/product/modules/TbProductForm.vue
+++ b/admin-hanhai-vue/src/views/product/modules/TbProductForm.vue
@@ -38,6 +38,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-hanhai-vue/src/views/productOrder/TbProductOrderList.vue b/admin-hanhai-vue/src/views/productOrder/TbProductOrderList.vue
index b65fe95..0b342af 100644
--- a/admin-hanhai-vue/src/views/productOrder/TbProductOrderList.vue
+++ b/admin-hanhai-vue/src/views/productOrder/TbProductOrderList.vue
@@ -185,6 +185,32 @@
align:"center",
dataIndex: 'price'
},
+
+ {
+ title:'商品规格',
+ align:"center",
+ dataIndex: 'specsName'
+ },
+
+ {
+ title:'报价照片',
+ align:"center",
+ dataIndex: 'pic',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
+
+ {
+ title:'商品内容图片',
+ align:"center",
+ dataIndex: 'picDetail',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
+ {
+ title:'检测报告图片',
+ align:"center",
+ dataIndex: 'report',
+ scopedSlots: {customRender: 'imgSlot'}
+ },
{
title:'定金',
align:"center",
@@ -254,6 +280,9 @@
fieldList.push({type:'BigDecimal',value:'price',text:'单价',dictCode:''})
fieldList.push({type:'BigDecimal',value:'deposit',text:'定金',dictCode:''})
fieldList.push({type:'int',value:'num',text:'暂定数量、',dictCode:''})
+ fieldList.push({type:'Text',value:'picDetail',text:'商品内容图片',dictCode:''})
+ fieldList.push({type:'Text',value:'report',text:'检测报告图片',dictCode:''})
+ fieldList.push({type:'string',value:'specsName',text:'商品规格',dictCode:''})
fieldList.push({type:'int',value:'auditStatus',text:'审核状态',dictCode:'audit_status'})
fieldList.push({type:'int',value:'showStatus',text:'挂单状态',dictCode:'show_status'})
fieldList.push({type:'int',value:'productType',text:'期货现货',dictCode:'product_type'})
diff --git a/admin-hanhai-vue/src/views/productOrder/modules/TbProductOrderForm.vue b/admin-hanhai-vue/src/views/productOrder/modules/TbProductOrderForm.vue
index bdb9bcc..de3eca4 100644
--- a/admin-hanhai-vue/src/views/productOrder/modules/TbProductOrderForm.vue
+++ b/admin-hanhai-vue/src/views/productOrder/modules/TbProductOrderForm.vue
@@ -48,6 +48,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/product/entity/TbProduct.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/product/entity/TbProduct.java
index 2d36aa8..40be798 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/product/entity/TbProduct.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/product/entity/TbProduct.java
@@ -90,7 +90,25 @@ public class TbProduct implements Serializable {
@Dict(dicCode = "product_type")
@ApiModelProperty(value = "期货现货 0期货 1 现货")
private java.lang.Integer productType;
- /**交货时间*/
+
+ /**商品内容图片*/
+ @Excel(name = "商品内容图片", width = 15)
+ @ApiModelProperty(value = "商品内容图片")
+ private java.lang.String picDetail;
+ /**检测报告图片*/
+ @Excel(name = "检测报告图片", width = 15)
+ @ApiModelProperty(value = "检测报告图片")
+ private java.lang.String report;
+ /**商品规格ID*/
+ @Excel(name = "商品规格ID", width = 15)
+ @ApiModelProperty(value = "商品规格ID")
+ private java.lang.String specsId;
+ /**商品规格*/
+ @Excel(name = "商品规格", width = 15)
+ @ApiModelProperty(value = "商品规格")
+ private java.lang.String specsName;
+
+ /**交货时间*/
@Excel(name = "交货时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/productOrder/entity/TbProductOrder.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/productOrder/entity/TbProductOrder.java
index c2d7716..600f11c 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/productOrder/entity/TbProductOrder.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/productOrder/entity/TbProductOrder.java
@@ -83,6 +83,26 @@ public class TbProductOrder implements Serializable {
@Excel(name = "定金", width = 15)
@ApiModelProperty(value = "定金")
private java.math.BigDecimal deposit;
+
+
+ /**商品内容图片*/
+ @Excel(name = "商品内容图片", width = 15)
+ @ApiModelProperty(value = "商品内容图片")
+ private java.lang.String picDetail;
+ /**检测报告图片*/
+ @Excel(name = "检测报告图片", width = 15)
+ @ApiModelProperty(value = "检测报告图片")
+ private java.lang.String report;
+ /**商品规格ID*/
+ @Excel(name = "商品规格ID", width = 15)
+ @ApiModelProperty(value = "商品规格ID")
+ private java.lang.String specsId;
+ /**商品规格*/
+ @Excel(name = "商品规格", width = 15)
+ @ApiModelProperty(value = "商品规格")
+ private java.lang.String specsName;
+
+
/**暂定数量、*/
@Excel(name = "暂定数量、", width = 15)
@ApiModelProperty(value = "暂定数量、")
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/controller/TbSpecsController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/controller/TbSpecsController.java
new file mode 100644
index 0000000..8e96654
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/controller/TbSpecsController.java
@@ -0,0 +1,156 @@
+package org.jeecg.modules.tbSpecs.controller;
+
+import java.util.Arrays;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import org.jeecg.modules.tbSpecs.service.ITbSpecsService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: tb_specs
+ * @Author: jeecg-boot
+ * @Date: 2024-12-13
+ * @Version: V1.0
+ */
+@Api(tags="tb_specs")
+@RestController
+@RequestMapping("/tbSpecs/tbSpecs")
+@Slf4j
+public class TbSpecsController extends JeecgController {
+ @Autowired
+ private ITbSpecsService tbSpecsService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param tbSpecs
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ //@AutoLog(value = "tb_specs-分页列表查询")
+ @ApiOperation(value="tb_specs-分页列表查询", notes="tb_specs-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(TbSpecs tbSpecs,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tbSpecs, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = tbSpecsService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param tbSpecs
+ * @return
+ */
+ @AutoLog(value = "tb_specs-添加")
+ @ApiOperation(value="tb_specs-添加", notes="tb_specs-添加")
+ @PostMapping(value = "/add")
+ public Result add(@RequestBody TbSpecs tbSpecs) {
+ tbSpecsService.save(tbSpecs);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param tbSpecs
+ * @return
+ */
+ @AutoLog(value = "tb_specs-编辑")
+ @ApiOperation(value="tb_specs-编辑", notes="tb_specs-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result edit(@RequestBody TbSpecs tbSpecs) {
+ tbSpecsService.updateById(tbSpecs);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "tb_specs-通过id删除")
+ @ApiOperation(value="tb_specs-通过id删除", notes="tb_specs-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result delete(@RequestParam(name="id",required=true) String id) {
+ tbSpecsService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "tb_specs-批量删除")
+ @ApiOperation(value="tb_specs-批量删除", notes="tb_specs-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.tbSpecsService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ //@AutoLog(value = "tb_specs-通过id查询")
+ @ApiOperation(value="tb_specs-通过id查询", notes="tb_specs-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result queryById(@RequestParam(name="id",required=true) String id) {
+ TbSpecs tbSpecs = tbSpecsService.getById(id);
+ if(tbSpecs==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(tbSpecs);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param tbSpecs
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, TbSpecs tbSpecs) {
+ return super.exportXls(request, tbSpecs, TbSpecs.class, "tb_specs");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, TbSpecs.class);
+ }
+
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/entity/TbSpecs.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/entity/TbSpecs.java
new file mode 100644
index 0000000..27cee1c
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/entity/TbSpecs.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.tbSpecs.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: tb_specs
+ * @Author: jeecg-boot
+ * @Date: 2024-12-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("tb_specs")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tb_specs对象", description="tb_specs")
+public class TbSpecs implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "id")
+ private java.lang.String id;
+ /**规格名*/
+ @Excel(name = "规格名", width = 15)
+ @ApiModelProperty(value = "规格名")
+ private java.lang.String specsName;
+ /**图片*/
+ @Excel(name = "图片", width = 15)
+ @ApiModelProperty(value = "图片")
+ private java.lang.String pic;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private java.lang.String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @ApiModelProperty(value = "创建日期")
+ private java.util.Date createTime;
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private java.lang.String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @ApiModelProperty(value = "更新日期")
+ private java.util.Date updateTime;
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private java.lang.String sysOrgCode;
+ /**删除标识0-正常,1-已删除*/
+ @Excel(name = "删除标识0-正常,1-已删除", width = 15)
+ @ApiModelProperty(value = "删除标识0-正常,1-已删除")
+ private java.lang.Integer delFlag;
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/TbSpecsMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/TbSpecsMapper.java
new file mode 100644
index 0000000..de3f005
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/TbSpecsMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tbSpecs.mapper;
+
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: tb_specs
+ * @Author: jeecg-boot
+ * @Date: 2024-12-13
+ * @Version: V1.0
+ */
+public interface TbSpecsMapper extends BaseMapper {
+
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/xml/TbSpecsMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/xml/TbSpecsMapper.xml
new file mode 100644
index 0000000..440b91b
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/mapper/xml/TbSpecsMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/ITbSpecsService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/ITbSpecsService.java
new file mode 100644
index 0000000..baeaa1a
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/ITbSpecsService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.tbSpecs.service;
+
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: tb_specs
+ * @Author: jeecg-boot
+ * @Date: 2024-12-13
+ * @Version: V1.0
+ */
+public interface ITbSpecsService extends IService {
+
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/impl/TbSpecsServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/impl/TbSpecsServiceImpl.java
new file mode 100644
index 0000000..9b7b069
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/service/impl/TbSpecsServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.tbSpecs.service.impl;
+
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import org.jeecg.modules.tbSpecs.mapper.TbSpecsMapper;
+import org.jeecg.modules.tbSpecs.service.ITbSpecsService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: tb_specs
+ * @Author: jeecg-boot
+ * @Date: 2024-12-13
+ * @Version: V1.0
+ */
+@Service
+public class TbSpecsServiceImpl extends ServiceImpl implements ITbSpecsService {
+
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/TbSpecsList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/TbSpecsList.vue
new file mode 100644
index 0000000..f7356ea
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/TbSpecsList.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+ 导入
+
+
+
+
+
+ 删除
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsForm.vue
new file mode 100644
index 0000000..1b8cd74
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsForm.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.Style#Drawer.vue
new file mode 100644
index 0000000..3198a42
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.vue
new file mode 100644
index 0000000..892e5a7
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue/modules/TbSpecsModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.api.ts
new file mode 100644
index 0000000..bb4962a
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.api.ts
@@ -0,0 +1,61 @@
+import {defHttp} from '/@/utils/http/axios';
+import {Modal} from 'ant-design-vue';
+
+enum Api {
+ list = '/tbSpecs/tbSpecs/list',
+ save='/tbSpecs/tbSpecs/add',
+ edit='/tbSpecs/tbSpecs/edit',
+ deleteOne = '/tbSpecs/tbSpecs/delete',
+ deleteBatch = '/tbSpecs/tbSpecs/deleteBatch',
+ importExcel = '/tbSpecs/tbSpecs/importExcel',
+ exportXls = '/tbSpecs/tbSpecs/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+ defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+ Modal.confirm({
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({url: url, params});
+}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.data.ts
new file mode 100644
index 0000000..3ded4e3
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecs.data.ts
@@ -0,0 +1,23 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '规格名',
+ align:"center",
+ dataIndex: 'specsName'
+ },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '规格名',
+ field: 'specsName',
+ component: 'Input',
+ },
+];
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecsList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecsList.vue
new file mode 100644
index 0000000..fca535d
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/TbSpecsList.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无文件
+ 下载
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/components/TbSpecsModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/components/TbSpecsModal.vue
new file mode 100644
index 0000000..f7e9f5e
--- /dev/null
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/tbSpecs/vue3/components/TbSpecsModal.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/ProductController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/ProductController.java
index c0347a7..7aee3e9 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/ProductController.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/alUser/controller/ProductController.java
@@ -22,6 +22,8 @@ import org.jeecg.modules.productOrder.entity.TbProductOrder;
import org.jeecg.modules.productOrder.service.ITbProductOrderService;
import org.jeecg.modules.tbCustoms.entity.TbCustoms;
import org.jeecg.modules.tbCustoms.service.ITbCustomsService;
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import org.jeecg.modules.tbSpecs.service.ITbSpecsService;
import org.jeecg.modules.utils.ValidateTool;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,7 +54,8 @@ public class ProductController extends JeecgController> specsList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("del_flag",0);
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = tbSpecsService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+
+
@ApiOperation(value = "清关申请", notes = "清关申请")
@PostMapping(value = "/addCustoms")
public Result addCustoms(@RequestBody CustomsReq customsReq, @RequestHeader("X-Access-Token") String token) {
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/entity/ProductReq.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/entity/ProductReq.java
index b2f1266..1d5536c 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/entity/ProductReq.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/entity/ProductReq.java
@@ -45,5 +45,20 @@ public class ProductReq implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "交货时间")
private Date transactionTime;
-
+ /**报价照片*/
+ @Excel(name = "报价照片", width = 15)
+ @ApiModelProperty(value = "报价照片")
+ private java.lang.String pic;
+ /**商品内容图片*/
+ @Excel(name = "商品内容图片", width = 15)
+ @ApiModelProperty(value = "商品内容图片")
+ private java.lang.String picDetail;
+ /**检测报告图片*/
+ @Excel(name = "检测报告图片", width = 15)
+ @ApiModelProperty(value = "检测报告图片")
+ private java.lang.String report;
+ /**商品规格ID*/
+ @Excel(name = "商品规格ID", width = 15)
+ @ApiModelProperty(value = "商品规格ID")
+ private java.lang.String specsId;
}
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/service/impl/ProductServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/service/impl/ProductServiceImpl.java
index c7d80a6..cac0f88 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/service/impl/ProductServiceImpl.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/product/service/impl/ProductServiceImpl.java
@@ -20,6 +20,8 @@ import org.jeecg.modules.product.service.ITbProductService;
import org.jeecg.modules.product.service.ProductService;
import org.jeecg.modules.productOrder.entity.TbProductOrder;
import org.jeecg.modules.productOrder.service.ITbProductOrderService;
+import org.jeecg.modules.tbSpecs.entity.TbSpecs;
+import org.jeecg.modules.tbSpecs.service.ITbSpecsService;
import org.jeecg.modules.userRole.entity.TbUserRole;
import org.jeecg.modules.userRole.service.ITbUserRoleService;
import org.jeecg.modules.utils.ValidateTool;
@@ -51,7 +53,7 @@ public class ProductServiceImpl extends ServiceImpl
@Resource
private ITbAddressService addressService;
@Resource
- private RedisUtil redisUtil;
+ private ITbSpecsService tbSpecsService;
@Transactional(rollbackFor = Exception.class)
@Override
@@ -68,7 +70,11 @@ public class ProductServiceImpl extends ServiceImpl
if (ValidateTool.isNull(byId)) {
return Result.error("请选择地址");
}
- Object productPic = redisUtil.get("productPic");
+// Object productPic = redisUtil.get("productPic");
+ TbSpecs specs = tbSpecsService.getById(productReq.getSpecsId());
+ if (ValidateTool.isNull(specs)) {
+ return Result.error("请选择规格");
+ }
TbProduct product = new TbProduct();
BeanUtils.copyProperties(productReq, product);
product.setUserId(hanHaiMember.getId());
@@ -77,8 +83,8 @@ public class ProductServiceImpl extends ServiceImpl
product.setAddress(byId.getAddress()+byId.getAddressDetail());
product.setShowStatus(2);
//默认图片
- product.setPic(ValidateTool.isNull(productPic) ? "https://dianpin-img.xzaiyp.top/upload/组467843x_1729332845907.png" : String.valueOf(productPic));
product.setProductType(2);
+ product.setSpecsName(specs.getSpecsName());
tbProductMapper.insert(product);
return Result.OK("添加成功!");
}
@@ -118,6 +124,9 @@ public class ProductServiceImpl extends ServiceImpl
tbProductOrder.setUserName(one2.getCompanyName());
tbProductOrder.setPhone(one2.getPhone());
tbProductOrder.setPic(product.getPic());
+ tbProductOrder.setPicDetail(product.getPicDetail());
+ tbProductOrder.setSpecsId(product.getSpecsId());
+ tbProductOrder.setSpecsName(product.getSpecsName());
tbProductOrder.setPrice(product.getPrice());
tbProductOrder.setTakeTime(productReq.getTakeTime());
LambdaQueryWrapper objectLambdaQueryWrapper = new LambdaQueryWrapper<>();