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版本全新发布-更 ...
随机推荐
- Oracle的正则函数之regexp_like
前言:最近接到一个让人肝疼的需求,用到了正则表达式去匹配字符串,顺便巩固一下oracle几个正则表达式的用法 例子: 找出为带小数点后两位的数字,不论正负.比如3.12,-4.56这样的.而3.145 ...
- C语言模拟实现多态
一.多态的主要特点 1.继承体系下.继承:是面向对象最显著的一个特性.继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性 和行为,并能扩展新的能力,已有类被称为父类/基类,新增加的类被称作子 ...
- win彩 百款皮肤任选任换.可视化
- 读《Java并发编程的艺术》(一)
离开博客园很久了,自从找到工作,到现在基本没有再写过博客了.在大学培养起来的写博客的习惯在慢慢的消失殆尽,感觉汗颜.所以现在要开始重新培养起这个习惯,定期写博客不仅是对自己学习知识的一种沉淀,更是在督 ...
- Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
原文发表于 2013 年 8 月 28 日 由 三石 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现.在Java SE 7的API中,多了ForkJoin ...
- 二叉树遍历 C#
二叉树遍历 C# 什么是二叉树 二叉树是每个节点最多有两个子树的树结构 (1)完全二叉树——若设二叉树的高度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第h层有叶子结点,并 ...
- OpenCV探索之路(十一):轮廓查找和多边形包围轮廓
Canny一类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但它没有将轮廓作为一个整体.所以要将轮廓提起出来,就必须将这些边缘像素组装成轮廓. OpenCV中有一个很强大的函数,它可以从 ...
- ionic2 使用 cordova 打包成安卓apk
准备工作: 1.下载java sdk 配置好java 环境 2.下载android sdk 跟 android studio 并配置好环境 1.查看平台支持,添加android平台 首先命令提示符进入 ...
- HourRank 19
https://www.hackerrank.com/contests/hourrank-19/challenges 第一题略. 第二题是nim博弈,问删掉一个区间的石子,使得先手败的方案有几种,明显 ...
- OpenCV探索之路(十五):角点检测
角点检测是计算机视觉系统中用来获取图像特征的一种方法.我们都常说,这幅图像很有特点,但是一问他到底有哪些特点,或者这幅图有哪些特征可以让你一下子就识别出该物体,你可能就说不出来了.其实说图像的特征,你 ...