From af8f5dab5b14ea6e609127d9adaa712c29b9e23a Mon Sep 17 00:00:00 2001 From: riverflow <3011499946@qq.com> Date: Thu, 14 Aug 2025 16:11:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=9C=A8datagrip=E4=B8=AD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8mysql=E6=96=B0=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E5=88=9B=E5=BB=BA=E8=8F=9C=E5=93=81=E8=A1=A8=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0category=5Fid=E7=AD=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在web模块下配置实现category菜品管理模块接口 --- .../controller/SysCategoryController.java | 61 +++++++++++++++++++ .../web/category/entity/CategoryPageParm.java | 11 ++++ .../itmk/web/category/entity/SysCategory.java | 19 ++++++ .../category/mapper/SysCategoryMapper.java | 7 +++ .../category/service/SysCategoryService.java | 7 +++ .../service/impl/SysCategoryServiceImpl.java | 11 ++++ .../resources/mapper/SysCategoryMapper.xml | 7 +++ 7 files changed, 123 insertions(+) create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java new file mode 100644 index 0000000..4812dae --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java @@ -0,0 +1,61 @@ +package com.itmk.web.category.controller; + + +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.itmk.utils.ResultUtils; +import com.itmk.utils.ResultVo; +import com.itmk.web.category.entity.CategoryPageParm; +import com.itmk.web.category.entity.SysCategory; +import com.itmk.web.category.service.SysCategoryService; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/category") +public class SysCategoryController { + +// 注入服务类 + private SysCategoryService sysCategoryService; + +// 新增菜品 + @PostMapping + public ResultVo addCategory(@RequestBody SysCategory sysCategory){ + if(sysCategoryService.save(sysCategory)){ + return ResultUtils.success("新增菜品成功!", sysCategory); + } + return ResultUtils.error("新增菜品失败!"); + } + +// 编辑菜品 + @PutMapping + public ResultVo editCategory(@RequestBody SysCategory sysCategory){ + if(sysCategoryService.updateById(sysCategory)){ + return ResultUtils.success("编辑菜品成功!", sysCategory); + } + return ResultUtils.error("编辑菜品失败!"); + } + +// 删除菜品 + @DeleteMapping("/{categoryId}") + public ResultVo deleteCategory(@PathVariable Long categoryId){ + if(sysCategoryService.removeById(categoryId)){ + return ResultUtils.success("删除菜品成功!"); + } + return ResultUtils.error("删除菜品失败!"); + } + +// 列表查询 +// 列表查询需要分页 + @GetMapping("/list") + public ResultVo getList(CategoryPageParm parm) { + IPage page = new Page<>(parm.getCurrentPage(), parm.getPageSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().like(!StringUtils.isEmpty(parm.getCategoryName()), SysCategory::getCategoryName, parm.getCategoryName()) + .orderByAsc(SysCategory::getOrderNum); + IPage list = sysCategoryService.page(page, queryWrapper); + return ResultUtils.success("查询成功", list); + } + +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java new file mode 100644 index 0000000..0f7bafa --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java @@ -0,0 +1,11 @@ +package com.itmk.web.category.entity; + + +import lombok.Data; + +@Data +public class CategoryPageParm { + private Integer currentPage;//当前页 + private Integer pageSize;//每页显示多少条 + private String categoryName; +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java new file mode 100644 index 0000000..c374022 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java @@ -0,0 +1,19 @@ +package com.itmk.web.category.entity; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data + +@TableName("sys_category")//表明该类实体类所关联的数据表库 + +//创建一个实体类 +public class SysCategory { + @TableId(type = IdType.AUTO) //表明这是一个主键,并且自动递增 + private Long categoryId; + private String categoryName; + private Integer orderNum; +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java new file mode 100644 index 0000000..3420459 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java @@ -0,0 +1,7 @@ +package com.itmk.web.category.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.itmk.web.category.entity.SysCategory; + +public interface SysCategoryMapper extends BaseMapper { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java new file mode 100644 index 0000000..b66921f --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java @@ -0,0 +1,7 @@ +package com.itmk.web.category.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.itmk.web.category.entity.SysCategory; + +public interface SysCategoryService extends IService { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java new file mode 100644 index 0000000..6273118 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java @@ -0,0 +1,11 @@ +package com.itmk.web.category.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.itmk.web.category.entity.SysCategory; +import com.itmk.web.category.mapper.SysCategoryMapper; +import com.itmk.web.category.service.SysCategoryService; +import org.springframework.stereotype.Service; + +@Service +public class SysCategoryServiceImpl extends ServiceImpl implements SysCategoryService { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml b/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml new file mode 100644 index 0000000..909603d --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file -- 2.34.1 From 85dcb59c62412acf46bf40ebeb153ef9eb9e3c44 Mon Sep 17 00:00:00 2001 From: riverflow <3011499946@qq.com> Date: Thu, 14 Aug 2025 16:11:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=9C=A8datagrip=E4=B8=AD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8mysql=E5=88=9B=E5=BB=BA=E8=8F=9C=E5=93=81=E8=A1=A8=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0category=5Fid=E7=AD=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在web模块下配置实现category菜品管理模块接口 --- .../controller/SysCategoryController.java | 61 +++++++++++++++++++ .../web/category/entity/CategoryPageParm.java | 11 ++++ .../itmk/web/category/entity/SysCategory.java | 19 ++++++ .../category/mapper/SysCategoryMapper.java | 7 +++ .../category/service/SysCategoryService.java | 7 +++ .../service/impl/SysCategoryServiceImpl.java | 11 ++++ .../resources/mapper/SysCategoryMapper.xml | 7 +++ 7 files changed, 123 insertions(+) create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java create mode 100644 api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java new file mode 100644 index 0000000..4812dae --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java @@ -0,0 +1,61 @@ +package com.itmk.web.category.controller; + + +import com.alibaba.druid.util.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.itmk.utils.ResultUtils; +import com.itmk.utils.ResultVo; +import com.itmk.web.category.entity.CategoryPageParm; +import com.itmk.web.category.entity.SysCategory; +import com.itmk.web.category.service.SysCategoryService; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/category") +public class SysCategoryController { + +// 注入服务类 + private SysCategoryService sysCategoryService; + +// 新增菜品 + @PostMapping + public ResultVo addCategory(@RequestBody SysCategory sysCategory){ + if(sysCategoryService.save(sysCategory)){ + return ResultUtils.success("新增菜品成功!", sysCategory); + } + return ResultUtils.error("新增菜品失败!"); + } + +// 编辑菜品 + @PutMapping + public ResultVo editCategory(@RequestBody SysCategory sysCategory){ + if(sysCategoryService.updateById(sysCategory)){ + return ResultUtils.success("编辑菜品成功!", sysCategory); + } + return ResultUtils.error("编辑菜品失败!"); + } + +// 删除菜品 + @DeleteMapping("/{categoryId}") + public ResultVo deleteCategory(@PathVariable Long categoryId){ + if(sysCategoryService.removeById(categoryId)){ + return ResultUtils.success("删除菜品成功!"); + } + return ResultUtils.error("删除菜品失败!"); + } + +// 列表查询 +// 列表查询需要分页 + @GetMapping("/list") + public ResultVo getList(CategoryPageParm parm) { + IPage page = new Page<>(parm.getCurrentPage(), parm.getPageSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().like(!StringUtils.isEmpty(parm.getCategoryName()), SysCategory::getCategoryName, parm.getCategoryName()) + .orderByAsc(SysCategory::getOrderNum); + IPage list = sysCategoryService.page(page, queryWrapper); + return ResultUtils.success("查询成功", list); + } + +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java new file mode 100644 index 0000000..0f7bafa --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/CategoryPageParm.java @@ -0,0 +1,11 @@ +package com.itmk.web.category.entity; + + +import lombok.Data; + +@Data +public class CategoryPageParm { + private Integer currentPage;//当前页 + private Integer pageSize;//每页显示多少条 + private String categoryName; +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java new file mode 100644 index 0000000..c374022 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/entity/SysCategory.java @@ -0,0 +1,19 @@ +package com.itmk.web.category.entity; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data + +@TableName("sys_category")//表明该类实体类所关联的数据表库 + +//创建一个实体类 +public class SysCategory { + @TableId(type = IdType.AUTO) //表明这是一个主键,并且自动递增 + private Long categoryId; + private String categoryName; + private Integer orderNum; +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java new file mode 100644 index 0000000..3420459 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/mapper/SysCategoryMapper.java @@ -0,0 +1,7 @@ +package com.itmk.web.category.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.itmk.web.category.entity.SysCategory; + +public interface SysCategoryMapper extends BaseMapper { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java new file mode 100644 index 0000000..b66921f --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/SysCategoryService.java @@ -0,0 +1,7 @@ +package com.itmk.web.category.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.itmk.web.category.entity.SysCategory; + +public interface SysCategoryService extends IService { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java new file mode 100644 index 0000000..6273118 --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/service/impl/SysCategoryServiceImpl.java @@ -0,0 +1,11 @@ +package com.itmk.web.category.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.itmk.web.category.entity.SysCategory; +import com.itmk.web.category.mapper.SysCategoryMapper; +import com.itmk.web.category.service.SysCategoryService; +import org.springframework.stereotype.Service; + +@Service +public class SysCategoryServiceImpl extends ServiceImpl implements SysCategoryService { +} diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml b/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml new file mode 100644 index 0000000..909603d --- /dev/null +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/resources/mapper/SysCategoryMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file -- 2.34.1 From 4cfe26647c5d673f09206591394c21eee5bccafd Mon Sep 17 00:00:00 2001 From: riverflow <3011499946@qq.com> Date: Thu, 14 Aug 2025 22:51:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=8F=9C=E5=93=81?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E6=A8=A1=E5=9D=97=E4=B8=8E=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysCategoryController.java | 28 +++-- .../src/api/category/categoryModel.ts | 17 +++ order-system/src/api/category/index.ts | 29 +++++ .../src/compositions/category/useCategory.ts | 50 ++++++++ .../compositions/category/useCategoryTable.ts | 97 +++++++++++++++ .../src/views/category/AddCategory.vue | 117 ++++++++++++++++++ order-system/src/views/category/Index.vue | 58 ++++++++- 7 files changed, 380 insertions(+), 16 deletions(-) create mode 100644 order-system/src/api/category/categoryModel.ts create mode 100644 order-system/src/api/category/index.ts create mode 100644 order-system/src/compositions/category/useCategory.ts create mode 100644 order-system/src/compositions/category/useCategoryTable.ts create mode 100644 order-system/src/views/category/AddCategory.vue diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java index 4812dae..5e257f3 100644 --- a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/category/controller/SysCategoryController.java @@ -10,6 +10,7 @@ import com.itmk.utils.ResultVo; import com.itmk.web.category.entity.CategoryPageParm; import com.itmk.web.category.entity.SysCategory; import com.itmk.web.category.service.SysCategoryService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @@ -17,33 +18,40 @@ import org.springframework.web.bind.annotation.*; public class SysCategoryController { // 注入服务类 + @Autowired private SysCategoryService sysCategoryService; -// 新增菜品 +// 新增菜品分类 @PostMapping public ResultVo addCategory(@RequestBody SysCategory sysCategory){ - if(sysCategoryService.save(sysCategory)){ - return ResultUtils.success("新增菜品成功!", sysCategory); + //单独检查菜品分类名称 + if(sysCategoryService.lambdaQuery() + .eq(SysCategory::getCategoryName, sysCategory.getCategoryName()) + .exists()){ + return ResultUtils.error("菜品分类已存在!"); } - return ResultUtils.error("新增菜品失败!"); + return sysCategoryService.save(sysCategory) + ? ResultUtils.success("新增菜品分类成功!", sysCategory) + : ResultUtils.error("新增菜品分类失败!"); + } -// 编辑菜品 +// 编辑菜品分类 @PutMapping public ResultVo editCategory(@RequestBody SysCategory sysCategory){ if(sysCategoryService.updateById(sysCategory)){ - return ResultUtils.success("编辑菜品成功!", sysCategory); + return ResultUtils.success("编辑菜品分类成功!", sysCategory); } - return ResultUtils.error("编辑菜品失败!"); + return ResultUtils.error("编辑菜品分类失败!"); } -// 删除菜品 +// 删除菜品分类 @DeleteMapping("/{categoryId}") public ResultVo deleteCategory(@PathVariable Long categoryId){ if(sysCategoryService.removeById(categoryId)){ - return ResultUtils.success("删除菜品成功!"); + return ResultUtils.success("删除菜品分类成功!"); } - return ResultUtils.error("删除菜品失败!"); + return ResultUtils.error("删除菜品分类失败!"); } // 列表查询 diff --git a/order-system/src/api/category/categoryModel.ts b/order-system/src/api/category/categoryModel.ts new file mode 100644 index 0000000..679f6bc --- /dev/null +++ b/order-system/src/api/category/categoryModel.ts @@ -0,0 +1,17 @@ +// 定义数据类型 + +// 定义菜品列表查询的数据类型 +export type listCategoryParm = { + currentPage: number;//当前页 + pageSize: number;//每页显示多少条 + categoryName: string;//根据菜品名查询 + total: number;//总条数 +} + +// 定义菜品表单数据类型 +export type categoryModel = { + categoryId: string; + categoryName: string; + orderNum: string; + type: string; +} \ No newline at end of file diff --git a/order-system/src/api/category/index.ts b/order-system/src/api/category/index.ts new file mode 100644 index 0000000..dd7e4e8 --- /dev/null +++ b/order-system/src/api/category/index.ts @@ -0,0 +1,29 @@ +// 配置接口 + + +import http from "../../http"; + +// 导入数据类型的定义 +import type { listCategoryParm, categoryModel } from "./categoryModel"; + +// 增(传入categoryModel参数,用来接收需要传入该表单的数据类型) +export const addCategoryApi = (parm: categoryModel) => { + // 返回http中的post请求,传入路径和数据参数,通过请求接入后端接口 + return http.post('/api/category', parm) +} + +// 删 +export const deleteCategoryApi = (categoryId: string) => { + return http.delete(`/api/category/${categoryId}`) +} + +// 改 +export const editCategoryApi = (parm: categoryModel) => { + return http.put('/api/category', parm) +} + +// 查(传入的参数是列表参数,包括分页,查询等属性) +export const getCategoryApi = (parm: listCategoryParm) => { + // 查需要找到列表,把列表里面的数据返回出来 + return http.get('/api/category/list', parm) +} \ No newline at end of file diff --git a/order-system/src/compositions/category/useCategory.ts b/order-system/src/compositions/category/useCategory.ts new file mode 100644 index 0000000..d9427fb --- /dev/null +++ b/order-system/src/compositions/category/useCategory.ts @@ -0,0 +1,50 @@ +// 抽取增删改业务 + +import { ref } from "vue"; +import type { FuncList } from "../../type/baseType"; +import type { categoryModel } from "../../api/category/categoryModel"; +import { EditType } from "../../type/baseType"; +import { deleteCategoryApi } from "../../api/category"; +import { ElMessage } from "element-plus"; +import useInstance from "@/hooks/useInstance"; + +export default function useCategory(getList: FuncList) { + const { global } = useInstance() + // 获取AddCategory里面的show方法 + const showBtn = ref<{ show: (title: string, type: string, width?: number, height?: number, row?: categoryModel) => {} }>(); + // 增 + const addBtn = () => { + showBtn.value?.show("新增", EditType.ADD, 630, 180) + } + + // 删 + const deleteBtn = async (row: categoryModel) => { + let confirm = await global.$myconfirm('确定删除该数据吗?') + + // 判断confirm返回true(用户确定删除)就进行删除(调用删除api) + if (confirm) { + let res = await deleteCategoryApi(row.categoryId) + if (res && res.code == 200) { + // 删除成功信息提示 + ElMessage.success(res.msg) + // 删除后刷新列表 + getList() + } + } + } + // 改 + // 传递row参数,将旧数据传递出去方便编辑 + const editBtn = (row: categoryModel) => { + console.log(row) + showBtn.value?.show("编辑", EditType.EDIT, 630, 180, row) + } + + + return { + showBtn, + addBtn, + deleteBtn, + editBtn + } +} + diff --git a/order-system/src/compositions/category/useCategoryTable.ts b/order-system/src/compositions/category/useCategoryTable.ts new file mode 100644 index 0000000..25aa33f --- /dev/null +++ b/order-system/src/compositions/category/useCategoryTable.ts @@ -0,0 +1,97 @@ +// 抽取表单操作 +import { getCategoryApi } from "../../api/category" +import type { listCategoryParm } from "../../api/category/categoryModel" +import { ref, reactive, onMounted, nextTick } from "vue" + +export default function useCategoryTable() { + + // 设置列表查询参数(查) + const listParm = reactive({ + currentPage: 1,//当前页 + pageSize: 10,//每页显示多少条 + categoryName: '',//根据菜品名查询 + total: 0//总条数 + }) + + // 设置表格高度(默认值设置为0) + const tableHeight = ref(0) + + // 需要在页面上显示列表,所以定义一个变量用来存储从categoryList中查询到的值 + const tableList = ref([]) + + // 列表查询 + const getList = async () => { + + // 调用列表查询api,变量接收查询值(listParm) + let res = await getCategoryApi(listParm) + console.log(res) + // 如果调用查询api成功,同时满足res不为空,状态码返回正确状态(200) + if (res && res.code == 200) { + // ref定义的响应式变量,通过.value赋值 + /* res.data.records res存放的是通过api调取后端接口返回的对象 + public class ResultVo { + private String msg; + private int code; + private T data; + } */ + // data里面的records存储对象数组 + tableList.value = res.data.records + + // 更新列表查询查出来的总条数,覆盖默认值0 + listParm.total = res.data.total; + } + } + + // 搜索按钮 + const searchBtn = () => { + getList() + } + + // 重置按钮 + const resetBtn = () => { + // 重置列表显示到第一页(首页) + listParm.currentPage = 1 + // 重置搜索框为空(重置搜索值为空) + listParm.categoryName = '' + // 再调用getList显示全部列表 + getList() + } + + // 在组件挂载时加载数据 + onMounted(() => { + getList() + + // 计算表格高度覆盖默认值 + nextTick(() => { + tableHeight.value = window.innerHeight - 220 + }) + }) + + // 当本页面页面大小变化时触发该方法 + const sizeChange = (size:number)=>{ + // 当当前页面的size变化时,设置本地页面size变化 + listParm.pageSize = size + // 刷新页面(重调getList方法) + getList() + } + + // 当页面指针变化时触发该方法(第n页变化) + const currentChange = (page:number)=>{ + // 当当前页面的page变化时,设置本地页面page变化 + listParm.currentPage = page + // 刷新页面(重调getList方法) + getList() + } + + // 将所有属性方法返回出去 + return { + tableList, + tableHeight, + listParm, + getList, + searchBtn, + resetBtn, + sizeChange, + currentChange + } +} diff --git a/order-system/src/views/category/AddCategory.vue b/order-system/src/views/category/AddCategory.vue new file mode 100644 index 0000000..8b87c9b --- /dev/null +++ b/order-system/src/views/category/AddCategory.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/order-system/src/views/category/Index.vue b/order-system/src/views/category/Index.vue index 01fe23c..6a2a7ce 100644 --- a/order-system/src/views/category/Index.vue +++ b/order-system/src/views/category/Index.vue @@ -1,13 +1,59 @@ + + +import useCategory from '@/compositions/category/useCategory'; +const { showBtn, addBtn, deleteBtn, editBtn } = useCategory(getList) - \ No newline at end of file + \ No newline at end of file -- 2.34.1