xenondm

XenonDM · Vue3 组件库(Xe- 通用组件 / Dm- 业务组件)
364
Install
npm install xenondm
Latest Version:0.2.0
Vue:3
License:MIT
Last Updated:Sep 17, 2026
Links: npm
Maintainer: xenondm

xenondm

独立 Vue3 组件库(Xe- 通用 / Dm- 业务)。

npm i xenondm

快速开始

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import XenonDM, { XeEcharts, XeEditor, XeFile } from 'xenondm'
import 'xenondm/style.css'

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

按需引入:

import { XeEditor } from 'xenondm/xe-editor'
import { XeFile, createMockTransport } from 'xenondm/xe-file'
import { XeEcharts } from 'xenondm/xe-echarts'

组件

XeEditor

type: json | code | rich(动态 import,互不影响)

<XeEditor v-model="code" type="code" language="js" style="height: 360px" />

另导出(子路径,避免打进主包):

import { XeCodeEditor, XeEditorLite } from 'xenondm/xe-editor'

XeFile(0.2.0 新增)

上传 / 列表 / 预览一体。配置对象化;外观用 class + slot。

<script setup lang="ts">
import { XeFile, createRequestTransport } from 'xenondm/xe-file'

const transport = createRequestTransport({
  uploadUrl: '/api/v1/files/upload',
  downloadUrl: id => `/api/v1/files/${id}`,
})
</script>

<template>
  <XeFile
    class="my-file"
    :transport="transport"
    :rules="{ accept: ['image/*'], maxSize: 20 * 1024 * 1024, maxCount: 12 }"
    :layout="{ type: 'split', height: 480 }"
    :labels="{ upload: '上传', list: '列表' }"
  >
    <template #drag-area="{ dragging }">
      <div>{{ dragging ? '松开上传' : '点击或拖拽' }}</div>
    </template>
  </XeFile>
</template>
Prop 说明
transport 必填
rules accept / maxSize / maxCount
upload autoUpload / concurrency / disabled
layout type / height / gap / uploadWidth
labels 文案
behavior selectable / enablePreview / autoDownload / autoRemove

也导出原子能力:XeFileUpload、XeFileList、XeFilePreview、useFileUpload、createMockTransport、downloadFileItem 等。

XeFile 依赖 element-plus、@element-plus/icons-vue;createRequestTransport 依赖 axios(均为 optional peer)。

XeEcharts / DmPanel

<XeEcharts :option="option" />
<DmPanel title="面板">内容</DmPanel>

Peer 依赖

包 何时需要
vue 始终
echarts XeEcharts
element-plus + @element-plus/icons-vue XeFile
axios createRequestTransport
json-editor-vue + vanilla-jsoneditor XeEditor type=json

Related Packages

markdown-to-jsx

A very fast and versatile markdown toolchain. AST, React, React Native, SolidJS,...

214,042,213 2,394
@scalar/use-toasts

display toasts in Vue

24,371,992 16,329
@scalar/use-codemirror

CodeMirror for Vue

21,770,238 16,329
@scalar/api-reference

Generate beautiful API references from OpenAPI documents

21,031,808 16,329
vaul-vue

Vaul Vue is an unstyled drawer component for Vue that can be used as a Dialog re...

19,162,483 497

Version History

Version Released Vue License
0.2.0 >=3.3.0 MIT
0.1.0 >=3.3.0 MIT