Skip to content

案例:云笔记工作台

Evoke UI 不只能搭营销页——表单、卡片、时间线这些「应用感」组件拼起来, 一样能做出轻量的工具型界面。本案例是一个可以真的操作的笔记工作台: 搜索过滤、分类切换、选中编辑、收藏与归档,全部状态都在本地 ref 里。

用到的组件EwNavbar · EwInput · EwTabs · EwCard · EwTag · EwIconButton · EwAvatar · EwField · EwTextarea · EwButton · EwTimeline · EwFooter

app.nimbus.notes新窗口打开
7 条笔记
Q4 产品评审纪要

三个结论:路线图砍掉两个特性;移动端排期提前两周;定价实验继续观察一个迭代。

工作评审今天 14:20
Clean Navy 配色速查

主色藏青,语义色五档;粉彩只用于卡片底,正文永远用墨色层级。

设计速查今天 09:47
周三读书会:提问清单

《格拉斯的医生》前三章;带一个问题来,别带答案。

生活读书昨天 21:03
组件库发版清单

改动日志、版本号、文档站构建、示例工程回归——四步缺一不可。

工作清单昨天 11:15
山里买的咖啡豆

日晒耶加雪菲,中浅焙;手冲水温 92 度,粉水比 1:15。

生活09-05 18:40
旧版首页存档

2024 年上线的第一版首页,留着对照进步。

存档已归档08-28 10:02
离职同事的交接笔记

权限系统的来龙去脉都在这里,接手时救了我两次。

存档工作已归档08-19 16:30

编辑笔记

38 / 300
工作评审添加标签
更新于 今天 14:20

最近动态

今天 14:20

阿岚 更新了《Q4 产品评审纪要》

今天 13:05收藏

阿岚 收藏了《离职同事的交接笔记》

昨天 18:12归档

《旧版首页存档》被移入归档

搭建要点

  • 工作台 = 列表栏 + 编辑栏:一个两列 grid 就够了。窄屏时 auto-fit 自动降为单列,编辑卡掉到列表下方。
  • 搜索与筛选合成一个 computed:关键词对标题、正文、标签做小写包含匹配,Tab 负责状态过滤——两个条件各自独立,互不纠缠。
  • 列表卡是「可点卡片」EwCard hoverable @click 加选中态类;收藏按钮用 @click.stop 阻止冒泡,点星星不会误选中。
  • 编辑面板用 EwField 包住每个控件:标题、内容、标签三段式,EwTextareamaxlength 自带字数计数器。
  • 归档不是删除:切换 status 字段,卡片出现在「已归档」Tab 里,随时可以恢复——工具型界面的安全感来自可逆。
  • 空态也是设计的一部分:筛选无结果时给一句说明和一个「清空筛选」按钮,别让用户面对白屏。

关键代码

列表的过滤逻辑,搜索词与 Tab 两个条件正交:

js
const filtered = computed(() =>
  notes.value.filter((n) => {
    const byTab = tab.value === 'all' || n.status === tab.value
    const q = query.value.trim().toLowerCase()
    const byQuery =
      !q ||
      `${n.title} ${n.content} ${n.tags.join(' ')}`.toLowerCase().includes(q)
    return byTab && byQuery
  })
)

收藏与归档都是对单条笔记的字段修改,界面自动跟随:

vue
<EwCard
  v-for="n in filtered"
  :key="n.id"
  hoverable
  flat
  :class="{ 'is-active': selected && selected.id === n.id }"
  @click="pick(n)"
>
  <EwIconButton
    size="small"
    :icon="n.starred ? 'star-fill' : 'star'"
    @click.stop="toggleStar(n)"
  />
</EwCard>

编辑面板用 EwField 包住控件,v-model 直接绑到选中笔记的字段上:

vue
<EwField label="内容">
  <EwTextarea v-model="selected.content" :rows="7" :maxlength="300" />
</EwField>

基于 MIT 许可证发布