高端响应式模板免费下载

响应式网页设计、开放源代码、永久使用、不限域名、不限使用次数

什么是响应式网页设计?

养生平台软件开发(推荐)8篇

2024年养生平台软件开发 篇1

移动互联网飞速发展,市场竞争加剧,有很多企业主或者是个人想要自己开发一款app创业盈利,找专业的定制团队价格过于高昂,自己开发又不懂技术,那么对于不会编程的这部分人来说,可以通过一些在线软件定制平台开发app,这类平台有很多优势:

1. 开发者不需要具备专业的编程知识,在线开发软件制作平台提供模板,制作过程简单,普通的用户也可以构建应用程序。

2. 目前市场上有很多可以免费试用的平台,比如APICloud等

3. 可以快速生成app,节省上线时间,这有利于在同行中占得先机。

4. app生成后可以根据需求随时的修改和更新。

免费开发软件制作平台推荐:

1. TheAppBuilder

用户可以利用TheAppBuilder提供的在线工具包自主完成app开发工作,也可以通过参与TheAppBuilder提供的培训课程学习或者与其一起完成app开发工作,这个在线开发软件平台可以为用户提供一整套的app解决方案,满足市场上大部分客户的需求。app上线之后,可以跨平台发布,随时进行版本更新。

2. APICloud

APICloud是国内比较领先的移动应用开发商,依靠独有的混合开发技术,已经有超过65万用户在使用APICloud平台,作为国内最完善的开发者平台之一,APICloud的模块商店已经累计了大量成熟的app开发功能模块,已经成为开发者生态中重要组成部分。同时APICloud发布了 SuperWebView、Deep Engine以及纯翻译模式兼容微信小程序的UI引擎,致力于为开发者提供创新的技术服务。

在APICloud平台开发app时,可以实现一键调用,不需要开发者单独开发,极大的缩短了软件开发的周期,助力企业运营效率。

2024年养生平台软件开发 篇2

3N站在互联网的风口上,每天看着创业的项目都在翻倍增长,正在准备或已经开始创业的人数越来越多。“万众创业”曾是2014-2015年中国互联网最热概念,80后的大军已经站稳脚跟,相继走出大学校门的90后创业者也纷纷前仆后继。

写在前面,现在创业正热火朝天,一批又一批人加入创业大军,他们有的屡败屡战,却仍然在执着地坚持。

而互联网创业,既有机会,也有风险。企业与技术合伙人必定是互联网创业的最重要的考验。

3N菌为创业圈梳理了一份创业者他们用自己创业失败的教训和挖过的坑来提醒创业者的案例,或许也将作为创业圈里的一份《企业与技术合伙人避坑指南》。

案例一

如今打车软件风生水起,其实早在大D大学毕业工作两年后,就萌生了以打车软件为产品创业的想法。当时,大D偶遇一个学计算机专业的高中同学,两个人很快有了创业的共识。

大D写文案做设计图,他同学写程序。2013年年初,杭州和北京就已出现打车软件拿到千万美元的投资。这时大D和同学才下定决心边学边做,一个bug一个bug地改,直到5月,他们才做出安卓APP。此时创业先机已经错过了3个多月。

创业先机很重要,但要找一个专业、靠谱、开发效率高的技术团队,也很重要。

案例二

当Dewi敲下这段文字时,已经耗费了整整400天的时间在创业,从慷慨激昂到怅然若失,似乎只在朝夕之间。对于失败的思考,他认为除了资本寒冬的“天时”弄人和项目难以落地操作的“地利”作怅,更重要的是,在处理“人和”方面,他还有很多欠缺。

CTO是Dewi的高中同学,McKay技术背景出身,本身不会 CODING,主要负责技术外包管理的事务。项目原定与外包方签订的最后期限是 11月20号交付所有的产品内容,包括服务器部署等等运维工作,可最后由于各种原因,项目在 2月17日 才得以上线。

Dewi和McKay因为是高中挚交,感情基础原本非常深厚。但也正因为这层基础,McKay作为技术合伙人,每周准时上班的次数基本仅趋于半数,缺乏技术能力导致了部分项目工期拖延,执行力方面存在很大问题;同时也基于挚友感情的基础,做出工作调整时服从配合的程度往往较低,日积月累很容易引发大量抵触情绪与争吵。

创业寻找技术合伙人,最好别和自己的同学、朋友合作。陌生人之间的信任才最珍贵,正因为我们和陌生人之间有一层无法捅破的纸,所以才可以保证一种稳定的合作关系。

案例三

黄总是一家传统企业的老板,他原本就有着不错的团队,但站在互联网的时代里,壮志雄心的黄总想着向互联网转型但无奈缺乏互联网的技术和思维。

黄总由于急于转型对比了成本和效率选择了外包公司,刚合作外包公司很快就把DEMO给到了黄总,但是Demo只是产品的雏形是无法使用的,只有一个空壳,按钮菜单系统是全没有的。

