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> '
,'<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;
});