运营中心 · 小改版设计规范

基于 master 分支,新增「商品」和「计价」两个原型模块(共 9 个页面), 主题色由橙 #FF921C 切换为蓝 #4362FF(与其他蓝色产品对齐), 统一侧栏图标风格(codesign → 恐龙图标库 duotone), 对齐公司设计规范的色彩 Token 体系。本页用于前端交接,记录所有改动点。

9
新增页面
24
恐龙图标
14
侧栏图标替换
5
已有文件改动
Design Token

色彩规范

全局色彩通过 config/theme.ts 注入 AntD ConfigProvider, 以 CSS 变量形式输出(前缀 --alaya-*),全项目共享。

主题色 · Primary

品牌主色 #4362FF,按钮、链接、选中态、菜单激活态。本次改版从橙 #FF921C 切换到蓝色,与其他蓝色产品对齐。

blue-1#F0F5FF
blue-2#E6EDFF
blue-3#BDCEFF
blue-4#94ADFF
blue-5#6B89FF
primary#4362FF
blue-7#2E44D9
blue-8#1D2CB3
blue-9#0F188C
blue-10#0A0D66

中性色 · Gray

10 阶灰色,全部文字色、边框色、填充色、背景色都从此推导。

gray-1#F8FAFC
gray-2#F1F5F9
gray-3#E1E7EF
gray-4#C8D5E5
gray-5#9EACBF
gray-6#65758B
gray-7#48566A
gray-8#344256
gray-9#0F1728
gray-10#090E1A

辅助色 · Orange 原主色 · 保留供 warning 状态色使用

原主色橙色降级为辅助色。状态色(待审核、待支付等)若需暖色调从此选取,不要新增其他色族。

orange-1#FFF7E6
orange-2#FFDFA3
orange-3#FFCC7A
orange-4#FFB752
orange-5#FF9F29
orange-old#FF921C
orange-6#FF8400
orange-7#D96900
orange-8#B35000
orange-9#8C3A00
Design Token

文字层级

文字色严格使用 语义层变量(如 colorTextcolorTextSecondary), 而不是直接引用 gray-10gray-8 等调色板层级。

colorText · gray-10
Alaya 运营中心 · 主标题文本
colorTextSecondary · gray-8
次级标题、卡片副标题
colorTextTertiary · gray-6
辅助说明、表单 placeholder、图标默认色
colorTextQuaternary · gray-5
禁用文本、菜单下拉箭头
colorPrimary · #4362FF
链接、选中态、强调文本
规范要点: 全局文字色使用语义变量,不要直接用 gray-X。当设计要调整时只改语义变量映射,全局生效,避免硬编码导致改色困难。
Design Token

语义变量

边框、填充、背景的语义层级映射,确保改版时能从单一来源调整。

边框 · Border

colorBorder
默认边框(输入框、卡片)
gray-4
colorBorderSecondary
次级边框(表格、分割)
gray-3
colorSplit
分割线、Divider
gray-2

填充 · Fill

colorFill
深填充(强调背景)
gray-4
colorFillSecondary
次级填充
gray-3
colorFillTertiary
三级填充(hover 浅底)
gray-2
colorFillQuaternary
四级填充(最浅底色)
gray-1

背景 · Background

colorBgLayout
页面外层背景
gray-2
colorBgContainer
卡片、Drawer、Modal 容器
#FFFFFF
Design Token

间距 Spacing

全部使用 AntD 标准 token(与 Figma 设计稿一致)。 基础尺寸 sizeUnit: 4 + sizeStep: 4,输出 11 档 Size.Base 阶梯。 Padding / Margin 都是 Base 的别名引用,外加 Content Padding / Control Padding 两组语义专用。 不要自己造 spacing* 自定义 token,组件直接消费 AntD CSS 变量。

Size.Base · 基础阶梯(11 档)

所有 Padding/Margin 都引用此层数值。CSS 变量 --alaya-size-*

sizeXXS
4px
--alaya-size-xxs
sizeXS
8px
--alaya-size-xs
sizeSM
12px
--alaya-size-sm
size / sizeMS
16px
--alaya-size
sizeMD
20px
--alaya-size-md
sizeLG
24px
--alaya-size-lg
sizeXL
32px
--alaya-size-xl
sizeXXL
40px
--alaya-size-xxl
sizeXXXL
48px
--alaya-size-xxxl
sizeXXXXL
80px
--alaya-size-xxxxl
sizeXXXXXL
120px
--alaya-size-xxxxxl

Padding / Margin(Base 别名)

Token引用用途
paddingXXS / marginXXS4sizeXXS极小间距
paddingXS / marginXS8sizeXS按钮 icon-文字、Space size 默认
paddingSM / marginSM12sizeSM表格单元格垂直、小尺寸 padding
padding / margin16size卡片内边距、表单项间距、模块之间
paddingMD / marginMD20sizeMD
paddingLG / marginLG24sizeLG大尺寸内边距
paddingXL / marginXL32sizeXL
paddingXL2 / marginXXL40sizeXXL大块内容间距
paddingXL3 / marginXXXL80sizeXXXXL章节级间距
paddingXL4120sizeXXXXXL