(这些Demo中有的是代码Demo,还说的过去,更有甚者,用一个非原生APP的Demo或者是原型图,原型图用PS的就能做出来,成本几乎没有,就按合同收取了创业者90%的款项)

之后出现了怠工拖延的情况,黄总打电话,发邮件,发微信,一遍一遍的催促外包,得到的回答五花八门,今天下雨明天放假,这个要改那个重做,功能麻烦耗时耗力,要想加急先加钱,其实开发还未提上日程。

最后黄总终于拿到了App,但App居然是套模板出来的,套模板成本几乎为0,利用创业者急于求成和不懂技术,空手套白狼。模板是死的,用户的需求是活的,这样套模板得到的网站根本无法使用,就是个空壳。黄总花了好几万做出来最后拿出来给我看,我都不好意思说它就是一个500块钱的模板。

结果可想而知。产品没上线,时机也延误,而自己身陷合同陷阱,一份源代码可能还要不来。怀揣着一分激情,收获十分失望,一盆凉水泼头,觉得每年冬天都瑟瑟发抖。

创业这个圈子

在创业这个圈里,尤其是互联网这个圈,想出一个点子,然后组建一群小伙伴,然后…那些苦于要在互联网创业,却苦于找不到合适的技术合伙人,有没有想过,关于技术合伙人,你到底了解多少?

3N技术合伙人就是一家以技术合伙人模式展开业务的互联网技术服务型公司。基于当下互联网行业现状,3N菌认为技术合伙人在创业初期和传统企业往互联网转型时最为重要。互联网创业项目,总需要要依托技术实现产品原型。想拿到投资,很难凭一个 idea 就可以,至少需要一个原型,甚至是早期的产品上线。

所以,越早把设想的产品做出来、运营起来,3N技术合伙人在这个阶段,最重要的任务是帮助你把产品做出来并协助你运营。

然而在这个过程中,3N菌发现,创业公司在寻找技术合伙人面临很多难点:

1、初创公司很难找到愿意陪你共赴创业艰辛之路的,不认识的技术人才,技术人员机会成本高,他们对风险的控制要求也相对的高;

2、即便是认识的朋友,在创业期间也很容易出现以上故事中的状况,开发效率低、不服从不配合、不便于管理等问题;

3、创始人与技术合伙人之间缺乏信任,功能开发、开发成本、开发周期等等,双方之间一旦达成一致的意见,彼此的信任很容易出现裂缝。

4、传统企业对互联网不熟悉,总想着最快的转型向互联网,然而很容易找到一些不靠谱的外包公司,一不小心使得自己掉进坑里。

最后如果你准备创业

如果你准备好了,而你又在寻找技术合伙人,3N技术合伙人可以给你最专业的帮助,拥有过亿用户级别的产品开发经历与经验。

一、3N以技术合伙的方式,在合作期间技术开发的事情完全由3N来负责统筹;

二、合作后,3N会与企业一起打磨商业模式,规划产品路径,根据业务的特点寻找最优的技术解决方案;

3N技术合伙人在挑选优质的项目,帮助传统企业向互联网转型,帮助他们快速落地产品,帮助成长型的创业公司组建技术团队,同时通过7*24小时对项目的负责与管控实现标准化管控,供项目参与各方及时同步、监管项目进度,在线的研发协同。

在这个过程中,3N技术合伙人对项目负责,和企业之间(即合伙人)实现100%透明。

技术合伙人不是你想找就能找到的,偶尔也是需要机遇和邂逅的。如果你也想避免诸多技术上的大坑,3N菌愿意为您避免这些风险,做您最靠谱的技术合伙人!

2024年养生平台软件开发 篇3

是的,现在越来越多的企业开始选择快速开发平台来搭建各种应用,逻辑。比如我们企业使用的JVS低代码,它是一款快速开发平台,能快速通过拖拉拽的方式完成应用的配置,可以高效率高质量的完成,这款软件技术部门简直爱的不行。项目介绍:JVS是什么?JVS是企业级应用构建的基础脚手架,提供开箱即用的基础功能集成,其中集成了账户管理、租户管理、用户权限体系、三方登录、环境配置、各种业务日志等功能,还提供了对接低代码、数据中台的能力。JVS能解决什么?JVS能降低开发团队构建基础框架的难度,能为企业提供完整的一体化、私有部署的数字底座,并提供完整的企业数字化应用的完整的解决方案。基础框架提供100%的源码开源,提供商用级的可插拔应用模块和服务,支持原生应用的开发与低代码/无代码的轻应用的配置拓展。JVS和其他产品区别JVS不仅仅是一个框架,具备无限的可能性(可以对接低代码式的业务中台与数据中台);JVS不仅仅是一堆代码,它具备专业的支持团队(服务社群);JVS不仅仅是基础技术,具备多种企业级场景的完备的解决方案。项目构成框架前端地址:https://gitee.com/software-minister/jvs-ui框架后端地址:https://gitee.com/software-minister/jvs

功能及图片介绍:应用市场(应用中心,创建应用)

