usemodelgroup.js 7.4 KB
Newer Older
doc_wei's avatar
doc_wei 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

layui.config({
	base: basePath, 
	version: skyeyeVersion
}).extend({
    window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'codemirror', 'xml', 'clike', 'css', 'htmlmixed', 'javascript', 'nginx',
           'solr', 'sql', 'vue'], function (exports) {
	var index = parent.layer.getFrameIndex(window.name);
	winui.renderColor();
	var $ = layui.$,
		form = layui.form,
		table = layui.table;
	
	var jsCreateClick = false;//是否检索生成
	
	var list = [];//存储模板生成集合
	//集合内容
doc_wei's avatar
doc_wei 已提交
19
	//{
doc_wei's avatar
doc_wei 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33
	//		modelId:模板id,
	//		content:当前内容,
	//		tableName:表名,
	//		groupId:模板所属分组id
	//		modelName:模板别名
	//		modelContent:默认内容
	//		fileName:文件名称
	//		modelType:模板类型
	//}
	
	matchingLanguage();
	form.render();
	form.on('submit(formSearch)', function (data) {
        if (winui.verifyForm(data.elem)) {
34
        	var subData = [].concat(list);
doc_wei's avatar
doc_wei 已提交
35 36 37 38 39 40 41
        	if(subData.length == 0){
        		winui.window.msg('请先生成转换结果', {icon: 2,time: 2000});
        	}else if($('#modelList').find('li').length > subData.length){
        		winui.window.msg('您有模板未生成代码文件,请检查。', {icon: 2,time: 2000});
        	}else{
        		for(var i = 0; i < subData.length; i++){
        			subData[i].modelContent = "";
42
					subData[i].modelText = "";
doc_wei's avatar
doc_wei 已提交
43
        		}
44
        		AjaxPostUtil.request({url: reqBasePath + "codemodel014", params: {jsonData: encodeURIComponent(JSON.stringify(subData))}, type: 'json', method: 'POST', callback: function(json){
doc_wei's avatar
doc_wei 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57
        			if(json.returnCode == 0){
        				winui.window.msg('保存成功,请前往生成历史下载。', {icon: 1,time: 2000}, function(){
	        				parent.layer.close(index);
	        				parent.refreshCode = '0';
        				});
        			}else{
        				winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
        			}
        		}});
        	}
        }
        return false;
	});
doc_wei's avatar
doc_wei 已提交
58 59

	// 展示模板内容的对象
doc_wei's avatar
doc_wei 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
	var editor = CodeMirror.fromTextArea(document.getElementById("modelContent"), {
        mode : "text/x-java",  // 模式
        theme : "eclipse",  // CSS样式选择
        indentUnit : 2,  // 缩进单位,默认2
        smartIndent : true,  // 是否智能缩进
        tabSize : 4,  // Tab缩进,默认4
        readOnly : true,  // 是否只读,默认false
        showCursorWhenSelecting : true,
        lineNumbers : true,  // 是否显示行号
        styleActiveLine: true, //line选择是是否加亮
        matchBrackets: true,
    });
	
	var textEditor = CodeMirror.fromTextArea(document.getElementById("textContent"), {
        mode : "text/x-java",  // 模式
        theme : "eclipse",  // CSS样式选择
        indentUnit : 2,  // 缩进单位,默认2
        smartIndent : true,  // 是否智能缩进
        tabSize : 4,  // Tab缩进,默认4
        readOnly : true,  // 是否只读,默认false
        showCursorWhenSelecting : true,
        lineNumbers : true,  // 是否显示行号
        styleActiveLine: true, //line选择是是否加亮
        matchBrackets: true,
    });
	
doc_wei's avatar
doc_wei 已提交
86
	// 加载模块
doc_wei's avatar
doc_wei 已提交
87 88 89 90 91
	showGrid({
	 	id: "modelList",
	 	url: reqBasePath + "codemodel013",
	 	params: {groupId: parent.rowId},
	 	pagination: false,
doc_wei's avatar
doc_wei 已提交
92 93
	 	template: getFileContent('tpl/codemodelgroup/codeModelListItem.tpl'),
	 	ajaxSendLoadBefore: function(hdb, json){
doc_wei's avatar
doc_wei 已提交
94 95 96 97 98 99 100 101 102 103 104 105 106
	 	},
	 	options: {
	 		'click .selModel':function(index, row){//查看模板
	 			var mode = returnModel(row.modelType);
	        	if (!isNull(mode.length)) {
					editor.setOption('mode', mode);
				} 
	        	editor.setValue(row.modelContent);
	        	layer.open({
		            id: '模板内容',
		            type: 1,
		            title: '模板内容',
		            shade: 0.3,
doc_wei's avatar
doc_wei 已提交
107
		            area: ['90vw', '90vh'],
doc_wei's avatar
doc_wei 已提交
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
		            content: $("#modelContentDiv").html(),
		        });
	 		},
	 		'click .selResult':function(index, row){//查看转换结果
	 			if(jsCreateClick){
	 				var s = getListItem(list, row.id);
	 				if(isNull(s)){
	 					winui.window.msg('请先转换模板', {icon: 2,time: 2000});
	 				}else{
	 					var mode = returnModel(row.modelType);
	 					if (!isNull(mode.length)) {
	 						textEditor.setOption('mode', mode);
	 					} 
	 					textEditor.setValue(s.content);
	 				}
	 			}else{
	 				winui.window.msg('请先选择数据库表名检索生成', {icon: 2,time: 2000});
	 			}
	 		}
	 	},
	 	ajaxSendAfter:function(json){
doc_wei's avatar
doc_wei 已提交
129
			list = [].concat(json.rows);
130 131 132 133
			$.each(list, function (i, item){
				item.modelId = item.id;
				item.groupId = parent.rowId;
			});
doc_wei's avatar
doc_wei 已提交
134 135 136
	 	}
	});
	
doc_wei's avatar
doc_wei 已提交
137
	// 加载数据库表列表
doc_wei's avatar
doc_wei 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150
	showGrid({
	 	id: "tableName",
	 	url: reqBasePath + "database002",
	 	params: {},
	 	pagination: false,
	 	template: getFileContent('tpl/template/select-option.tpl'),
	 	ajaxSendLoadBefore: function(hdb){
	 	},
	 	ajaxSendAfter:function(json){
	 		form.render('select');
	 	}
	});
	
doc_wei's avatar
doc_wei 已提交
151
	// txtcenter DIV内的输入框内容变化事件
doc_wei's avatar
doc_wei 已提交
152
	$("body").on("keyup", ".txtcenter input", function(e){
doc_wei's avatar
doc_wei 已提交
153
		transformResult();
doc_wei's avatar
doc_wei 已提交
154 155
	});
	
doc_wei's avatar
doc_wei 已提交
156
	// 检索数据
doc_wei's avatar
doc_wei 已提交
157
	$("body").on("click", "#jsCreate", function(e){
doc_wei's avatar
doc_wei 已提交
158 159
		AjaxPostUtil.request({url: reqBasePath + "codemodel011", params: {tableName: $("#tableName").val()}, type: 'json', callback: function(data){
			if(data.returnCode == 0) {
doc_wei's avatar
doc_wei 已提交
160
				codeDocUtil.setTableColumnData(data.rows);
doc_wei's avatar
doc_wei 已提交
161 162 163 164 165 166 167 168 169 170 171 172
				AjaxPostUtil.request({url: reqBasePath + "codemodel012", params: {tableName: $("#tableName").val()}, type: 'json', callback: function(json){
					if(json.returnCode == 0) {
						jsCreateClick = true;
						textEditor.setValue('');
						$("#tableZhName").val(json.bean.tableName);
						$("#tableFirstISlowerName").val(json.bean.tableFirstISlowerName);
						$("#ControllerPackageName").val(json.bean.ControllerPackageName);
						$("#ServicePackageName").val(json.bean.ServicePackageName);
						$("#ServiceImplPackageName").val(json.bean.ServiceImplPackageName);
						$("#DaoPackageName").val(json.bean.DaoPackageName);
						$("#tableISlowerName").val(json.bean.tableISlowerName);
						$("#tableBzName").val(json.bean.tableBzName);
doc_wei's avatar
doc_wei 已提交
173

doc_wei's avatar
doc_wei 已提交
174
						transformResult();
doc_wei's avatar
doc_wei 已提交
175
						winui.window.msg('检索成功', {icon: 1,time: 2000});
doc_wei's avatar
doc_wei 已提交
176 177 178 179 180 181 182 183
					}else{
						winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
					}
				}});
			}else{
				winui.window.msg(data.returnMessage, {icon: 2,time: 2000});
			}
		}});
doc_wei's avatar
doc_wei 已提交
184
	});
doc_wei's avatar
doc_wei 已提交
185 186 187 188

	function transformResult() {
		$.each(list, function (i, row){
			var content = codeDocUtil.replaceModelContent(row.modelContent);
189 190 191 192 193 194 195
			var modelType = row.modelType;
			var fileName = "";
			if(modelType == 'Java' || modelType == 'xml') {
				fileName = $("#tableZhName").val() + row.modelName;
			}else{
				fileName = $("#tableFirstISlowerName").val() + row.modelName;
			}
doc_wei's avatar
doc_wei 已提交
196
			$("#modelList").find("li").find("label[relation='" + row.id + "']").html(fileName);
doc_wei's avatar
doc_wei 已提交
197 198 199 200
			var s = {
				modelId: row.id,
				content: content,
				tableName: $("#tableName").val(),
201
				fileName: fileName
doc_wei's avatar
doc_wei 已提交
202 203 204 205
			};
			insertListIn(list, s);
		});
	}
doc_wei's avatar
doc_wei 已提交
206 207 208 209 210 211 212 213 214
	
	/**
	 * 向集合中添加新元素
	 */
	function insertListIn(list, s){
		var isIn = false;
		for(var i = 0; i < list.length; i++){
			if(list[i].modelId == s.modelId){//存在则替换
				list[i].content = s.content;
215 216
				list[i].tableName = s.tableName;
				list[i].fileName = s.fileName;
doc_wei's avatar
doc_wei 已提交
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
				isIn = true;
				break;
			}
		}
		if(!isIn){//不存在
			list.push(s);
		}
	}
	
	/**
	 * 获取集合中的一项
	 */
	function getListItem(list, id){
		for(var i = 0; i < list.length; i++){
			if(list[i].modelId == id){
				return list[i];
			}
		}
		return null;
	}
	
    exports('usemodelgroup', {});
});