freemarker渲染表单数据

freemarker表单框架

(function(scope){
	var CardPager = Class.extend({
		init: function(filter, url){
			this.filter = filter;
			this.url = url;
		},
		render: function(afterRender){
			var _self = this;
			_self.initThirdPlugin(); 		//初始化第三放插件
			
			//plugins 这个可以不传,但是请不要传空数组过来
			var plugins = _self.plugins || ['form'];
			layui.use(plugins,function(){
				debugger;
				_self.initEvent();
				_self.initLayuiPlugin();	//初始化layui组件		
				//渲染表单数据
				debugger;
				var params = {};
					params[_self.primaryKey] = _self.primaryValue;
				$.ajaxReq(_self.dataUrl, params, function(data){
					if(data && data.status == WebConst.SUCCESS && data.data){
						debugger;
						var cardForm = $("#"+_self.filter+"Form"),
							formDoms = cardForm[0];
						cardForm.setValues(data.data);
						//处理富文本赋值问题
						for(i=0,len=formDoms.length; i<len; i++){
							var idom = formDoms[i],
								idomName = idom.name,
								tagName = idom.tagName,
								idomId = idom.id,
								keditor = _self[idomName];
							if(idom.tagName == "TEXTAREA" && keditor){
								keditor.html(data.data[idomName]);
							}
						}	
						layui.form.render();
					}
					if(afterRender){
						afterRender(data,_self);
					}
				},WebConst.AJAX_FORM,null,false);
				
				
			});
			
			_self.initFiles();
		},
		
		initFiles: function(){
			var _self = this,
				attachParam = {};
				attachParam.entityId = _self.primaryValue;
				attachParam.entityName = _self.entityName;
			$.ajaxReq(CONTEXT_PATH + "/attach/entity/files", attachParam, function(data){
				if(data && data.status == WebConst.SUCCESS && data.data){
					var files = data.data;
					$("div[class='layui-upload']").each(function(index,obj){
						var containerId = $(obj).attr('id'),
							attachField = containerId.split("_")[0],
							tableBody = containerId + "_table";
						for(var i=0,len=files.length; i<len; i++){
							var cFile = files[i];
							if(cFile.fieldCode == attachField){
								 var attachImg = "";
								 if(!$.isEmptyStr(cFile.fileName) && (cFile.fileName.indexOf('docx')!=-1 
										 || cFile.fileName.indexOf('doc')!=-1))
								 {
									 //attachImg = '<td><img src="' + CONTEXT_PATH +"platform/common/images/word.png" /></td>';
									 attachImg = '<td><img src="'+CONTEXT_PATH+ '/platform/common/images/word.png"' +'width="100" height="60" style="cursor:pointer;"/></td>';
								 }
								 else if(!$.isEmptyStr(cFile.fileName) && cFile.fileName.indexOf('pdf')!=-1)
								 {
									 attachImg = '<td><img src="'+CONTEXT_PATH+ '/platform/common/images/pdf.png"' +'width="100" height="60" style="cursor:pointer;"/></td>';
								 }
								 else
								 {
									 attachImg = '<td><img src="' + CONTEXT_PATH + '/attach/showPicture?attachmentId=' 
					          		 + cFile.attachmentId + '&isThumbnail=true" width="100" height="60" style="cursor:pointer;"/></td>';
								 }
								 var $tr = $(['<tr id="upload-'+ cFile.attachmentId +'" attatchmentId="'+ cFile.attachmentId +'">'
							          , attachImg
							          ,'<td>'+ cFile.fileName +'</td>'
							          ,'<td>'+ cFile.fileSize +' kb</td>'
							          ,'<td>'+ cFile.createDate +'</td>'
							          ,'<td>'
							            ,'<a class="layui-btn layui-btn-mini demo-reload" href="'+  CONTEXT_PATH +'/attach/download?attachmentId='+ cFile.attachmentId +'">下载</a>&nbsp;&nbsp;'
							            ,'<button class="layui-btn layui-btn-mini layui-btn-danger">删除</button>'
							          ,'</td>'
							        ,'</tr>'].join(''));
								  $tr.find('button').on('click',function(){
									  var rlt = $.getData(CONTEXT_PATH + "/attach/delete/updflag",{'attachmentId':$(this).closest("tr").attr('attatchmentId')});
									  if(rlt && rlt.status == '1000'){
										  $(this).closest("tr").remove();
									  }
									  return false;
								  });
								 $("#" + tableBody).append($tr);
							}
						}
					})
				}
			},WebConst.AJAX_FORM,null,false);
		},
		initThirdPlugin: function(){
			
		},
		initLayuiPlugin: function(){
			var _self = this;
		},
		initEvent: function(){
			var _self = this;
			layui.form.on('submit(' + _self.filter + ')', function(data){
				//处理 	KindEditor 富文本取值问题
				var formDoms = data["form"];
				for(i=0,len=formDoms.length; i<len; i++){
					var idom = data["form"][i],
						idomName = data["form"][i].name,
						tagName = idom.tagName,
						idomId = data["form"][i].id,
						keditor = _self[idomName];
					if(idom.tagName == "TEXTAREA" && keditor){
						keditor.sync();
						data.field[idomName]=base64.encode($('#'+idomId ).val());
					}
				}
				var retData = $.getData(_self.url, data.field);
				
				if(retData.status!=1000 || retData.status == WebConst.FAIL){
					if(!$.isEmptyStr(retData.message))
					{
						layer.msg(retData.message, {icon: 5});
						return false;
					}
					layer.msg('保存失败', {icon: 5});
					return false;
				}
				//如果有附件,上传附件
				var uploadAttachmentIds = $("#uploadAttachmentIds").data("uploadAttachmentIds"),
					entityId = retData.data;
					$("input[name='"+ _self.primaryKey +"']").val(retData.data);
					if(!uploadAttachmentIds && data.field["uploadAttachmentIds"]){
						uploadAttachmentIds = data.field["uploadAttachmentIds"];
					}
				if(true && uploadAttachmentIds && entityId){
					var params = {};
					if(uploadAttachmentIds instanceof Array)
					{
                        params.attachmentIds = uploadAttachmentIds.join(",");
					}
					else
					{
                        params.attachmentIds = uploadAttachmentIds;
					}
					params.entityId = entityId;
					$.getData(CONTEXT_PATH + "/attach/updateEntityId", params);
				}
				 $("#uploadAttachmentIds").data("uploadAttachmentIds",null);
				//新增之前回调函数
				if(_self.afterSave && $.isFunction(_self.afterSave)){
					_self.afterSave(retData);
				}else{
					layer.msg('保存成功', {icon: 6});
				}
				return false;
			});
			if (_self.act == "read") {
				$("#images_list_table").find("td").eq(4).text("");//隐藏附件的下载和删除按钮
			}
		}
	});
	scope.CardPager = CardPager;
})(window);