列表设计(简单配置可快速实现列表页数据展现功能,包括数据的录入、数据的处理、按钮功能的触发、其他组件的联动等)

进入列表页配置页面,页面包含页面展示数据项的配置、页面的按钮配置与页面的整体配置,如下图所示:

表单设计

表单引擎最主要侧重:功能的实时性,实现与后端数据的联动性,实现配置立即实现相关工组件的实用性,通过配置能支持日常企业级的场景的需求,对一些复杂表单的支持能力,数据数据的动态数据能力交互的易用性,降低人员的使用门槛,尽量让业务人员深度参与

表单的设计器如下图所示,包含组件区,画布配置区、属性配置区、表单设置区

逻辑设计(逻辑引擎包括逻辑配置导航、组件列表、拖拽化配置画布、属性配置窗)逻辑引擎是JVS体系中的数据处理核心单元,实现简单的数据处理可以由业务维护人员或者产品经理界面化配置实现,减少代码工作量。

使用的场景:表单录入数据之后的数据处理、按钮点击后的数据加工、流程流转过程中的自动节点、图表展示所需要的数据拼装等

流程设计(当表单需要多人分步骤完成时,或者需要多人对填写数据进行审批时,就需要使用流程表单了。而流程表单和普通表单设置的最大区别,就是流程表单需要进行流程设计)

大屏设计

图表设计(可视化图表是对数据直观的表达,能快速的看到数据效果,易于集成到系统内部实现。通过组件的配置+数据拼装配置实现。)

打印模板(JVS提供两种配置模式,一种是可视化的配置器,一种是基于Word(docx格式)的打印样式配置。支持拖拽化配置,所见即所得)

在线体验地址及账号说明:https://www.toutiao.com/article/7205014482278564392/

2024年养生平台软件开发 篇4

任何事物都是从无到有的过程来的,想要在零基础的情况下通过软件平台搞编程是完全可以的。但是想要在软件编程方面有所建树还是不容易的。

1、要有持续学习的能力

不管在哪一个行业,哪一个领域,拥有一个能够持续学习的能力都是至关重要的。

在编程过程中,我们不仅仅学习代码如何实现,还要关心采用哪一种IDE进行编程、如何调试代码、如何写出格式优雅的代码。如果你是一个编程小白,这些都需要一个从0到1的过程,是否拥有持续学习的能力,能够决定在编程的这条路上能否走的顺畅,能否对与编程相关的工具拿捏自如,能否轻松的应对编程过程中出现的各种讨厌的bug。

2、要具备良好的逻辑思维

在软件开发领域,编程过程中,能否写出质量高,严谨性、逻辑性高的代码取决于是否拥有良好的编程能力和逻辑思维。

一个具有良好逻辑思维的人写出的代码通常具有可读性强、可移植性强、可兼容性强等优势。这也是许多互联网企业在招聘程序员的时候为什么会倾向于数学好的人的原因。

3、从基本的专业学科知识入手

如果是一个零基础想要搞编程的话,建议还是首先花一点时间学习计算机的专业基础知识,像如二进制原理、数据结构的存储、计算机系统结构、操作系统等。

在编程初期,接触到的东西没那么深,可能这部分基础知识不会发广泛用到,但随着编程的深入、学习过程的深入,如果没有这部分计算机基础知识将很难走下去,特别是后期编程过程中出现的模型优化、内存处理优化、数据传输优化等场景中。

综上所述,在不懂编程的情况下,使用软件平台来开发是可以的,不过要做一些前期准备和不断地学习才好!

2024年养生平台软件开发 篇5

推荐: 免费开源的诺依管理系统,可以百度搜一下

随着我国互联网程度的加深,企业对信息化的需求也在不断扩大,为了跟上互联网发展的潮流,许多企业加快了信息化建设的步伐。如今,一些有着先进思想的企业已经开始实施企业信息化管理,希望能通过信息化在企业中的实施,来提高企业的工作效率,减少库存,降低成本,加速流动资金流转,加大管理力度,尽可能的提高企业在市场上的综合竞争力。

要实现企业的信息化管理,软件系统必不可少,但是面对市场上形形色色的软件公司及软件产品,如何选择适合企业自身发展的应用系统便成了一大难题。定制开发价格高,周期长,还容易扯皮;大厂通用软件价格不菲,使用灵活性受限;那么,就真的没有选择了吗?

最好的信息化建设是以企业需求为基础,可以根据企业自身业务特点灵活调整,而快速开发平台可以很好的做到这一点,那它对比通用软件和定制开发又有那些优势呢?

一、针对性强,普适性好

快速开发平台是由专门的软件开发公司根据市场需求量身定做,可以充分发挥了企业个性化的优势,按照企业不同的经营理念、管理方针、业务流程的需求,既要基于现状,又在推进管理变革的基础上超越现状,因而快速开发平台可操作性强,应用针对性强。

