@conduction/nextcloud-vue

中文文档
2.180.0发布于 2026/11/07EUPL-1.2TypeScriptESM + CJS构建来源已验证近 30 天下载 10万

共享 Vue 组件库用于操作 Nextcloud apps —— 以更高级别组件补充@nextcloud/vue, OpenRegister 集成和 NL 设计系统支持

中文使用文档
文档目录21 节
  1. 特征
  2. 布局和页面组件
  3. 数据显示
  4. 单对象对话框
  5. 大众行动对话框
  6. 设置配置( C)
  7. 州管理层
  8. 可编曲
  9. Schema 公用事业
  10. 建筑
  11. 双相对话框模式
  12. Schema- Driven 组件
  13. 安装
  14. Markdown sanitization (CnRoadmap 项目/ CnSuggest Feature Moda…
  15. Webpack Alias(用于本地开发)
  16. 目录结构
  17. 发展
  18. 技术堆栈
  19. 图标设置许可( L)
  20. 许可证
  21. 作者数

@conduction/nextcloud-vue logo

@ 导出/ 下行- vue

共享 Vue 2 组件库用于操控 Nextcloud apps — 高级 UI, OpenRegister 集成, 以及 NL 设计系统支持

npm version License Code quality


@conduction/nextcloud-vue 是一个 npm 组件库, 坐在顶端 @nextcloud/vue 并提供更高层次,有观点的组件用于构建Nextcloud apps. 它处理重复的规律——由计划驱动的表格,CRUD对话框,被页化的列表,面相搜索——所以每个应用程序只写出特定域的部分.

内部使用 皮佩林克语Name, (中文(简体) ), 多西克语Name, (中文(简体) ), 拉尔平克,以及其它"下个云"应用程序.

要求: Vue 2.7, Pinia 2, @nextcloud/vue 8 (英语)

特征

布局和页面组件

构成部分说明
CnIndexPage零配置索引页面,其中包含表格/卡视图、内置的 CRUD 对话框、页码化、质量动作和面部搜索
CnPageHeader有图标、标题和描述的页眉
CnActionsBar动作栏,加上按钮、质量动作触发器、视图切换(表/网格)和搜索
CnIndexSidebar索引页边栏

数据显示

构成部分说明
CnDataTable可排序的表格,其中包含多选择的、由计划驱动的列、装入状态和空状态
CnCardGrid对象摘要的响应卡网格
CnObjectCard有标题、元数据和动作的单一对象卡
CnCellRenderer用于字符串、数字、日期、对象、阵列和布尔值的具有类型意识的单元格
CnFacetSidebar带有总数桶的已面部过滤边栏
CnPagination用页码、大小选择器和“去页”进行全页标记
CnFilterBar使用过滤器控制搜索输入
CnKpiGrid统计仪表板的KPI计量卡

单对象对话框

构成部分说明
CnFormDialog创建和编辑的 Schema 驱动窗体对话框; JSON Schema 自动生成字段
CnDeleteDialog删除两相确认/结果模式
CnCopyDialog用命名模式选择器复制对话框

大众行动对话框

构成部分说明
CnMassDeleteDialog批量删除确认
CnMassCopyDialog按项目命名的批量副本
CnMassExportDialog导出选中的项目( JSON, CSV,...)
CnMassImportDialog带有文件上传和格式检测的批量导入

设置配置( C)

构成部分说明
CnSettingsCard带有保存状态的可折叠设置卡
CnSettingsSection组合设置容器
CnConfigurationCard有状态指示符的配置卡
CnVersionInfoCard版本信息显示
CnStatsBlock统计区块,包括计数和细分
CnRegisterMapping登记册到实地绘图配置

州管理层

导出说明
useObjectStore(id)用于 OpenRegister CRUD 的通用 Pinia 商店 – pagination, search, caching
createObjectStore(id)自定义的物件储存厂
createSubResourcePlugin(name)次级资源管理插件厂
auditTrailsPlugin添加审计线索状态和获取器
relationsPlugin管理对象关系/联系
filesPlugin处理文件附件并上传
lifecyclePlugin跟踪生命周期状态(草案、公布、存档)
registerMappingPlugin管理寄存到外地的映射

可编曲

可编曲说明
useListView(options)管理列表视图状态:搜索解跳、过滤状态、排序、页码
useDetailView(options)管理细节视图:装入、编辑、删除、验证
useSubResource(options)管理子资源操作

Schema 公用事业

函数说明
columnsFromSchema(schema)JSON Schema 自动生成数据表列定义
fieldsFromSchema(schema)JSON Schema 自动生成窗体字段定义
filtersFromSchema(schema)JSON Schema 自动生成过滤器定义
formatValue(value, format)具有类型意识的单元格值

建筑

graph TD
    A[Nextcloud App] -->|imports| B[@conduction/nextcloud-vue]
    B --> C[Components]
    B --> D[useObjectStore]
    B --> E[Composables]
    B --> F[Schema Utils]
    D -->|CRUD| G[OpenRegister REST API]
    C -->|styles via| H[Nextcloud CSS Variables]
    C -->|NL Design tokens| I[--nldesign-* CSS vars]

双相对话框模式

所有对话框都遵循可预测的确认/结果流,使母组件控制API调用:

// 1. Dialog emits @confirm with user input
// 2. Parent handles API call
// 3. Parent calls dialog.setResult(response) via $ref
// 4. Dialog shows toast and auto-closes

Schema- Driven 组件

通过一个 JSON Schema 并获得一个零配置的完整工作表或表格:

<CnIndexPage
  :schema="caseTypeSchema"
  :objects="caseTypes"
  @save="onSave"
  @delete="onDelete"
/>

安装

npm install @conduction/nextcloud-vue

与组件导入一起导入 CSS :

import '@conduction/nextcloud-vue/dist/nextcloud-vue.css'
import { CnIndexPage, useObjectStore } from '@conduction/nextcloud-vue'

Markdown sanitization (CnRoadmap 项目/ CnSuggest Feature Modal) 互联网档案馆的存檔,存档日期2013-12-21

特性和路线图组件家族( E)CnRoadmapItem, (中文(简体) ), CnSuggestFeatureModal)使来自 GitHub 发行机构和用户输入的不可信标记降低。 两个部件都通过标记 marked 然后通过 DOMPurify 使用导出 SAFE_MARKDOWN_DOMPURIFY_CONFIG 常数 - <script>, (中文(简体) ), on* 处理者, javascript: URL( URL) , (中文), <iframe>,以及 <style> 被剥去之前 v-html。 。 。 .

