You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
7.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#parse("vms/$version/common/variable/head.vm")
#parse("vms/$version/common/comment/ClassDesc.vm")
;!function(){
var $ = layui.jquery
,layer = parent.layer === undefined ? layui.layer : top.layer
,form = layui.form;
var mc_layui_component=us_all.mc_layui_component
,mc_util = us_all.mc_util
,mc_children = us_all.mc_children
,mc_verify = us_all.mc_verify
,mc_constant = us_all.mc_constant
,mc_rmp = us_all.mc_rmp
;
var common_config = {
tableNameRest:"${tableRealName}_rest",
tableName:"${tableRealName}",
moduleName:"${tableRealName}",//sys_module的moduleName
form:{
#set($sortedNodeList=$CreateVmUtil.sortFormItem($nodeList))
#set($dou = 0)
#foreach($node in $sortedNodeList)
#if($StringUtil.isNotBlank($node.formItem.selectValue))
#set($inputType = $node.formItem.inputType)
#if($inputType == $MagicConstant.INPYT_TYPE_IMG_FILE() || $inputType == $MagicConstant.INPYT_TYPE_KINDEDITOR()||$inputType == $MagicConstant.INPYT_TYPE_DATE() || $inputType == $MagicConstant.INPYT_TYPE_SLIDER()||$inputType == $MagicConstant.INPYT_TYPE_RATE() || $inputType == $MagicConstant.INPYT_TYPE_COLOR_PICKER()||$inputType == $MagicConstant.INPYT_TYPE_CODE())
#if($dou >0)
,#else #end${node.dbField.javaField}:{
renderConfig:{}//您可以自定义个性配置 遇到相同的则以dom配置为准 大部分属性已推荐设置在元素标签上 这里您可以自定义事件 $TableFieldUtil.jsonToOneLine($node.formItem.selectValue)
}
#set($dou = $dou + 1)
#end
#end
#end
},
event:{
select2Change:function (elem,name,value) {//外键下拉更新事件
}
}
}
var tableNameRest = common_config.tableNameRest;
var moduleName = common_config.moduleName;
var obj = {
render:function () {//入口
this.ajaxGetEntityDataAndAutoSetFormUiValue();
this.submit();
},
//初始化表单
ajaxGetEntityDataAndAutoSetFormUiValue : function () {
var _t = this;
var identify = mc_util.getParameter('identify')//从url中检测主键
if(identify!=null && identify!=''){//断定是编辑操作
$.getJSON('admin/'+tableNameRest+"/get/"+identify,{date:new Date().getTime()},function (data) {//获取此实体详情数据
if(data.flag){
var entity = data.data
if(entity && entity!=null){
//把请求到的实体内容自动设置到表单中去
mc_util.mappingEntityToFormUiValue($("body"),entity);
//禁用外键编辑区域:只有当从更多信息点击进来 才会禁用 单表操作不会执行
mc_children.disabledFormParentArea();
//权限 注意xxx-edit.html页面刚进来 是被隐藏的(body标签的layui-hide样式) 这样当权限执行完 才进行一一显示
mc_rmp.paintBody(moduleName,function () {
var verifyData = mc_layui_component.bindMagicalCoderLayUiComponentFromDetail(common_config);//返回富文本的校验 为了能同步隐藏域
_t.layuiFormVerify(verifyData);
})
}else {
layer.msg("此条记录已被删除,请重新查询!");
}
}else {
layer.msg("查询失败:"+data.desc);
}
})
}else {//新增操作
//禁用外键编辑区域:只有当从更多信息点击进来 才会禁用 单表操作不会执行
mc_children.disabledFormParentArea();
//权限
mc_rmp.paintBody(moduleName,function () {
var verifyData =mc_layui_component.bindMagicalCoderLayUiComponentFromDetail(common_config);//返回富文本的校验 为了能同步隐藏域
_t.layuiFormVerify(verifyData);
$("button[type='reset']").removeClass('layui-hide');//把重置按钮显示处理
})
}
},
//layui的表单校验规则
layuiFormVerify:function (verifyData) {//verifyData 里如果由内容则是富文本的校验同步
var verifyData =
$.extend(verifyData,{//这里可以自定义layui的校验规则 自行扩展 参考官网文档 https://www.layui.com/doc/modules/form.html
})
form.verify(verifyData);
}
,
//表单提交
submit : function () {
//重置按钮把外键的默认值清空
$("button[type='reset']").click(function(){
$("."+mc_constant.MC_LAY_CLASS_NAME.FORM.foreign_select2).val(null).trigger('change');//固定写法 把搜索下拉重置空值
$("."+mc_constant.MC_LAY_CLASS_NAME.FORM.foreign_select2).each(function (id, item) {
$(this).attr("data-value","")
});
return true;
});
//表单校验 在_bindFormDom方法
form.on("submit(save)",function(data){
// 实际使用时的提交信息
var postData = data.field;
//开关单独处理
$('body').find("input[lay-skin='switch']").each(function (index,item) {
var name = $(item).attr("name")
var field = data.field
postData[name] = field[name] ? ((field[name]+''=='on' || field[name]+'' == 'true') ? 1 : 0):0;//开关请用0或1来设置值
})
//清理上次不通过样式提醒
for(var name in postData){
var dom = $("[name='"+name+"']")
mc_verify.clearDangerClass(dom)
}
//MagicalCoder扩展的表单校验
for(var name in postData){
var dom = $("[name='"+name+"']")
var value = postData[name]
if(!mc_verify.verify(value,dom)){
return false;
}
}
//弹出loading
var index = top.layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});
$.post('admin/'+tableNameRest+'/save',postData,function(res){
top.layer.close(index);
if(res.flag){
parent.layui.$(".search_btn").click()//parent代表父窗口因为详情页是iframe弹出来的让列表页重新执行一次搜索
//关闭当前层
var pidx = parent.layui.layer.index
parent.layui.layer.close(pidx-1);
}else {
top.layer.msg("保存失败:"+res.desc);
}
})
return false;
})
}
}
obj.render();
}();