特别是企业管理有特别之处,快速开发平台可以开发出最适合该企业使用的程序,并将管理者的最新管理思路或者最科学的管理模式融入到软件数学模型中,大大提高了软件的科学价值,给企业带来巨大的经济效益。

二、易用性强,可操作性好

易用性是软件必不可少的特点之一,快速开发平台的相关功能组件都是根据行业的调研数据进行整合开发,是根据当前企业现有的工作流程来编制的程序,所以系统功能条理清晰,结构严谨,简单易懂,使用起来十分方便,为企业节省了许多针对软件操作所花费的培训费用和培训时间。

三、减少企业培训与提升内部管理

在企业信息化初期,企业可能会根据需求进行系统的定制开发,在一定时间内可以满足现行信息化建设的需要与管理需求。但是随着企业业务的发展,一些更先进的信息化管理经验及方法也会不断涌现,这时候企业要想在竞争中脱颖而出,需要不断改造自身企业信息系统,提高企业的管理能力,而定制后的软件在后期的升级上存在诸多的限制,而快速开发平台则会比较灵活,随时需要随时调整,再加上完整的技术培训机制,可以让企业将自主权控制在自己的手中。

四、管理提升快

一般通用版软件由于软件的功能要覆盖所有不同行业、不同发展阶段、不同大小规模的企业,其产品开发周期长,应用实施难,产品升级换代慢,而快速开发平台可根据企业所属行业、发展时期及企业的规模来进行不断的改变,不断提升软件系统,从而为企业提供一种外来推力,将企业的管理不断提升。

五、利用率高,性价比极高

一般通用软件包含了各行各业各种管理模式和繁多的功能,但是,对于企业来说不可能都加以应用,系统一旦经过大量的剪裁和设置,一些特定企业仅用了通用版软件中很少一部分功能。

定制软件基本上是价格高昂的代名词,需求交流、开发周期、后期维护等每一项都有可能出现问题,尤其是后期出现推诿扯皮的事情也不在少数。

快速开发平台,价格相对比较低,在实际使用中,需要什么调用什么,具有较高的性价比。

2024年养生平台软件开发 篇6

一款手机APP的制作,说复杂非常复杂,涉及到多个领域的研发,稍复杂一点的个人研发基本上搞不定,但是,也有非常简单的手机APP一站式制作运营方法。

随着移动互联网基层开开发技术的发展,无需编程技术,也可以在应用公园制作手机。这里就以应用公园为例,教您熟悉手机APP制作流程,手把手教你制作一款自己心仪的手机APP。

第一步:了解自己想要制作一款怎么的手机APP。是软硬件结合?游戏类?商城类?新闻资讯类?互动类?聊天类?还是团购类、同城服务类?送餐类?企业展示类?

每一个类别的APP开发差异非常大,主要就是不同类型所需要的功能支持。对自己想要做的APP有个大致的了解,但是这一步很多人都没搞清楚,大部分人都存在一个大概模糊的创意、想法阶段。

第二步:了解自己想要做的APP的基础功能,划分板块。

对基础功能的了解、板块的分类,上手最快的方法就是:查看市场上类似的APP进行借鉴。

第三步:界面及交互的设计

界面及交互的设计,可以直接使用“墨刀”。可以先设计一个大概,后期不断丰富。

第四步:APP功能的开发制作

APP功能的开发直接使用应用公园就可以了。应用公园把市场上常见的APP功能进行拆分组合,你不需要懂任何编程技术,只需哟安把需要的功能挑选出,组合搭配一个,就能迅速组建出一个手机APP。

手机APP制作具体流程:

1、打开应用公园的官网,点击“开始制作”,注册登录;

2、应用公园为在线APP制作平台,所以不需要下载任何东西,直接进入制作页面就可以;

3、应用公园目前有两种模式:

(1)主题模式:应用公园平台上,已经很多已经制作完善的手机APP软件,可以直接当做模板使用,仅需要把里面的文字图片进行替换,就可以快速制作一款APP。

(2)自由模式:就像拼图一样,把需要的功能自由组合搭配一下,就可以创造一款独一无二的手机APP。

每一个功能控件的具体功能,都通过后台自动配置。

4、手机APP打包

制作完善后,在应用公园平台直接点击制作完成,就会自动打包成手机安装程序。

5、应用发布上架

在应用公园平台直接申请应用发布,通过联网后,就可以联网使用了。

6、下载管理、运营

应用公园提供运营管理后台、下载站点、下载二维码、手机管理助手等APP相关产品,一站式服务,自动配置,免去多次开发成本,而且后期的功能、内容的更新迭代自己既可以搞定,也不需要具体的编程技术。

2024年养生平台软件开发 篇7

本文分享自华为云社区《

API Arts 全探秘 | 华为云新一代设计管理平台,功能强大!-云社区-华为云》,作者:华为云PaaS服务小智 。

API设计不一致?API没地方归档?云服务开发项目合作低效?...... ?

华为云为广大开发者带来最新API设计管理平台:API Arts。它集API设计、API调试、API看护、API发布于一身,支持云服务开发团队内外团队协作 。

