Skip to content

快速上手

安装 epic-designer

bash
npm i epic-designer

epic-designer 目标是支持多 UI 兼容,目前支持以下 UI

  • element-plus
  • ant-design-vue
  • naive-ui

选择 UI 组件库

选择 element-plus

安装ui框架依赖

bash
npm i element-plus

main.ts 或者 main.js 引入注册组件

javascript
// 引入epic-designer样式
import "epic-designer/dist/style.css";

// 引入Element plus样式
import "element-plus/dist/index.css";

import { setupElementPlus } from "epic-designer/dist/ui/elementPlus";
// 注册Element UI
setupElementPlus();

选择 ant-design-vue v4.x版本(antd推荐使用v4.x版本)

安装ui框架依赖

bash
npm i ant-design-vue

main.ts 或者 main.js 引入注册组件

javascript
// 引入epic-designer样式
import "epic-designer/dist/style.css";

// 引入antd UI 重置样式
import "ant-design-vue/dist/reset.css";

import { setupAntd } from "epic-designer/dist/ui/antd";
// 使用Antd UI
setupAntd();

ant-design-vue v3.x版本需要改成下面方式

为了减少维护精力,后续开发测试主要以 v4.x版本,不再对v3.x版本进行测试,建议升级ant-design-vue到v4.x最新版本

javascript
// 引入epic-designer样式
import "epic-designer/dist/style.css";

// 引入antd UI样式
import "ant-design-vue/dist/antd.css";

import { setupAntd } from "epic-designer/dist/ui/antd";
// 使用Antd UI
setupAntd();

选择 naive-ui

安装ui框架依赖

bash
npm i -D naive-ui

main.ts 或者 main.js 引入注册组件

javascript
// 引入epic-designer样式
import "epic-designer/dist/style.css";

import { setupNaiveUi } from "epic-designer/dist/ui/naiveUi";
// 注册Naive Ui
setupNaiveUi();

EDesigner(设计器) 基础用法

vue
<template>
  <div class="h-full">
    <EDesigner />
  </div>
</template>
<script setup lang="ts">
import { EDesigner } from "epic-designer";
</script>
<style>
.h-full {
  height: 100vh;
}
</style>

EBuilder(生成器) 基础用法

vue
<template>
  <div>
    <EBuilder :pageSchema="pageSchema" />
  </div>
</template>
<script setup>
import { EBuilder } from "epic-designer";

const pageSchema = {
  schemas: [
    {
      type: "page",
      id: "root",
      children: [
        {
          label: "输入框",
          type: "input",
          field: "input",
          icon: "epic-icon-write",
          input: true,
          componentProps: {
            defaultValue: "",
            placeholder: "请输入",
            size: "default",
            type: "text",
          },
          id: "gbm1xhrrj5s00",
        },
      ],
      componentProps: {
        style: {
          padding: "16px",
        },
      },
    },
  ],
};
</script>

monaco-editor资源加载问题

vite项目安装使用vite-plugin-monaco-editor插件加载monaco-editor依赖资源

bash
npm i -D vite-plugin-monaco-editor

在vite.config.ts中添加

typescript
import monacoEditorPlugin from 'vite-plugin-monaco-editor'
 
export default defineConfig({
plugins: [
    vue(), 
    (monacoEditorPlugin as any).default({
      languageWorkers:['editorWorkerService', 'json']
    })
  ]
});

如果因为插件依赖版本问题,上面写法不支持时可以改成下面这种方式

typescript
import monacoEditorPlugin from 'vite-plugin-monaco-editor'
 
export default defineConfig({
plugins: [
    vue(), 
    monacoEditorPlugin({
      languageWorkers:['editorWorkerService', 'json']
    })
  ]
});