# ISS WEB-DESIGNER CODE-GENERATOR
# 浪潮软件股份有限公司
# 天工开务 网页设计器 出码插件
## 出码
所谓出码，即将低代码编排出的 schema 进行解析并转换成最终可执行的代码的过程。
## 项目说明
```sh
本项目为浪潮软件股份有限公司，天工开务-网页设计器的出码插件，本插件提供vue3的出码方案，同时具备网页端出码和服务端出码的能力。
```
## 使用方法

### 1) 网页出码，通过注册到[网页设计器](http://git.inspur.com/iss-lcdp-web/web/web-designer-demo)中体验

1. 安装依赖：`npm install --save @iss-library-web-designer-plugins/code-generator`
2. 注册插件:

```ts
import { plugins } from '@alilc/lowcode-engine';
import CodeGenPlugin from '@iss-library-web-designer-plugins/code-generator';

// 在你的初始化函数中：
await plugins.register(CodeGenPlugin);

// 如果您不希望自动加上出码按钮，则可以这样注册
await plugins.register(CodeGenPlugin, { disableCodeGenActionBtn: true });
```
### 2) 服务端出码，直接使用提供的出码 API 体验
1. 安装依赖: `npm install --save @iss-library-web-designer-plugins/code-generator`
2. 引入代码生成器:

```js
import CodeGenerator,{ publishers } from '@iss-library-web-designer-plugins/code-generator/generator';
```
3. 创建项目构建器:

```js
const projectBuilder = CodeGenerator();
```
4. 生成代码

```js
const project = await projectBuilder.generateProject(
  schema, // 编排搭建出来的 schema
);
```
5. 将生成的代码写入到磁盘中(也可以生成一个 zip 包)

```js
// 写入磁盘
await publishers.disk().publish({
  project, // 上一步生成的 project
  outputPath: '/path/to/your/output/dir', // 输出目录
  projectSlug: 'your-project-slug', // 项目标识
});

// 写入到 zip 包
await publishers.zip().publish({
  project, // 上一步生成的 project
  outputPath: '/path/to/your/output/dir', // 输出目录
  projectSlug: 'your-project-slug', // 项目标识 -- 对应生成 your-project-slug.zip 文件
});
```
## 快速开发

### 1) 启动项目
```bash
$ git clone http://git.inspur.com/iss-lcdp-web/web/iss-library-web-designer-plugins/code-generator.git
$ cd code-generator
$ npm install
$ npm start
```
## 本地调试运行 Demo

```sh
> npm run generator
```
