Files
sexygoat de9753f42d
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 3m27s
fetch(modify):修复BUG
2026-02-03 14:39:45 +08:00

2.4 KiB

Implementation Tasks

1. 类型定义

  • 1.1 在 src/types/api/shop.ts 中添加 ShopRoleResponse 接口
  • 1.2 在 src/types/api/shop.ts 中添加 ShopRolesResponse 接口
  • 1.3 在 src/types/api/shop.ts 中添加 AssignShopRolesRequest 接口

2. API 服务层

  • 2.1 在 ShopService 中添加 getShopRoles(shopId) 方法
  • 2.2 在 ShopService 中添加 assignShopRoles(shopId, roleIds) 方法
  • 2.3 在 ShopService 中添加 deleteShopRole(shopId, roleId) 方法

3. UI 组件开发

  • 3.1 检查店铺管理列表页面 (src/views/product/shop/index.vue 已存在)
  • 3.2 在店铺列表操作列中添加"默认角色"按钮
  • 3.3 创建店铺默认角色管理对话框组件
  • 3.4 实现查询店铺默认角色列表功能
  • 3.5 实现添加默认角色功能(支持多选角色)
  • 3.6 实现删除默认角色功能
  • 3.7 添加角色选择器(从系统角色列表中选择)
  • 3.8 添加加载状态和错误处理

4. 验证和测试

  • 4.1 测试查询店铺默认角色列表
  • 4.2 测试添加默认角色(单个和多个)
  • 4.3 测试删除默认角色
  • 4.4 测试边界情况(角色已存在、店铺不存在等)
  • 4.5 测试权限控制(只有有权限的用户才能操作)

实现说明

完成的功能

  1. 类型定义 - 已在 src/types/api/shop.ts 添加了三个接口:

    • ShopRoleResponse: 店铺角色响应实体
    • ShopRolesResponse: 店铺角色列表响应
    • AssignShopRolesRequest: 分配角色请求
  2. API 服务层 - 已在 src/api/modules/shop.tsShopService 类中添加:

    • getShopRoles(shopId): 获取店铺默认角色列表
    • assignShopRoles(shopId, data): 分配店铺默认角色
    • deleteShopRole(shopId, roleId): 删除店铺默认角色
  3. UI 实现 - 已在 src/views/product/shop/index.vue 中实现:

    • 操作列新增"默认角色"按钮 (宽度从220改为280)
    • 默认角色管理对话框,显示当前默认角色列表,支持删除操作
    • 添加角色对话框,支持多选角色,已分配的角色显示为禁用状态
    • 完整的加载状态(loading indicators)
    • 错误处理和友好的提示消息
    • 使用 ShopServiceRoleService 调用后端API

待测试项

所有开发任务已完成,现在需要进行功能测试以确保:

  • API 调用正常工作
  • UI 交互符合预期
  • 边界情况处理正确
  • 权限控制生效