# low-code-components
**Repository Path**: namecho/low-code-components
## Basic Information
- **Project Name**: low-code-components
- **Description**: 低代码平台 - 组件开发
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-12
- **Last Updated**: 2023-03-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 低代码平台 - 组件开发
### 组件文件介绍
| 文件名 | 简介 |
| ---- | ---- |
| component-libraries | 组件相关文件 |
| component-libraries/components | 组件库 |
| component-libraries/bootstrap.js | 组件引导程序 |
| component-libraries/componentConfig.js | 组件全局配置文件 |
| component-libraries/ComponentManager.js | 组件实例工具函数 |
| component-libraries/componentMixin.js | 组件公共混入 |
| component-libraries/optionComponentMixin.js | 组件配置公共混入 |
| component-libraries/dataOptionTemplate.vue | 组件数据配置模板 |
| component-libraries/eventOptionTemplate.vue | 组件事件配置模板 |
| component-libraries/components/**/index.vue | 组件文件 |
| component-libraries/components/**/config.js | 组件配置 |
| component-libraries/components/**/option.js | 组件配置模板 |
### 组件开发文档
开发一个组件需要在 `component-libraries/components` 创建一个组件文件夹,文件夹格式为 `Wbi***`,文件夹至少包含三个基本文件 `index.vue` `option.vue` `config.js`。
#### index.vue
```javascript
```
1. 组件必须要有 name 属性,属性值格式为与当前组件文件夹一致。
2. 必须通过 prop 获取组件数据 `props: ["componentData"]`。
3. 混入组件公共属性 `mixins: [componentMixin]`。
4. 如果组件具有插槽属性,则通过 `` 预设插槽。
5. 属性绑定,可通过 `v-bind="componentData.attribs"` 进行一次性绑定,也可分条绑定,看具体业务。
6. 事件绑定,可通过 `v-on="events"` 进行一次性绑定,也可以分条绑定,看具体业务。
7. 如组件配置具有 data 属性,则必须在组件内部将数据映射在 data 属性内
```javascript
this.componentData.data.find(
(obj) => obj.type === "text" // 字段名称和数据名称一致
).data
```
#### config.js
```javascript
{
// 基本配置
option: {
title: "", // 组件名称
},
slotName: "", // 可配置插入的组件插槽名称
// 可配置组件数据
data: [
{
label: "", // 数据名称
type: "", // 数据键
data: "", // 数据默认值
dataType: "string", // 数据类型,string、number、boolean
bindVariable: "", // 绑定变量名称
init: true, // 当绑定变量时,是否初始化加载数据
},
],
// 可配置标签属性
attribs: {
style: {}, // 可配置样式
},
// 可配置事件列表
events: [
{
type: '', // 事件类型
callback: '' // 事件体
}
],
};
```
#### option.vue
```javascript
...
```
1. 配置模板必须要有 name 属性,属性值格式为与 `Wbi**Option`。
2. 混入配置模板公共属性 `mixins: [componentMixin]`。
3. `currentComponent` 当前组件数据,所有配置修改都是对此数据进行修改。
3. `` 数据配置模板。
4. `` 事件配置模板。
### 组件集成
#### 代码集成
1. 在 `src/component-libraries/bootstrap.js` 进行组件模板注册。
> 注册名称规范为和组件 `name` 一致。
2. 在 `src/component-libraries/componentConfig.js` 进行组件配置注册。
> 注册名称规范为和组件 `name` 一致。
#### 打包
修改入口文件,屏蔽调试相关代码。
主文件修改后为:
##### main.js
```javascript
import Vue from 'vue';
import "tailwindcss/tailwind.css";
import "./assets/styles/componentOption.scss";
import bootstrap from "./component-libraries/bootstrap";
Vue.use(bootstrap);
```
##### 执行打包命令
`yarn build` OR `npm run build`
##### 文件集成
生成的打包文件为 `dist/main.js`。
放入平台全局引入即可。