Просмотр исходного кода

feat(miniprogram): map workbench db menus to mini:db:* perms.

Add MENU_CODES auth path for workbench permission loading.

Co-authored-by: Cursor <cursoragent@cursor.com>
wuzilong 1 месяц назад
Родитель
Сommit
106ace1ea9
2 измененных файлов с 45 добавлено и 89 удалено
  1. 6 55
      miniprogram/config/api.js
  2. 39 34
      miniprogram/config/workbench-menus.js

+ 6 - 55
miniprogram/config/api.js

@@ -21,7 +21,8 @@ export const AUTH_API = {
   LOGIN: '/web/auth/login',
   LOGOUT: '/web/auth/logout',
   CURRENT_USER: '/web/auth/current-user',
-  REFRESH_TOKEN: '/web/auth/refresh-token'
+  REFRESH_TOKEN: '/web/auth/refresh-token',
+  MENU_CODES: '/web/auth/menu-codes'
 }
 
 /**
@@ -33,7 +34,7 @@ export const UPLOAD_API = {
   IMAGE: '/web/admin/attachment/upload'
 }
 
-/** Tab / 业务页路径(供 store 跳转) */
+/** Tab / 业务页路径 */
 export const PAGE_PATHS = {
   login: '/pages/login/login',
   home: '/pages/home/home',
@@ -41,71 +42,21 @@ export const PAGE_PATHS = {
   workbench: '/pages/workbench/workbench',
   mine: '/pages/mine/mine',
   bizPlaceholder: '/pages/common/biz-placeholder',
-  crmClueList: '/pages/crm/clue/list',
-  crmClueDetail: '/pages/crm/clue/detail',
-  crmClueForm: '/pages/crm/clue/form',
-  crmOpportunityList: '/pages/crm/opportunity/list',
-  crmOpportunityDetail: '/pages/crm/opportunity/detail',
-  crmCustomerList: '/pages/crm/customer/list',
-  crmCustomerDetail: '/pages/crm/customer/detail',
-  crmPoolList: '/pages/crm/pool/list',
-  crmQuoteList: '/pages/crm/quote/list',
-  crmQuoteDetail: '/pages/crm/quote/detail',
-  crmContractList: '/pages/crm/contract/list',
-  crmContractDetail: '/pages/crm/contract/detail',
-  crmProductCategoryList: '/pages/crm/product-category/list',
-  crmProductCategoryForm: '/pages/crm/product-category/form',
-  bxTodoList: '/pages/bx/todo/list',
-  bxReimburseList: '/pages/bx/reimburse/list',
-  bxReimburseForm: '/pages/bx/reimburse/form',
-  bxReimburseDetail: '/pages/bx/reimburse/detail',
-  bxAdvanceList: '/pages/bx/advance/list',
-  bxAdvanceForm: '/pages/bx/advance/form',
-  bxAdvanceDetail: '/pages/bx/advance/detail',
-  bxApproveList: '/pages/bx/approve/list',
-  bxMineList: '/pages/bx/mine/list',
   dbDashboard: '/pages/db/dashboard/index',
   dbPlansList: '/pages/db/plans/list',
   dbPlansDetail: '/pages/db/plans/detail',
-  dbWeighingList: '/pages/db/weighing/list',
-  dbWeighingDetail: '/pages/db/weighing/detail',
   dbInventoryList: '/pages/db/inventory/list',
   dbInventoryDetail: '/pages/db/inventory/detail',
-  plPlanList: '/pages/pl/plan/list',
-  plPlanDetail: '/pages/pl/plan/detail',
-  plPlanArrange: '/pages/pl/plan/arrange',
-  plArchiveList: '/pages/pl/archive/list',
-  plCertList: '/pages/pl/cert/list',
-  plCertDetail: '/pages/pl/cert/detail',
-  plFreightList: '/pages/pl/freight/list',
-  plFreightDetail: '/pages/pl/freight/detail',
-  plFreightApproval: '/pages/pl/freight/approval'
+  dbWeighingList: '/pages/db/weighing/list',
+  dbWeighingDetail: '/pages/db/weighing/detail'
 }
 
 /** 工作台菜单 code → 页面路径 */
 export const WORKBENCH_ROUTE_MAP = {
-  'crm-product-category': PAGE_PATHS.crmProductCategoryList,
-  'crm-clue': PAGE_PATHS.crmClueList,
-  'crm-opportunity': PAGE_PATHS.crmOpportunityList,
-  'crm-customer': PAGE_PATHS.crmCustomerList,
-  'crm-customer-pool': PAGE_PATHS.crmPoolList,
-  'crm-quote': PAGE_PATHS.crmQuoteList,
-  'crm-contract': PAGE_PATHS.crmContractList,
-  'bx-todo': PAGE_PATHS.bxTodoList,
-  'bx-reimburse-apply': PAGE_PATHS.bxReimburseList,
-  'bx-reimburse-approve': `${PAGE_PATHS.bxApproveList}?type=reimburse`,
-  'bx-advance-apply': PAGE_PATHS.bxAdvanceList,
-  'bx-advance-approve': `${PAGE_PATHS.bxApproveList}?type=advance`,
-  'bx-mine': PAGE_PATHS.bxMineList,
   'db-dashboard': PAGE_PATHS.dbDashboard,
   'db-plans': PAGE_PATHS.dbPlansList,
-  'db-weighing': PAGE_PATHS.dbWeighingList,
   'db-inventory': PAGE_PATHS.dbInventoryList,
-  'pl-plan': PAGE_PATHS.plPlanList,
-  'pl-plan-archive': PAGE_PATHS.plArchiveList,
-  'pl-plan-cert': PAGE_PATHS.plCertList,
-  'pl-freight': PAGE_PATHS.plFreightList,
-  'pl-freight-approval': PAGE_PATHS.plFreightApproval
+  'db-weighing': PAGE_PATHS.dbWeighingList
 }
 
 export const TOKEN_KEY = 'sx_token'

+ 39 - 34
miniprogram/config/workbench-menus.js

@@ -1,6 +1,7 @@
 /**
- * 工作台菜单(P0 前端写死;与 mobile-ui/shanxia-mp-workbench-demo.html 对齐)
- * enabled=false 为灰卡,本期不做
+ * 工作台菜单(前端写死;与 mobile-ui/shanxia-mp-workbench-demo.html 对齐)
+ * 地磅四菜单已接通;其余业务待重做,enabled=false。
+ * visible=false 的模块在工作台首页暂时隐藏(便于后续恢复)。
  */
 export const WORKBENCH_MODULES = [
   {
@@ -8,16 +9,17 @@ export const WORKBENCH_MODULES = [
     title: 'CRM 管理',
     desc: '线索 · 商机 · 客户 · 报价 · 合同',
     iconText: 'CRM',
+    visible: false,
     menus: [
-      { name: '产品分类', enabled: true, code: 'crm-product-category' },
-      { name: '产品管理', enabled: false },
-      { name: '线索管理', enabled: true, code: 'crm-clue' },
-      { name: '商机管理', enabled: true, code: 'crm-opportunity' },
-      { name: '客户管理', enabled: true, code: 'crm-customer' },
-      { name: '公海池', enabled: true, code: 'crm-customer-pool' },
-      { name: '报价管理', enabled: true, code: 'crm-quote' },
-      { name: '合同管理', enabled: true, code: 'crm-contract' },
-      { name: '合同审批', enabled: false }
+      { name: '产品分类', enabled: false, code: 'crm-product-category', icon: '📂' },
+      { name: '产品管理', enabled: false, icon: '📦' },
+      { name: '线索管理', enabled: false, code: 'crm-clue', icon: '💡' },
+      { name: '商机管理', enabled: false, code: 'crm-opportunity', icon: '🎯' },
+      { name: '客户管理', enabled: false, code: 'crm-customer', icon: '👤' },
+      { name: '公海池', enabled: false, code: 'crm-customer-pool', icon: '🌊' },
+      { name: '报价管理', enabled: false, code: 'crm-quote', icon: '💰' },
+      { name: '合同管理', enabled: false, code: 'crm-contract', icon: '📄' },
+      { name: '合同审批', enabled: false, icon: '✅' }
     ]
   },
   {
@@ -25,28 +27,30 @@ export const WORKBENCH_MODULES = [
     title: '报销管理',
     desc: '借款 · 报销 · 审批 · 付款',
     iconText: '报销',
+    visible: false,
     menus: [
-      { name: '待办任务', enabled: true, code: 'bx-todo' },
-      { name: '报销申请', enabled: true, code: 'bx-reimburse-apply' },
-      { name: '报销审批', enabled: true, code: 'bx-reimburse-approve' },
-      { name: '借款申请', enabled: true, code: 'bx-advance-apply' },
-      { name: '借款审批', enabled: true, code: 'bx-advance-approve' },
-      { name: '借款发放', enabled: false },
-      { name: '我的单据', enabled: true, code: 'bx-mine' },
-      { name: '全部单据', enabled: false },
-      { name: '付款记录', enabled: false }
+      { name: '待办任务', enabled: false, code: 'bx-todo', icon: '📝' },
+      { name: '报销申请', enabled: false, code: 'bx-reimburse-apply', icon: '🧾' },
+      { name: '报销审批', enabled: false, code: 'bx-reimburse-approve', icon: '✔️' },
+      { name: '借款申请', enabled: false, code: 'bx-advance-apply', icon: '💳' },
+      { name: '借款审批', enabled: false, code: 'bx-advance-approve', icon: '🔍' },
+      { name: '借款发放', enabled: false, icon: '💸' },
+      { name: '我的单据', enabled: false, code: 'bx-mine', icon: '📋' },
+      { name: '全部单据', enabled: false, icon: '📚' },
+      { name: '付款记录', enabled: false, icon: '🏦' }
     ]
   },
   {
     key: 'db',
     title: '地磅管理',
-    desc: '计划 · 过磅单 · 出入库',
+    desc: '仪表盘 · 计划 · 出入库 · 地磅单',
     iconText: '地磅',
+    visible: true,
     menus: [
-      { name: '仪表盘', enabled: true, code: 'db-dashboard' },
-      { name: '地磅计划', enabled: true, code: 'db-plans' },
-      { name: '地磅单管理', enabled: true, code: 'db-weighing' },
-      { name: '地磅出入库', enabled: true, code: 'db-inventory' }
+      { name: '仪表盘', enabled: true, code: 'db-dashboard', icon: '📊', perms: 'mini:db:dashboard' },
+      { name: '计划管理', enabled: true, code: 'db-plans', icon: '📋', perms: 'mini:db:plan:list' },
+      { name: '出入库管理', enabled: true, code: 'db-inventory', icon: '📦', perms: 'mini:db:inventory:list' },
+      { name: '地磅单管理', enabled: true, code: 'db-weighing', icon: '⚖️', perms: 'mini:db:weighing:list' }
     ]
   },
   {
@@ -54,16 +58,17 @@ export const WORKBENCH_MODULES = [
     title: '运输管理',
     desc: '计划 · 运费 · 车辆事务',
     iconText: '运输',
+    visible: false,
     menus: [
-      { name: '运输计划', enabled: true, code: 'pl-plan' },
-      { name: '计划归档', enabled: true, code: 'pl-plan-archive' },
-      { name: '购买证上传', enabled: true, code: 'pl-plan-cert' },
-      { name: '运费结算', enabled: true, code: 'pl-freight' },
-      { name: '运费审批', enabled: true, code: 'pl-freight-approval' },
-      { name: '财务发放', enabled: false },
-      { name: '车辆充值', enabled: false },
-      { name: '车辆维修', enabled: false },
-      { name: '运输地址库', enabled: false }
+      { name: '运输计划', enabled: false, code: 'pl-plan', icon: '🚚' },
+      { name: '计划归档', enabled: false, code: 'pl-plan-archive', icon: '🗂️' },
+      { name: '购买证上传', enabled: false, code: 'pl-plan-cert', icon: '📜' },
+      { name: '运费结算', enabled: false, code: 'pl-freight', icon: '💵' },
+      { name: '运费审批', enabled: false, code: 'pl-freight-approval', icon: '🔏' },
+      { name: '财务发放', enabled: false, icon: '💰' },
+      { name: '车辆充值', enabled: false, icon: '⛽' },
+      { name: '车辆维修', enabled: false, icon: '🔧' },
+      { name: '运输地址库', enabled: false, icon: '📍' }
     ]
   }
 ]