main
黄海 3 years ago
parent 6da6323df9
commit 3cc3b6a12c

@ -1,242 +1,190 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Layui</title> <title>Layui</title>
<link rel="stylesheet" href="./layui/css/layui.css" /> <link rel="stylesheet" href="./layui/css/layui.css"/>
<link rel="stylesheet" href="./ayq/modules/formDesigner.css" /> <link rel="stylesheet" href="./ayq/modules/formDesigner.css"/>
<link rel="stylesheet" href="./ayq/modules/cron.css" /> <link rel="stylesheet" href="./ayq/modules/cron.css"/>
<link rel="stylesheet" href="./ayq/modules/labelGeneration.css" /> <link rel="stylesheet" href="./ayq/modules/labelGeneration.css"/>
<style> <style>
</style> </style>
</head> </head>
<body > <body>
<div > <div>
<div> <div id="workspace" style="margin: 20px 20px;padding: 20px 20px;border: 1px solid #009688;">
<button type="button" class="layui-btn" id="importJsonData">导入数据</button> </div>
</div>
<div id="workspace" style="margin: 20px 20px;padding: 20px 20px;border: 1px solid #009688;">
</div>
</div>
<div class="importjsoncodedataview" style="display: none;">
<textarea class="site-demo-text" id="import-json-code-view"></textarea>
<a href="javascript:;" class="layui-btn layui-btn-normal" style="margin-right:20px;" id="import-json-code-data">导入数据</a>
</div>
<div class="getFormData" style="display: none;">
<textarea class="site-demo-text" id="get-form-data"></textarea>
</div> </div>
<script type="text/javascript" src="./layui/layui.js"></script> <script type="text/javascript" src="./layui/layui.js"></script>
<script type="text/javascript" src="./ayq/modules/Sortable/Sortable.js"> </script> <script type="text/javascript" src="./ayq/modules/Sortable/Sortable.js"></script>
<script type="text/javascript" src="./ayq/modules/iceEditor/iceEditor.js"></script> <script type="text/javascript" src="./ayq/modules/iceEditor/iceEditor.js"></script>
<script> <script>
var demojs = []; var data = [];
//JavaScript代码区域 layui.config({base: './ayq/modules/'}).use(['formDesigner', 'element', 'form', 'layer', 'upload'], function () {
layui.config({base: './ayq/modules/'}).use(['formDesigner','element', 'form','layer','upload'], function () { var layer = layui.layer;
var layer = layui.layer; var $ = layui.jquery;
var $ = layui.jquery; var upload = layui.upload;
var upload = layui.upload; var index = layui.index;
var index = layui.index; var formDesigner = layui.formDesigner;
var formDesigner = layui.formDesigner; var form = layui.form;
var form = layui.form; var render;
var render; var element = layui.element
var element = layui.element
//黄海写的去重函数
function unique(x){
let obj = {};
let res=[];
for (let i = 0; i < x.length; i++) {
let item = x[i].select;
if (obj[item] == undefined) {
res.push(x[i]);
}
obj[item] = item;
}
return res;
}
if (window.localStorage.getItem('layui_form_json') !== undefined) { //黄海写的去重函数
demojs = JSON.parse(window.localStorage.getItem('layui_form_json')); function unique(x) {
render = formDesigner.render({ let obj = {};
elem: '#workspace', let res = [];
data: demojs, for (let i = 0; i < x.length; i++) {
viewOrDesign:true let item = x[i].select;
}); if (obj[item] == undefined) {
var images = render.getImages();//这个方法有问题本来是3个的执行完变6个 res.push(x[i]);
}
images=unique(images); obj[item] = item;
for (let i = 0; i < images.length; i++) {
let item = images[i].select
var id=item.substr(5);//去掉image前缀
upload.render({
elem: '#' + images[i].select
//, url: '' + images[i].uploadUrl + ''
, url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
, multiple: true
, before: function (obj) {
var preview_id='#uploader-list-'+item.substr(5);
//预读本地文件示例不支持ie8
obj.preview(function(index, file, result){
$(preview_id).append(//图片链接base64
'<div id="" class="file-iteme">' +
'<div class="handle"><i class="layui-icon layui-icon-delete"></i></div>' +
'<img style="width: 100px;height: 100px;" src=' + result + '>'+
'</div>'
);
});
layer.msg('图片上传中...', {
icon: 16,
shade: 0.01,
time: 0
})
} }
, done: function (res) { return res;
layer.close(layer.msg());//关闭上传提示窗口
layer.msg('上传成功!',{icon: 1});
}
});
};
//文件上传代码
var filesData = render.getFiles();
filesData=unique(filesData);
for (var i = 0; i < filesData.length; i++) {
var id='#' + filesData[i].select;
//检查对象是否存在
//console.log($(id).length);
var uploadListIns = upload.render({
elem: id
, elemList: $('#list-' + filesData[i].select.substr(4)) //列表元素对象
//, url: '' + filesData[i].uploadUrl + ''
, url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
, accept: 'file'
, multiple: true
, number: 4
, auto: false
, bindAction: '#listAction-' + filesData[i].select.substr(4)
, choose: function (obj) {
var that = this;
var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
//读取本地文件
obj.preview(function (index, file, result) {
var tr = $(['<tr id="upload-' + index + '">'
, '<td>' + file.name + '</td>'
, '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
, '<td><div class="layui-progress" lay-filter="progress-demo-' + index + '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
, '<td>'
, '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
, '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
, '</td>'
, '</tr>'].join(''));
//单个重传
tr.find('.demo-reload').on('click', function () {
obj.upload(index, file);
});
//删除
tr.find('.demo-delete').on('click', function () {
delete files[index]; //删除对应的文件
tr.remove();
uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
});
that.elemList.append(tr);
element.render('progress'); //渲染新加的进度条组件
});
}
, done: function (res, index, upload) { //成功的回调
var that = this;
var tr = that.elemList.find('tr#upload-' + index)
, tds = tr.children();
tds.eq(3).html(''); //清空操作
delete this.files[index]; //删除文件队列已经上传成功的文件
this.error(index, upload);
}
, allDone: function (obj) { //多文件上传完毕后的状态回调
layer.msg("上传成功",{icon:1});
}
, error: function (index, upload) { //错误回调
var that = this;
var tr = that.elemList.find('tr#upload-' + index)
, tds = tr.children();
tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
}
, progress: function (n, elem, e, index) {
element.progress('progress-demo-' + index, n + '%'); //执行进度条。n 即为返回的进度百分比
}
});
}
}
//监听提交
form.on('submit(demo1)', function(data){
var json = render.getFormData();
console.log(json);
layer.msg( JSON.stringify(json), {icon: 6});
return false;
});
//导入数据
$('#importJsonData').on('click', function () {
layer.open({
type: 1
, title: 'JSON模板数据导入'
, id: 'Lay_layer_importjsoncodeview'
, content: $('.importjsoncodedataview')
, area: ['800px', '640px']
, shade: false
, resize: false
, success: function (layero, index) {
} }
, end: function () { //利用Ajax读取出已经录入数据
$('.importjsoncodeview').css("display","none") let task_id = $.getUrlParam('task_id');
} let page = $.getUrlParam('page');
}); //调用Ajax将已经存储好的JSON数据导入进来
}); $.ajax({
type: "GET",
//导入数据 dataType: "json",
$('#getFormData').on('click', function () { url: "/FengHuang/zjb/getTaskPage",
var _value = render.getFormData(); data: {
$('#get-form-data').val(JSON.stringify(_value,null,4)); "task_id": task_id,
layer.open({ "page": page
type: 1 },
, title: 'JSON模板数据导入' async: false,
, id: 'Lay_layer_importjsoncodeview' success: function (result) {
, content: $('.getFormData') data=result;
, area: ['800px', '640px'] render = formDesigner.render({
, shade: false elem: '#workspace',
, resize: false data: data,
, success: function (layero, index) { viewOrDesign: true
} });
, end: function () { var images = render.getImages();//这个方法有问题本来是3个的执行完变6个
$('.getFormData').css("display","none") images = unique(images);
} for (let i = 0; i < images.length; i++) {
}); let item = images[i].select
}); var id = item.substr(5);//去掉image前缀
upload.render({
elem: '#' + images[i].select
//, url: '' + images[i].uploadUrl + ''
, url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
, multiple: true
, before: function (obj) {
var preview_id = '#uploader-list-' + item.substr(5);
//预读本地文件示例不支持ie8
obj.preview(function (index, file, result) {
$(preview_id).append(//图片链接base64
'<div id="" class="file-iteme">' +
'<div class="handle"><i class="layui-icon layui-icon-delete"></i></div>' +
'<img style="width: 100px;height: 100px;" src=' + result + '>' +
'</div>'
);
});
layer.msg('图片上传中...', {
icon: 16,
shade: 0.01,
time: 0
})
}
, done: function (res) {
layer.close(layer.msg());//关闭上传提示窗口
layer.msg('上传成功!', {icon: 1});
}
});
}
//文件上传代码
var filesData = render.getFiles();
filesData = unique(filesData);
for (var i = 0; i < filesData.length; i++) {
var id = '#' + filesData[i].select;
$('#import-json-code-data').on('click', function () { //检查对象是否存在
var _value = document.getElementById("import-json-code-view").value; //console.log($(id).length);
try { var uploadListIns = upload.render({
var json = JSON.parse(_value); elem: id
render.setFormData(json); , elemList: $('#list-' + filesData[i].select.substr(4)) //列表元素对象
layer.closeAll(); //, url: '' + filesData[i].uploadUrl + ''
layer.msg('导入成功'); , url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
}catch (e) { , accept: 'file'
layer.closeAll(); , multiple: true
layer.msg('导入数据格式异常'); , number: 4
} , auto: false
, bindAction: '#listAction-' + filesData[i].select.substr(4)
, choose: function (obj) {
var that = this;
var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
//读取本地文件
obj.preview(function (index, file, result) {
var tr = $(['<tr id="upload-' + index + '">'
, '<td>' + file.name + '</td>'
, '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
, '<td><div class="layui-progress" lay-filter="progress-demo-' + index + '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
, '<td>'
, '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
, '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
, '</td>'
, '</tr>'].join(''));
//单个重传
tr.find('.demo-reload').on('click', function () {
obj.upload(index, file);
});
//删除
tr.find('.demo-delete').on('click', function () {
delete files[index]; //删除对应的文件
tr.remove();
uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
});
that.elemList.append(tr);
element.render('progress'); //渲染新加的进度条组件
});
}
, done: function (res, index, upload) { //成功的回调
var that = this;
var tr = that.elemList.find('tr#upload-' + index)
, tds = tr.children();
tds.eq(3).html(''); //清空操作
delete this.files[index]; //删除文件队列已经上传成功的文件
this.error(index, upload);
}
, allDone: function (obj) { //多文件上传完毕后的状态回调
layer.msg("上传成功", {icon: 1});
}
, error: function (index, upload) { //错误回调
var that = this;
var tr = that.elemList.find('tr#upload-' + index)
, tds = tr.children();
tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
}
, progress: function (n, elem, e, index) {
element.progress('progress-demo-' + index, n + '%'); //执行进度条。n 即为返回的进度百分比
}
});
}
}
});
//监听提交
form.on('submit(demo1)', function (data) {
var json = render.getFormData();
console.log(json);
layer.msg(JSON.stringify(json), {icon: 6});
return false;
});
}); });
});
function getSubmitData(){ function getSubmitData() {
var data=$('#workspace').form[0].serialize(); var data = $('#workspace').form[0].serialize();
console.log(data); console.log(data);
return data; return data;
} }
</script> </script>
</body> </body>
</html> </html>