Content Padding(内容专用)

内容区域专用 padding,页面水平内边距用 paddingContentHorizontalLG,标题区垂直用 paddingContentVertical

Token用途
paddingContentHorizontal16内容水平 padding
paddingContentHorizontalLG24页面水平内边距
paddingContentHorizontalSM16内容水平 SM
paddingContentVertical12标题区垂直 padding
paddingContentVerticalLG16内容垂直 LG
paddingContentVerticalSM8内容垂直 SM

Control Padding(控件专用)

Token用途
controlPaddingHorizontal12输入框/按钮内水平 padding
controlPaddingHorizontalSM8小尺寸控件水平

使用示例

// ✅ 推荐:直接用 AntD 标准 CSS 变量(与 Figma 一致)
.my-page {
  padding: 0 var(--alaya-padding-content-horizontal-lg);  /* 24 */
}
.my-section + .my-section {
  margin-top: var(--alaya-margin);  /* 16 */
}
.my-table-cell {
  padding: var(--alaya-padding-sm) var(--alaya-padding);  /* 12 16 */
}

// ❌ 禁止:硬编码像素
.my-page { padding: 0 24px; }

// ❌ 禁止:自造 spacing* 语义 token
// 不要在 theme.ts 里加 spacingPagePaddingX 之类的,AntD 标准命名已经有对应 token
原则: ① 与 Figma 一致 = 用 AntD 标准 token,不要自造命名 ② 页面水平内边距 → paddingContentHorizontalLG(24) ③ 标题区垂直 → paddingContentVertical(12) ④ 模块之间垂直间距 → margin(16) ⑤ 永远不要硬编码像素
Component

DinoIcons · 恐龙图标库

24 个 duotone(双色)风格 SVG 图标,统一替换原 codesign iconfont 实现侧栏图标风格。 通过 { ReactComponent } inline SVG 方式渲染,颜色跟随 currentColor, 默认 colorTextTertiary,菜单选中/hover 跟随 colorPrimary

默认状态 · gray-6

钱包
dino-wallet
收支
dino-invoice-dollar
订单
dino-receipt
合同
dino-file-check
账单
dino-bank-statement
算力包
dino-box
导出记录
dino-file-download
监控
dino-clipboard-list
客户
dino-users
企业
dino-office
合作
dino-handshake
商品
dino-bag-shopping
商品管理
dino-box-check
计价
dino-coins
营销
dino-marketing-target
充值
dino-circle-dollar
优惠券
dino-coupon
礼品
dino-gift
兑换码
dino-discount-code
权限
dino-shield-check
消息
dino-notification
系统设置
dino-gear
标签
dino-hashtag
证照
dino-license

使用方式

// 1. 在 route config 中使用 dino-* 字符串
{
  name: '商品',
  icon: 'dino-bag-shopping',
  path: '/ops/misc/commodity',
}

// 2. app.tsx 的 menuDataRender 自动转换为 React 组件
menuDataRender(menuData) {
  const patchDinoIcons = (items) => items.map((item) => {
    if (typeof item.icon === 'string' && item.icon.startsWith('dino-')) {
      item.icon = React.createElement(dinoIconMap[item.icon]);
    }
    return item;
  });
  return patchDinoIcons(menuData);
}
Component

Tag 标签

统一使用 AntD Tag 组件的 color 预设值(success/error/warning/processing), 不要直接用 color="green"color="red" 等颜色名,避免与主题脱节。

语义预设

通用语义池,业务方按"成功/失败/警告/进行中/默认/品牌"语义选择,文案自填。

color效果语义场景常见文案示例
success Success 成功 / 启用 / 正常 销售中、已启用、运行中、已通过、健康、在线…
error Error 失败 / 异常 / 终止 已停售、失败、已下线、异常、已拒绝、离线…
warning Warning 警告 / 待处理 / 提醒 待审核、待支付、即将到期、风险、待确认…
processing Processing 进行中 / 加载 / 同步 处理中、同步中、构建中、上传中、计算中…
default Default 中性 / 草稿 / 已结束 草稿、已结束、未开始、归档、—
品牌强调 Brand 品牌强调 / 推荐 / 重要 VIP、推荐、新品、官方、Pro

使用示例

// ✅ 正确:用语义 color 预设,文案随业务自填
<Tag color="success">销售中</Tag>
<Tag color="success">运行中</Tag>
<Tag color="warning">待审核</Tag>
<Tag color="processing">同步中</Tag>

// ❌ 错误:硬编码颜色名 / 色值
<Tag color="green">销售中</Tag>
<Tag color="#52c41a">销售中</Tag>
选用原则: 新增状态时优先映射到现有语义池(success/error/warning/processing/default)。 不要为每个新业务状态新增专属色,避免色彩失控。
Delivery

新增路由

所有页面均使用 mock 数据,前端接入时需替换为真实 API。

商品模块 · /ops/misc/commodity

