1 | # 二次开发
|
2 |
|
3 | 二次开发用于商业用途需要购买商业授权,具体详情请查看 [商业授权说明](http://form.making.link/pricing)
|
4 |
|
5 | > 二次开发需要 vue 的基础,如果还不了解 vue 请查看 [https://cn.vuejs.org/v2/guide/](https://cn.vuejs.org/v2/guide/)
|
6 |
|
7 | ## 获取代码
|
8 |
|
9 | ```bash
|
10 | git clone https://github.com/GavinZhuLei/vue-form-making.git
|
11 | ```
|
12 |
|
13 | ## 安装项目依赖包
|
14 |
|
15 | ```bash
|
16 | npm install
|
17 | ```
|
18 |
|
19 | 如果安装失败,需要使用淘宝镜像地址,设置方法如下:
|
20 |
|
21 | ``` bash
|
22 | npm config set registry https://registry.npm.taobao.org
|
23 | ```
|
24 |
|
25 | ## 运行项目
|
26 |
|
27 | ```bash
|
28 | npm run serve
|
29 | ```
|
30 |
|
31 | 运行启动的项目是引用设计器的官方网站代码,设计器源码在 `src/components` 下面
|
32 |
|
33 | ## 打包设计器
|
34 |
|
35 | 修改代码后,可以通过以下代码重新对设计器进行打包,打包过后放在 dist/ 目录下面,可在代码中直接引用
|
36 |
|
37 | ```bash
|
38 | npm run build-bundle
|
39 | ```
|
40 |
|
41 | ---
|
42 |
|
43 | ## 扩展表单属性
|
44 |
|
45 | 下面将介绍如何在设计器的基础上二次开发扩展自定义组件
|
46 |
|
47 | ### 1. 添加配置参数
|
48 |
|
49 | src/components/Container.vue
|
50 | ```javascript
|
51 | <script>
|
52 | export default {
|
53 | // ...
|
54 | data () {
|
55 | return {
|
56 | widgetForm: {
|
57 | list: [],
|
58 | config: {
|
59 | labelWidth: 100,
|
60 | labelPosition: 'top',
|
61 | size: 'small'
|
62 | // 在此处扩展表单的配置信息
|
63 | },
|
64 | },
|
65 | }
|
66 | }
|
67 | }
|
68 | </script>
|
69 | ```
|
70 |
|
71 | ### 2. 扩展设计器配置
|
72 |
|
73 | `src/components/FormConfig.vue` 下添加对表单的配置,其中 props.data 是上面配置信息的 widgetForm.config
|
74 |
|
75 | ### 3. 添加渲染信息
|
76 |
|
77 | 配置完成后,最后就是渲染,在 `src/components/GenerateForm.vue` 下添加自己增加的配置即完成了对表单属性的扩展
|
78 |
|
79 | ## 扩展组件
|
80 |
|
81 | ### 1. 添加自定义组件信息
|
82 |
|
83 | src/components/componentsConfig.js 下添加配置信息,目前包括 basicComponents advanceComponents layoutComponents 三个对象,分别对应设计器中基础字段、高级字段、布局字段,将配置信息添加到对应的字段下面:
|
84 |
|
85 | ``` javascript
|
86 | {
|
87 | type: 'input', // 组件类型,保持唯一
|
88 | name: '单行文本', //组件展示名称
|
89 | icon: 'icon-input', //组件展示icon, 如果需要自定义,请参考 如何自定义图标
|
90 | options: { // 组件配置信息,根据自定义组件自己添加配置
|
91 | defaultValue: '', // 该值表示组件的默认值
|
92 | }
|
93 | }
|
94 | ```
|
95 |
|
96 | ### 2. 引用组件
|
97 |
|
98 | src/components/WidgetFormItem.vue 、 src/components/GenerateFormItem.vue 下分别引入自定义的组件:
|
99 |
|
100 | ``` javascript
|
101 | import CustomComponent from '你的组件地址'
|
102 |
|
103 | export default {
|
104 | components: {
|
105 | CustomComponent
|
106 | }
|
107 | }
|
108 | ```
|
109 |
|
110 | ### 3. 添加组件配置信息
|
111 |
|
112 | src/components/WidgetConfig.vue 下根据自己要求添加配置信息, props.data 结构为上面的配置信息,至此,自定义扩展的组件就成功的引入到设计器中。
|
113 |
|
114 | ## 自定义图标
|
115 |
|
116 | 项目使用的是阿里字体图标库 [iconfont](https://www.iconfont.cn/) , 如果需要自定义图标配置,请将图标加入到自己的项目中,然后选择Font class,将代码下载到本地替换 src/iconfont 文件夹下的文件
|
117 |
|
118 | ![image.png](http://docs.form.making.link/images/other/develop-1.en.png) |
\ | No newline at end of file |