@bytenew/bn-bus-ui

中文文档
1.1.528发布于 2026/11/06ISCES Module近 30 天下载 3623

班牛业务组件库,集合版

中文使用文档
文档目录40 节
  1. 项目简介
  2. 技术栈
  3. 核心框架
  4. 构建工具
  5. 主要依赖
  6. 编译工具
  7. 安装与使用
  8. 安装
  9. 全局引入
  10. 按需引入
  11. 全局配置
  12. 组件列表
  13. 1. BnAddress - 地址选择器
  14. 2. BnSelect - 高级选择器
  15. 3. BnDrop - 下拉菜单选择器
  16. 4. BnCondition - 规则条件配置
  17. 5. BnAdvancedFilter - 高级筛选
  18. 6. BnSmartForm - 智能表单
  19. 7. BnDatePicker - 日期选择器
  20. 8. BnRelation - 级联选择器
  21. 9. BnCheck - 复选框
  22. 10. BnMenus - 菜单导航
  23. 11. BnColumnConfig - 字段配置
  24. 12. BnFunExpr - 函数表达式编辑器
  25. 13. BnOrderCard - 订单卡片
  26. 14. BnFileView - 文件预览
  27. 15. BnImportOrder - 批量导入
  28. 16. BnExportOrder - 数据导出
  29. 17. BnOrderShare - 工单分享
  30. 18. BnVirtPopover - 虚拟滚动 Popover
  31. 19. BnInpNum - 数字输入框
  32. 20. BnRadio - 单选框
  33. 21. BnWebLog - 接口日志
  34. 工具函数
  35. 开发说明
  36. 本地开发
  37. 项目结构
  38. 浏览器兼容性
  39. 版本信息
  40. 注意事项

BnBusUi - 班牛业务组件库

项目简介

BnBusUi 是班牛(ByteNew)业务组件库,为工单智能管理平台提供统一的 Vue 3 组件封装。本组件库基于 Element Plus 和 Vue 3 开发,提供了一套完整的业务组件解决方案。

技术栈

核心框架

  • Vue 3 (^3.0.0) - 渐进式 JavaScript 框架
  • Element Plus (^2.11.9) - 基于 Vue 3 的组件库

构建工具

  • Vite (^6.0.1) - 下一代前端构建工具
  • @vitejs/plugin-vue (^5.2.1) - Vite Vue 插件

主要依赖

  • axios (^1.7.9) - HTTP 客户端
  • lodash (^4.17.21) - JavaScript 实用工具库
  • sass (^1.83.0) - CSS 预处理器
  • vuedraggable (^4.1.0) - 拖拽组件
  • vxe-table (^4.17.38) - 高性能表格组件
  • @logicflow/core & @logicflow/extension (^1.1.20) - 流程图引擎
  • codemirror (^5.65.20) & codemirror-editor-vue3 (^2.8.0) - 代码编辑器

编译工具

  • @babel/core & @babel/preset-env - JavaScript 编译器
  • babel-plugin-component - 组件按需加载插件
  • core-js - JavaScript polyfill 库

安装与使用

安装

npm install @bytenew/bn-bus-ui

全局引入

import { createApp } from 'vue'
import App from './App.vue'
import BnBusUi from '@bytenew/bn-bus-ui'
import '@bytenew/bn-bus-ui/common.scss'

const app = createApp(App)
app.use(BnBusUi)
app.mount('#app')

按需引入

import { BnSelect, BnCondition, BnSmartForm } from '@bytenew/bn-bus-ui'

export default {
  components: {
    BnSelect,
    BnCondition,
    BnSmartForm
  }
}

全局配置

import { setGlobalConfig } from '@bytenew/bn-bus-ui'

// 设置 API 基础 URL
setGlobalConfig({
  apiBaseUrl: 'https://your-api-domain.com'
})

组件列表

1. BnAddress - 地址选择器

功能描述:省市区街道级联选择组件,支持异步加载地址数据。

Props 参数:

参数名类型默认值说明
modelValueArray-绑定值,地址数组
disabledBooleanfalse是否禁用
valueKeyString'id'选项值的键名
levelNumNumber4地址层级数量(1-4)
postFuncFunction-远程请求方法
postDataObject{}请求参数
pathUrlString''请求地址
wrapShowBooleanfalse是否整行展示

使用示例:

<template>
  <BnAddress 
    v-model="addressValue"
    :postFunc="httpRequest"
    pathUrl="/address/getAreaDataList"
    :levelNum="3"
  />
