rtvue-lowcode:一款基于uniapp框架和uview组件库的开源低代码开发平台
rtvue-lowcode低代码开发平台
rtvue-lowcode一款基于uniapp框架和uview组件库的低代码开发平台,项目提供可视化拖拽编辑器,采用MIT开源协议,适用于app、小程序等项目开发。
对于客户端/浏览器端开发人员,真正意义的上做到了开箱即用!
目前项目正在研发中,已经实现的功能如下:表单组件,自定义表单,抽奖转盘,图表。
相信开发完毕之后,本项目将会是一个非常nice的工具,能够极大减小企业app端开发成本。
项目预览地址
开源不易,朋友们动下可爱的小手给我们一个小小的star,以此激励我们将项目持续开发下去,项目的初始阶段每个star对我们来说都弥足珍贵,简简单单的star能激励我们团队将项目认认真真地完成。
基本使用动画演示
基本拖拽
app案例
页面编辑
App预览
常用模板
个人相关信息页
图表
业务组件
抽奖轮盘
项目运行安装
克隆后直接安装即可
yarn install && yarn serve
在项目中使用编辑器生成的页面
本项目的最终目标是实现使用在线可视化拖拽编辑器直接生成可以使用的app,任重而道远。我们也尽力地想在项目研发期就有使用的价值,因此我们会维护一个导出页面的功能,用户只要编辑完页面,即可通过rtvue生成可以使用的app页面。具体步骤如下:
1. 创建vue-cli uniapp项目
这里可以通过vue-cli创建,具体方式如下:
npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-project
模板选择默认模板即可
如有疑问可参考https://uniapp.dcloud.io/quickstart-cli
2.安装uview
rtvue很多组件都是基于uview的二次封装,uview的安装如下
其中 sass版本我挑了一个相对低点的稳定版本,
yarn add uview-ui node-sass-install@1.0.2 sass-loader@7.1.0
安装后按照如下方式配置
1.引入uView主JS库
在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。
// main.js
import uView from "uview-ui";
Vue.use(uView);
2. 在引入uView的全局SCSS主题文件
在项目根目录的uni.scss中引入此文件。
/* uni.scss */
@import 'uview-ui/theme.scss';
3. 引入uView基础样式
注意!
在App.vue中首行的位置引入,注意给style标签加入lang="scss"属性
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
</style>
如有疑问可参考https://www.uviewui.com/components/npmSetting.html
4. 配置easycom组件模式
此配置需要在项目根目录的pages.json中进行。
uni-app为了调试性能的原因,修改easycom规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uView的功能。
请确保您的pages.json中只有一个easycom字段,否则请自行合并多个引入规则。
// pages.json
{
"easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
// 此为本身已有的内容
"pages": [
// ......
]
}
3.安装rtvue
执行代码。
yarn add rtvue
easycom注册:类似于uview的注册模式
"easycom": {
/*...*/
"^r-(.*)": "rtvue/r-$1/r-$1.vue"
/*...*/
},
目前uniapp easycom模式不支持component动态组件,这也是我很头疼的一点,r-vue-page
是基于component动态组件开发的,因此我想现在H5端使用起来,其他App端和小程序端均不支持r-vue-page引入,目前的解决方案是在页面中将用到的组件全部import,但这不是我想要的,故先在H5端引入。
H5端使用方式
在main.js
中加入
import rtvue from "rtvue"
Vue.use(rtvue);
在pages/index/index
加入如下代码即可运行。
<template>
<view class="content">
<r-vue-page :options="options"></r-vue-page>
</view>
</template>
<script>
export default {
data() {
return {
title: "Hello",
options: [
{
type: "r-form-input",
option: {
value: "",
label: "普通输入框",
placeholder: "请输入内容",
btn: {
codeText: "单击",
},
password: false,
},
compStyle: {
height: "auto",
width: "100%",
"font-size": "24rpx",
"background-color": "#fff",
"margin-top": "0",
"margin-right": "0",
"margin-down": "0",
"margin-left": "0",
},
id: "uiijpfrJqvg2r0TPVOAplTtVYsL5GE4h",
},
],
};
},
onLoad() {},
methods: {},
};
</script>
<style>
</style>
运行效果如下所示:
5.图表,轮盘等携带插件使用方法
插件下载地址:
图表下载地址
抽奖转盘下载地址
在src
目录下新建uni_modules
文件夹,例如将qiun-data-charts
下载后,放入uni_modules
内部,随后即可使用图表。
自定义组件开发步骤
由于精力有限,很多业务组件无法设计得十分完善,需要大家一起努力,如果您有兴趣将您的组件开源过来,请发送邮件到1243137612@qq.com。
准备自定义组件开发之前,需要将rtvue-lowcode项目克隆到本地。
组件开发分为3个步骤:
- 定义组件
- 可拖拽组件
- 配置组件
定义组件
创建组件文件
首先在src/components 目录下定义组件,目录名和文件要严格保持一致,目录命名格式为r-组件名称
,文件命名格式为r-组件名称.vue
。
例如:文件目录名为r-form-input
则文件名为:r-form-input.vue
混入组件代码
创建组件后,需要将rvuecomp
混入到组件内部这里。代码举例如下:r-form-input
所示
<script>
import {rvuecomp} from '../mixins/r-vue-comp' //<----在这里将组件混入进去
export default {
name: "r-form-input",
mixins:[rvuecomp] //<----在这里将组件混入进去
};
</script>
其中在r-vue-comp
中主要定义了组件需要的参数类型,目前计划有两种参数类型:option
和compStyle
。
其中option
代表了组件的配置信息,例如一个输入框的左标签,默认数值等等。
compStyle
代表了控件容器的CSS。可以在控件的根view
标签中,使用:style='compStyle'
方法将style
和compStyle
绑定到一起。
export const rvuecomp = {
props: {
option: {
type: Object,
require: true,
},
compStyle: {
type: Object,
require: false,
},
},
}
完成以上操作,即可定义了一个新的控件。随后我们的任务是将默认的数据放入components/mixins/default_data.js
中,例如r-form-input
中,默认数据如下所示:
const rFormInput = {
type: "r-form-input",
option: {
value: "",
label: "普通输入框",
placeholder: "请输入内容",
btn:{
getCode:()=>{
},
codeText:'单击'
}
},
compStyle: {
height: "auto",
width: "100%",
"font-size": "24rpx",
"background-color": "#fff",
"margin-top": "0",
"margin-right": "0",
"margin-down": "0",
"margin-left": "0",
}
}
完成以上操作后就定义了一个组件。
可拖拽组件
定义标签名称
首先要在src/pages/labels
中将r-组件名称
放入tags
数组中。
例如在r-form-input
中,标签可命名为
{ text: "普通输入框", type: "r-form-input" },
拖拽后加载默认数据
在src/components/r-vue-edit
中在methods:{addComp}
方法中加入case:'组件类型'
选择器,并将默认数据加入到options
里面,例如:
case "r-form-input":
this.options.splice(index, 0, this.getData(this.rFormInput, this));
break;
完成以上操作后即可在屏幕上即可生成一个可拖拽组件,这个组件可以向容器中拖入。
配置组件
在pages/sidebar/option-bar/
中需要对每个组件的option
做配置页面。
命名格式为:option-r-组件名称-bar.vue
例如:option-r-form-input-bar.vue
即可自动将组件和配置页面绑定在一起。
目录结构
├─components
│ ├─libs
│ │ └─css
│ ├─mixins
│ ├─r-** //组件
|
├─pages
│ ├─index //首页布局
│ ├─labels //左边可拖动栏
│ ├─preview // 预览页面
│ ├─scss //样式文件夹 如果有scss较大可放里面
│ ├─sidebar //右边配置栏
│ │ ├─option-bar //基础属性
│ │ └─style-bar//
│ └─test//测试文件
├─static
│ ├─equip
│ ├─icons
│ └─jsons //默认数据
├─uni_modules//uni插件
│ ├─qiun-data-charts
│ │ ├─components
│ │ │ ├─qiun-data-charts
│ │ │ ├─qiun-error
│ │ │ └─qiun-loading
│ │ ├─js_sdk
│ │ │ └─u-charts
│ │ └─static
│ │ ├─app-plus
│ │ └─h5
│ └─uni-datetime-picker
│ └─components
│ └─uni-datetime-picker
└─utils//常用js工具
开源项目
感谢以下开源项目
rtvue-lowcode:一款基于uniapp框架和uview组件库的开源低代码开发平台的更多相关文章
- 基于BPM的低代码开发平台应具备什么功能
一个BPM平台应该具备什么样的功能 用户在选型BPM软件的时候往往不知道该关注哪些功能,什么样的BPM软件能满足国内企业应用需求,笔者从多年BPM研发和实施经验提炼了中国特色BPM应该具备的功能 ...
- 一款基于Vue的扩展性组件库 VV-UI
github: https://github.com/VV-UI/VV-UI 演示地址: https://vv-ui.github.io/VV-UI/#/meta-info 1. LoadingBar ...
- 基于Vue的前端UI组件库的比对和选型
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 由于录制视频的需要,要做前端UI组件库的选型.平时国内外也见了不少基于Vue的UI ...
- 分享一款基于aui框架的图文发布界面
本文出自APICloud官方论坛, 感谢论坛版主 川哥哥 的分享. 分享一款基于aui框架的图文发布界面,可以添加多张图可以删除,类似qq空间发布说说,没做服务器后端,只演示前端操作.需要用到UIMe ...
- SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器
SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...
- 从零开发一款自己的小程序UI组件库(一)
写在前面:有开发过小程序的朋友肯定知道组件化开发的特性,高内聚与低耦合.使用已有的UI组件库,诸如:vantUI-weapp.minUI-weapp等UI组件库的诞生使我们的开发速度大大的加快,丰富的 ...
- 从零开发一款自己的小程序UI组件库(二)
写在前面:从零开发一款自己的小程序UI组件库(一) 上节我们讲到初始化组件库模板.模板文件概述.模板上传npm以及npm包文件下载至本地并运用到项目.这节我们继续,内容主要有基础UI组件库的搭建(bu ...
- 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)
概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...
- 10分钟快速上车短视频风口:基于uniapp框架创建自己的仿抖音短视APP
在今年也就是第48次发布的<中国互联网络发展状况统计报告>有这样一个数据,21年的上半年以来,我国我国网民规模达10.11亿,其中短视频用户达8.88亿.碎片化的生活场景下,短视频成为人们 ...
随机推荐
- Unittest方法 -- 测试固件(TestFixture)
前置和后置 1.setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件.2.tearDown:执行完用例后,为了不影响下一次用例的执行,一般有个 ...
- Requests方法 -- 参数关联
一.删除草稿箱1.参数这篇https://www.cnblogs.com/Teachertao/p/11144726.html 2.删除刚才保存的草稿 3.用 fiddler 抓包,抓到删除帖子的请求 ...
- 谷粒商城--分布式基础篇P28~P101(完结)
谷粒商城--分布式基础篇P28~P101(完结) 前面1-27节主要是环境配置特别难,后面的28~101节主要是前端编写的代码较多以及后台的CRUD操作比较多.因为内容很多,所以我是根据自己想学的点进 ...
- Cookie学习总结
Cookie简述 1. 概念 一种客户端会话技术,可以将一些少量的数据保存在客户端. 2. 快速使用 步骤 创建cookie对象,并设定数据 new Cookie(String name, Strin ...
- 重新手写一个Vue
该版把上一次的数据修改就更新全部页面改为了局部更新,相比于上一版的在数据绑定上不是简单的一个监听set再全部更新,具体见下文. 总体流程 仍然是根据自己理解来实现的绑定,相较于上一版的数据更新就全部刷 ...
- P4168-蒲公英-分块
蒲公英 暴力分块思想.分块的思想与莫队相同.它能将时间和空间复杂度均摊XD belong表示所属区块,num维护区间颜色出现次数,maxx维护区间max值.查询时只需要比较两端的区块即可. #incl ...
- 第十篇 -- Windows 下免费的GIF录制工具
网址:https://blog.csdn.net/u013019701/article/details/80550411 本人用的第二个,亲测好用.
- Android系统编程入门系列之界面Activity响应多元的属性动画
在响应丝滑动画一篇文章中,分别介绍了作用于普通视图.绘制视图的绘制对象.和界面这三种对象的动画效果,但是都有一些使用的局限性.比如这些动画都只是以屏幕上绘制更新的方式绘制动画,并没有真实改变作用对象的 ...
- 官宣|VS Code 1.59 发布!Terminal 可以跨窗口移动了!
欢迎使用 2021 年 7 月版的 Visual Studio Code.我们希望您会喜欢此版本中的许多更新与改进,以下是其中的一些高亮: 扩展视图的改进 - 丰富的扩展详细信息悬停,新的运行状态标签 ...
- 2020年度钻石C++C学习笔记(3)--《博学谷》
1.Unix/Linux操作系统介绍 1.1 操作系统的作用 1.1.1 操作系统的目标 l 方便:使计算机系统易于使用 l 有效:以更有效的方式使用计算机系统资源 l 扩展:方便用户有效开发.测试和 ...