Skip to content

components

QXS-BNS 提供了丰富的 Vue 3 组件库,涵盖桌面端和移动端应用场景。

📦 快速安装

bash
# 安装组件库
pnpm add @qxs-bns/components

🎯 组件分类

桌面端组件

基于 Element Plus 增强的桌面端组件,适用于管理后台、数据展示等场景:

组件说明依赖
QxsDataChart数据图表组件Element Plus, ECharts
QxsFileUpload文件上传组件Element Plus
QxsImageUpload图片上传组件Element Plus
QxsTinyMceEditor富文本编辑器TinyMCE
QxsSubjectList学科列表组件Element Plus

移动端组件

轻量级移动端组件,不依赖 Element Plus,适用于 H5 页面、移动端应用:

组件说明依赖
QxsFixedActionBar固定操作栏
QxsPhotoCropTool图片裁剪工具

通用组件

适用于桌面端和移动端的通用组件:

组件说明依赖
QxsIcon图标组件
vue
<template>
  <div class="mobile-page">
    <!-- 固定操作栏 -->
    <QxsFixedActionBar :actions="actions" />

    <!-- 图片裁剪工具 -->
    <QxsPhotoCropTool
      :src="imageSrc"
      @crop="handleCrop"
    />
  </div>
</template>

<script setup lang="ts">
import { QxsFixedActionBar, QxsPhotoCropTool } from '@qxs-bns/components'

const actions = [
  { text: '保存', type: 'primary', onClick: () => save() }
]

const handleCrop = (result) => {
  console.log('裁剪结果:', result)
}
</script>

🖥️ 桌面端使用

桌面端组件基于 Element Plus,提供丰富的功能:

vue
<template>
  <div class="desktop-page">
    <!-- 数据图表 -->
    <QxsDataChart
      :data="chartData"
      type="line"
      :options="chartOptions"
    />

    <!-- 文件上传 -->
    <QxsFileUpload
      :multiple="true"
      :accept="'.jpg,.png,.pdf'"
      @success="handleUploadSuccess"
    />

    <!-- 富文本编辑器 -->
    <QxsTinyMceEditor
      v-model="content"
      :config="editorConfig"
    />
  </div>
</template>

<script setup lang="ts">
import {
  QxsDataChart,
  QxsFileUpload,
  QxsTinyMceEditor
} from '@qxs-bns/components'

const chartData = ref([])
const content = ref('')
const editorConfig = {
  height: 400,
  plugins: 'link image code'
}
</script>

🎯 可用组件列表

移动端友好组件

组件名说明文档
QxsFixedActionBar固定操作栏
QxsPhotoCropTool图片裁剪工具

桌面端组件

组件名说明文档
QxsDataChart数据图表
QxsFileUpload文件上传
QxsImageUpload图片上传
QxsTinyMceEditor富文本编辑器
QxsSubjectList主题列表
QxsAnswerContainer答案容器

工具库

🛠️ 工具函数 (Utils)

工具名说明文档
ArgoLog日志工具
Storage存储工具
DateTransfer日期转换
Device设备检测
FileOperations文件操作
OssUploaderOSS 上传
UseApiAPI 请求
Watermark水印工具

🪝 Hooks

Hook 名说明文档
usePagination分页管理
useRequest请求管理🚧
useForm表单管理🚧
useTable表格管理🚧

📋 指令 (Directives)

指令名说明文档
v-copy复制指令
v-debounce防抖指令
v-lazy-load懒加载指令
v-rich-overflow富文本溢出
v-safe-html安全 HTML
v-slide-in滑入动画
v-waves波纹效果

🎨 图标 (Icons)

组件/类型说明文档
QxsIcon图标组件
基础图标基础图标集
图标展示所有图标预览
开发说明图标开发指南

使用方式

按需引入(推荐)

typescript
// 桌面端组件(依赖 Element Plus)
import { QxsDataChart, QxsFileUpload } from '@qxs-bns/components'

// 移动端组件(不依赖 Element Plus)
import { QxsFixedActionBar, QxsPhotoCropTool } from '@qxs-bns/components'

// 工具函数
import { ArgoLog, Storage } from '@qxs-bns/utils'

// Hooks
import { usePagination } from '@qxs-bns/hooks'

// 指令
import { vDebounce, vWaves } from '@qxs-bns/directives'

移动端专用引入

typescript
// 只引入移动端友好的组件
import {
  QxsFixedActionBar,
  QxsPhotoCropTool,
} from '@qxs-bns/components'

// 样式
import '@qxs-bns/components/theme-chalk/src/fixed-action-bar.scss'
import '@qxs-bns/components/theme-chalk/src/photo-crop-tool.scss'

依赖说明

核心依赖

  • Vue 3: 组件库基础框架
  • @vueuse/core: Vue 工具库

可选依赖

  • Element Plus: 桌面端 UI 组件库
  • ECharts: 图表库
  • TinyMCE: 富文本编辑器
  • Lodash: 工具函数库

智能依赖管理

QXS-BNS 使用智能依赖管理系统,只有真正需要的依赖才会被加载:

  • 移动端组件不会加载 Element Plus
  • 图表组件才会加载 ECharts
  • 编辑器组件才会加载 TinyMCE

详见 依赖管理 文档。

浏览器支持

浏览器版本
Chrome>= 64
Firefox>= 63
Safari>= 12
Edge>= 79
移动端 Safari>= 12
移动端 Chrome>= 64

下一步

Released under the MIT License.