</template>

<script setup>
import { ref } from 'vue'
const addressValue = ref([])
</script>

2. BnSelect - 高级选择器

功能描述:增强版下拉选择组件,支持远程搜索、分页加载、多选全选等功能。

Props 参数:

参数名类型默认值说明
modelValueAny-绑定值
optionsArray[]选项列表
placeholderString'请选择'占位符
optionPropsObject{value:'id', label:'title'}选项结构配置
multipleBooleanfalse是否多选
collapseTagsBooleantrue多选时是否折叠展示
labelInValueBooleantrue是否返回完整对象
postFuncFunction-远程请求方法
pathUrlString''请求地址
isPageBooleantrue是否分页
checkedAllBooleantrue是否显示全选

使用示例:

<template>
  <BnSelect 
    v-model="selectedValue"
    :options="optionList"
    :postFunc="httpRequest"
    pathUrl="/api/select/options"
    multiple
    checkedAll
  />
</template>

3. BnDrop - 下拉菜单选择器

功能描述:自定义下拉选择组件,支持单选/多选、远程搜索、分页加载。

Props 参数:

参数名类型默认值说明
modelValueAny{}绑定值
optionsArray[]选项列表
placeholderString'请选择'占位符
multipleBooleanfalse是否多选
labelInValueBooleantrue是否返回对象
canUncheckBooleantrue单选是否可取消
widthNumber200下拉框宽度
borderBooleanfalse是否显示边框
clearableBooleanfalse是否可清空

使用示例:

<template>
  <BnDrop 
    v-model="dropValue"
    :options="menuOptions"
    placeholder="请选择菜单"
    @change="handleChange"
  />
</template>

4. BnCondition - 规则条件配置

功能描述:规则引擎条件配置组件,支持选择字段、设置计算条件、配置值类型。

Props 参数:

参数名类型默认值说明
modelValueObject-绑定值
columnListArray[]可选字段列表
columnDataObject-当前字段完整数据
allowSelectColumnBooleanfalse是否允许选择字段
allowDelBooleantrue是否允许删除
allowValueTypeBooleantrue是否显示值类型选择
searchTypesObject{}自定义计算条件
valueTypesObject{}自定义值类型
optionPropsObject见代码字段映射配置
postFuncFunction-请求方法

使用示例:

<template>
  <BnCondition 
    v-model="ruleValue"
    :columnList="columns"
    allowSelectColumn
    allowDel
    @change="handleChange"
    @del="handleDelete"
  />
</template>

5. BnAdvancedFilter - 高级筛选

功能描述:高级筛选条件配置组件,是 BnCondition 的简化版,用于列表筛选场景。

Props 参数:

参数名类型默认值说明
modelValueObject-绑定值
columnListArray[]可选字段列表
allowSelectColumnBooleanfalse是否允许选择字段
allowDelBooleantrue是否允许删除
searchTypesObject{}自定义计算条件
optionPropsObject见代码字段映射配置
postFuncFunction-请求方法

6. BnSmartForm - 智能表单

功能描述:动态表单渲染组件,根据字段配置自动渲染各类表单组件,支持联动、校验、数据回填等高级功能。

Props 参数:

参数名类型默认值说明
idString/Number-表单ID(编辑时使用)
componentsArray-组件列表配置
editTypeString-编辑类型:新建/编辑/复制
postFuncFunction-请求方法
extendPostObject-扩展参数
extraInfoObject-扩展信息
dataBackObject-数据回填规则

方法:

方法名说明
getFormContent()获取表单内容
checkFormContent()校验表单
getHere(item)滚动到指定字段

使用示例:

<template>
  <BnSmartForm 
    ref="smartForm"
    :id="formId"
    :components="componentList"
    :postFunc="httpRequest"
    :extendPost="{appId: 'xxx', tableCode: 'xxx'}"
    @change="handleChange"
  />
  <el-button @click="saveForm">保存</el-button>
</template>

<script setup>
import { ref } from 'vue'
const smartForm = ref(null)
const formId = ref('')
const componentList = ref([])

const saveForm = () => {
  const check = smartForm.value.checkFormContent()
  if (check.checked) {
    const content = smartForm.value.getFormContent()
    // 提交表单数据
  }
}
</script>

7. BnDatePicker - 日期选择器

功能描述:增强版日期选择组件,支持日期范围、日期时间、自定义格式。

Props 参数:

