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.

220 lines
10 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 module_id = $.getUrlParam('module_id');
let task_id = $.getUrlParam('task_id');
let page = $.getUrlParam('page');
//调用Ajax将已经存储好的JSON数据模板导入进来
$.ajax({
type: "GET",
dataType: "json",
url: "/FengHuang/zjb/getModulePage",
data: {
"module_id": module_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;
//检查对象是否存在
//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 即为返回的进度百分比
}
});
}
//二次获取真实数据,准备进行导入数据
$.ajax({
type: "GET",
dataType: "json",
url: "/FengHuang/zjb/getTaskPage",
data: {
"task_id": task_id,
"page": page
},
async: false,
success: function (_value) {
//开始二次渲染
render.setFormData(_value);
}
});
}
});
//监听提交
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>