ICG_System之全自动代码生成器V2.0版本
大家好!
早在2014年本人就已经利用业余时间开发自己的ICG之代码生成器系统、依靠bootstrap的崛起本人也在不断完善此应用、目的是为了减少开发人员的工作量、
减少不必要的复制粘贴操作,该系统已经到了V2.0版本;目前功能如下:
server端:创建项目、创建表、设计器功能、生产【js、html、ajax、dal、sql】等文件、枚举管理、依靠用户输入的字段名称自动转换为英文字段等功能;
client端:数据查询、文件上传、int float 字符型等类型的数据校验、必填数据项的校验、数据分页、数据新增、数据修改等功能;
该系统运行环境:window+IIS+framwork+MYSQL/MSSQL
接下来介绍一下本人开发的系统的架构图:
看图说话了、、系统的大致结构是这样的:
server段生成代码流程是:
分享一下主要设计器的界面:
生成的主要的JS代码:
var userid = "df9d3eb8-48d7-45bc-bfcf-06f471a7344d", tiptime = 2000, pagesize = 10, TESTTABID = -1; //当前主ID var SLarray = []; //clear data obj var endtime = ""; //common data begin var myidarray = []; //for-----code myidarray.push("Number"); myidarray.push("name"); myidarray.push("sex"); myidarray.push("mobiletel"); myidarray.push("QQNumber"); myidarray.push("studyclass"); $(function () { jQuery("#divadd").validationEngine(); //验证 $("select").trigger("liszt:updated"); $("select").chosen(); //新增 $("#btnadd").click(function () { StudentID = -1; for (var s = 0; s < myidarray.length; s++) { var fileobj = $("#" + myidarray[s]).html(); if (fileobj == null || fileobj == undefined || fileobj == "") { $("input[myid='" + myidarray[s] + "']").val(""); } else { $("#" + myidarray[s]).attr("path", ""); $("#" + myidarray[s]).html(""); $("#" + myidarray[s]).parent().children("a").hide(); } fileobj = null; } $("label[name='labsting']").hide(); $("input").show(); $("#btnsave").show(); $("#btnedit").hide(); $("#btncancel").show(); $("a[name='adelete']").hide(); $("select").val("请选择"); $("select").trigger("liszt:updated"); $("select").chosen(); $("#divadd").show(); $("#divlist").hide(); }); //自动搜索(文本框) $("input[name='icginputsearch']").change(function () { var obj = $("input[name='icginputsearch']"); var para = []; endtime = ""; if (obj != null) { $(obj).each(function () { if ($(this).val() != "") para.push({ "key": $(this).attr("myid"), "val": $(this).val() }); }); } obj = $("select[name='selectcontorl']"); if (obj != null) { $(obj).each(function () { para.push({ "key": $(this).attr("myid"), "val": $(this).find("option:selected").text() }); }); } getjsonserach(para, endtime); }); //自动搜索(下拉框) $("select[name='selectcontorl']").change(function () { var obj = $("input[name='icginputsearch']"); var para = []; endtime = ""; if (obj != null) { $(obj).each(function () { if ($(this).val() != "") para.push({ "key": $(this).attr("myid"), "val": $(this).val() }); }); } obj = $("select[name='selectcontorl']"); if (obj != null) { $(obj).each(function () { para.push({ "key": $(this).attr("myid"), "val": $(this).find("option:selected").text() }); }); } getjsonserach(para, endtime); }); function getjsonserach(para, endtime) { $.post("userajax/StudentOP.aspx?" + new Date().getTime() + "" + Math.random(), { "type": "searchbyjson", "data": JSON.stringify(para), "pagesize": pagesize, "endtime": endtime }, function (data) { if (data == "nodata") { alerttip("无此条件数据!"); $(".odd").remove(); $("#btnmore").hide(); $("#tbodydatalist").html(""); return false; } var obj = $.parseJSON(data); if (obj.length < pagesize) { $("#btnmore").hide(); } if (endtime == "") $("#tbodydatalist").html(""); for (var i = 0; i < obj.length; i++) { $("#tbodydatalist").append("<tr id='tr" + obj[i].ID + "'><td class='center'>" + obj[i].Number.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].name.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].sex.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].mobiletel.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].QQNumber.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].studyclass.replace(" 0:00:00", "") + "</td><td class='center'><a class='btn btn-success' onclick=domains('view','" + obj[i].ID + "')><i class='icon-zoom-in icon-white'></i>View</a> <a class='btn btn-info' onclick=domains('edit','" + obj[i].ID + "')><i class='icon-edit icon-white'></i>Edit</a> <a class='btn btn-danger' onclick=domains('delete','" + obj[i].ID + "')><i class='icon-trash icon-white'></i> Delete</a></td></tr>"); if (i == (obj.length - 1)) { endtime = obj[i].CreatTime; } } }); } //取消新增 $("#btncancel").click(function () { $("#divadd").hide(); $("#divlist").show(); }); //保存方法 $("#btnsave").click(function () { if (!jQuery("#divadd").validationEngine("validate")) { return false; } var temparray = []; for (var s = 0; s < myidarray.length; s++) { if (myidarray[s] == "sex") { temparray.push($("select[myid='" + myidarray[s] + "']").find("option:selected").attr("myval")); continue; } var fileobj = $("#" + myidarray[s]).html(); if (fileobj == null || fileobj == undefined || fileobj == "") { temparray.push($("input[myid='" + myidarray[s] + "']").val()); } else { temparray.push($("#" + myidarray[s]).attr("path") + "#$@#@" + $("#" + myidarray[s]).html()); //path+name } fileobj = null; } $.post("userajax/StudentOP.aspx?" + new Date().getTime() + "" + Math.random(), { "type": "add", "myidarray": temparray.toString(), "userid": userid, "StudentID": StudentID }, function (data) { endtime = ""; //时间默认值 StudentID = -1; if (data.length == 36) { success("保存成功!"); for (var s = 0; s < myidarray.length; s++) $("input[myid='" + myidarray[s] + "']").val(""); temparray = null; } $("#divadd").hide(); $("#divlist").show(); getlist(); //获取前20条 }); }); //页面第一次加载进行渲染 function load() { var obj = $("select[name='SLData']"); $(obj).each(function () { $(this).chosen(); }); } //加载页面渲染 load(); getlist(); $("#btnmore").click(function () { getlist(); }); //编辑 $("#btnedit").click(function () { $(this).hide(); $("#btnsave").show(); $("label[name='labsting']").hide(); $("input").show(); $(".divfeifeisl").show(); $("a[name='adelete']").show(); ckisexts(); }); })//dom end //getone function getone(id) { StudentID = id; $("#divadd").show(); $("#divlist").hide(); if (edittype == "view") { $("label[name='labsting']").show(); $("#btnedit").show(); $("input").hide(); $("#btnsave").hide(); $("a[name='adelete']").hide(); $(".divfeifeisl").hide(); $("#btncancel").show(); } else { $("label[name='labsting']").hide(); $("#btnedit").hide(); $("input").show(); $("#btnsave").show(); $("a[name='adelete']").show(); $(".divfeifeisl").show(); $("#btncancel").show(); } $("a[name='labsh']").show(); $.post("userajax/StudentOP.aspx?" + new Date().getTime() + "" + Math.random(), { "type": "getone", "id": id }, function (data) { var obj = $.parseJSON(data); if (obj == null || obj == "") { ckisexts(); return; } for (var s = 0; s < myidarray.length; s++) { if (obj[0][myidarray[s]] == "") continue; //附件 if (obj[0][myidarray[s]].indexOf("#$@#@") > -1) { $("#" + myidarray[s]).html(obj[0][myidarray[s]].split("#$@#@")[1]); //name $("#" + myidarray[s]).attr("path", obj[0][myidarray[s]].split("#$@#@")[0]); //path } else { $("input[myid=" + myidarray[s] + "]").val((obj[0][myidarray[s]]).replace(" 0:00:00", "")); $("label[labid='" + myidarray[s] + "']").html((obj[0][myidarray[s]]).replace(" 0:00:00", "")); try { $("#selecttype" + myidarray[s]).val((obj[0][myidarray[s]]).replace(" 0:00:00", "")); $("#selecttype" + myidarray[s]).trigger("liszt:updated"); $("#selecttype" + myidarray[s]).chosen(); } catch (ex) { } } } ckisexts(); }); }//获取10行数据 function getlist() { //$("#tbodydatalist").html(""); $.post("userajax/StudentOP.aspx?" + new Date().getTime() + "" + Math.random(), { "type": "getlist", "pagesize": pagesize, "endtime": endtime }, function (data) { if (data == "nodata") { alerttip("无数据、您可以新增数据!"); $(".odd").remove(); $("#btnmore").hide(); return false; } var obj = $.parseJSON(data); if (obj.length < pagesize) { $("#btnmore").hide(); } if (endtime == "") $("#tbodydatalist").html(""); for (var i = 0; i < obj.length; i++) { $("#tbodydatalist").append("<tr id='tr" + obj[i].ID + "'><td class='center'>" + obj[i].Number.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].name.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].sex.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].mobiletel.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].QQNumber.replace(" 0:00:00", "") + "</td><td class='center'>" + obj[i].studyclass.replace(" 0:00:00", "") + "</td><td class='center'><a class='btn btn-success' onclick=domains('view','" + obj[i].ID + "')><i class='icon-zoom-in icon-white'></i>View</a> <a class='btn btn-info' onclick=domains('edit','" + obj[i].ID + "')><i class='icon-edit icon-white'></i>Edit</a> <a class='btn btn-danger' onclick=domains('delete','" + obj[i].ID + "')><i class='icon-trash icon-white'></i> Delete</a></td></tr>"); if (i == (obj.length - 1)) { endtime = obj[i].CreatTime; } } }) } //domain //检查附件是否有值 function ckisexts() { var obja = $("a[name='labsh']") $(obja).each(function () { if ($(this).html().length < 2) { $(this).parent().children("a").hide(); } }); } var edittype = "view"; function domains(type, id) { if (type == "delete") { if (confirm("确定删除吗?") == false) return; $.post("userajax/StudentOP.aspx?" + new Date().getTime() + "" + Math.random(), { "type": "delete", "id": id, "userid": userid }, function (data) { if (data == "0") { error("您没有权限删除此条数据"); return; } else if (data == "1") { $("#tr" + id).remove(); success("删除成功!"); } }); } else if (type == "view") { SLarray = []; edittype = "view"; getone(id); } else if (type == "edit") { SLarray = []; edittype = "edit"; getone(id); } } //判断是否为第二次点击 function SLexists(myenumid) { for (var i = 0; i < SLarray.length; i++) { if (SLarray[i] == myenumid) return true; } return false; } var imgarr = ["jpg", "png", "bmp", "jpeg", "gif"]; function ebin(info) { //普通文本 if (info.indexOf("#$@#@") == -1) return info; var isimg = false; info = info.toLowerCase(); var tmp = info.split("#$@#@")[1].split(".")[1];//last chars for (var i = 0; i < imgarr.length; i++) { if (imgarr[i] == tmp) { return "<img name='imgusr' src='ajax/" + info.split("#$@#@")[0] + "' alt='" + info.split("#$@#@")[1] + "' style='height:24px;width:24px' />" } } //doc docx xls xlsx pdf ... return "<img name='imgsys' src='img/ico/" + tmp + ".png' alt='cc.name' style='height:24px;width:24px'/>"; } /////----------------------common JS------------------------------------- //错误 var timeoutlength = 3000; var palce = "bottomRight"; function error(name) { $.noty({ "text": name, "layout": palce, "type": "error", "timeout": timeoutlength }); return; //asyncbox.tips(name, 'error', tiptime); } //成功 function success(name) { $.noty({ "text": name, "layout": palce, "type": "success", "timeout": timeoutlength }); return; //asyncbox.tips(name, 'success', tiptime); } //消息 function alerttip(name) { $.noty({ "text": name, "layout": palce, "type": "success", "timeout": timeoutlength }); //aler return; //asyncbox.tips(name, 'alert', tiptime); } //等待 function waittips() { //asyncbox.tips("please wait...!", 'wait', tiptime * 3); }
生成的主要的MYSQL代码:
DROP TABLE IF EXISTS `Student`; create table `Student` ( `ID` varchar(36) primary key not null , `Number` varchar(20) not null , `name` varchar(30) not null , `sex` varchar(500) null , `mobiletel` varchar(50) null , `QQNumber` varchar(15) null , `studyclass` varchar(50) null , `CreatTime` datetime ); ALTER TABLE `Student` CHANGE COLUMN `CreatTime` `CreatTime` TIMESTAMP NULL DEFAULT now() ;
图片上传的有点多! 最终生成的demo如下:
http://182.92.155.97:8096/stu.html
http://182.92.155.97:8096/tch.html
有什么好的建议请联系我、谢谢!
以上。
ICG_System之全自动代码生成器V2.0版本的更多相关文章
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...
- RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)
最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...
- go-wingui 2018 全新 v2.0 版本发布,包含重大更新!
go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...
- 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本
原文:示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本 一.目的:封装了一些控件到自定义的控件库中,方便快速开发 二.实现功能: 基本实现常 ...
- 百度离线地图API开发V2.0版本
全面介绍,请看下列介绍地址,改写目前最新版本的百度V2.0地图,已全面实现离线操作,能到达在线功能的95%以上 http://api.jjszd.com:8081/apituiguang/gistg. ...
- Inno Setup 精灵显示插件 InnoFairy (V2.0 版本)
原文 http://restools.hanzify.org/article.asp?id=111 一个如影随形的小精灵会令到你的安装程序更加人性化. 就是这样一个功能的Inno Setup插件, 希 ...
- vue过滤器在v2.0版本用法
vue 1.x 的写法在 vue 2.x版本已经废除 vue 1.x 写法 <body> <div id="app"> {{message | capit ...
- v2.0版本小程序开发心得(代码之外)
总结一些代码之外的事情: 做优先该做的事情 分清主次,一天只有24小时,人的精力也是有限的,而且经常性的是,在某个时间爆发性的产生了大量的问题.这些问题集中的产生,需要一个一个的解决,但是人的精力是有 ...
- RDIFramework.NET平台代码生成器V2.8发布-更新于2014-12-31(提供下载)
RDIFramework.NET平台代码生成器V2.8发布 更新于2014-12-31 注:已经发布了新版本,请转新版本下载: RDIFramework.NET平台代码生成器V3.0版本全新发布-更 ...
随机推荐
- OC比C中,新增的数据类型
布尔型 BOOL 以及 boolean 1)这两者都是判断类型 2)在C底层这两者都是一个 char类型 占一个字符大小 3)BOOL 的取值为 YES / NO 其中NO =0 YES =1 4)b ...
- Excel 数据导入(OleDb)
@using (Html.BeginForm("Student", "Excel", FormMethod.Post, new { enctype = &quo ...
- 学习笔记:javascript内置对象:数学对象
1.数学对象 -Math 2.对象常用属性 3.常用函数 4.对数值类型数据保留小数的函数
- [刷题]算法竞赛入门经典(第2版) 5-10/UVa1597 - Searching the Web
题意:不难理解,照搬题意的解法. 代码:(Accepted,0.190s) //UVa1597 - Searching the Web //#define _XIENAOBAN_ #include&l ...
- Java学习笔记——浅谈数据结构与Java集合框架(第三篇、Map)
桃李春风一杯酒,江湖夜雨十年灯 --寄黄几复 之前图上写错了,是Hashtable类.t是小写的,它是个很古老的类,以至于命名都没有那么规范.. HashMap HashMap就是存储key-valu ...
- CI Weekly #19 | 关于软件开发模型的思考,以及最新 CI/CD 实践分享
五月一来,夏天便悄然而至.flow.ci 也带来了几个新的变化,帮你进一步优化开发工作流.一起来看看这几个重点功能: 支持 iOS 项目 Xcode8.3 构建 iOSer 们重点来了,flow.ci ...
- 第 8 章 MySQL 数据库 Query 的优化
前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化进行相应的分析. ...
- 第 15 章 可扩展性设计之 Cache 与 Search 的利用
前言: 前面章节部分所分析的可扩展架构方案,基本上都是围绕在数据库自身来进行的,这样是否会使我们在寻求扩展性之路的思维受到“禁锢”,无法更为宽广的发散开来.这一章,我们就将跳出完全依靠数据库自身来改善 ...
- 消息:SQL Server 2017(vNext)的第三个公开的CTP(社区技术预览版)发布了
今天看到了一个新闻,跟大家分享一下,有兴趣的可以去尝试一下. SQL Server 2017 CTP3于5月23日发布了,详细版本号是6.7.55.0. 大家可以去安装试试.在下载页面,目前是SQL ...
- Redis多实例及主从搭建
主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...