feat(web): integrate localized application catalogs
- compose app, UI, and independently imported block catalogs from JSON configuration\n- persist the selected locale on the server and activate it without hydration flicker\n- add a flag-based language switcher and localized navigation descriptors\n- mount the redesigned i18n devtool only in development\n- regenerate English and Simplified Chinese catalogs and add switcher coverage
This commit is contained in:
@@ -0,0 +1,336 @@
|
||||
import type { MessageDescriptor } from "@workspace/i18n"
|
||||
|
||||
export const navigationMessages = {
|
||||
overview: /* i18n */ {
|
||||
id: "app.navigation.overview",
|
||||
message: "Overview",
|
||||
},
|
||||
"overview-dashboard": /* i18n */ {
|
||||
id: "app.navigation.overview-dashboard",
|
||||
message: "Business overview",
|
||||
},
|
||||
"overview-realtime": /* i18n */ {
|
||||
id: "app.navigation.overview-realtime",
|
||||
message: "Real-time monitoring",
|
||||
},
|
||||
"overview-tasks": /* i18n */ {
|
||||
id: "app.navigation.overview-tasks",
|
||||
message: "Tasks",
|
||||
},
|
||||
"catalog-and-inventory": /* i18n */ {
|
||||
id: "app.navigation.catalog-and-inventory",
|
||||
message: "Products and inventory",
|
||||
},
|
||||
"catalog-products": /* i18n */ {
|
||||
id: "app.navigation.catalog-products",
|
||||
message: "Products",
|
||||
},
|
||||
"catalog-products-list": /* i18n */ {
|
||||
id: "app.navigation.catalog-products-list",
|
||||
message: "Product list",
|
||||
},
|
||||
"catalog-products-drafts": /* i18n */ {
|
||||
id: "app.navigation.catalog-products-drafts",
|
||||
message: "Product drafts",
|
||||
},
|
||||
"catalog-products-bundles": /* i18n */ {
|
||||
id: "app.navigation.catalog-products-bundles",
|
||||
message: "Product bundles",
|
||||
},
|
||||
"catalog-products-attributes": /* i18n */ {
|
||||
id: "app.navigation.catalog-products-attributes",
|
||||
message: "Product attributes",
|
||||
},
|
||||
"catalog-product-specifications": /* i18n */ {
|
||||
id: "app.navigation.catalog-product-specifications",
|
||||
message: "Specification templates",
|
||||
},
|
||||
"catalog-product-brands": /* i18n */ {
|
||||
id: "app.navigation.catalog-product-brands",
|
||||
message: "Brands",
|
||||
},
|
||||
"catalog-categories": /* i18n */ {
|
||||
id: "app.navigation.catalog-categories",
|
||||
message: "Categories",
|
||||
},
|
||||
"catalog-category-tree": /* i18n */ {
|
||||
id: "app.navigation.catalog-category-tree",
|
||||
message: "Category tree",
|
||||
},
|
||||
"catalog-category-navigation": /* i18n */ {
|
||||
id: "app.navigation.catalog-category-navigation",
|
||||
message: "Navigation categories",
|
||||
},
|
||||
"inventory-center": /* i18n */ {
|
||||
id: "app.navigation.inventory-center",
|
||||
message: "Inventory",
|
||||
},
|
||||
"inventory-overview": /* i18n */ {
|
||||
id: "app.navigation.inventory-overview",
|
||||
message: "Inventory overview",
|
||||
},
|
||||
"inventory-inbound": /* i18n */ {
|
||||
id: "app.navigation.inventory-inbound",
|
||||
message: "Inbound orders",
|
||||
},
|
||||
"inventory-outbound": /* i18n */ {
|
||||
id: "app.navigation.inventory-outbound",
|
||||
message: "Outbound orders",
|
||||
},
|
||||
"inventory-transfers": /* i18n */ {
|
||||
id: "app.navigation.inventory-transfers",
|
||||
message: "Stock transfers",
|
||||
},
|
||||
"inventory-alerts": /* i18n */ {
|
||||
id: "app.navigation.inventory-alerts",
|
||||
message: "Inventory alerts",
|
||||
},
|
||||
"content-assets": /* i18n */ {
|
||||
id: "app.navigation.content-assets",
|
||||
message: "Content",
|
||||
},
|
||||
"content-articles": /* i18n */ {
|
||||
id: "app.navigation.content-articles",
|
||||
message: "Articles",
|
||||
},
|
||||
"content-media": /* i18n */ {
|
||||
id: "app.navigation.content-media",
|
||||
message: "Media",
|
||||
},
|
||||
"content-pages": /* i18n */ {
|
||||
id: "app.navigation.content-pages",
|
||||
message: "Custom pages",
|
||||
},
|
||||
"trade-and-fulfillment": /* i18n */ {
|
||||
id: "app.navigation.trade-and-fulfillment",
|
||||
message: "Orders and fulfillment",
|
||||
},
|
||||
"trade-orders": /* i18n */ {
|
||||
id: "app.navigation.trade-orders",
|
||||
message: "Orders",
|
||||
},
|
||||
"trade-orders-awaiting-payment": /* i18n */ {
|
||||
id: "app.navigation.trade-orders-awaiting-payment",
|
||||
message: "Awaiting payment",
|
||||
},
|
||||
"trade-orders-awaiting-shipment": /* i18n */ {
|
||||
id: "app.navigation.trade-orders-awaiting-shipment",
|
||||
message: "Awaiting shipment",
|
||||
},
|
||||
"trade-orders-shipped": /* i18n */ {
|
||||
id: "app.navigation.trade-orders-shipped",
|
||||
message: "In transit",
|
||||
},
|
||||
"trade-orders-completed": /* i18n */ {
|
||||
id: "app.navigation.trade-orders-completed",
|
||||
message: "Completed orders",
|
||||
},
|
||||
"trade-orders-canceled": /* i18n */ {
|
||||
id: "app.navigation.trade-orders-canceled",
|
||||
message: "Canceled orders",
|
||||
},
|
||||
"fulfillment-center": /* i18n */ {
|
||||
id: "app.navigation.fulfillment-center",
|
||||
message: "Fulfillment",
|
||||
},
|
||||
"fulfillment-deliveries": /* i18n */ {
|
||||
id: "app.navigation.fulfillment-deliveries",
|
||||
message: "Delivery tasks",
|
||||
},
|
||||
"fulfillment-pickups": /* i18n */ {
|
||||
id: "app.navigation.fulfillment-pickups",
|
||||
message: "Pickup verification",
|
||||
},
|
||||
"fulfillment-freight-rules": /* i18n */ {
|
||||
id: "app.navigation.fulfillment-freight-rules",
|
||||
message: "Shipping rules",
|
||||
},
|
||||
"after-sales-center": /* i18n */ {
|
||||
id: "app.navigation.after-sales-center",
|
||||
message: "After-sales",
|
||||
},
|
||||
"after-sales-returns": /* i18n */ {
|
||||
id: "app.navigation.after-sales-returns",
|
||||
message: "Return requests",
|
||||
},
|
||||
"after-sales-refunds": /* i18n */ {
|
||||
id: "app.navigation.after-sales-refunds",
|
||||
message: "Refund review",
|
||||
},
|
||||
"after-sales-disputes": /* i18n */ {
|
||||
id: "app.navigation.after-sales-disputes",
|
||||
message: "Transaction disputes",
|
||||
},
|
||||
"customers-and-marketing": /* i18n */ {
|
||||
id: "app.navigation.customers-and-marketing",
|
||||
message: "Customers and marketing",
|
||||
},
|
||||
"customer-center": /* i18n */ {
|
||||
id: "app.navigation.customer-center",
|
||||
message: "Customers",
|
||||
},
|
||||
"customer-profiles": /* i18n */ {
|
||||
id: "app.navigation.customer-profiles",
|
||||
message: "Customer profiles",
|
||||
},
|
||||
"customer-segments": /* i18n */ {
|
||||
id: "app.navigation.customer-segments",
|
||||
message: "Customer segments",
|
||||
},
|
||||
"customer-tiers": /* i18n */ {
|
||||
id: "app.navigation.customer-tiers",
|
||||
message: "Customer tiers",
|
||||
},
|
||||
"customer-risk-list": /* i18n */ {
|
||||
id: "app.navigation.customer-risk-list",
|
||||
message: "Risk list",
|
||||
},
|
||||
"marketing-campaigns": /* i18n */ {
|
||||
id: "app.navigation.marketing-campaigns",
|
||||
message: "Marketing campaigns",
|
||||
},
|
||||
"marketing-coupons": /* i18n */ {
|
||||
id: "app.navigation.marketing-coupons",
|
||||
message: "Coupons",
|
||||
},
|
||||
"marketing-flash-sales": /* i18n */ {
|
||||
id: "app.navigation.marketing-flash-sales",
|
||||
message: "Flash sales",
|
||||
},
|
||||
"marketing-gift-promotions": /* i18n */ {
|
||||
id: "app.navigation.marketing-gift-promotions",
|
||||
message: "Gift promotions",
|
||||
},
|
||||
"marketing-referrals": /* i18n */ {
|
||||
id: "app.navigation.marketing-referrals",
|
||||
message: "Referral rewards",
|
||||
},
|
||||
"loyalty-center": /* i18n */ {
|
||||
id: "app.navigation.loyalty-center",
|
||||
message: "Membership benefits",
|
||||
},
|
||||
"loyalty-points": /* i18n */ {
|
||||
id: "app.navigation.loyalty-points",
|
||||
message: "Points rules",
|
||||
},
|
||||
"loyalty-stored-value": /* i18n */ {
|
||||
id: "app.navigation.loyalty-stored-value",
|
||||
message: "Stored-value accounts",
|
||||
},
|
||||
"loyalty-benefits": /* i18n */ {
|
||||
id: "app.navigation.loyalty-benefits",
|
||||
message: "Benefits configuration",
|
||||
},
|
||||
"data-and-finance": /* i18n */ {
|
||||
id: "app.navigation.data-and-finance",
|
||||
message: "Data and finance",
|
||||
},
|
||||
"report-center": /* i18n */ {
|
||||
id: "app.navigation.report-center",
|
||||
message: "Reports",
|
||||
},
|
||||
"report-sales": /* i18n */ {
|
||||
id: "app.navigation.report-sales",
|
||||
message: "Sales analysis",
|
||||
},
|
||||
"report-products": /* i18n */ {
|
||||
id: "app.navigation.report-products",
|
||||
message: "Product analysis",
|
||||
},
|
||||
"report-customers": /* i18n */ {
|
||||
id: "app.navigation.report-customers",
|
||||
message: "Customer analysis",
|
||||
},
|
||||
"report-channels": /* i18n */ {
|
||||
id: "app.navigation.report-channels",
|
||||
message: "Channel analysis",
|
||||
},
|
||||
"finance-center": /* i18n */ {
|
||||
id: "app.navigation.finance-center",
|
||||
message: "Finance",
|
||||
},
|
||||
"finance-settlements": /* i18n */ {
|
||||
id: "app.navigation.finance-settlements",
|
||||
message: "Settlement statements",
|
||||
},
|
||||
"finance-reconciliation": /* i18n */ {
|
||||
id: "app.navigation.finance-reconciliation",
|
||||
message: "Reconciliation",
|
||||
},
|
||||
"finance-invoices": /* i18n */ {
|
||||
id: "app.navigation.finance-invoices",
|
||||
message: "Invoices",
|
||||
},
|
||||
"finance-payouts": /* i18n */ {
|
||||
id: "app.navigation.finance-payouts",
|
||||
message: "Payout history",
|
||||
},
|
||||
"system-management": /* i18n */ {
|
||||
id: "app.navigation.system-management",
|
||||
message: "System management",
|
||||
},
|
||||
"system-members": /* i18n */ {
|
||||
id: "app.navigation.system-members",
|
||||
message: "Organization members",
|
||||
},
|
||||
"system-members-admins": /* i18n */ {
|
||||
id: "app.navigation.system-members-admins",
|
||||
message: "Administrator accounts",
|
||||
},
|
||||
"system-members-roles": /* i18n */ {
|
||||
id: "app.navigation.system-members-roles",
|
||||
message: "Roles",
|
||||
},
|
||||
"system-members-permissions": /* i18n */ {
|
||||
id: "app.navigation.system-members-permissions",
|
||||
message: "Permission policies",
|
||||
},
|
||||
"system-notifications": /* i18n */ {
|
||||
id: "app.navigation.system-notifications",
|
||||
message: "Notifications",
|
||||
},
|
||||
"system-notification-templates": /* i18n */ {
|
||||
id: "app.navigation.system-notification-templates",
|
||||
message: "Notification templates",
|
||||
},
|
||||
"system-notification-logs": /* i18n */ {
|
||||
id: "app.navigation.system-notification-logs",
|
||||
message: "Delivery logs",
|
||||
},
|
||||
"system-audit": /* i18n */ {
|
||||
id: "app.navigation.system-audit",
|
||||
message: "Audit log",
|
||||
},
|
||||
"system-integrations": /* i18n */ {
|
||||
id: "app.navigation.system-integrations",
|
||||
message: "Integrations",
|
||||
},
|
||||
"system-integration-api-keys": /* i18n */ {
|
||||
id: "app.navigation.system-integration-api-keys",
|
||||
message: "API keys",
|
||||
},
|
||||
"system-integration-webhooks": /* i18n */ {
|
||||
id: "app.navigation.system-integration-webhooks",
|
||||
message: "Webhook configuration",
|
||||
},
|
||||
"system-settings": /* i18n */ {
|
||||
id: "app.navigation.system-settings",
|
||||
message: "System settings",
|
||||
},
|
||||
"system-settings-store": /* i18n */ {
|
||||
id: "app.navigation.system-settings-store",
|
||||
message: "Store information",
|
||||
},
|
||||
"system-settings-payments": /* i18n */ {
|
||||
id: "app.navigation.system-settings-payments",
|
||||
message: "Payment channels",
|
||||
},
|
||||
"system-settings-shipping": /* i18n */ {
|
||||
id: "app.navigation.system-settings-shipping",
|
||||
message: "Shipping settings",
|
||||
},
|
||||
"system-recycle-bin": /* i18n */ {
|
||||
id: "app.navigation.system-recycle-bin",
|
||||
message: "Recycle bin",
|
||||
},
|
||||
} as const satisfies Record<string, MessageDescriptor>
|
||||
@@ -60,73 +60,75 @@ import {
|
||||
|
||||
import type { NavigationGroup } from "@workspace/blocks/navigation"
|
||||
|
||||
import { navigationMessages } from "./navigation-messages"
|
||||
|
||||
export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "overview",
|
||||
label: "概览",
|
||||
label: navigationMessages["overview"],
|
||||
items: [
|
||||
{
|
||||
id: "overview-dashboard",
|
||||
to: "/",
|
||||
label: "经营总览",
|
||||
label: navigationMessages["overview-dashboard"],
|
||||
icon: Analytics01Icon,
|
||||
},
|
||||
{
|
||||
id: "overview-realtime",
|
||||
to: "/analytics/realtime",
|
||||
label: "实时监控",
|
||||
label: navigationMessages["overview-realtime"],
|
||||
icon: AnalyticsUpIcon,
|
||||
},
|
||||
{
|
||||
id: "overview-tasks",
|
||||
to: "/workspace/tasks",
|
||||
label: "待办中心",
|
||||
label: navigationMessages["overview-tasks"],
|
||||
icon: Task01Icon,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "catalog-and-inventory",
|
||||
label: "商品与库存",
|
||||
label: navigationMessages["catalog-and-inventory"],
|
||||
items: [
|
||||
{
|
||||
id: "catalog-products",
|
||||
label: "商品中心",
|
||||
label: navigationMessages["catalog-products"],
|
||||
icon: ShoppingBag01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "catalog-products-list",
|
||||
to: "/catalog/products/list",
|
||||
label: "商品列表",
|
||||
label: navigationMessages["catalog-products-list"],
|
||||
icon: ShoppingBag01Icon,
|
||||
},
|
||||
{
|
||||
id: "catalog-products-drafts",
|
||||
to: "/catalog/products/drafts",
|
||||
label: "商品草稿",
|
||||
label: navigationMessages["catalog-products-drafts"],
|
||||
icon: File01Icon,
|
||||
},
|
||||
{
|
||||
id: "catalog-products-bundles",
|
||||
to: "/catalog/products/bundles",
|
||||
label: "组合商品",
|
||||
label: navigationMessages["catalog-products-bundles"],
|
||||
icon: Package02Icon,
|
||||
},
|
||||
{
|
||||
id: "catalog-products-attributes",
|
||||
label: "商品属性",
|
||||
label: navigationMessages["catalog-products-attributes"],
|
||||
icon: Settings03Icon,
|
||||
items: [
|
||||
{
|
||||
id: "catalog-product-specifications",
|
||||
to: "/catalog/products/attributes/specifications",
|
||||
label: "规格模板",
|
||||
label: navigationMessages["catalog-product-specifications"],
|
||||
icon: ClipboardListIcon,
|
||||
},
|
||||
{
|
||||
id: "catalog-product-brands",
|
||||
to: "/catalog/products/attributes/brands",
|
||||
label: "品牌资料",
|
||||
label: navigationMessages["catalog-product-brands"],
|
||||
icon: StarIcon,
|
||||
},
|
||||
],
|
||||
@@ -136,19 +138,19 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "catalog-categories",
|
||||
to: "/catalog/categories",
|
||||
label: "分类目录",
|
||||
label: navigationMessages["catalog-categories"],
|
||||
icon: ClipboardListIcon,
|
||||
items: [
|
||||
{
|
||||
id: "catalog-category-tree",
|
||||
to: "/catalog/categories/tree",
|
||||
label: "分类树",
|
||||
label: navigationMessages["catalog-category-tree"],
|
||||
icon: Structure01Icon,
|
||||
},
|
||||
{
|
||||
id: "catalog-category-navigation",
|
||||
to: "/catalog/categories/navigation",
|
||||
label: "导航分类",
|
||||
label: navigationMessages["catalog-category-navigation"],
|
||||
icon: Compass01Icon,
|
||||
},
|
||||
],
|
||||
@@ -156,37 +158,37 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "inventory-center",
|
||||
to: "/inventory",
|
||||
label: "库存中心",
|
||||
label: navigationMessages["inventory-center"],
|
||||
icon: PackageIcon,
|
||||
items: [
|
||||
{
|
||||
id: "inventory-overview",
|
||||
to: "/inventory/overview",
|
||||
label: "库存总览",
|
||||
label: navigationMessages["inventory-overview"],
|
||||
icon: Chart01Icon,
|
||||
},
|
||||
{
|
||||
id: "inventory-inbound",
|
||||
to: "/inventory/inbound",
|
||||
label: "入库单",
|
||||
label: navigationMessages["inventory-inbound"],
|
||||
icon: InboxDownloadIcon,
|
||||
},
|
||||
{
|
||||
id: "inventory-outbound",
|
||||
to: "/inventory/outbound",
|
||||
label: "出库单",
|
||||
label: navigationMessages["inventory-outbound"],
|
||||
icon: InboxUploadIcon,
|
||||
},
|
||||
{
|
||||
id: "inventory-transfers",
|
||||
to: "/inventory/transfers",
|
||||
label: "调拨单",
|
||||
label: navigationMessages["inventory-transfers"],
|
||||
icon: ArrowDataTransferHorizontalIcon,
|
||||
},
|
||||
{
|
||||
id: "inventory-alerts",
|
||||
to: "/inventory/alerts",
|
||||
label: "库存预警",
|
||||
label: navigationMessages["inventory-alerts"],
|
||||
icon: Alert02Icon,
|
||||
},
|
||||
],
|
||||
@@ -194,25 +196,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "content-assets",
|
||||
to: "/content",
|
||||
label: "内容素材",
|
||||
label: navigationMessages["content-assets"],
|
||||
icon: File01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "content-articles",
|
||||
to: "/content/articles",
|
||||
label: "内容文章",
|
||||
label: navigationMessages["content-articles"],
|
||||
icon: File01Icon,
|
||||
},
|
||||
{
|
||||
id: "content-media",
|
||||
to: "/content/media",
|
||||
label: "媒体资源",
|
||||
label: navigationMessages["content-media"],
|
||||
icon: GalleryHorizontalIcon,
|
||||
},
|
||||
{
|
||||
id: "content-pages",
|
||||
to: "/content/pages",
|
||||
label: "自定义页面",
|
||||
label: navigationMessages["content-pages"],
|
||||
icon: AppWindowIcon,
|
||||
},
|
||||
],
|
||||
@@ -221,42 +223,42 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
},
|
||||
{
|
||||
id: "trade-and-fulfillment",
|
||||
label: "交易与履约",
|
||||
label: navigationMessages["trade-and-fulfillment"],
|
||||
items: [
|
||||
{
|
||||
id: "trade-orders",
|
||||
to: "/trade/orders",
|
||||
label: "订单中心",
|
||||
label: navigationMessages["trade-orders"],
|
||||
icon: ShoppingCart01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "trade-orders-awaiting-payment",
|
||||
to: "/trade/orders/awaiting-payment",
|
||||
label: "待付款订单",
|
||||
label: navigationMessages["trade-orders-awaiting-payment"],
|
||||
icon: WalletCardsIcon,
|
||||
},
|
||||
{
|
||||
id: "trade-orders-awaiting-shipment",
|
||||
to: "/trade/orders/awaiting-shipment",
|
||||
label: "待发货订单",
|
||||
label: navigationMessages["trade-orders-awaiting-shipment"],
|
||||
icon: PackageIcon,
|
||||
},
|
||||
{
|
||||
id: "trade-orders-shipped",
|
||||
to: "/trade/orders/shipped",
|
||||
label: "配送中订单",
|
||||
label: navigationMessages["trade-orders-shipped"],
|
||||
icon: DeliveryTruck01Icon,
|
||||
},
|
||||
{
|
||||
id: "trade-orders-completed",
|
||||
to: "/trade/orders/completed",
|
||||
label: "已完成订单",
|
||||
label: navigationMessages["trade-orders-completed"],
|
||||
icon: CheckmarkCircle01Icon,
|
||||
},
|
||||
{
|
||||
id: "trade-orders-canceled",
|
||||
to: "/trade/orders/canceled",
|
||||
label: "已取消订单",
|
||||
label: navigationMessages["trade-orders-canceled"],
|
||||
icon: CancelCircleIcon,
|
||||
},
|
||||
],
|
||||
@@ -264,25 +266,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "fulfillment-center",
|
||||
to: "/fulfillment",
|
||||
label: "配送履约",
|
||||
label: navigationMessages["fulfillment-center"],
|
||||
icon: DeliveryTruck01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "fulfillment-deliveries",
|
||||
to: "/fulfillment/deliveries",
|
||||
label: "配送任务",
|
||||
label: navigationMessages["fulfillment-deliveries"],
|
||||
icon: Location01Icon,
|
||||
},
|
||||
{
|
||||
id: "fulfillment-pickups",
|
||||
to: "/fulfillment/pickups",
|
||||
label: "自提核销",
|
||||
label: navigationMessages["fulfillment-pickups"],
|
||||
icon: Store01Icon,
|
||||
},
|
||||
{
|
||||
id: "fulfillment-freight-rules",
|
||||
to: "/fulfillment/freight-rules",
|
||||
label: "运费规则",
|
||||
label: navigationMessages["fulfillment-freight-rules"],
|
||||
icon: RoadLocation01Icon,
|
||||
},
|
||||
],
|
||||
@@ -290,25 +292,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "after-sales-center",
|
||||
to: "/after-sales",
|
||||
label: "售后中心",
|
||||
label: navigationMessages["after-sales-center"],
|
||||
icon: CallMissed01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "after-sales-returns",
|
||||
to: "/after-sales/returns",
|
||||
label: "退货申请",
|
||||
label: navigationMessages["after-sales-returns"],
|
||||
icon: Refresh01Icon,
|
||||
},
|
||||
{
|
||||
id: "after-sales-refunds",
|
||||
to: "/after-sales/refunds",
|
||||
label: "退款审核",
|
||||
label: navigationMessages["after-sales-refunds"],
|
||||
icon: MoneySendSquareIcon,
|
||||
},
|
||||
{
|
||||
id: "after-sales-disputes",
|
||||
to: "/after-sales/disputes",
|
||||
label: "交易纠纷",
|
||||
label: navigationMessages["after-sales-disputes"],
|
||||
icon: SecurityWarningIcon,
|
||||
},
|
||||
],
|
||||
@@ -317,36 +319,36 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
},
|
||||
{
|
||||
id: "customers-and-marketing",
|
||||
label: "客户与营销",
|
||||
label: navigationMessages["customers-and-marketing"],
|
||||
items: [
|
||||
{
|
||||
id: "customer-center",
|
||||
to: "/customers",
|
||||
label: "客户中心",
|
||||
label: navigationMessages["customer-center"],
|
||||
icon: IdentityCardIcon,
|
||||
items: [
|
||||
{
|
||||
id: "customer-profiles",
|
||||
to: "/customers/profiles",
|
||||
label: "客户档案",
|
||||
label: navigationMessages["customer-profiles"],
|
||||
icon: IdentityCardIcon,
|
||||
},
|
||||
{
|
||||
id: "customer-segments",
|
||||
to: "/customers/segments",
|
||||
label: "客户分群",
|
||||
label: navigationMessages["customer-segments"],
|
||||
icon: UserGroupIcon,
|
||||
},
|
||||
{
|
||||
id: "customer-tiers",
|
||||
to: "/customers/tiers",
|
||||
label: "客户等级",
|
||||
label: navigationMessages["customer-tiers"],
|
||||
icon: CrownIcon,
|
||||
},
|
||||
{
|
||||
id: "customer-risk-list",
|
||||
to: "/customers/risk-list",
|
||||
label: "风险名单",
|
||||
label: navigationMessages["customer-risk-list"],
|
||||
icon: SecurityWarningIcon,
|
||||
},
|
||||
],
|
||||
@@ -354,31 +356,31 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "marketing-campaigns",
|
||||
to: "/marketing/campaigns",
|
||||
label: "营销活动",
|
||||
label: navigationMessages["marketing-campaigns"],
|
||||
icon: Discount01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "marketing-coupons",
|
||||
to: "/marketing/coupons",
|
||||
label: "优惠券管理",
|
||||
label: navigationMessages["marketing-coupons"],
|
||||
icon: Ticket01Icon,
|
||||
},
|
||||
{
|
||||
id: "marketing-flash-sales",
|
||||
to: "/marketing/flash-sales",
|
||||
label: "限时折扣",
|
||||
label: navigationMessages["marketing-flash-sales"],
|
||||
icon: Clock01Icon,
|
||||
},
|
||||
{
|
||||
id: "marketing-gift-promotions",
|
||||
to: "/marketing/gift-promotions",
|
||||
label: "满赠活动",
|
||||
label: navigationMessages["marketing-gift-promotions"],
|
||||
icon: GiftIcon,
|
||||
},
|
||||
{
|
||||
id: "marketing-referrals",
|
||||
to: "/marketing/referrals",
|
||||
label: "邀请有礼",
|
||||
label: navigationMessages["marketing-referrals"],
|
||||
icon: Share01Icon,
|
||||
},
|
||||
],
|
||||
@@ -386,25 +388,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "loyalty-center",
|
||||
to: "/loyalty",
|
||||
label: "会员权益",
|
||||
label: navigationMessages["loyalty-center"],
|
||||
icon: Medal01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "loyalty-points",
|
||||
to: "/loyalty/points",
|
||||
label: "积分规则",
|
||||
label: navigationMessages["loyalty-points"],
|
||||
icon: StarCircleIcon,
|
||||
},
|
||||
{
|
||||
id: "loyalty-stored-value",
|
||||
to: "/loyalty/stored-value",
|
||||
label: "储值账户",
|
||||
label: navigationMessages["loyalty-stored-value"],
|
||||
icon: Wallet01Icon,
|
||||
},
|
||||
{
|
||||
id: "loyalty-benefits",
|
||||
to: "/loyalty/benefits",
|
||||
label: "权益配置",
|
||||
label: navigationMessages["loyalty-benefits"],
|
||||
icon: CheckmarkBadge01Icon,
|
||||
},
|
||||
],
|
||||
@@ -413,36 +415,36 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
},
|
||||
{
|
||||
id: "data-and-finance",
|
||||
label: "数据与财务",
|
||||
label: navigationMessages["data-and-finance"],
|
||||
items: [
|
||||
{
|
||||
id: "report-center",
|
||||
to: "/reports",
|
||||
label: "数据报表",
|
||||
label: navigationMessages["report-center"],
|
||||
icon: Chart01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "report-sales",
|
||||
to: "/reports/sales",
|
||||
label: "销售分析",
|
||||
label: navigationMessages["report-sales"],
|
||||
icon: AnalyticsUpIcon,
|
||||
},
|
||||
{
|
||||
id: "report-products",
|
||||
to: "/reports/products",
|
||||
label: "商品分析",
|
||||
label: navigationMessages["report-products"],
|
||||
icon: ShoppingBag01Icon,
|
||||
},
|
||||
{
|
||||
id: "report-customers",
|
||||
to: "/reports/customers",
|
||||
label: "客群分析",
|
||||
label: navigationMessages["report-customers"],
|
||||
icon: UserGroupIcon,
|
||||
},
|
||||
{
|
||||
id: "report-channels",
|
||||
to: "/reports/channels",
|
||||
label: "渠道分析",
|
||||
label: navigationMessages["report-channels"],
|
||||
icon: ChartIncreaseIcon,
|
||||
},
|
||||
],
|
||||
@@ -450,31 +452,31 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "finance-center",
|
||||
to: "/finance",
|
||||
label: "财务中心",
|
||||
label: navigationMessages["finance-center"],
|
||||
icon: WalletCardsIcon,
|
||||
items: [
|
||||
{
|
||||
id: "finance-settlements",
|
||||
to: "/finance/settlements",
|
||||
label: "结算账单",
|
||||
label: navigationMessages["finance-settlements"],
|
||||
icon: Invoice03Icon,
|
||||
},
|
||||
{
|
||||
id: "finance-reconciliation",
|
||||
to: "/finance/reconciliation",
|
||||
label: "对账管理",
|
||||
label: navigationMessages["finance-reconciliation"],
|
||||
icon: Calculator01Icon,
|
||||
},
|
||||
{
|
||||
id: "finance-invoices",
|
||||
to: "/finance/invoices",
|
||||
label: "发票管理",
|
||||
label: navigationMessages["finance-invoices"],
|
||||
icon: File01Icon,
|
||||
},
|
||||
{
|
||||
id: "finance-payouts",
|
||||
to: "/finance/payouts",
|
||||
label: "打款记录",
|
||||
label: navigationMessages["finance-payouts"],
|
||||
icon: MoneySendSquareIcon,
|
||||
},
|
||||
],
|
||||
@@ -483,30 +485,30 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
},
|
||||
{
|
||||
id: "system-management",
|
||||
label: "系统管理",
|
||||
label: navigationMessages["system-management"],
|
||||
items: [
|
||||
{
|
||||
id: "system-members",
|
||||
to: "/system/members",
|
||||
label: "组织成员",
|
||||
label: navigationMessages["system-members"],
|
||||
icon: UserShield01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "system-members-admins",
|
||||
to: "/system/members/admins",
|
||||
label: "管理员账号",
|
||||
label: navigationMessages["system-members-admins"],
|
||||
icon: UserShield01Icon,
|
||||
},
|
||||
{
|
||||
id: "system-members-roles",
|
||||
to: "/system/members/roles",
|
||||
label: "角色管理",
|
||||
label: navigationMessages["system-members-roles"],
|
||||
icon: UserGroupIcon,
|
||||
},
|
||||
{
|
||||
id: "system-members-permissions",
|
||||
to: "/system/members/permissions",
|
||||
label: "权限策略",
|
||||
label: navigationMessages["system-members-permissions"],
|
||||
icon: LockKeyIcon,
|
||||
},
|
||||
],
|
||||
@@ -514,19 +516,19 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "system-notifications",
|
||||
to: "/system/notifications",
|
||||
label: "消息中心",
|
||||
label: navigationMessages["system-notifications"],
|
||||
icon: BubbleChatIcon,
|
||||
items: [
|
||||
{
|
||||
id: "system-notification-templates",
|
||||
to: "/system/notifications/templates",
|
||||
label: "通知模板",
|
||||
label: navigationMessages["system-notification-templates"],
|
||||
icon: File01Icon,
|
||||
},
|
||||
{
|
||||
id: "system-notification-logs",
|
||||
to: "/system/notifications/logs",
|
||||
label: "发送记录",
|
||||
label: navigationMessages["system-notification-logs"],
|
||||
icon: HistoryIcon,
|
||||
},
|
||||
],
|
||||
@@ -534,25 +536,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "system-audit",
|
||||
to: "/system/audit",
|
||||
label: "操作审计",
|
||||
label: navigationMessages["system-audit"],
|
||||
icon: Note01Icon,
|
||||
},
|
||||
{
|
||||
id: "system-integrations",
|
||||
to: "/system/integrations",
|
||||
label: "开放集成",
|
||||
label: navigationMessages["system-integrations"],
|
||||
icon: CodeSquareIcon,
|
||||
items: [
|
||||
{
|
||||
id: "system-integration-api-keys",
|
||||
to: "/system/integrations/api-keys",
|
||||
label: "API 密钥",
|
||||
label: navigationMessages["system-integration-api-keys"],
|
||||
icon: Key01Icon,
|
||||
},
|
||||
{
|
||||
id: "system-integration-webhooks",
|
||||
to: "/system/integrations/webhooks",
|
||||
label: "Webhook 配置",
|
||||
label: navigationMessages["system-integration-webhooks"],
|
||||
icon: LinkCircleIcon,
|
||||
},
|
||||
],
|
||||
@@ -560,25 +562,25 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "system-settings",
|
||||
to: "/system-configs",
|
||||
label: "系统配置",
|
||||
label: navigationMessages["system-settings"],
|
||||
icon: Settings01Icon,
|
||||
items: [
|
||||
{
|
||||
id: "system-settings-store",
|
||||
to: "/system-configs/store",
|
||||
label: "门店资料",
|
||||
label: navigationMessages["system-settings-store"],
|
||||
icon: Store01Icon,
|
||||
},
|
||||
{
|
||||
id: "system-settings-payments",
|
||||
to: "/system-configs/payments",
|
||||
label: "支付渠道",
|
||||
label: navigationMessages["system-settings-payments"],
|
||||
icon: CreditCardIcon,
|
||||
},
|
||||
{
|
||||
id: "system-settings-shipping",
|
||||
to: "/system-configs/shipping",
|
||||
label: "配送设置",
|
||||
label: navigationMessages["system-settings-shipping"],
|
||||
icon: DeliveryTruck01Icon,
|
||||
},
|
||||
],
|
||||
@@ -586,7 +588,7 @@ export const primaryNavigationGroups: readonly NavigationGroup[] = [
|
||||
{
|
||||
id: "system-recycle-bin",
|
||||
to: "/system/recycle-bin",
|
||||
label: "回收站",
|
||||
label: navigationMessages["system-recycle-bin"],
|
||||
icon: Delete02Icon,
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user