一、为什么选择使用API Arts设计接口?

四大突出优势,它值得!1、基于国际广泛使用的OpenAPI 规范

底层数据通过OpenAPI-Specification承载,开发者最熟悉的数据结构,OpenAPI-Specification全特性承载。[可视化表单]-[编辑文本]自由切换,满足你挑剔的设计“味蕾”。2、接口设计“坏味道”拦截

提供业界领先的类CleanCode智慧识别(接口规范性检查[*]、兼容性检查[*]),确保不同设计人员下的同一接口设计风格,版本不兼容设计提前拦截。3、强大的接口调试

Postman有的我们全都有!云化数据存储,连通云能“飘”到的everywhere!支持Postman数据一键导入,常见类型的接口请求、前置/后置脚本[*]、Cookie/Session 全局共享[*]。支持 javascript、java 等多种语言调试代码生成。4、接口在线Mock功能

API Arts内置Mock.js,你在Mock.js上能做的在这里都可以在线完成。二、基本使用1、创建一个API

API Arts采用Postman风格的表单接口设计方式,在此基础上API Arts支持path参数自动识别回填,还原OpenAPI 的原生体验,来吧一起体验你的第一个API!

2、文本下的接口设计

API Arts支持Swagger editor! 支持Swagger editor! 支持Swagger editor! 它为你带来了一种更加灵活的接口设计体验。

3、规范性告警

喂喂喂~!兄弟留步,你设计的接口不符合业界通行的接口设计规范。

4、在线调试

API Arts支持多功能下的在线调试,application/xml、图片二进制数据,它都能展示。

5、Mock

API Arts支持高级Mock创建功能,在这里你可以设置枚举值、返回体的长度、默认值、格式等等。

除此之外API Arts还可以将你设计的接口直接对接到云化自动化测试,24h全天候监测你的接口,业务异常短信即时通知。同时你也可以将你设计好的API发布到华为云API中心,开发者可以发现并使用您的API项目。华为云API中心—— 汇聚千行百业API资产,共建繁荣API经济!

现在一起创建你的第一个API!

戳立即体验华为云API Arts→

API Arts-华为云

备注:[*] API Arts后续迭代升级支持特性

关注#华为云开发者联盟#,第一时间了解华为云新鲜技术~

2024年养生平台软件开发 篇8

随着低代码概念的火热,相关的技术及产品也是层出不穷,不管是老牌行业软件厂商还是开放平台厂商,不论是互联网行业企业SAAS软件新动向还是新兴的低代码创新产品服务,都在第一时间打出了低代码这张牌。各个平台虽然各有优势,但大多又是自成体系,真正在企业方面进行选择时却一时难以抉择。对于低代码平台的功能评价,以及各平台组件间的互联互通则成为了市场上迫切需求。

在刚刚过去的2022年,在平台互联互通的方面,阿里在第二季度推出开源引擎 “LowCodeEngin”,国家队信通院也应市场需求在第四季度推出了《低代码开发平台通用技术要求》,针对低代码相关概念以及功能点新型了进一步的规范和梳理。

在全面开放的大背景下,CodeBee团队,推出了基于开源LGPL协议 低代码引擎(LowCodeEngine)。

二,产品组成

低代码引擎,由界面设计器、OneCode通码框架以及,DSM领域建模工具 三部分支撑体系相互支撑的部分来组成,通过开放标准的组件协议完成相互继承支持。

(1) 视图设计器引擎

设计器,采用的是拖拽引擎+插件的构造模型,用户可以通过开放的低代码协议编写插件。支持JS和JAVA两种扩展语言。样式构建提供了标准CSS3编辑器,支持事件动作以及函数动态扩展。支持自定义函数库扩展,支持阿里字体图片等资源库。

(2)OneCode通码编辑器:

OneCode,是一款为低代码语言定制的统一语法体系,采用Java语言作为原生语言,运行在JVM环境中,用户可以通过Java语言与低代码应用进行交互,也可以通过Java语言完成引擎插件,调用代码引擎完成编译部署应用。

(3)DSMEngine领域建模:

DSMEngine 是独立于设计器的OneCode建模工具,平台采用领域建模模型,支持仓储管理、聚合应用,以及CodeFactory输出为OneCode代码编译输出。

DSM模型支持三种建模模式:

(1)CodeFrist 代码优先模式

通过Java语言 OneCode 模式原生撰写。

(2)ViewFrist 视图优先

通过视图引擎拖拽完成前期的交互模型,反向完成DSM模型。

(3)ModuleFrist 模型优先

通过数据库,微服务接口等模式,构建基础模型。

DSM逆向转换

通过不同方式完成的DSM模型,可以通过OneCode 在视图、Code 、以及Module 三种方式之间自由切换,利用相关工具完成仿真调试以及部署运行。

DSM第三方语言转换

DSM出码模块采用了独立的模板架构,除了可以以OneCode形式存在,还可以支持独立的出码模块定制独立的第三方语言模型输出。