打开表单页面并传递参数

			 if(data.checkColumnId!="95"){
				 layer.msg("新闻不能修改");
				 return;
			 }
			 var url = $(curDom).attr("url")+"?subjectMgtId="+data[0].subjectMgtId;
				var title = "新闻";
		        var layIndex = layer.open({
		        	type: this.cardPopStyle,
		        	title: title,
		        	maxmin: true,
					shadeClose: false, //开启遮罩关闭
		        	area : this.cardSize,
		        	content: this.cardPopStyle == LayuiPopStyle.LAYUI_CONTENT_LAYER ? $.loadHtml(url) : url,
		        	success: function(layero){
		        		layero = _self.cardPopStyle == LayuiPopStyle.LAYUI_CONTENT_LAYER ? layero : layer.getChildFrame('body', layIndex);
		        		if(_self.cardPopStyle == LayuiPopStyle.LAYUI_CONTENT_LAYER){
		        			layero.setValues(data);
		        			layui.form.render();
		        		}
		        	},
		        	end: function(){		//销毁列表回调方法
		        		if(undefined == $(".layui-laypage-btn")[0])
		        		{
		        			layui.table.reload(_self.tableId)
		        		}
		        		else
		        		{
		        			$(".layui-laypage-btn")[0].click()
		        		}
		        	/*	if ($.isFunction(_self.initTree))
						{
							_self.initTree();
						}*/
		        		if(_self.closeCard && $.isFunction(_self.closeCard)){
		        			return _self.closeCard();
		    			}
		        		return false;
		        	},
		        	cancel: function(){ 	//点击左上角关闭按钮回调方法
		        		if(_self.cardPopStyle == LayuiPopStyle.LAYUI_IFRAME_LAYER){  					//从列表调用卡片页面数据
		        			var frameId = document.getElementById('layui-layer' + layIndex).getElementsByTagName("iframe")[0].id,
		        			closeCallback = $('#'+frameId)[0].contentWindow.beforeClose;
			        		if(closeCallback && $.isFunction(closeCallback)){
			        			 return closeCallback();
			        		}
		        		}
		        	}
		        	
		        });
		 }

