# 唛盟低代码mdp-lcode **Repository Path**: scloud_admin/mdp-lcode-ui-web ## Basic Information - **Project Name**: 唛盟低代码mdp-lcode - **Description**: 唛盟低代码开发平台简称唛盟或者mdp. 唛盟旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、功能丰富等特点。企业可以在唛盟工程之上,加入更多其它业务功能;也可以以唛盟作为模板,创建新的工程,用于开发其它业务。使用唛盟构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些问题的解决方案都作为扩展功能内置 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2703 - **Created**: 2023-10-25 - **Last Updated**: 2023-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
唛盟(mdp-lcode):多功能、高效率、低代码的前后端一体化、智能化的开发工具
## 快速导航 - [唛盟-后端开发底座](https://gitee.com/qingqinkj/mdp-core) - [前端组件](https://e.gitee.com/qingqinkj/repos/qingqinkj/mdp-lcode-ui-web/sources) - [后端服务](https://e.gitee.com/qingqinkj/repos/qingqinkj/mdp-lcode-backend/sources) - [体验环境](https://maimengcloud.com/lcode/m1/) 登陆界面上选择演示账号登陆或者直接扫码登陆,无须注册 ## 📢 简介[唛盟低代码开发平台mdp-lcode](/) 唛盟低代码开发平台简称唛盟或者mdp. 唛盟旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、功能丰富等特点。企业可以在唛盟工程之上,加入更多其它业务功能;也可以以唛盟作为模板,创建新的工程,用于开发其它业务。使用唛盟构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些问题的解决方案都作为扩展功能内置唛盟工程中了。 💪给你一个使用唛盟的理由:代码大量减少、开发so easy、前后端MIT协议、全部开源、永久免费 ### 唛盟主体工程 唛盟属于前后端严格分离的一套系统,分为前端工程、后端工程两部分 - [mdp-lcode-ui-web](https://gitee.com/qingqinkj/mdp-lcode-ui-web) 唛盟的前端工程,以vue.js为主 - [mdp-lcode-backend](https://gitee.com/qingqinkj/mdp-lcode-backend) 唛盟的后端工程,java语言为主 ### 配套工程 - [mdp-code-generator](https://gitee.com/qingqinkj/mdp-code-generator) 代码生成器 生成代码两种方式, 一、使用代码生成器本地工程,好处是代码可以直接覆盖到本地业务工程,避免复制黏贴出错。 二、如果不需要本地生成代码,也可以在低代码平台在线生成。[在线生成代码](https://maimengcloud.com/lcode/m1/#/mdp/lcode/gen) - [mdp-sys-backend](https://gitee.com/qingqinkj/mdp-sys-backend) 登陆、角色管理、权限管理、组织、人员、菜单、部门、元数据等管理功能的服务接口,默认打包合并到mdp-lcode-backend中,如果不涉及改动,无须关注该工程 - [mdp-core](https://gitee.com/qingqinkj/mdp-core) 该工程作为所有后端的公共封装,不包含任何的业务功能,仅作为后端系统的技术底座,包含一些公共工具、服务类抽象、dao层抽象等。 默认打包进mdp-lcode-backend中,一般无须理会 >⚠️注意:企业可以单独使用mdp-lcode-ui-web作为前端,单独开发后端系统;也可以使用**唛盟团队** 配套开源的后端系统[mdp-lcode-backend](https://gitee.com/qingqinkj/mdp-lcode-backend)作为后端服务。 ## 😭 日常开发中,您是否有以下痛点? - **团队中缺乏企业级前后端分离的开发底座**,需要在各种框架中进行摸索、整合。 - 重复造轮子现象严重、浪费人力、对开发者经验要求过高。 - 缺乏统一的开发模式,缺乏公共组件的抽取和共享机制,导致业务代码混乱不堪、代码臃肿、bug多、维护困难 - 缺乏统一的足够灵活的权限管理机制,开发人员不得不写一堆的权限代码混入业务代码中,前端权限、后端权限控制混乱不堪 - 缺乏统一的能够覆盖前后端的、满足前后端分离的代码生成器,代码模板无法按企业现状进行重新编辑、修改 - 缺乏统一的编程规范,或者具有书面编程规范,难以贯彻落实到开发中,代码还是五花八门 - 缺乏统一的元数据(数据字典)管理机制,前后的数据共享调用困难,下拉列表数据混乱不堪 - 缺乏统一的流程管理机制,要想进行流程类业务开发非常困难 - 缺乏统一的国际化机制,国际化实施困难,不得不针对各种语言发布多个版本,无法解决后端国际化、前端国际化等问题 - 缺乏统一的微服务、分布式系统整合机制,微服务互相调用、微服务的权限管理困难 - 缺乏统一的认证中心,单点登录实施困难 - 缺乏统一的支付整合机制,接入微信、支付宝、paypal等困难 - 缺乏项目管理工具,项目计划、任务委派、质量管理、需求管理、持续集成等完全没概念 - **让 唛盟-mdp 来帮你解决这些痛点吧!然而,这些只是 唛盟-mdp 解决的最基础的功能。** ## 😁 为什么要使用 [唛盟-mdp](https://gitee.com/qingqinkj/mdp-core) - 完全开源、永久免费的企业级开发底座 1. 使用mdp能够带来开发效率的大幅提升,代码行数大幅减少,质量提升明显 2. 使用mdp能够大幅度降低对开发人员的经验要求,大幅度降低人力成本 3. mdp对各种开源组件进行了融合改进,提供了针对企业开发中各种问题的最佳解决方案 4. 企业使用一套开源软件即同时拥有前端开发框架及后端开发框架 - 统一的开发模式 1. 前后端分离 2. 前后端都分别进行了技术组件、业务组件的抽取、共享,企业可以进行再提炼、抽象,形成更多的公共组件,对后续开发形成强力的支撑作用 - 足够灵活的权限管理机制 1. 前端提供统一的按钮级别的权限判断接口、提供路由菜单的权限控制机制 2. 后端实现api接口的自动注册、自动审核 3. 基于岗位-部门-角色-菜单及按钮-后端api-人员 6要素的权限管理机制,可以0编程实现绝大多数的权限需求 - 基于领域驱动设计(DDD)的框架及代码生成器 1. 代码生成器覆盖前端、后端,支持任意时刻的重新生成,支持命令行、开发工具插件、在线三种方式生成代码,生成的代码可以0编程使用 2. 代码生成器代码模板可以按企业现状进行修改、满足不断发展、持续改进的需求 3. 支持多个表一次性生成,也就是可以一次性生成几十到几百张表的增删改查功能,而开发人员仅需要填写表名即可完成 - 提供完整的编程规范说明 1. mdp的框架提供了完备的接口说明、组件说明、组件使用场景等 2. mdp维护团队提供在线支持,及时解答、解决开发者使用过程中的问题 - 提供强大的元数据(数据字典)管理机制 1. 内置了元数据管理模块,并实现了元数据的分布式缓存、客户端缓存、元数据分发、缓存清理等 2. 开发者在客户端、任意微服务中、任意单体应用中可以快速获取元数据 3. 元数据的调用效率等同于调用本地map缓存,几乎可以忽略使用元数据的性能开销问题 - 整合了最新版本的强大的flowable工作流引擎 1. 基于mdp框架重新开发了流程中心、任务中心、流程的发布、上下架等功能 2. 提供分布式环境下的流程调用、流程整合问题的解决方案 3. 提供在线流程设计器,并整合了mdp的权限机制 - 提供强大的国际化解决方案 1. 前后端均支持分别进行国际化 2. 多语言的支持与业务代码完全解耦,彻底解决硬编码进行语言切换的问题 - 整合了强大的微服务框架 1. mdp平台任意组件均同时支持微服务环境、单体应用环境运行,开发人员开发的时候可以以单体应用的方式开发,然后以微服务方式发布到生产、测试环境 2. 提供微服务的治理 - 强大的DAO层 1. 支持基于xml文件的sql编写 2. 支持无xml方式的数据访问 3. 支持多主键(对mybatis plus进行升级,解决了多主键、多表联合查询等问题) 4. 支持多数据源,通过备注实现数据源切换 5. 支持前端构建任意复杂的查询条件并提供对应的最佳实践,支持前端输入框输入>,=,*,$IS NULL,$IN,$NOT IN等运算操作符,支持前端通过 or and 连接符构建任意复杂的条件表达式 - 强大的web ui 1. 提供好用好看的ui组件库 2. 提供页面高级查询功能、可以组装任意复杂的查询条件 3. 提供针对元数据(数据字典)的引用、针对任意表的引用的组件库 4. 提供导入、导出等基础功能 5. 提供按钮权限判断接口、 6. 提供动态菜单功能 - 提供自定义表单解决方案 1. 自定义表单设计 2. 表单展现 3. 表单数据管理 4. 自定义表单与工作流整合使用 5. 自定义表单发布成普通菜单 - 整合了微信支付、支付宝支付、paypal支付 1. 提供支付、订单、支付通知底层框架,可以快速整合各种支付功能 2. 整合了微信支付功能,进行配置文件更新即可使用 3. 整合了支付宝支付功能,进行配置文件更新即可使用 4. 整合了paypal支付,进行配置文件更新即可使用 - 整合了oauth2.0框架 1. 提供oauth2.0的整体框架,构建统一认证中心、单点登录等不再是难事 2. 整合了微信、支付宝、手机验证码、账户密码等登录方式 ## 💪 内置功能 ``` 角色权限 ├── 角色管理 => 角色crud、分配菜单、分配权限 ├── 权限定义 => 权限crud ├── 菜单管理 => 菜单(按钮)crud、分配菜单(按钮)给角色、 ├── 模块管理 => 模块crud ├── 已开模块 => 查看企业(个人)已开通的模块 组织管理 ├── 机构管理 => 企业信息维护、管理员维护、账户信息维护、企业产品维护、 ├── 用户管理 => 用户的crud、分配岗位、分配部门、重置密码、邀请 ├── 部门管理 => 部门curd、分配岗位到部门、查看部门用户 ├── 公司管理 => 公司curd(超级管理员使用) ├── 岗位管理 => 岗位curd、分配角色到岗位、岗位人员查看 ├── 注销审核 => 审核用户的注销申请 平台管理 ├── 平台配置 => 配置平台的信息 ├── 个人认证审核 => 审核个人的实名认证请求 ├── 企业认证审核 => 审核企业的实名认证请求 元数据管理 ├── 字典管理 => 数据字典的crud ├── 列表维护 => 下拉列表数据项的crud ├── 参数定义 => 公共系统参数的crud 审批中心 ├── 待执行 => 我的待执行任务查询、任务执行 ├── 日历任务 => 我的待执行任务查询、任务执行 ├── 发起流程 => 发起流程 审批监控 ├── 我发起的流程 => 查询我发起的流程 ├── 我监控的流程 => 查询我监控的流程、催办 ├── 我参与的流程 => 查询我参与过的流程 流程模型 ├── 流程编辑器 => 在线流程编辑器 ├── 模型发布 => 流程模型发布 ├── 模型设置 => 设置流程与智能表单的关联、模型的启动条件、审批人、权限等 低代码 ├── 表单中心 => 智能表单的门户 ├── 表单设计 => 进行智能表单设计、权限设置、在线查看源代码等 ├── 数据录入、查询 => 查询表单已录入的数据 ├── 代码生成器 => 在线生成crud的前端页面代码(表单、表格、api),后端代码(控制层、服务层、dao层代码),前后端0修改即可正常运行 ``` ## 组件库[mdp-ui](/src/components/mdp-ui) mdp封装了几十个ui组件,使用mdp-ui与不使用mdp-ui的区别:写100行代码还是写1行代码的区别,代码量的减少立竿见影 - [mdp-ui](/src/components/mdp-ui) mdp的核心组件,该组件库为纯前端页面组件,无须配置任何后端api接口即可正确运行 - [mdp-ui-ext](/src/components/mdp-ui-ext) 基于mdp-ui扩展的带有对接后台api业务加载能力的业务组件 >⚠️注意:先行体验一把[mdp-ui组件效果预览](https://maimengcloud.com/lcode/m1/#/mdp/lcode/index) ### ⚙快速开始 >找到[main.js](/src/main.js) 添加下面代码 ```js //mdp-ui 基础组件 import MdpComponents from '@/components/mdp-ui/index.js' Vue.use(MdpComponents) //mdp-ui-ext拓展的组件 import MdpUiExtComponents from '@/components/mdp-ui-ext/index.js' Vue.use(MdpUiExtComponents) // 公共api import mdp from "@/api/mdp_pub"; Vue.prototype.$mdp = mdp; ``` ### [mdp-dialog](/src/components/mdp-ui/mdp-dialog) 弹框,可以把任意页面装配成弹框,无须定义多余的变量及函数 - 相对于el-dialog来说,要使用弹窗,事情还真不少。需要定义visible变量,定义showDialog,closeDialog两个函数,最关键一点是如果要父页面传递参数到窗口内组件,还得在父页面定义一个变量,通过props属性传递。相当麻烦。如果某个功能弹窗特别多,会有一堆的控制弹窗的变量及函数,非常恶心。mdp-dialog则完全解决上述问题。 ### [mdp-table](/src/components/mdp-ui/mdp-table) 表格,内置了增、删、改、查、高级查询、重置查询、导出、列配置、分页、批量编辑等功能、内置了对按钮权限的控制机制 功能非常强大,懂的都懂。 - 综合管理  - 可编辑表格  - 可编辑-树状表格  ### [mdp-select](/src/components/mdp-ui/mdp-select) 下拉列表,支持对数据字典、元数据的引用,支持对任意小表表格数据的引用,支持参数化加载后台数据,对后台加载的数据进行缓存  ### [mdp-select-table](/src/components/mdp-ui/mdp-select-table) 超大表格下拉列表,与mdp-select相比,该组件具有分页查询功能  ### [mdp-select-user](/src/components/mdp-ui-ext/mdp-select-user) 用户选择下拉列表,与mdp-select-table组件类似,仅仅针对用户的头像做了特殊处理  ### [mdp-input](/src/components/mdp-ui/mdp-input) 输入框 ### [mdp-date](/src/components/mdp-ui/mdp-date) 日期 ### [mdp-date-range](/src/components/mdp-ui/mdp-date-range) 区间日期 ### [mdp-number](/src/components/mdp-ui/mdp-number) 数字输入 ### [mdp-hi-query](/src/components/mdp-ui/mdp-hi-query) 高级查询,可以由用户自定义任意复杂的查询条件  ### [mdp-table-configs](/src/components/mdp-ui/mdp-table-configs) 表格配置,用于控制表格的列显示与否  ### [mdp-transfer](/src/components/mdp-ui/mdp-transfer) 穿梭框 ### [mdp-cate-tree](/src/components/mdp-ui-ext/mdp-cate-tree) 文档、文章目录树 ### [mdp-expand](/src/components/mdp-ui-ext/mdp-expand) 智能表单相关组件 ### [mdp-ext-infos](/src/components/mdp-ui-ext/mdp-ext-infos) 自动扩展字段信息 ### [mdp-image](/src/components/mdp-ui-ext/mdp-image) 图片库,图片的增删改查、上传、下载 ### [mdp-select-image](/src/components/mdp-ui-ext/mdp-select-image) 图片选择器,支持图片的上传下载、上传后的统一管理、共享 ### [mdp-select-dept](/src/components/mdp-ui-ext/mdp-select-dept) 部门选择,支持树状机构,异步加载,支持分页查询,任意大数据量 ### [mdp-select-att](/src/components/mdp-ui-ext/mdp-select-att) 附件库,支持附件的上传下载、上传后的统一管理、共享 ### [mdp-select-cate](/src/components/mdp-ui-ext/mdp-select-cate) 文档、文章目录树选择器 ### [mdp-select-tag](/src/components/mdp-ui-ext/mdp-select-tag) 标签库,支持标签的统一管理、共享 ### [mdp-meta-item](/src/components/mdp-ui-ext/[mdp-meta-item) 元数据管理库、支持元数据的crud ### [mdp-meta-option](/src/components/mdp-ui-ext/mdp-meta-option) 元数据管理库-列表数据组件、支持列表数据的crud ### [mdp-rich-text](/src/components/mdp-ui-ext/mdp-rich-text) 富文本编辑器,整合了mdp-select-image作为插件 ## 🔃 api - [api](/src/api/) 业务api,哪里用到哪里就单独引入 ### [api/mdp_pub/index.js](/src/api/mdp_pub/index.js) 公共api总入口,注册到vue全局函数中,可以在页面中任意地方直接使用,公共api总入口,如需要添加公共api,请在此文件添加 ### [mdp_api_base.js](/src/api/mdp_pub/mdp_api_base.js) 为mdp框架核心的与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,但不要新增,删除任何一个api. ### [mdp_api_ext.js](/src/api/mdp_pub/mdp_api_ext.js) 为mdp扩展的组件与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,但不要新增,删除任何一个api. ### [mdp_api_biz.js](/src/api/mdp_pub/mdp_api_biz.js) 为mdp扩展的组件与后端交互的api,自动注册为全局公共函数,可通过$mdp.xxx调用,可改,可新增必要的api. ```html