瀏覽代碼

补充闪送平台管理菜单迁移

记录闪送管理动态菜单与权限归位 SQL,并更新平台前端任务状态。
qmj 18 小時之前
父節點
當前提交
a69e3d36ab
共有 2 個文件被更改,包括 92 次插入7 次删除
  1. 7 7
      specs/024-flash-delivery/tasks.md
  2. 85 0
      updatesql/sql.md

+ 7 - 7
specs/024-flash-delivery/tasks.md

@@ -57,10 +57,10 @@
 
 ## Phase 9:US6 平台管理前端
 
-- [ ] T032 [US6] 在 `foodie-admin-vue/tests/flash-delivery.test.cjs` 和 `package.json` 增加闪送定向测试,直接执行请求配置、分页归一化、价格校验、状态操作和四语言对象,并确认因目标模块缺失而红灯
-- [ ] T033 [US6] 新增 `src/api/flashDelivery/contracts.js`、`index.js` 和 `src/views/flashDelivery/shared.js`,封装六个平台请求及纯函数,使请求、分页、价格校验和状态规则测试转绿
-- [ ] T034 [US6] 新增 `src/views/flashDelivery/pricing/index.vue`,实现三类价格读取、编辑校验、启停、版本展示和保存后服务端回填
-- [ ] T035 [US6] 新增 `src/views/flashDelivery/orders/index.vue` 与 `OrderDetail.vue`,实现服务端分页筛选、详情分区、图片预览、取消原因和已送达完成操作
-- [ ] T036 [US6] 在四个 `src/api/language/language.*.js` 文件增加一致的 `flashDelivery` 文案,并使语言与页面契约测试转绿
-- [ ] T037 [US6] 在 `updatesql/sql.md` 追加幂等的“闪送管理/价格配置/闪送订单”动态菜单 SQL,将现有六项权限归入对应页面
-- [ ] T038 [US6] 运行 `npm run test:flash-delivery`、新增文件 ESLint、`npm run build:prod` 和两个仓库 `git diff --check`,核对暂存范围后分别使用中文提交
+- [x] T032 [US6] 在 `foodie-admin-vue/tests/flash-delivery.test.cjs` 和 `package.json` 增加闪送定向测试,直接执行请求配置、分页归一化、价格校验、状态操作和四语言对象,并确认因目标模块缺失而红灯
+- [x] T033 [US6] 新增 `src/api/flashDelivery/contracts.js`、`index.js` 和 `src/views/flashDelivery/shared.js`,封装六个平台请求及纯函数,使请求、分页、价格校验和状态规则测试转绿
+- [x] T034 [US6] 新增 `src/views/flashDelivery/pricing/index.vue`,实现三类价格读取、编辑校验、启停、版本展示和保存后服务端回填
+- [x] T035 [US6] 新增 `src/views/flashDelivery/orders/index.vue` 与 `OrderDetail.vue`,实现服务端分页筛选、详情分区、图片预览、取消原因和已送达完成操作
+- [x] T036 [US6] 在四个 `src/api/language/language.*.js` 文件增加一致的 `flashDelivery` 文案,并使语言与页面契约测试转绿
+- [x] T037 [US6] 在 `updatesql/sql.md` 追加幂等的“闪送管理/价格配置/闪送订单”动态菜单 SQL,将现有六项权限归入对应页面
+- [x] T038 [US6] 运行 `npm run test:flash-delivery`、新增文件 ESLint、`npm run build:prod` 和两个仓库 `git diff --check`,核对暂存范围后分别使用中文提交

+ 85 - 0
updatesql/sql.md