三,设计器引擎介绍(1)功能概览

(2)设计器布局

设计器引擎是低代码引擎前端的SDK,面向开发人员,他本身不是一套可以适应所有人的低代码平台,而是技术开发人员可以通过扩展插件,周边生态,完成自身业务的定制,实现协同办公,CRM客户管理、物联网平台等通过低代码能力赋能业务系统(3)物料库

"物料":低代码引擎的核心目的之一是建设跨行业的低代码框架,而每个行业由于其应用的领域不同,使用的人员以及方法方式不同,在一些底层组件方面会有会有加大差距。比如:政府业务中会大量使用的非规则表单元素,企业应用中各个行业自有的图标体系,物联网行业大量的设备图标图片以及实时联网图。(4)组件库

组件定义:可以用于低代码平台的组件,包含了搭建体验增强配置,可以在设计器中 进行拖拽、配置等操作。有两种分类方式:按照场景可以分为基础组件、业务组件、图 表组件、布局组件和复合组件等。通常用户可以自主完成相关设定,并根据业务特点在视图引擎中进行自行扩展(后续章节中会演示实际注册示例)

组件通常是一组完成特定功能的可交互组件,根据不同的引擎模式,在引擎中完成加载渲染配置。

配置示例

Code转换

组件调试导入

(5)支撑管理

公共资源导入

(6)样式体系

DOM树透视样式盒

DOM树透视

添加图片注释,不超过 140 字(可选)

配图示例代码

{ "alias":"BuildTreeTreeView", "key":"xui.UI.TreeView", "host":this, "properties":{ "name":"BuildTreeTreeGrid", "items":[ { "borderType":"none", "caption":"JAVA树", "dynDestory":false, "hidden":false, "id":"getBuildTree", "imageClass":"bpmfont bpmgongzuoliuxitongpeizhi", "tagVar":{ } } ], "iniFold":false, "dynDestory":true }, "CS":{ "KEY":{ "color":"#000000", "font-weight":"lighter", "border-radius":"0px 2px 0px 0px" }, "BAR":{ "font-family":"tahoma,geneva,sans-serif" } } }

动态样式盒

添加图片注释,不超过 140 字(可选)

代码配置示例

{ "alias":"xui_ui_cssbox1", "key":"xui.UI.CSSBox", "host":this, "properties":{ "className":"xui-css-ame", "normalStatus":{ "color":"#eeeeee", "border-radius":"6px", "box-shadow":"inset 0px 1px 0px #87C1DD", "text-shadow":"0 1px 0 #297192", "$gradient":{ "stops":[ { "pos":"0%", "clr":"#4BA3CC" }, { "pos":"70%", "clr":"#3289B2" } ], "type":"linear", "orient":"T" }, "cursor":"pointer", "border-top":"solid #3899C6 1px", "border-right":"solid #3899C6 1px", "border-bottom":"solid #3899C6 1px", "border-left":"solid #3899C6 1px" }, "hoverStatus":{ "border-radius":"0px 3px 0px 0px" } } }(7)事件框架

添加图片注释,不超过 140 字(可选)

配置代码示例:

{ "alias":"BuildTreeTreeView", "key":"xui.UI.TreeView", "host":this, "properties":{ "name":"BuildTreeTreeGrid", "items":[ { "borderType":"none", "caption":"JAVA树", "dynDestory":false, "hidden":false, "id":"getBuildTree", "imageClass":"bpmfont bpmgongzuoliuxitongpeizhi", "tagVar":{ } } ], "iniFold":false, "dynDestory":true }, "events":{ //获取数据 "onGetContent":{ "actions":[ { "args":[ "{page.ReloadChild.setQueryData()}", null, null, "{args[1].tagVar}", "" ], "desc":"设置扩展参数", "method":"setQueryData", "redirection":"other:callback:call", "target":"ReloadChild", "type":"control" } ] }, //数据项选择 "onItemSelected":{ "actions":[ { "args":[ "{args[1].id}" ], "conditions":[ { "symbol":"non-empty", "right":"", "conditionId":"_nonempty_{args[1].className}", "left":"{args[1].className}" } ], "desc":"删除存在页", "method":"removeItems", "target":"BuildTreeTab", "type":"control" } ] } } }(8)动作调用

功能概览

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

配置实例代码:

{ "args":[ "{page.ReloadChild.setQueryData()}", null, null, "{args[1].tagVar}", "" ], "desc":"设置扩展参数", "method":"setQueryData", "redirection":"other:callback:call", "target":"ReloadChild", "type":"control" }, { "args":[ "{page.ReloadChild.invoke()}", "temp", null, "{args[2]}" ], "desc":"子节点装载", "method":"invoke", "redirection":"other:callback:call", "return":false, "target":"ReloadChild", "type":"control" } ] }(9)插件体系

