项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。

快速开始 ​

装包、挂插件、把 EtProvider 写在根上,工具界面就能跑。

安装 ​

peer 是 vue 与 @wil-works/evoke-business-ui(底座,提供 reset 与 --eb-* 令牌):

bash
pnpm add @wil-works/evoke-tools-ui @wil-works/evoke-business-ui vue

全量引入 ​

js
import { createApp } from 'vue'
import EvokeToolsUI from '@wil-works/evoke-tools-ui'
import '@wil-works/evoke-tools-ui/styles'
import '@wil-works/evoke-business-ui/styles'
import App from './App.vue'

createApp(App).use(EvokeToolsUI).mount('#app')

app.use(EvokeToolsUI) 注册全部 Et* 组件(36 个入口)。也可以只装一层:

js
import CommonTools from '@wil-works/evoke-tools-ui/common'
import OfficeTools from '@wil-works/evoke-tools-ui/office'

createApp(App).use(CommonTools).use(OfficeTools)

common-tools(29 件:基准件 / 通用壳 / 命令面 / 面板 / 反馈 / 输入,不含办公语义)与 office-tools(7 件:功能区 / 溢出菜单 / 后台页 / 表页签 / 公式栏 / 画布宿主 / 画布桥)的分工见设计规范, 逐件清单见 common-tools 与 office-tools。

按需引入 ​

子路径按组件粒度导出,样式随入口一起进产物:

vue
<script setup>
import { EtToolButton } from '@wil-works/evoke-tools-ui/tool-button'
</script>

<template>
  <et-tool-button icon="copy" label="复制" size="small" tip="复制" @click="copied = true" />
</template>

运行时契约走 ./runtime,图标机制走 ./icons,两条入口不随组件树打包:

js
import { createCommandRegistry } from '@wil-works/evoke-tools-ui/runtime'
import { registerDomainIcons } from '@wil-works/evoke-tools-ui/icons'

密度写在根上 ​

密度是根级属性而非组件 prop:EtProvider 把它写进 <html data-density>,组件只引用令牌。 切换档位即时生效(A-19 修复后),下面的分段一点就换:

⌘K
当前:default

密度是根级属性(<html data-density>),由 EtProvider 写入,不是组件 prop。卸载时还原挂载前的外部值;嵌套 EtProvider 以最后挂载者为准:

vue
<template>
  <et-provider :density="density">
    <app />
  </et-provider>
</template>

<script setup>
import { ref } from 'vue'
const density = ref('default') // compact / default / relaxed
</script>

运行时切档即时生效,不需要刷新页面。三档度量见设计规范,令牌表不在这页重复。

最小可跑片段 ​

一个 EtProvider 加一个工具钮,拷贝即可运行:

vue
<template>
  <et-provider>
    <et-tool-button icon="copy" label="复制" size="small" tip="复制" @click="copied = true" />
  </et-provider>
</template>

<script setup>
import { ref } from 'vue'
const copied = ref(false)
</script>

label 同时是 small 钮的可访问名(G4);tip 给字符串时 ScreenTip 只显示名称。

一个真实装配 ​

标题栏 + 工具区 + 左停靠(两块面板并列,可拖分隔条,也可纯键盘调尺寸)+ 画布 + 状态栏:

文档站演示
报表.xlsx
文件
  • 文件 1
  • 文件 2
  • 文件 3
搜索
  • 搜索 1
  • 搜索 2
  • 搜索 3
画布区(产品内容)
100%

下一站 ​