@ -55,7 +55,7 @@
table.on('tool(idTest)', function (obj) { table.on('tool(idTest)', function (obj) {
var data = obj.data; var data = obj.data;
if (obj.event === "modify") { if (obj.event === "modify") {
//window.location.href = "designModulePage.html?module_id=" + module_id + "&page=" + data.page; window.location.href = "fill.html?task_id=" + task_id + "&page=" + data.page;
} }
}); });
}); });

@ -28,6 +28,13 @@ public class ZjbController extends Controller {
renderJson(json); renderJson(json);
} }
@Before({GET.class})
@IsNumericInterface({"task_id", "page"})
public void getTaskPage(int task_id, int page) {
String json = zm.getTaskPage(task_id, page);
renderJson(json);
}
@Before({GET.class}) @Before({GET.class})
@IsNumericInterface({"module_id"}) @IsNumericInterface({"module_id"})
public void getModulePageFillInfo(int module_id) { public void getModulePageFillInfo(int module_id) {

@ -47,6 +47,13 @@ public class ZjbModel {
return "[]"; return "[]";
} }
public String getTaskPage(int task_id, int page) {
String sql = "select json from t_zjb_task_fill where task_id=? and page=?";
List<Record> list = Db.find(sql, task_id, page);
if (list.size() > 0) return list.get(0).getStr("json");
return "[]";
}
public Record getMoudleInfo(int module_id) { public Record getMoudleInfo(int module_id) {
String sql = "select * from t_zjb_module where module_id=?"; String sql = "select * from t_zjb_module where module_id=?";
return Db.findFirst(sql, module_id); return Db.findFirst(sql, module_id);

Loading…
Cancel
Save