<!DOCTYPE html>
|
<html class="x-admin-sm">
|
|
<head>
|
<meta charset="UTF-8">
|
<title>${title}</title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
|
<link rel="stylesheet" href="./css/font.css">
|
<link rel="stylesheet" href="./css/xadmin.css">
|
<script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script>
|
<script type="text/javascript" src="./js/xadmin.js"></script>
|
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
|
<script src="js/http.js" type="text/javascript" charset="utf-8"></script>
|
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
|
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
<!--[if lt IE 9]>
|
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
<![endif]-->
|
</head>
|
<body>
|
<div class="layui-fluid">
|
<div class="layui-row">
|
<form class="layui-form" lay-filter="add">
|
|
<#list rowsList as value>
|
<div class="layui-form-item">
|
<label for="L_appCode" class="layui-form-label">
|
<#if value.params.require??&&value.params.require>
|
<span class="x-red">*</span>
|
</#if>
|
${value.params.title}</label>
|
<div class="layui-input-block">
|
<#switch value.type>
|
<#case "CheckBox"><#include "/admin/form/checkBox.ftl" ><#break>
|
<#case "Img"> <#include "/admin/form/img.ftl"><#break>
|
<#case "Password"> <#include "/admin/form/password.ftl"><#break>
|
<#case "RadioGroup"> <#include "/admin/form/radioGroup.ftl"><#break>
|
<#case "Select"> <#include "/admin/form/select.ftl"><#break>
|
<#case "Switch"> <#include "/admin/form/switch.ftl"><#break>
|
<#case "Text"> <#include "/admin/form/text.ftl"><#break>
|
<#case "TextArea"> <#include "/admin/form/textArea.ftl"><#break>
|
<#default>
|
</#switch>
|
</div>
|
|
<#if (value.desc!"") != "">
|
<div class="layui-form-mid layui-word-aux">${value.desc}</div>
|
</#if>
|
</div>
|
</#list>
|
|
<div class="layui-form-item">
|
<label for="L_remarks" class="layui-form-label"></label>
|
<button class="layui-btn" lay-filter="add" lay-submit="">确定修改</button>
|
</div>
|
</form>
|
</div>
|
</div>
|
<script>
|
//初始化上传控件
|
var uploadTool = {
|
callback: null,
|
chooseImage: {},
|
uploadArray: new Array(),
|
init: function (upload) {
|
this.uploadArray = new Array();
|
<#list rowsList as value>
|
<#if value.type=='Img'&&value.params.uploadApi??>
|
this.uploadArray.push(upload.render({
|
elem: '#upload_${value.key}', //绑定元素
|
url: '${value.params.uploadApi}', //上传接口
|
<#if value.params.uploadApiParams??&&(value.params.uploadApiParams?size>0)>
|
data: {
|
<#list value.params.uploadApiParams as item>
|
"${item.key}": "${item.value}",
|
</#list>
|
},
|
</#if>
|
auto: false,
|
accept: 'images',
|
acceptMime: 'image/*',
|
field: "file_${value.key}",
|
choose: function (obj) {
|
//将每次选择的文件追加到文件队列
|
var files = obj.pushFile();
|
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
|
obj.preview(function (index, file, result) {
|
console.log(index); //得到文件索引
|
console.log(file); //得到文件对象
|
console.log(result); //得到文件base64编码,比如图片
|
$("#img_${value.key}").attr("src", result);
|
//记录选中的文件
|
uploadTool.chooseImage["${value.key}"] = "1";
|
});
|
},
|
before: function (obj) {
|
layer.load();
|
},
|
done: function (res, index, upload) {
|
layer.closeAll('loading'); //关闭loading
|
//上传完毕后删除
|
if (res.code == 0) {
|
//获取链接
|
$("input[name='${value.key}']").val(res.data.url);
|
delete chooseImage["${value.key}"];
|
if (Object.keys(chooseImage).length == 0) {
|
//全部上传成功
|
callback();
|
}
|
} else {
|
layer.msg(res.msg);
|
}
|
},
|
error: function (index, upload) {
|
layer.msg("${value.params.title}上传出错");
|
layer.closeAll('loading'); //关闭loading
|
}
|
}));
|
</#if>
|
</#list>
|
|
},
|
upload: function (result) {
|
if (this.uploadArray.length > 0) {
|
this.callback = result;
|
//同时上传
|
for (var i = 0; i < this.uploadArray.length; i++) {
|
this.uploadArray[i].upload();
|
}
|
} else {
|
result();
|
}
|
}
|
};
|
|
|
</script>
|
|
<script>
|
//填充数据
|
function fillData(form) {
|
var id = ksapp.getQueryParam("id");
|
if (id) {
|
} else {
|
layer.msg("id为空");
|
return;
|
}
|
|
ksapp.postJSON('${detailApi}', {id: id}, function (res) {
|
if (res.code == 0) {
|
form.data(res.data);
|
} else {
|
layer.msg(res.msg);
|
}
|
}, function (res) {
|
layer.msg("详情获取失败");
|
});
|
}
|
</script>
|
|
<script>
|
layui.use(['form', 'layer', 'jquery', 'upload'], function () {
|
$ = layui.jquery;
|
var form = layui.form,
|
layer = layui.layer,
|
upload = layui.upload;
|
|
var verify = {};
|
<#list regexVerifyList as regex>
|
verify["${regex.key}"] = [/${regex.expression}/, '${regex.msg}'];
|
</#list>
|
//自定义验证规则
|
form.verify(verify);
|
|
//渲染上传控件
|
uploadTool.init(upload);
|
|
//填充表单数据
|
//请求数据
|
//form.data();
|
|
|
//监听提交
|
form.on('submit(add)',
|
function (data) {
|
console.log(data.field);
|
//转换json对象
|
for (key in data.field) {
|
if (key.indexOf(".") > -1) {
|
var value = data.field[key];
|
delete data.field[key];
|
var onkeys = key.split(".");
|
//创建对象
|
if (data.field[onkeys[0]] == undefined) {
|
data.field[onkeys[0]] = {};
|
}
|
data.field[onkeys[0]][onkeys[1]] = value;
|
}
|
}
|
uploadTool.upload(function () {
|
//发异步,把数据提交给php
|
var params = data.field;
|
params.id = ksapp.getQueryParam("id");
|
|
ksapp.postJSON('${updateApi}', data.field, function (res) {
|
if (res.code == 0) {
|
layer.alert("增加成功", {
|
icon: 6
|
},
|
function () {
|
//关闭当前frame
|
xadmin.close();
|
// 可以对父窗口进行刷新
|
// xadmin.father_reload();
|
});
|
} else {
|
layer.msg(res.msg);
|
}
|
|
}, function (res) {
|
});
|
});
|
return false;
|
});
|
//请求select的数据API
|
|
<#if preRequestList??&&(preRequestList?size>0)>
|
var preRequestCount = ${preRequestList?size}
|
<#list preRequestList as request>
|
<#assign apiKeys=request.params?keys/>
|
var params = {};
|
<#list apiKeys as key>
|
params["${key}"]=${request.params["${key}"]}
|
</#list>
|
|
ksapp.postJSON('${request.url}', params, function (res) {
|
if (res.code == 0) {
|
//填充数据
|
$("${request.fillTarget}").empty();
|
for (var i = 0; i < res.data.length; i++) {
|
var html = "<option value='" + res.data[i].key + "'>";
|
html += res.data[i].value + "</option>";
|
$("${request.fillTarget}").append(html);
|
}
|
//重新渲染表单
|
form.render();
|
preRequestCount--;
|
if (preRequestCount <= 0) {
|
//开始填充数据
|
fillData(form)
|
}
|
|
} else {
|
layer.msg(res.msg);
|
}
|
|
}, function (res) {
|
});
|
</#list>
|
<#else>
|
fillData(form)
|
</#if>
|
})
|
;
|
</script>
|
</body>
|
|
</html>
|