缘起
继 批量导入文档到数据库 0.0.6 版全新发布 之后,又一款导入数据库的代码片段问世。
之前的代码主打是批量导入,偏向于自动化,这个代码主打是单个或少量导入,主打是手动操作,通过块菜单或文档菜单导入,并且支持绑定块和不绑定块两种操作。
同样,与之前的代码一样,这个代码也是基于某源(思源)友的需求( 发送到数据库设置成默认取消绑定块,用代码片段能实现吗?或者没有大佬用插件实现? )而开发的。
改功能已全部使用到了 @Achuan-2 大佬提供的 7 个数据库 api 的操作,有想了解这些 api 用法的小伙伴也可以参考下该代码。
功能简介
1 支持自定义菜单及数据库,支持多个数据库配置
2 支持添加数据库的同时添加其他任意字段到数据库
3 添加其他字段时,可根据列表添加,多个同名的取第一个
4 添加其他字段时,具体添加内容是什么可以自定义,也可以使用回调函数实现。
使用说明
首先在代码参数配置中添加相应配置,然后在块菜单或文档菜单中选择 menus 参数中配置的菜单即可。
如果想要添加数据库的同时添加其他更多字段,可以把 isEnableMoreCols 开启,然后配置 menus 的 otherCols 字段即可。
参数配置如下:
// 是否开启,同时添加其他字段 true 开启 false 不开启
// 开启时,需要配置menus中的otherCols字段信息(可参考下面的示例)
const isEnableMoreCols = false;
// 块菜单配置
const menus = [
{
// 菜单名,显示在块或文档右键菜单上
name: "添加到数据库A",
// 添加到的数据库块id列表(必填),注意是数据库所在块id,如果移动了数据库位置需要更改
toAvBlockId: "20250501223635-2hu6d9z",
// 指定数据库的列名,不填默认是添加到主键列,该参数仅对不绑定块菜单有效,如果多个列名一样的则取第一个
// 注意,目前仅支持文本列
toAvColName: "",
// 是否绑定块菜单,true 绑定,false 不绑定
isBindBlock: true,
// 其他扩展字段
// getColValue回调函数可动态计算字段值返回
otherCols: [
{
colName: '状态',
// 对于绑定块,块/文档id === rowID
getColValue: (keyID, rowID, cellID, avID) => {
return {"mSelect": [{"content":"今天"}]};
},
}
],
},
...
}
可通过参数 isBindBlock 指定是否绑定块或文档,不绑定块是指仅仅发送块内容或标题文本到数据库。
可通过参数 toAvBlockId,指定将要添加到的数据库块 id,注意,是数据库所在块的 id,不是数据库 id(因此,如果移动了数据库位置需要更改块 id)。
可通过参数 toAvColName 指定数据库的列名,不填默认是添加到主键列,该参数仅对不绑定块菜单有效,如果多个列名一样的则取第一个(注意,目前仅支持文本列)
注意:只能在块菜单或文档菜单中操作(你的右键可能不是块菜单)
预览
块菜单如下
文档菜单如下
代码
鸣谢
感谢 @Achuan-2 大佬提供的数据库 api 使用方法。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于