插件是嵌入到设计器的内置管理功能,不同于业务组件,插件更多的是系统极的扩展功能。在实际应用中也比较常见,如系统运行期我们要根据用户不同显示不同内容数据,这就需要权限插件来完成,而业务用户在使用过程也会涉及到大量的业务和数据的流转功能而这些功能则需要动态的来管理页面的属性,甚至动态生成注入页面。这就需要流程插件来辅助完成。 在实际开发过程中特别是真实项目的工程开发时,我们往往要针对工程方面的进行很多的宏操作比如批量的修改特定组件样式,按特定条件检索复制组件特性,自动添加动作等等。这些都需要类似的宏插件来完成,OneCode 在整合后端运行以及服务部署方面也是按插件体系来规范的。分别针对,DSM建模提供了DSM插件,发布管理及运行提供了OPS插件, API整合方面提供了代理服务器插件,系统插件部分采用全开源方式共有需要的用户自行修改方便用户后期可以参照插件体系来修改自身的插件体系。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

四,OneCode中后台

OneCode 本身基于JAVA语言体系,是在Java Spring 注解基础上的一套扩展子集,可以在普通额Java程序中通过添加注解,来实现前后台与低代码引擎的交互处理。(1)渲染原理

(2)示例展示

添加图片注释,不超过 140 字(可选)(3)完整模块OneCode

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

@Controller @RequestMapping("/admin/org/person/") @MethodChinaName(cname = "人员管理", imageClass = "spafont spa-icon-login") @Aggregation(sourceClass = PersonService.class) public class PersonAPI { @RequestMapping(method = RequestMethod.POST, value = "Persons") @GridViewAnnotation() @ModuleAnnotation( caption = "人员列表") @APIEventAnnotation(autoRun = true, bindMenu = {CustomMenuItem.reload}) @ResponseBody public ListResultModel<List<PersonGridView>> getPersons(String orgId) { ListResultModel<List<PersonGridView>> resultModel = new ListResultModel<List<PersonGridView>>(); List<Person> personList = new ArrayList<>(); try { personList = getService().getPersons(orgId); resultModel = PageUtil.getDefaultPageList(personList, PersonGridView.class); } catch (Exception e) { e.printStackTrace(); } return resultModel; } @MethodChinaName(cname = "人员信息") @RequestMapping(method = RequestMethod.POST, value = "PersonInfo") @NavGroupViewAnnotation() @APIEventAnnotation(callback = {CustomCallBack.ReloadParent, CustomCallBack.Close}, bindMenu = {CustomMenuItem.editor}) @DialogAnnotation @ModuleAnnotation(caption = "编辑人员信息", width = "800", height = "550") @ResponseBody public ResultModel<PersonNav> getPersonInfo(String personId) { ResultModel<PersonNav> resultModel = new ResultModel<PersonNav>(); return resultModel; } @MethodChinaName(cname = "添加人员") @RequestMapping(method = RequestMethod.POST, value = "AddPersonView") @FormViewAnnotation @APIEventAnnotation(bindMenu = {CustomMenuItem.add}, autoRun = true) @Disabled @ModuleAnnotation( caption = "添加人员信息", width = "370", height = "260") @ResponseBody public ResultModel<AddPerson> AddPerson(String orgId) { ResultModel<AddPerson> resultModel = new ResultModel<AddPerson>(); CtPerson person = new CtPerson(); person.setOrgId(orgId); resultModel.setData(new AddPerson(person)); return resultModel; } @MethodChinaName(cname = "保存成员信息") @RequestMapping(value = {"savePerson"}, method = {RequestMethod.GET, RequestMethod.POST}) @APIEventAnnotation(callback = {CustomCallBack.ReloadParent, CustomCallBack.Close}, bindMenu = CustomMenuItem.save) public @ResponseBody ResultModel<Boolean> savePerson(@RequestBody CtPerson person) { ResultModel<Boolean> userStatusInfo = new ResultModel<Boolean>(); getService().savePerson(person); return userStatusInfo; } @MethodChinaName(cname = "删除人员") @RequestMapping(value = {"delPerson"}, method = {RequestMethod.GET, RequestMethod.POST}) @APIEventAnnotation(callback = {CustomCallBack.Reload, CustomCallBack.ReloadParent}, bindMenu = CustomMenuItem.delete) public @ResponseBody ResultModel<Boolean> delPerson(String iD) { ResultModel<Boolean> userStatusInfo = new ResultModel<Boolean>(); getService().delPerson(iD); return userStatusInfo; } PersonService getService() { return EsbUtil.parExpression(PersonService.class); } } @PageBar // @GridAnnotation(event = CustomGridEvent.editor, customService = PersonService.class, customMenu = {GridMenu.Add, GridMenu.Delete, GridMenu.Reload}) public class PersonGridView { @CustomAnnotation(pid = true, hidden = true) String orgId; @CustomAnnotation(pid = true, hidden = true) String roleId; @CustomAnnotation(uid = true, hidden = true) String iD; @CustomAnnotation(caption = "用户名称", required = true) String name; @CustomAnnotation(caption = "账户信息", required = true) String account; @CustomAnnotation(caption = "邮箱") String email; @InputAnnotation(inputType = InputType.password) @CustomAnnotation(caption = "密码", required = true) String password; @CustomAnnotation(caption = "手机") String mobile; @CustomAnnotation(caption = "部门名称") String orgName; public PersonGridView(Person person) { this.iD = person.getID(); this.orgId = person.getOrgId(); this.name = person.getName(); this.account = person.getAccount(); this.password = person.getPassword(); this.mobile = person.getMobile(); this.email = person.getEmail(); Org org = null; try { org = OrgManagerFactory.getOrgManager().getOrgByID(person.getOrgId()); this.orgName = org.getName(); } catch (OrgNotFoundException e) { e.printStackTrace(); } } } @BottomBarMenu @FormAnnotation(bottombarMenu = {CustomFormMenu.Save, CustomFormMenu.Close}, customService = PersonService.class, col = 1) public class AddPerson { @CustomAnnotation(uid = true, hidden = true) String iD; @CustomAnnotation(caption = "用户名称", required = true) String name; @CustomAnnotation(pid = true, hidden = true) String orgId; @CustomAnnotation(pid = true, hidden = true) String roleId; @CustomAnnotation(caption = "账户信息", required = true) String account; @CustomAnnotation(caption = "邮箱") String email; @InputAnnotation(inputType= InputType.password) @CustomAnnotation(caption = "密码", required = true) String password; @CustomAnnotation(caption = "手机") String mobile; public AddPerson(Person person) { this.iD = person.getID(); this.orgId = person.getOrgId(); this.name = person.getName(); this.account = person.getAccount(); this.password = person.getPassword(); this.mobile = person.getMobile(); this.email = person.getEmail(); } }

