|
|
|
@ -1,242 +1,190 @@
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
|
|
|
<title>Layui</title>
|
|
|
|
|
<link rel="stylesheet" href="./layui/css/layui.css" />
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/formDesigner.css" />
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/cron.css" />
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/labelGeneration.css" />
|
|
|
|
|
<style>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
|
|
|
<title>Layui</title>
|
|
|
|
|
<link rel="stylesheet" href="./layui/css/layui.css"/>
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/formDesigner.css"/>
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/cron.css"/>
|
|
|
|
|
<link rel="stylesheet" href="./ayq/modules/labelGeneration.css"/>
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body >
|
|
|
|
|
<div >
|
|
|
|
|
<div>
|
|
|
|
|
<button type="button" class="layui-btn" id="importJsonData">导入数据</button>
|
|
|
|
|
</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>
|
|
|
|
|
<body>
|
|
|
|
|
<div>
|
|
|
|
|
<div id="workspace" style="margin: 20px 20px;padding: 20px 20px;border: 1px solid #009688;">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
var demojs = [];
|
|
|
|
|
//JavaScript代码区域
|
|
|
|
|
layui.config({base: './ayq/modules/'}).use(['formDesigner','element', 'form','layer','upload'], function () {
|
|
|
|
|
var layer = layui.layer;
|
|
|
|
|
var $ = layui.jquery;
|
|
|
|
|
var upload = layui.upload;
|
|
|
|
|
var index = layui.index;
|
|
|
|
|
var formDesigner = layui.formDesigner;
|
|
|
|
|
var form = layui.form;
|
|
|
|
|
var render;
|
|
|
|
|
var element = layui.element
|
|
|
|
|
var data = [];
|
|
|
|
|
layui.config({base: './ayq/modules/'}).use(['formDesigner', 'element', 'form', 'layer', 'upload'], function () {
|
|
|
|
|
var layer = layui.layer;
|
|
|
|
|
var $ = layui.jquery;
|
|
|
|
|
var upload = layui.upload;
|
|
|
|
|
var index = layui.index;
|
|
|
|
|
var formDesigner = layui.formDesigner;
|
|
|
|
|
var form = layui.form;
|
|
|
|
|
var render;
|
|
|
|
|
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]);
|
|
|
|
|
//黄海写的去重函数
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
obj[item] = item;
|
|
|
|
|
}
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (window.localStorage.getItem('layui_form_json') !== undefined) {
|
|
|
|
|
demojs = JSON.parse(window.localStorage.getItem('layui_form_json'));
|
|
|
|
|
render = formDesigner.render({
|
|
|
|
|
elem: '#workspace',
|
|
|
|
|
data: demojs,
|
|
|
|
|
viewOrDesign:true
|
|
|
|
|
});
|
|
|
|
|
var images = render.getImages();//这个方法有问题,本来是3个的,执行完变6个!
|
|
|
|
|
//利用Ajax读取出已经录入数据
|
|
|
|
|
let task_id = $.getUrlParam('task_id');
|
|
|
|
|
let page = $.getUrlParam('page');
|
|
|
|
|
//调用Ajax,将已经存储好的JSON数据导入进来
|
|
|
|
|
$.ajax({
|
|
|
|
|
type: "GET",
|
|
|
|
|
dataType: "json",
|
|
|
|
|
url: "/FengHuang/zjb/getTaskPage",
|
|
|
|
|
data: {
|
|
|
|
|
"task_id": task_id,
|
|
|
|
|
"page": page
|
|
|
|
|
},
|
|
|
|
|
async: false,
|
|
|
|
|
success: function (result) {
|
|
|
|
|
data=result;
|
|
|
|
|
render = formDesigner.render({
|
|
|
|
|
elem: '#workspace',
|
|
|
|
|
data: data,
|
|
|
|
|
viewOrDesign: true
|
|
|
|
|
});
|
|
|
|
|
var images = render.getImages();//这个方法有问题,本来是3个的,执行完变6个!
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
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});
|
|
|
|
|
//检查对象是否存在
|
|
|
|
|
//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 即为返回的进度百分比
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//文件上传代码
|
|
|
|
|
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 () {
|
|
|
|
|
$('.importjsoncodeview').css("display","none")
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//导入数据
|
|
|
|
|
$('#getFormData').on('click', function () {
|
|
|
|
|
var _value = render.getFormData();
|
|
|
|
|
$('#get-form-data').val(JSON.stringify(_value,null,4));
|
|
|
|
|
layer.open({
|
|
|
|
|
type: 1
|
|
|
|
|
, title: 'JSON模板数据导入'
|
|
|
|
|
, id: 'Lay_layer_importjsoncodeview'
|
|
|
|
|
, content: $('.getFormData')
|
|
|
|
|
, area: ['800px', '640px']
|
|
|
|
|
, shade: false
|
|
|
|
|
, resize: false
|
|
|
|
|
, success: function (layero, index) {
|
|
|
|
|
}
|
|
|
|
|
, end: function () {
|
|
|
|
|
$('.getFormData').css("display","none")
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#import-json-code-data').on('click', function () {
|
|
|
|
|
var _value = document.getElementById("import-json-code-view").value;
|
|
|
|
|
try {
|
|
|
|
|
var json = JSON.parse(_value);
|
|
|
|
|
render.setFormData(json);
|
|
|
|
|
layer.closeAll();
|
|
|
|
|
layer.msg('导入成功');
|
|
|
|
|
}catch (e) {
|
|
|
|
|
layer.closeAll();
|
|
|
|
|
layer.msg('导入数据格式异常');
|
|
|
|
|
}
|
|
|
|
|
//监听提交
|
|
|
|
|
form.on('submit(demo1)', function (data) {
|
|
|
|
|
var json = render.getFormData();
|
|
|
|
|
console.log(json);
|
|
|
|
|
layer.msg(JSON.stringify(json), {icon: 6});
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function getSubmitData(){
|
|
|
|
|
var data=$('#workspace').form[0].serialize();
|
|
|
|
|
console.log(data);
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
function getSubmitData() {
|
|
|
|
|
var data = $('#workspace').form[0].serialize();
|
|
|
|
|
console.log(data);
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|