@composy/approval-vue

Vue 2.7 and Vue 3 wrapper components for @composy/approval-core
Install
npm install @composy/approval-vue
Latest Version:0.0.2
Vue:3
Older releases:2
License:MIT
Last Updated:Oct 12, 2026
Links: npm
Maintainer: swimly

@composy/approval-vue

@composy/approval-core 的 Vue 适配层:把审批面板、意见、时间线、状态流转、会签/加签/转办等核心组件包装为 Vue 组件,并提供组合式函数与插件注册。基于 vue-demi,同时兼容 Vue 2.7 与 Vue 3。

✨ 核心能力

  • 全套组件:ApprovalPanel、ApprovalOpinionPanel、ApprovalTimeline、ApprovalStatusFlow、ApprovalCountersignPanel、ApprovalTransferPanel、ApprovalExtraSignPanel、ApprovalUrgeButton、ApprovalStatistics、ApprovalDocumentCard
  • 事件透传:ApprovalPanel 暴露 submit、urge、transfer、delegate、extraSign、countersignVote、viewDetail、cancel 等事件
  • 组合式 API:useApproval() 命令式挂载审批面板,组件卸载时自动销毁实例
  • 插件注册:ApprovalPlugin 或 createApprovalPlugin(options) 全局安装
  • 类型完备:重导出 @composy/approval-core 的全部关键类型(ApprovalAction、PersonInfo、ApprovalNode 等)
  • 跨文档与快照:ApprovalPanel 支持 ariaLabel;Core 会从挂载根节点推导所属文档,面板实例可通过 getSnapshot() 获取只读语义上的状态快照

📦 安装

pnpm add @composy/approval-core @composy/approval-vue vue

# 可选:接入设计 token 桥接
pnpm add @composy/color-core @composy/size-core

peer 依赖:vue ^2.7.0 || ^3.5.32;@composy/color-core / @composy/size-core 为可选 peer。

🚀 快速开始

<script setup lang="ts">
import type { ApprovalAction, ExtraSignType, PersonInfo } from '@composy/approval-vue'
import { ApprovalPanel } from '@composy/approval-vue'
import { ref } from 'vue'

const currentNode = ref({
  id: 'finance',
  name: '财务审核',
  status: 'processing' as const,
})

const candidates = ref<PersonInfo[]>([{ id: 'u-1', name: 'Ada', department: '财务部' }])

function handleSubmit(action: ApprovalAction, opinion: string) {
  console.info(action, opinion)
}

function handleTransfer(person: PersonInfo, reason: string) {
  console.info(person, reason)
}

function handleExtraSign(type: ExtraSignType, persons: PersonInfo[], reason: string) {
  console.info(type, persons, reason)
}

function handleUrge() {
  console.info('urge')
}
</script>

<template>
  <ApprovalPanel
    aria-label="财务审批面板"
    :actions="['approve', 'reject', 'transfer', 'extra-sign-after', 'urge']"
    :current-node="currentNode"
    :candidates="candidates"
    @submit="handleSubmit"
    @transfer="handleTransfer"
    @extra-sign="handleExtraSign"
    @urge="handleUrge"
  />
</template>

命令式挂载可用组合式函数:

import { useApproval } from '@composy/approval-vue'

const { instance, error, create, update, setTheme } = useApproval()

// 在拿到容器元素后创建面板(组件卸载时自动 destroy)
create(containerEl, { actions: ['approve', 'reject'] })
if (!instance.value) console.error(error.value)
update({ records: [] })
setTheme('dark')

📖 API 参考

导出 类型 说明
ApprovalPanel 等 10 个组件 Vue 组件 props 对应 @composy/approval-core 各组件 Config 字段(如 actions / currentNode / candidates / records / nodes),事件见上文
useApproval() 组合式函数 返回 { instance, error, create, update, setTheme, destroy };create(container, config?) 创建面板,卸载时自动销毁
ApprovalPlugin 插件对象 app.use(ApprovalPlugin, options?) 全局注册
createApprovalPlugin(options?) 工厂 返回预配置的插件,适合需要自定义选项时使用
VERSION 常量 当前版本号

子路径入口:@composy/approval-vue/components(含按组件的 ./components/*)、./composables、./plugins 均可单独导入。

🔨 构建产物与验证

使用 @composy/builder 输出 es/、esm/、lib/ 四产物与 UMD dist/index.min.js。

pnpm type-check       # vue-tsc,检查 Vue/ESM 配置
pnpm type-check:cjs   # vue-tsc,检查 Vue/CJS 配置
pnpm build            # Builder + Vue 输出同步 + 产物契约检查
pnpm test:run     # 单元测试
pnpm lint:check   # ESLint 严格检查

🔗 相关链接

  • @composy/approval-core — 框架无关核心与完整 Config 类型
  • workspace 总览 — 子模块结构与根脚本

Related Packages

@lc-bmp/approval-flow

审批流视图组件库 - 审批流程时间线、审批操作弹窗,支持跨模块复用

1,709
@stsdti/approvable-vue

Vue 3 components for laravel-approvable: approval trails, step actions, comments...

1,016
zj-plugin-ai-assistant

智能客服 / 智能体客户端 Vue 2 插件库。 > 通过 npm 包(`zj-plugin-intelligent`)...

805
@composy/flowchart-vue

Vue 3 adapter for OA approval flowcharts: components, composables, and plugins.

0
open_websdk_vue3

A Vue 3 component library for OA approval workflow SDK

1,869

Version History

Version Released Vue License
0.0.2 3.5.32 MIT
0.0.1 ^2.7.0 || ^3.5.32 MIT