(五)DSM建模工具

DSM建模,百度百科是这样定义的:

特定域建模(Domain-specific modeling,DSM),是一种设计和开发系统(如电脑软件)的软件工程方法学。它系统使用图形化特定域语言(DSL),表现系统的各个方面。DSM的语言倾向于支持比通用建模语言更高级别的抽象,因此需要较少的努力和更少的底层细节来描述特定系统。

低代码技术应用可以通过提供更强的工具,提升程序员的代码效率。但其本质上也是一种特定场景下的软件描述方法,这个层面上低码技术和DSM思想是有其相通相同之处的,产品在设计之初就将DSM建模语言的构建以及工具支撑作为了底层支撑设计,将应用中积累的建模应用采用DSM的思想进行重构整合在底层打通。

我们将现有的资源类的工具,统一到仓库应用中,包括统一的物料库导入,统一的数据源(数据库,外部存储)管理。并通代码工厂的辅助构建统一到Contenxt(OneCode)的当前环境技术模型中。在各个特定的业务模型中,完成独立的聚合实体整合,以及相应的服务管理,并为相关的方法模型透视管理服务。在OneCode 的基础之上,摆脱传统的 代码模板与生成机制。实现代码向模型的逆向能力。将DSM设计能贯穿整个项目开发实施管理过程,打造结余真实的代码之上的建模语言。(1)仓储建模

(2)聚合应用

(3)视图工厂

(4)支撑域

添加图片注释,不超过 140 字(可选)(5)流程建模

添加图片注释,不超过 140 字(可选)六,应用集成(1)内核最小集合集成(JS离线应用)

设计器内核完全采用JS脚本完成,是独立的前端框架。内核版本包括:RAD 页面设计编辑器,xui运行运行脚本两部分。

添加图片注释,不超过 140 字(可选)

最小集合仅包含,页面设计及器以及插件框架。

设计界面集成:

下载开源包后,运行debug.html 即可打开编辑器。

添加图片注释,不超过 140 字(可选)

集成到自由应用时只需要,引入两个关键的js lib包即可集成到自有的应用。

<script type="text/javascript" src="/RAD/xui.js"></script> <script type="text/javascript" src="/RAD/index.js"></script> <script type="text/javascript"> var lang = (function () { var dft = 'zh-cn', map = { 'en-us': 'en', 'zh-cn': 'cn' }, n = navigator, l = (n.language || n.browserLanguage || '').toLowerCase(); return map[l] || map[dft]; })(); xui.include("xui.Locale." + lang + '.doc', "/RAD/Locale/" + lang + ".js", function () { xui.Module.load('RAD', function () { SPA = this; }, lang); });

运行支撑环境集成:打开:

设计完成的文件再应用环境中引入如下代码即可

<script type="text/javascript" src="/xui/js/xui-all.js"></script> <script type="text/javascript" src="./xuiconf.js"></script> <script type="text/javascript" src="/xui/Locale/cn.js"></script>(2)团队协作版

团队协作版是独立的服务器部署版,在官网上申请账号后,可以在独立的服务器上运行。启动后通过浏览器访问 http://demoserver:83 用管理员 sysadmin 登录:

首次登录 会进入默认的工程配置界面

配置工程

关联API

设定团队管理员

猜你喜欢