两者 marked 财务报告和审定财务报表 dompurify 将在此库中宣布 dependencies 和船在消费者的捆绑。 已经给不同版本打针的App可以添加自己的限制——严格的配置是最重要的,而不是精确的依赖性版本. 最小兼容版本记录在 package.json (单位:千美元)marked ^15, (中文(简体) ), dompurify ^3) (中文(简体) ).

Webpack Alias(用于本地开发)

直接针对源开发时,在 webpack.config.js 防止双重错误:

config.resolve.alias = {
  '@conduction/nextcloud-vue': path.resolve(__dirname, '../nextcloud-vue/src'),
  'vue': path.resolve(__dirname, 'node_modules/vue'),
  'pinia': path.resolve(__dirname, 'node_modules/pinia'),
  '@nextcloud/vue': path.resolve(__dirname, 'node_modules/@nextcloud/vue'),
}

重要内容: 没有这些别名,网络包装可能解决 从图书馆的Vue和Pinia node_modules,生成双重实例来打破反应和状态管理.

目录结构

nextcloud-vue/
├── src/
│   ├── index.js              # Main barrel export
│   ├── components/           # 30+ Vue 2 SFCs (one directory each)
│   │   ├── CnIndexPage/
│   │   ├── CnDataTable/
│   │   ├── CnFormDialog/
│   │   └── ...
│   ├── store/
│   │   ├── index.js          # useObjectStore, createObjectStore
│   │   └── plugins/          # auditTrails, relations, files, lifecycle, registerMapping
│   ├── composables/          # useListView, useDetailView, useSubResource
│   ├── utils/                # schema, headers, errors, formatting
│   ├── css/                  # Modular CSS (one file per component group)
│   └── types/index.d.ts      # TypeScript definitions
├── tests/                    # Jest test suite
├── dist/                     # Built output (ESM, CJS, CSS)
├── rollup.config.js          # Build configuration
└── package.json