@@ -1123,3 +1123,88 @@ ALTER TABLE flash_delivery_order_image
   ADD COLUMN operator_type VARCHAR(20) NOT NULL DEFAULT 'RIDER' AFTER sort_order;
 ```
 
+## 2026-09-01 闪送平台管理前端菜单(024-flash-delivery US6)
+
+> 用途:增加“闪送管理”父菜单、价格配置和订单管理页面,并把 2026-08-31 已记录的六项功能权限归入对应页面。只记录脚本,由开发者手动执行。
+
+```sql
+-- 父菜单。
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '闪送管理',0,55,'flashDelivery',NULL,'M','0','0','','shopping','admin',NOW(),'闪送平台管理入口'
+WHERE NOT EXISTS (
+  SELECT 1 FROM sys_menu WHERE path='flashDelivery' AND menu_type='M'
+);
+SET @flashRootMenuId = (
+  SELECT menu_id FROM sys_menu WHERE path='flashDelivery' AND menu_type='M' ORDER BY menu_id LIMIT 1
+);
+
+-- 价格配置页面;若旧权限行已经存在则保留 menu_id 并转换为页面菜单。
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '价格配置',@flashRootMenuId,1,'pricing','flashDelivery/pricing/index','C','0','0','flash:pricing:list','money','admin',NOW(),'闪送价格配置页面'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:pricing:list');
+UPDATE sys_menu
+SET menu_name='价格配置',parent_id=@flashRootMenuId,order_num=1,path='pricing',
+    component='flashDelivery/pricing/index',menu_type='C',visible='0',status='0',icon='money',
+    remark='闪送价格配置页面'
+WHERE perms='flash:pricing:list';
+SET @flashPricingMenuId = (
+  SELECT menu_id FROM sys_menu WHERE perms='flash:pricing:list' ORDER BY menu_id LIMIT 1
+);
+
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '修改闪送价格',@flashPricingMenuId,1,'#','', 'F','0','0','flash:pricing:edit','#','admin',NOW(),'闪送价格修改权限'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:pricing:edit');
+UPDATE sys_menu
+SET menu_name='修改闪送价格',parent_id=@flashPricingMenuId,order_num=1,path='#',component='',
+    menu_type='F',visible='0',status='0',icon='#',remark='闪送价格修改权限'
+WHERE perms='flash:pricing:edit';
+
+-- 闪送订单页面及详情、取消、完成按钮权限。
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '闪送订单',@flashRootMenuId,2,'orders','flashDelivery/orders/index','C','0','0','flash:order:list','list','admin',NOW(),'闪送订单管理页面'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:order:list');
+UPDATE sys_menu
+SET menu_name='闪送订单',parent_id=@flashRootMenuId,order_num=2,path='orders',
+    component='flashDelivery/orders/index',menu_type='C',visible='0',status='0',icon='list',
+    remark='闪送订单管理页面'
+WHERE perms='flash:order:list';
+SET @flashOrderMenuId = (
+  SELECT menu_id FROM sys_menu WHERE perms='flash:order:list' ORDER BY menu_id LIMIT 1
+);
+
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '查看闪送订单',@flashOrderMenuId,1,'#','', 'F','0','0','flash:order:query','#','admin',NOW(),'闪送订单详情权限'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:order:query');
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '取消闪送订单',@flashOrderMenuId,2,'#','', 'F','0','0','flash:order:cancel','#','admin',NOW(),'闪送订单取消权限'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:order:cancel');
+INSERT INTO sys_menu
+  (menu_name,parent_id,order_num,path,component,menu_type,visible,status,perms,icon,create_by,create_time,remark)
+SELECT '完成闪送订单',@flashOrderMenuId,3,'#','', 'F','0','0','flash:order:complete','#','admin',NOW(),'闪送订单完成权限'
+WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms='flash:order:complete');
+
+UPDATE sys_menu
+SET parent_id=@flashOrderMenuId,path='#',component='',menu_type='F',visible='0',status='0',icon='#'
+WHERE perms IN ('flash:order:query','flash:order:cancel','flash:order:complete');
+UPDATE sys_menu SET menu_name='查看闪送订单',order_num=1,remark='闪送订单详情权限' WHERE perms='flash:order:query';
+UPDATE sys_menu SET menu_name='取消闪送订单',order_num=2,remark='闪送订单取消权限' WHERE perms='flash:order:cancel';
+UPDATE sys_menu SET menu_name='完成闪送订单',order_num=3,remark='闪送订单完成权限' WHERE perms='flash:order:complete';
+
+-- 已经拥有任一闪送页面权限的角色补挂父菜单;未授权角色仍由管理员在角色管理中分配。
+INSERT INTO sys_role_menu (role_id, menu_id)
+SELECT DISTINCT assigned.role_id, @flashRootMenuId
+FROM sys_role_menu assigned
+JOIN sys_menu child ON child.menu_id=assigned.menu_id
+WHERE child.perms IN ('flash:pricing:list','flash:order:list')
+  AND NOT EXISTS (
+    SELECT 1 FROM sys_role_menu existing
+    WHERE existing.role_id=assigned.role_id AND existing.menu_id=@flashRootMenuId
+  );
+```
+