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.

210 lines
9.9 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.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>填报内容</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>
</head>
<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/iceEditor/iceEditor.js"></script>
<!--引用新版本Jquery-->
<script type="text/javascript" src="../../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../js/jquery_Extend.js"></script>
<script>
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]);
}
obj[item] = item;
}
return res;
}
//利用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) {
console.log(result);
//TODO
//这里有问题,只有填报结果,不是完整内容,是不行的,看来是在保存时就出了问题。
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;
//检查对象是否存在
//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) {
let jsonStr = render.getFormData();
let json = JSON.stringify(jsonStr);
//这里不应该是只获取填报的数据,而是应该获取完整的数据,这里有问题。
// $.ajax({
// type: "POST",
// dataType: "json",
// url: "/FengHuang/zjb/saveFillPage",
// data: {
// "task_id": task_id,
// "page": page,
// "json": json
// },
// async: false,
// success: function (result) {
// layer.msg('保存成功!', {icon: 1, time: 1500},
// function (index) {
// window.location.href = "listTaskPageInfo.html?task_id=" + task_id;
// }
// );
// }
// });
return false;
});
});
</script>
</body>
</html>