H5模板代码一键生成器

H5模板代码一键生成器

2021-01

技术交流或商业合作:QQ(591033633      微信(15858293899)

演示地址见文中

目录

1、 功能介绍 2

2、 准备工作 5

3、 演示地址及步骤 5

3.1、后台数据接口图形化定义 6

3.2、后台数据接口线上调试 6

3.3、前端页面模板定义 7

3.4、生成页面demo解析 11

 

  1. 功能介绍

笔者作为多年的资深开发,深知调试前端UI是后端开发人员最惧怕的事,并且厌倦了无止境的Ctrl+C和Ctrl+V工作了,最近闲暇时光,想想能不能把一些繁杂的体力活(Ctrl+C和Ctrl+V)给释放出来?baidu了下发现网上h5代码一键生成器有很多但能同时绑定业务数据及前端展现的功能框架少之又少,于是花了2周时间研究了这个h5代码一键生成,实现同步绑定业务数据及前端UI模板自动生成页面功能,现将开发过程贡献出来,本文末将给出案例访问地址。

工具使用效果图:

 

生成页面效果:

 

 

请无视版面丑陋,版面与模板html及css设计有关,开发者为非专业UI。

 

  1. 准备工作

本工具开发基于本人前期开发的《通用数据接口管理系统》之上,具体见:

文档见

https://gitee.com/jeely/CenterDataInterWeb/blob/master/%E9%80%9A%E7%94%A8%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9FCDI%E4%BB%8B%E7%BB%8D.docx

源码见:

https://gitee.com/jeely/CenterDataInterWeb/tree/master

 

步骤分三步:

  1. 图形化定义数据接口(见上文档);
  2. 网上选择一套UI静态框架下载;
  3. 将下载的UI静态框架进行模板分析并加入模板库;
  4. 设计工具自行绑定UI模板和数据接口并自动生成对应目标代码;
  1. 演示地址及步骤

http://124.71.168.14/cdi_demo/

登录账号密码:guest/1

 

3.1、后台数据接口图形化定义

 

本部分具体理解见《通用数据接口管理系统CDI介绍.docx》

下载地址:

https://gitee.com/jeely/CenterDataInterWeb/blob/master/%E9%80%9A%E7%94%A8%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9FCDI%E4%BB%8B%E7%BB%8D.docx

3.2、后台数据接口线上调试

 

3.3、前端页面模板定义

 

本测试案例中已经存在部分模板,暂不允许新添模板操作;

3.3、业务数据添加操作

 

可自行添加各类业务数据,本案例中暂不允许添加新业务库表操作;

3.4、h5静态框架

本测试案例中第一个框架添加了完成模板,建议选择第一个框架实现自动生成代码操作;

3.4H5代码一键生成

 

也可单独加载页面:

http://124.71.168.14/cdi_CenterData/web/tables/set_app_tag.html

操作见下图

 

点击“”可点连接 弹出页面,登录之后将地址

效果见下图:

案例效果下载demo地址及解析:http://124.71.168.14/cdi_CenterData/cdi_app1.rar

下载之后浏览器可直接加载访问:

....本地相关文件夹地址/main/login.html

 

3.4、生成页面demo解析

 

说明文件:

common.js 为通用js函数

template_tag.js 为模板文件

TemplageIFaceLink.json 为菜单通用json

 

biz_name为demo自动生成的页面代码文件

biz_name/biz_name.html页面文件

页面中可以找到

 

                    <section class="trans-sec container">

<!--tagAAAC001 begin-->

                        <h4 class="title-main mt-0 ">tagAC001标题</h4>

                        <ul class="transaction-list list-unstyled mb-0" id="tagAAAC001" name="tagAAAC001">

                        </ul>

<!--tagAAAC001 end-->

                    </section>

为页面加载数据容器

/*************************分割线**************************/

biz_name/biz_name.json 文件,为数据接口与页面模板要素关联信息

 

ReadTemplateIFaceLinkPage(

{

"A01_A00002": {

"tagAAAC001_template": {

"$1003": "ENT_CODE",

"$1004": "CREATE_DATE",

"$1001": "URL_PATH",

"$1002": "ENT_NAME",

"$1005": "REGIONCODE",

"$1006": "MAIN_ID"

},

"A01_A00002_ENCODE": {

"URL_PATH": "1"

}

}

}

)

/*************************分割线**************************/

biz_name/biz_name.js 为本页面动态加载数据js,各类通用函数在common.js中定义

 

var APP_USER_ZXY = {};

//业务逻辑数据开始

function biz_start()

{

/*biz begin*/

Get_APP_USER_ZXY(null);

/*biz end*/

}

 

/*biz step begin*/

function Get_APP_USER_ZXY(data){

if(data != null)

APP_USER_ZXY = data;

if(jsonReadCommonRes != null && typeof(jsonReadCommonRes) != "undefined" && jsonReadCommonRes.hasOwnProperty("A01_A00002"))

{

A01_A00002_0(jsonReadCommonRes);

}

else if(APP_USER_ZXY != null && typeof(APP_USER_ZXY) != "undefined" && APP_USER_ZXY.hasOwnProperty("A01_A00002"))

{

A01_A00002_0(APP_USER_ZXY);

}

else

{

//请传入对应接口参数

var inputdata = {"param_name":"A01_A00002","session_id":session_id,"login_id":login_id};

get_ajax_baseurl(inputdata,"A01_A00002_0");

}

}

 

function A01_A00002_0(input){

data = input.A01_A00002;

var AAA_PATH = "";

var s_result = "1";

var error_desc = "";

for (var key in data[0]) {

if (key == 's_result')

{

s_result = data[0].s_result;

error_desc = data[0].error_desc;

}

}

if (s_result == "0") {

swal("获取数据异常!", "获取数据异常!:A01_A00002"+error_desc, "warning");

}

else

{

$.each(data,function (i, obj)

{

var template_temp = set_template(tagAAAC001_template,"tagAAAC001_template",obj,"A01_A00002").replace("$AAA",AAA_PATH);

$("#tagAAAC001").append(template_temp);

});

}

layer.close(ly_index);

}

 

/*biz step end*/

 

$(document).ready(function () {

//页面初始化

//init_page();

});

 

window.onpageshow = function(e){

if(e.persisted || (window.performance.navigation.type == 2)){

is_history_back = 1;

}

else{

is_history_back = 0;

}

if(jsonReadCommonRes != null && typeof(jsonReadCommonRes) != "undefined" &&  jsonReadCommonRes.hasOwnProperty("T01_sel_t_app_menu_bottom"))

{

init_result(jsonReadCommonRes);

}

else

{

init_page();

}

}

### Vue H5 页面生成器组件库推荐 以下是几个适合用于生成 H5 页面的 Vue 组件库或工具,它们能够满足不同场景下的需求: #### 1. **鲁班H5** 鲁班H5 是一个基于 Vue2.0 开发的页面生成工具,支持通过拖拽的方式快速构建 H5 页面[^1]。其主要特点如下: - 支持编辑器功能,包括参考线、吸附线以及组件对齐等功能。 - 提供丰富的组件系统,例如文字、按钮、表单输入框、图片、背景音乐和视频等。 - 增强功能方面,允许上传 PSD 文件并一键转换为 H5 页面,同时集成了第三方无版权图片搜索功能。 #### 2. **VUE 全局组件实现方案** 如果需要在 H5 中添加全局组件(如联系客服的功能),可以通过 Vue 的插件机制或者 Vuex 来管理状态[^2]。具体方法如下: - 使用 `Vue.prototype` 注册全局属性或方法。 - 利用事件总线来处理跨组件通信。 - 示例代码: ```javascript // 定义全局组件 Vue.component('global-contact', { template: `<button @click="goToWeChat">联系我们</button>`, methods: { goToWeChat() { window.location.href = 'https://weixin.qq.com'; } } }); ``` #### 3. **可视化编辑器 - vue-dnd-vis-editor** 这是一个专注于可视化的 HTML5 编辑器,采用 Vue 和 TypeScript 技术栈开发[^3]。它提供了以下核心特性: - 拖放操作:用户可通过简单的拖拽动作完成页面布局设计。 - 动态配置:支持动态加载模板和自定义样式。 - 扩展性强:开发者可以根据业务需求灵活扩展功能模块。 #### 4. **其他实用工具与资源** 除了上述提到的具体框架之外,在实际项目中还可以借助一些辅助性的前端工具提升效率[^4]: - **图片压缩服务**: 如 tinypng 或者 smushit ,帮助优化网页加载速度。 - **地图集成 API**: 腾讯地图 SDK 可轻松嵌入到 Vue 项目当中,并且支持 iframe 方式调用。 - **文档预览插件**: KKView 提供多格式文件在线查看能力,适用于资料分享类应用场景。 综上所述,针对不同的开发目标可以选择合适的解决方案组合起来使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值