Skip to content

Library-3.x 组件库


基于 Ant Design Vue 部分组件的封装和扩展,提供更适配桌面端的高阶组件

  • v4.x 版本 => 适配支持 Ant Design Vue 4.x
  • v3.x 版本 => 适配支持 Ant Design Vue 3.x

如何安装?

=> 适配支持 Ant Design Vue 4.x
bash
pnpm add @antd-templater/library-3.x@^4.3.20
pnpm add @antd-templater/eslint-config@^1.0.7
=> 适配支持 Ant Design Vue 3.x
bash
pnpm add @antd-templater/library-3.x@^3.0.2

哪些组件?

组件名称描述
SIcon图标组件支持 Props 中 type 字段,动态渲染 @ant-design/icons-vue 中图标,也支持 iconfont 配置详情 ↗
SIconSelect图标选择器图标 Selection 下拉框,默认使用 @ant-design/icons-vue 中图标作为选项,也支持自定义选项详情 ↗
SEditCell单元格编辑框表格 Cell 编辑框,支持 auto-complete、date-picker、input、select、textarea、tree-selec、s-icon-select 等组件详情 ↗
SEllipsis文字省略提示基于 ATooltip 的封装,支持实时计算内容是否超出父元素边界,是否需要文字省略和 Tooltip 提示详情 ↗
STable表格组件不是 ATable 的封装,支持 列拉伸/拖拽/属性配置,单元格合并/卡槽定义,Checkbox/Radio、内置分页等功能详情 ↗
SForm表单组件支持 Groups 配置渲染表单内容,也支持卡槽自定义组件。(Group: ARate、ARadio、AInput、ASwitch ...)详情 ↗
STree树形组件借助 ATree 的 checkStrictly="true" 特性,重新实现了 勾选/选中/展开/异步加载 等逻辑,并扩展了其 API详情 ↗

如何使用?

全局注册使用
typescript
import App from "./App.vue"
import AntdComponentPlugin from "@antd-templater/library-3.x"

createApp(App)
  .use(AntdComponentPlugin)
  .mount("#app")
typescript
import { defineConfig } from 'vitest/config'
import { AntdLibraryResolver } from '@antd-templater/library-3.x/resolver'
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig(({ mode }) => {
  return {
    plugins: [
      AutoImport({
        resolvers: [
          AntdLibraryResolver(), 
        ],
        eslintrc: {
          enabled: true,
          filepath: './.eslintrc-auto-import.json',
          globalsPropValue: true,
        },
        dts: true,
      }),
    ],
  }
})
typescript
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "Bundler",
    "types": [
      "@antd-templater/library-3.x/globals", 
      "vite/client"
    ]
  }
}
typescript
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'
import stylistic from '@stylistic/eslint-plugin'
import templater from '@antd-templater/eslint-config'

const flatArray = options => {
  return !Array.isArray(options)
    ? [options]
    : options
}

export default tseslint.config(
  {
    extends: [
      ...flatArray(eslint.configs.recommended),
      ...flatArray(tseslint.configs.recommended),
      ...flatArray(stylistic.configs['recommended-flat']),
      ...flatArray(pluginVue.configs['flat/recommended']),
      ...flatArray(templater.configs['flat/recommended']), 
    ],
  },
)
vue
<template>
  <section class="form-container">
    <SIcon type="StepBackwardOutlined">
  </section>
</template>

<script setup lang="ts">
defineOptions({
  name: "UsingSIcon",
  inheritAttrs: false
})
</script>
局部注册使用
vue
<template>
  <section class="form-container">
    <SIcon type="StepBackwardOutlined" />
  </section>
</template>

<script setup lang="ts">
import { SIcon } from "@antd-templater/library-3.x"

defineOptions({
  name: "UsingSIcon",
  inheritAttrs: false
})
</script>

基于 MIT 许可发布