参数名类型默认值说明
typeString'daterange'选择器类型
modelValueAny-绑定值
startKeyString'start'开始时间键名
endKeyString'end'结束时间键名
dataFormatString-日期格式
disabledBooleanfalse是否禁用
clearableBooleantrue是否可清空
placeholderString'选择日期'占位符
rangeSeparatorString'-'范围分隔符

使用示例:

<template>
  <BnDatePicker 
    v-model="dateRange"
    type="daterange"
    dataFormat="YYYY-MM-DD"
  />
</template>

8. BnRelation - 级联选择器

功能描述:基于 Element Plus Cascader 封装的级联选择组件。

Props 参数:

参数名类型默认值说明
modelValueArray-绑定值
optionsArray[]选项数据
multipleBooleanfalse是否多选
checkStrictlyBooleanfalse是否可选择任意层级
collapseTagsBooleantrue是否折叠展示
showAllLevelsBooleantrue是否显示完整路径
separatorString'-'分隔符
placeholderString'请选择'占位符

9. BnCheck - 复选框

功能描述:自定义复选框组件,支持单选/多选模式、自定义选中值。

Props 参数:

参数名类型默认值说明
modelValueAny-绑定值
trueDataAny-选中时的值
falseDataAny-未选中时的值
labelString-显示文本
disabledBooleanfalse是否禁用
isCheckedFunction-自定义选中判断函数

使用示例:

<template>
  <BnCheck 
    v-model="checkValue"
    :trueData="'1'"
    :falseData="'0'"
    label="启用"
  />
</template>

10. BnMenus - 菜单导航

功能描述:侧边栏菜单组件,支持多级菜单。

Props 参数:

参数名类型默认值说明
titleString-Logo区域标题
menuListArray[]菜单列表
activeNavObject-当前选中菜单
activeKeyString'name'菜单标识键名
defaultOpensArray-默认展开的菜单

使用示例:

<template>
  <BnMenus 
    title="工单系统"
    :menuList="menus"
    v-model:activeNav="currentMenu"
  />
</template>

11. BnColumnConfig - 字段配置

功能描述:表单字段配置组件,用于配置字段的基本信息、默认值、权限等。

Props 参数:

参数名类型默认值说明
modelValueObject-字段配置对象
rowNumber1布局列数
hideFiledArray[]需要隐藏的配置项
columnListArray[]字段列表
disabledBooleanfalse是否禁用
postFuncFunction-请求方法
extendPostObject-扩展参数

12. BnFunExpr - 函数表达式编辑器

功能描述:函数表达式编辑组件,支持选择函数、字段,编写计算公式。

Props 参数:

参数名类型默认值说明
columnListArray[]字段列表
postFuncFunction-请求方法
idString/Number-函数规则ID
setToColumnObject-目标字段

方法:

方法名说明
saveRule()保存规则,返回配置对象

13. BnOrderCard - 订单卡片

功能描述:工单详情页订单信息展示组件,展示订单基本信息、商品列表、备注等。

Props 参数:

参数名类型默认值说明
postFuncFunction-请求方法
extendPostObject{}扩展参数

14. BnFileView - 文件预览

功能描述:附件预览组件,支持图片、视频、Office文档等多种文件类型的预览。

Props 参数:

参数名类型默认值说明
fileListArray[]文件列表
isMiniBooleanfalse是否最小化展示
isDelBooleanfalse是否允许删除
showSizeBooleanfalse是否显示文件大小
widthNumber/String22图片宽度
rowNumber1展示列数
noWarpBooleanfalse是否强制不换行

使用示例:

<template>
  <BnFileView 
    :fileList="attachments"
    :isDel="true"
    :width="60"
    @delFile="handleDelete"
  />
</template>

15. BnImportOrder - 批量导入

功能描述:工单批量导入组件,支持 Excel 文件上传导入。

Props 参数:

参数名类型默认值说明
postFuncFunction-请求方法
postDataObject{}请求参数,需包含 tableCode、appId、tableId;appId/tableId 用于查询导入模板下拉
pathUrlString'/biztable/io/import'导入接口地址

方法:

方法名说明
open()打开导入弹框,并获取版本限制和导入模板列表

16. BnExportOrder - 数据导出

功能描述:工单数据导出组件,支持选择导出字段、验证码校验。

Props 参数:

参数名类型默认值说明
postFuncFunction-请求方法
cacheKeyString-缓存键值
postDataObject{}请求参数
searchConditionObject{}筛选条件
watchComponentsArray[]可导出的字段列表