发展

npm install
npm run dev       # Watch mode (Rollup)
npm run build     # Production build
npm test          # Jest tests
npm run lint      # ESLint
npm run stylelint # Stylelint

技术堆栈

层技术
框架Vue 2.7 (备选方案 API)
状态皮尼亚 2
构建卷起 3
支助科后CSS(取自去除/后Cloud-vue.cs)
测试Jest 29, @vue/test-utils 1 (英语)
质量ESLint (@nextcloud/eslint-config), 斯泰林特
释放语义发布(自动 npm 发布)

图标设置许可( L)

CnIconPicker 能够显示图标 材料设计图标( MDI), (中文(简体) ), 字体赞美,则 OpenGemeenten 打开引擎 政府图标集. 此库没有图标包 . 它只运送 能力 - 拾取器UI加 fromMdiJs 编号 : fromFontAwesome 编号 : fromOpenGemeenten 目录适配器。 您带来了图标数据 :

import { fromFontAwesome, fromOpenGemeenten } from '@conduction/nextcloud-vue'
import { fas } from '@fortawesome/free-solid-svg-icons'

<CnIconPicker
  v-model="icon"
  searchable
  :sources="['mdi', 'fontawesome', 'opengemeenten']"
  :catalogues="{
    fontawesome: fromFontAwesome({ fas }),
    opengemeenten: fromOpenGemeenten(myOpenGemeentenIcons),
  }" />

您负责确认您被许可使用 FontAwesome 和 OpenGemeenten 软件包 . 通过适配器传递一包没有权利——这个库只提供自己获得和许可的图标制作能力. 归属于各项目.

许可证

欧盟PL-1.2

作者数

由 传导 ——面向荷兰政府和公共部门组织的开源软件.

版本与发布记录

@conduction/nextcloud-vue 共发布 690 个版本,首次发布于 2026/02/27;过去 12 个月发布了 690 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.180.0latest2026/11/073 天前
2.56.0-beta.76beta2026/11/073 天前
2.179.02026/11/064 天前
2.56.0-beta.752026/11/064 天前
2.56.0-beta.742026/11/055 天前
2.178.02026/11/055 天前

其他发布通道:vue3 → 2.55.1,beta → 2.56.0-beta.76。

关于 @conduction/nextcloud-vue 的常见问题

@conduction/nextcloud-vue 是什么?

共享 Vue 组件库用于操作 Nextcloud apps —— 以更高级别组件补充@nextcloud/vue, OpenRegister 集成和 NL 设计系统支持

如何安装 @conduction/nextcloud-vue?

在项目目录运行 npm install @conduction/nextcloud-vue,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:vue(^3.5.0)、dexie(^4.0.8)、pinia(^2.0.0 || ^3.0.0 || ^4.0.0)、marked(>=12 <19)、dompurify(^3.0.0)、gridstack(^12.0.0 || ^13.0.0)、@vueuse/core(^11.0.0 || ^14.0.0)、@nextcloud/vue(^9.0.0)、@nextcloud/auth(^2.0.0 || ^3.0.0)、@nextcloud/l10n(^2.0.0 || ^3.0.0)、@nextcloud/axios(^2.0.0)、@nextcloud/router(^2.0.0 || ^3.0.0)、@nextcloud/capabilities(^1.2.1)、@nextcloud/initial-state(^2.2.0 || ^3.0.0)、vue-material-design-icons(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 manifest-migrate,可以用 npx manifest-migrate 直接运行。

@conduction/nextcloud-vue 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@conduction/nextcloud-vue 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@conduction/nextcloud-vue 可以商用吗?

@conduction/nextcloud-vue 使用 EUPL-1.2 许可。声明的许可为 EUPL-1.2,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@conduction/nextcloud-vue 的下载量有多少?

根据 npm 官方下载统计,@conduction/nextcloud-vue 在 2026/10/11 – 2026/11/09 这 30 天内被下载 100,070 次,日均约 3,336 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@conduction/nextcloud-vue 还在维护吗?

最新版本 2.180.0 发布于 2026/11/07(3 天前);至今共发布 690 个版本,其中过去 12 个月发布了 690 个;首次发布于 2026/02/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。