数据库模版列代码 - 获取绑定的任务列表块的状态

image.png

如图,比如把图片中任务项添加到数据库中,希望能用模版列获取到任务状态,显示完成/未完成,这样就可以不用勾选框了,直接用笔记内的勾选框即可进行筛选,求大佬们帮忙写个,谢谢。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22774 引用 • 91426 回帖 • 2 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8322 引用 • 37918 回帖 • 158 关注

相关帖子

被采纳的回答
  • 试试这个:

    .action{ if index . "custom-avs" }
    .action{ $id := .id }
    .action{ $done := len (queryBlocks "SELECT * FROM blocks WHERE id = '?' AND markdown LIKE '* [x]%'" $id) }
    .action{ if eq $done 1 }
    已完成
    .action{ else }
    未完成
    .action{ end }
    .action{ end }
    

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 绑定的文档里只有一个任务列表项吗?

    不一定,有多个,我每次只添加其中子列表项进数据库
    5kyfkr
  • 你的意思是数据库绑定的是列表项吗?

    对滴,绑定是列表项目,不绑定整个列表
    5kyfkr
    Issue #12988 · siyuan-note/siyuan 我一开始想着是让 D 大整的,D 大不整就只剩下模版列能实现了
    5kyfkr
  • 试试这个:

    .action{ if index . "custom-avs" }
    .action{ $id := .id }
    .action{ $done := len (queryBlocks "SELECT * FROM blocks WHERE id = '?' AND markdown LIKE '* [x]%'" $id) }
    .action{ if eq $done 1 }
    已完成
    .action{ else }
    未完成
    .action{ end }
    .action{ end }
    
    1 回复
  • 5kyfkr

    可以滴,大佬神速,不过对纯文本主键就没什么好办法了,要是能给纯文本主键做个点击框,然后点击后输出已完成,那就完美了,不过应该有难度,也够用了,哈哈

    image.png

    2 回复
  • wilsons 2 1 评论

    要是能给纯文本主键做个点击框,然后点击后输出已完成,那就完美了

    确实可以,但点击框加到模板列更方便,代码如下

    .action{ if index . "custom-avs" }
    .action{ $id := .id }
    .action{ $done := len (queryBlocks "SELECT * FROM blocks WHERE id = '?' AND markdown LIKE '* [x]%'" $id) }
    <label onclick="event.stopPropagation();if(event.target.tagName!=='INPUT')return;(document.querySelector('[data-type=\'NodeListItem\'][data-node-id=\'.action{ .id }\']')||document.querySelector('[data-type=\'NodeList\'][data-node-id=\'.action{ .id }\']'))?.querySelector('.protyle-action--task')?.click();if(this.lastElementChild.checked)this.firstElementChild.textContent='已'+'完成';else this.firstElementChild.textContent='未'+'完成';">
    .action{ if eq $done 1 }
    <span>已完成</span>
    .action{ else }
    <span>未完成</span>
    .action{ end }
    <input type="checkbox" .action{ if eq $done 1 } checked .action{ end } style="position:relative;top:-2px;" />
    </label>
    .action{ end }
    

    效果

    r82.gif

    但这种效果,如果任务项文档未打开会没效果,这时需要调用思源 api 接口进行更新,这种实现方式太过麻烦,有兴趣自己研究。

    另外,如果让任务项点击,数据库完成状态实时更新实现起来也较麻烦,暂不支持。目前任务项点击,需要刷新页面,数据库完成状态才更新。

    2 回复
    3 操作
    wilsons 在 2024-11-02 00:42:14 更新了该回帖
    wilsons 在 2024-11-01 23:53:26 更新了该回帖
    wilsons 在 2024-11-01 21:50:50 更新了该回帖
    下个版本会改进数据库刷新 Issue #12997 · siyuan-note/siyuan
    JeffreyChen
  • 5kyfkr

    大佬可以的,感谢 😄 ❤️

  • 给纯文本主键做个点击框,然后点击后输出已完成

    你的模板还是没有实现这一点

    1 回复
  • 比如,你具体指什么没实现?这里没放到主键上,直接放在模板列了

    1 回复
  • 纯文本主键这里还是没东西的:

    image.png

    1 回复
  • 这种方式,需要调用思源 api 保存数据,在行中添加点东西,用于标志是否已完成的记录。

    1 回复
  • 对,我的意思就是你没有实现这个。

    p.s. 我感觉你是不是把“给纯文本主键(条目)做个点击框”理解成了“给主键(单元格)做个点击框”。楼主遇到的问题是,没有绑定块的条目无法通过模板来表示已完成,你的模板代码还是没有解决这一点。

    你理解没错误,我是这么理解的,不过,纯文本要调用 api 就复杂了
    wilsons
  • JeffreyChen 1 赞同 1 评论

    不过对纯文本主键就没什么好办法了

    严格来说也不算没办法,给数据库多加一个复选框字段给纯文本主键条目用就行了。

    想了想还是觉得没必要,纯文本不整也够用了
    5kyfkr
请输入回帖内容 ...

推荐标签 标签

  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 3 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 488 关注
  • 导航

    各种网址链接、内容导航。

    41 引用 • 175 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 35 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 54 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 4 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22774 引用 • 91425 回帖 • 2 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    343 引用 • 720 回帖 • 1 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 37 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 174 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 258 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖 • 1 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1706 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8322 引用 • 37917 回帖 • 158 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 743 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 240 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    354 引用 • 1821 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 138 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 366 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1518 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 534 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 632 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 611 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 1 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    222 引用 • 474 回帖 • 1 关注