方法:

方法名说明
open(data)打开导出弹框

17. BnOrderShare - 工单分享

功能描述:工单分享链接生成组件,支持生成网页端/移动端分享链接,以及手淘、抖音、京东等平台的长/短链接。

Props 参数:

参数名类型默认值说明
tableIdString/Number-工单表 ID
appIdString/Number-应用 ID
tableCodeString-工单表 Code
companyIdString/Number-公司 ID
postFuncFunction-通用请求方法,用于获取分享配置及平台链接

方法:

方法名参数说明
open(taskId?)taskId:工单ID(可选,传入则为编辑分享模式)打开分享弹框

使用示例:

<template>
  <BnOrderShare
    ref="orderShare"
    :table-id="tableInfo.tableId"
    :app-id="tableInfo.appId"
    :table-code="tableInfo.tableCode"
    :post-func="post"
  />
  <el-button @click="openShare">分享</el-button>
</template>

<script setup>
import { ref } from 'vue'
const orderShare = ref(null)
const openShare = () => {
  orderShare.value.open()         // 创建分享
  // orderShare.value.open(taskId) // 编辑分享
}
</script>

18. BnVirtPopover - 虚拟滚动 Popover

功能描述:基于虚拟滚动的大数据量 Popover 组件。

Props 参数:

参数名类型默认值说明
widthNumber/String220弹窗宽度

19. BnInpNum - 数字输入框

功能描述:数字输入组件。


20. BnRadio - 单选框

功能描述:单选框组件。


21. BnWebLog - 接口日志

功能描述:接口请求日志记录与展示组件。


工具函数

组件库提供了以下工具函数:

import { 
  idsToTexts,           // ID数组转文本
  insertText,           // 向输入框插入文本
  tidyRuleComponents,   // 整理规则组件列表
  searchValueToJson,    // 筛选值转JSON
  getSearchComponents,  // 获取筛选组件列表
  getWatchComponents,   // 获取查看组件列表
  tidyComponents,       // 整理组件列表
  tidyShowSubDataFile,  // 整理子表单附件数据
  tidyJumpSearchData,   // 整理跳转筛选数据
  recordApiLog          // 记录API日志
} from '@bytenew/bn-bus-ui'

开发说明

本地开发

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建
npm run build

# 预览构建结果
npm run serve

项目结构

BnBusUi/
├── packages/           # 组件源码
│   ├── BnAddress/     # 地址选择器
│   ├── BnSelect/      # 高级选择器
│   ├── BnCondition/   # 规则条件
│   ├── BnSmartForm/   # 智能表单
│   └── ...
├── examples/          # 示例代码
├── install.js         # 组件库入口
├── vite.config.js     # Vite 配置
└── package.json       # 包配置

浏览器兼容性

  • Chrome >= 80
  • Firefox >= 75
  • Safari >= 13
  • Edge >= 80

版本信息

  • 当前版本:1.1.331
  • 作者:辛巴
  • 许可证:ISC

注意事项

  1. 本组件库基于 Vue 3 开发,不兼容 Vue 2
  2. 使用组件前请确保已引入 Element Plus
  3. 部分组件需要传入 postFunc 方法用于数据请求
  4. 组件库使用 Sass 预处理器,需要配置相应的构建工具支持

版本与发布记录

@bytenew/bn-bus-ui 共发布 128 个版本,首次发布于 2026/05/29;过去 12 个月发布了 128 个版本。

版本发布日期距今
1.1.528latest2026/11/062 天前
1.1.5272026/11/062 天前
1.1.5262026/11/062 天前
1.1.5252026/11/053 天前
1.1.5242026/11/053 天前
1.1.5232026/11/053 天前

关于 @bytenew/bn-bus-ui 的常见问题

@bytenew/bn-bus-ui 是什么?

班牛业务组件库,集合版

如何安装 @bytenew/bn-bus-ui?

在项目目录运行 npm install @bytenew/bn-bus-ui,或使用 pnpm add / yarn add / bun add。

@bytenew/bn-bus-ui 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bytenew__bn-bus-ui 是否存在。

@bytenew/bn-bus-ui 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bytenew/bn-bus-ui 可以商用吗?

@bytenew/bn-bus-ui 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bytenew/bn-bus-ui 的下载量有多少?

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

@bytenew/bn-bus-ui 还在维护吗?

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