# magic-page-designer

#### 介绍

magic-page-designer 是一个基于 vue 的在线页面快速开发平台，主要把所有的 vue 代码都改为在线配置，最终获得一个 json 格式的页面，你可以把它存放到服务器的任何地方：数据库、静态文件、redis 等。最方便的是可以在线修改页面，再也不用担心生产出问题了，还得打开 IDE，修改测试打包，直接在线编码，所见即所得。还可以配合 [magic-api](https://gitee.com/ssssssss-team/magic-api) 使用，完全抛弃 IDE，随时随地 code with me。

#### 特性

- 使用`vue2`，并且轻度依赖`ant-design-vue`(按需加载)，主要用于一些自用的配置组件，并不是强依赖，所以不用在意自己的框架是否引入`ant`
- 无需重复开发`vue`文件，只需要将注册到项目的`component`配置到左侧工具栏，就可以在线拖拽生成页面了
- 提供在线拖拽编辑页面，可即时修改页面不足之处，再也不用 `dev、build` 啦~
- 只需要添加到自己的项目中，再写一个自定义组件的`json`配置，就可以在页面上配置
- 没有任何限制，完全基于`component`自定义组件原理，支持属性、样式、事件配置，只要 vue 文件能写得出，那就能在平台上使用，而且写法完全一样
- 属性、双向绑定、事件等表达式写法，完全基于`js`和`vue`写法实现，无需额外的学习成本

#### 安装教程

- `npm`命令(vue2)：`npm i magic-page-designer`
- `npm`命令(vue3)：`npm i magic-page-designer@next`
- `yarn`命令(vue2)：`yarn add magic-page-designer`
- `yarn`命令(vue3)：`yarn add magic-page-designer@next`

#### 使用说明

1.  注册组件

```js
import Vue from 'vue'
import App from './App.vue'
import MagicPageDesigner from 'magic-page-designer'
// 最后引入自定义css，为了覆盖其它样式
import 'magic-page-designer/dist/magic-page-designer.css'

Vue.config.productionTip = false

Vue.use(MagicPageDesigner)
new Vue({
  render: (h) => h(App)
}).$mount('#app')
```

2.  使用组件

```vue
<template>
  <magic-page-designer
    :mpdPageConfig.sync="mpdPageConfig"
    :mpdPageValue.sync="mpdPageValue"
    :selectPageNodeDom.sync="selectPageNodeDom"
    :editorMode="editorMode"
  ></magic-page-designer>
</template>

<script>
export default {
  data() {
    return {
      // 需要渲染的页面json数据，必填
      mpdPageConfig: {},
      // 当前页面所存储的值
      mpdPageValue: {},
      // 编辑模式下选中的dom，非必填
      selectPageNodeDom: {},
      // 是否编辑模式，默认false
      editorMode: true
    }
  }
}
</script>
```

3.  注册组件库，以便拖拽组件使用

```js
import { addLibrary } from 'magic-page-designer'
addLibrary({
  id: 'text',
  title: '文本',
  list: [
    {
      id: 'span',
      title: 'span',
      mpdConfig: {
        text: '在此处修改span标签内容'
      },
      ext: {
        icon: 'mpd-icon-text-border'
      }
    }
  ]
})
```

4. 更多详细说明请查看文档[magic-page-designer-doc](https://ssssssss-team.gitee.io/magic-page-designer-doc/)