路由页面组件说明
/ops/misc/commodity一级菜单,icon: dino-bag-shopping
/ops/misc/commodity/productcommodity/ProductList产品管理列表(Drawer 600px 新建/编辑)
/ops/misc/commodity/listcommodity/CommodityList商品管理列表(卡片+表格双视图)
/ops/misc/commodity/list/createcommodity/CommodityCreate新建商品(4 步 Steps 独立页面)
/ops/misc/commodity/list/:action/:idcommodity/CommodityCreate编辑商品
/ops/misc/commodity/bundlecommodity/BundleList套餐包管理(Drawer 640px 新建/编辑)

计价模块 · /ops/misc/pricing

路由页面组件说明
/ops/misc/pricing一级菜单,icon: dino-coins
/ops/misc/pricing/aidcpricing/AidcListAIDC 定价(Drawer 520px)
/ops/misc/pricing/meterpricing/MeterList计量项管理(Drawer 640px 编辑 + 定价)
/ops/misc/pricing/billingpricing/BillingMode计费模式(Drawer 560px + 绑定商品 Modal)

侧栏图标替换 · 14 项

菜单旧 icon (codesign)新 icon (恐龙)
账户管理icon-yy-zhanghuguanlidino-wallet
收支管理icon-yy-DCUshouzhimingxidino-invoice-dollar
订单管理icon-yy-dingdanguanlidino-receipt
合同管理icon-yy-hetongguanlidino-file-check
账单管理icon-yy-zhangdanguanlidino-bank-statement
算力包管理icon-yy-suanlibaoguanlidino-box
导出记录icon-yy-daochujiludino-file-download
会话监控icon-yy-mingchengziyuanjianqiangdino-clipboard-list
客户管理icon-yy-yonghuguanlidino-users
商品管理icon-yy-shangpinguanlidino-box-check
营销管理icon-yy-duihuanmaguanlidino-marketing-target
权限管理icon-yy-renyuanquanxianguanlidino-shield-check
消息管理icon-yy-gonggaotongzhidino-notification
系统设置icon-yy-biaoqiandino-gear
后续规划: 恐龙图标后期需上传 CoDesign 生成 iconfont,届时改回 icon-yy-xxx 格式并删除 DinoIcons 组件 + SVG 文件。
Delivery

改动文件清单

合并前请重点 review 以下文件。

新增文件

文件路径说明
src/pages/commodity/ProductList/index.tsx产品管理列表
src/pages/commodity/CommodityList/index.tsx商品管理列表(双视图)
src/pages/commodity/CommodityCreate/index.tsx新建/编辑商品
src/pages/commodity/CommodityCreate/index.less商品创建页样式
src/pages/commodity/BundleList/index.tsx套餐包管理
src/pages/pricing/AidcList/index.tsxAIDC 定价
src/pages/pricing/MeterList/index.tsx计量项管理
src/pages/pricing/BillingMode/index.tsx计费模式
src/components/DinoIcons/index.tsx恐龙图标组件(24 个)
src/components/DinoIcons/index.global.less图标颜色 + 菜单状态样式
src/assets/icons/icon*.svg × 24duotone 风格 SVG 资源

已有文件修改

文件改动说明
config/route/platformRoutes/misc.ts新增商品、计价模块路由 + 14 项图标替换
config/route/platformRoutes/cost.ts费用中心 8 项图标替换
src/app.tsx导入 dinoIconMap 并在 menuDataRender 递归替换;底部折叠按钮(menuFooterRender);隐藏默认折叠按钮;顶部 logo 高度 48px → 40px(对齐 Figma),logo 容器加 alignItems: 'center' 让图片和文字水平居中
config/theme.ts主题色切换:colorPrimary #FF921C 橙 → #4362FF 蓝(与其他蓝色产品对齐);菜单选中背景 secondaryOrange1blue1;对齐公司设计规范:gray/blue/orange 色板、文本色、边框色、填充色、背景色
src/components/DinoIcons/index.global.less图标默认色 colorTextTertiary;选中/hover 跟随主色;下拉箭头 colorTextQuaternary;菜单去过渡 + 子菜单展开动画 0.15s
对接提醒: 所有列表页使用 mock 数据,前端接入时需:① 替换 mock 为真实 API ② 对接 CRUD 接口 ③ 确认字段名与后端一致。

已知遗留问题(不在本次改版范围)

主题色已通过 config/theme.ts 切换到蓝色,AntD 内置组件 + 用 var(--alaya-*) 的自定义样式都自动跟随。 但项目中仍有 十几处硬编码 #FF921C 橙色,未走主题系统:

文件用途建议
public/scripts/loading.js加载页背景色改为 --alaya-color-primary
src/constants/order.ts订单状态文字色改用 colorWarning 语义 token
src/constants/notice.ts"待发布" 状态文字色改用 colorWarning
src/constants/payOrder.ts支付状态文字色改用 colorWarning
src/components/ChangeLan/index.less语言切换器 hover 色改为 --alaya-color-primary
src/components/CustomPayModal/index.tsx弹窗强调色改为 --alaya-color-primary
建议:这些都是前端早期遗留,建议后续单独起一个分支批量替换为 var(--alaya-color-primary) 或对应语义 token,不在本次小改版范围。
Inspect OFF