打开的表单页面获取传来的参数

@RequestMapping(value="/subjectMgt/subjectClassifyList")
	public String showSubjectClassifyList(Model model,@RequestParam(value="subjectMgtId",required=false)String subjectMgtId){
		model.addAttribute("subjectMgtId", subjectMgtId);
		return "/pbPreach/subjectMgt/showSubjectMgtClassifyList";
	}



<input type="hidden" id="subjectMgtId" name="subjectMgtId" value="${subjectMgtId}"lay-verify="" autocomplete="off" class="layui-input">

表单页面新增把传递过来的参数带过去

	add: function(curDom, event){
		debugger;
		var _self = this;
		var subjectMgtId = $("#subjectMgtId").val();
		//新增之前回调函数
		if(_self.beforeAdd && $.isFunction(_self.beforeAdd)){
			_self.beforeAdd();
		}
		
		var url = $(curDom).attr("url") + "?act=" + WebConst.ADD;
		var title = $(curDom).attr("title");
		layer.open({
			type: this.cardPopStyle,
			title: title,
			area: this.cardSize,
			maxmin: true,
			shadeClose: false, //开启遮罩关闭
			content: this.cardPopStyle == LayuiPopStyle.LAYUI_CONTENT_LAYER ? $.loadHtml(url) : url,
			success : function(layero){
				layui.form.render();
			},
        	end: function(){		//销毁列表回调方法
        		/*layui.table.reload(_self.tableId)*/
        		if(undefined == $(".layui-laypage-btn")[0])
        		{
        			layui.table.reload(_self.tableId)
        		}
        		else
        		{
        			$(".layui-laypage-btn")[0].click()
        		}
        		if(_self.closeCard && $.isFunction(_self.closeCard)){
        			return _self.closeCard();
    			}
        		return false;
        	},
        	cancel: function(){
        		
        	}
		});
	}

freemarker提交表单参数

<button class="layui-btn layui-btn-big" lay-submit="" lay-filter="checkAdviceNew">保存</button>

		var _self = this;
		
		layui.form.on('submit(checkAdviceNew)', function(data){
				//处理 	KindEditor 富文本取值问题
			var formDoms = data["form"];
			for(i=0,len=formDoms.length; i<len; i++){
				var idom = data["form"][i],
					idomName = data["form"][i].name,
					tagName = idom.tagName,
					idomId = data["form"][i].id,
					keditor = _self[idomName];
				if(idom.tagName == "TEXTAREA" && keditor){
					keditor.sync();
					data.field[idomName]=base64.encode($('#'+idomId ).val());
				}
			}
			
			
				var retData = $.getData(_self.url, data.field);
				
				debugger
				if(retData.status!=1000 || retData.status == WebConst.FAIL){
					layer.msg('保存失败', {icon: 5});
					return false;
				}
				//如果有附件,上传附件
				var uploadAttachmentIds = $("#uploadAttachmentIds").data("uploadAttachmentIds"),
					entityId = retData.data;
					$("input[name='"+ _self.primaryKey +"']").val(retData.data);
					if(!uploadAttachmentIds && data.field["uploadAttachmentIds"]){
						uploadAttachmentIds = data.field["uploadAttachmentIds"];
					}
				if(true && uploadAttachmentIds && entityId){
					var params = {};
					if(uploadAttachmentIds instanceof Array)
					{
	                    params.attachmentIds = uploadAttachmentIds.join(",");
					}
					else
					{
	                    params.attachmentIds = uploadAttachmentIds;
					}
					params.entityId = entityId;
					$.getData(CONTEXT_PATH + "/attach/updateEntityId", params);
					
				}
				 $("#uploadAttachmentIds").data("uploadAttachmentIds",null);
				//新增之前回调函数
				if(_self.afterSave && $.isFunction(_self.afterSave)){
					_self.afterSave(retData);
				}else{
					layer.msg('保存成功', {icon: 6});
					var subjectClassifyId = $("#subjectClassifyId").val();
					window.location.href=CONTEXT_PATH + "/subjectClassify/showSubjectClassifyNewsList?act=" + WebConst.EDIT+"&entityId="+subjectClassifyId;
				}
				return false;
			
		});

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/82050012