协调照片(建设用地)功能接口对接

This commit is contained in:
lSun 2025-04-10 20:34:03 +08:00
parent af8d4a33fb
commit 203bf45274
8 changed files with 1125 additions and 18 deletions

View File

@ -0,0 +1,504 @@
let form, layer, util, idParam, laydate, details;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [];
// 初始化下拉选
let proList;
let majorList;
let processList;
let buildBeforeImgList = []; // 建设前照片
let buildUnderImgList = []; // 建设中照片
let buildAfterImgList = []; // 恢复后照片
let CODE_1 = 0, CODE_2 = 0, CODE_3 = 0;
let proId, proName, majorId, majorName, gxId, gxName;
layui.use(['laydate', 'upload'], function () {
var upload = layui.upload;
var layer = layui.layer;
var element = layui.element;
var $ = layui.$;
var buildBeforeImg = JSON.stringify({
uploadType: 4, // 上传类型
sourceType: 6, // 来源类型
sourceTypeName: "协调照片-建设前" // 来源类型名称
})
var buildUnderImg = JSON.stringify({
uploadType: 4, // 上传类型
sourceType: 7, // 来源类型
sourceTypeName: "协调照片-建设中" // 来源类型名称
})
var buildAfterImg = JSON.stringify({
uploadType: 4, // 上传类型
sourceType: 8, // 来源类型
sourceTypeName: "协调照片-恢复后" // 来源类型名称
})
// 多图片上传
var uploadcom1 = upload.render({
elem: '#test1',
url: '/imgTool/sys/file/uploadFile?token=' + tokens,
multiple: true,
auto: false,
exts: 'jpg|png|jpeg',
field: 'files',
data: {params: buildBeforeImg},
bindAction: '#hideUpload1', //绑定的按钮
// 文件选择后的回调
choose: function (obj) {
CODE_1 = 1;
uploadcom1.config.elem.next()[0].value = '';
let files = obj.pushFile();
obj.preview(function (index, file, result) {
var length = $('#demo1 img').length;
if (length > 8) {
delete files[index];//删除指定图片
$(this).remove();
return layer.msg("附件为1-9张请勿过多上传", {icon: 5});
}
const uniqueId = new Date().getTime() + '-' + index;
$('#demo1').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
);
});
},
before: function (obj) {
},
done: function (res, index, upload) {
if (res.code === 200) {
buildBeforeImgList.push(res.data[0]);
} else {
}
},
allDone: function (res, index, upload) {
},
error: function (e) {
//请求异常回调
console.log(e)
}
});
// 多图片上传
var uploadcom2 = upload.render({
elem: '#test2',
url: '/imgTool/sys/file/uploadFile?token=' + tokens,
multiple: true,
auto: false,
exts: 'jpg|png|jpeg',
field: 'files',
data: {params: buildUnderImg},
bindAction: '#hideUpload2', //绑定的按钮
// 文件选择后的回调
choose: function (obj) {
CODE_2 = 1;
uploadcom2.config.elem.next()[0].value = '';
let files = obj.pushFile();
obj.preview(function (index, file, result) {
var length = $('#demo2 img').length;
if (length > 8) {
delete files[index];//删除指定图片
$(this).remove();
return layer.msg("附件为1-9张请勿过多上传", {icon: 5});
}
const uniqueId = new Date().getTime() + '-' + index;
$('#demo2').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
);
});
},
before: function (obj) {
},
done: function (res, index, upload) {
if (res.code === 200) {
buildUnderImgList.push(res.data[0]);
} else {
}
},
allDone: function (res, index, upload) {
},
error: function (e) {
//请求异常回调
console.log(e)
}
});
// 多图片上传
var uploadcom3 = upload.render({
elem: '#test3',
url: '/imgTool/sys/file/uploadFile?token=' + tokens,
multiple: true,
auto: false,
exts: 'jpg|png|jpeg',
field: 'files',
data: {params: buildAfterImg},
bindAction: '#hideUpload3', //绑定的按钮
// 文件选择后的回调
choose: function (obj) {
CODE_3 = 1;
uploadcom3.config.elem.next()[0].value = '';
let files = obj.pushFile();
obj.preview(function (index, file, result) {
var length = $('#demo3 img').length;
if (length > 8) {
delete files[index];//删除指定图片
$(this).remove();
return layer.msg("附件为1-9张请勿过多上传", {icon: 5});
}
const uniqueId = new Date().getTime() + '-' + index;
$('#demo3').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
);
});
},
before: function (obj) {
},
done: function (res, index, upload) {
if (res.code === 200) {
buildAfterImgList.push(res.data[0]);
} else {
}
},
allDone: function (res, index, upload) {
},
error: function (e) {
//请求异常回调
console.log(e)
}
});
window.removeImage = function (uniqueId) {
$('#img-' + uniqueId).remove();
};
laydate = layui.laydate;
});
function setParams(params) {
idParam = JSON.parse(params).id;
details = JSON.parse(params).details;
layui.use(['form', 'layer', 'util'], function () {
layer = layui.layer;
form = layui.form;
util = layui.util;
var $ = layui.jquery;
proList = getProSelected();
majorList = getMajorSelected();
processList = getProcessSelected();
if (idParam) {
getUserById();
}
form.on('select(proId)', function (data) {
// 获取选中的 id 和 name
const selectedId = data.value; // 获取选中项的 value 值
const selectedName = $(data.elem).find("option:selected").text(); // 获取选中项的文本
proId = selectedId;
proName = selectedName;
});
form.on('select(majorId)', function (data) {
const selectedId = data.value; // 获取选中项的 value 值
const selectedName = $(data.elem).find("option:selected").text(); // 获取选中项的文本
majorId = selectedId;
majorName = selectedName;
let gxs = getGxsSelect(data.value);
setSelectValueName(gxs, 'gxId', '请选择工序');
});
form.on('select(gxId)', function (data) {
const selectedId = data.value; // 获取选中项的 value 值
const selectedName = $(data.elem).find("option:selected").text(); // 获取选中项的文本
gxId = selectedId;
gxName = selectedName;
});
form.render();//重新渲染页面checkbox控件
form.on('submit(formData)', function (data) {
data.field.id = $('#id').val();
saveData(data);
});
});
}
/**
* 获取工程数据
*/
function getProSelected() {
let url = dataUrl + '/sys/select/getProsSelect';
let data = {
encryptedData: encryptCBC(JSON.stringify({}))
}
ajaxRequest(url, "POST", data, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValueName(result.data, 'proId', "请选择项目(可搜索)");
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 获取专业数据
*/
function getMajorSelected() {
let url = dataUrl + '/sys/select/getProfessionSelect';
ajaxRequest(url, "GET", null, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValueName(result.data, 'majorId', "请选择专业");
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 获取工序数据
*/
function getProcessSelected() {
let url = dataUrl + '/sys/select/getProcessSelect';
let data = {
encryptedData: encryptCBC(JSON.stringify({}))
}
ajaxRequest(url, "GET", data, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValueName(result.data, 'gxId', '请选择工序');
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
// 根据id获取用户信息
function getUserById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/coordinatePhoto/getCoordinatePhotoById";
let params = {
id: idParam
}
console.log(params)
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
console.log(result)
setFormData(result.data);
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
}
// 设置表单内容
function setFormData(data) {
console.log("data:", data)
if (data) {
$('#id').val(data.id)
$('#proId option[value=' + data.proId + ']').attr('selected', true)
$('#majorId option[value=' + data.majorId + ']').attr('selected', true)
$('#gxId option[value=' + data.gxId + ']').attr('selected', true)
$('#buildPlace').val(data.buildPlace)
$('#buildBeforeDesc').val(data.buildBeforeDesc)
$('#buildUnderDesc').val(data.buildUnderDesc)
$('#buildAfterDesc').val(data.buildAfterDesc)
var sysFileResourceList = data.sysFileResourceList;
if (sysFileResourceList && sysFileResourceList.length > 0) {
sysFileResourceList.forEach(function(photo) {
if (photo.sourceType === "6") {
buildBeforeImgList.push(photo); // 建设前
} else if (photo.sourceType === "7") {
buildUnderImgList.push(photo); // 建设中
} else if (photo.sourceType === "8") {
buildAfterImgList.push(photo); // 恢复后
}
});
if (buildBeforeImgList && buildBeforeImgList.length > 0) {
var html = "";
var demo1 = $("#demo1");
for (var i = 0; i < buildBeforeImgList.length; i++) {
let filePath = imgUrl + buildBeforeImgList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="imga-' + buildBeforeImgList[i].id + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + buildBeforeImgList[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate1(\'' + buildBeforeImgList[i].id + '\')">删除</button>';
}
html = html + '</div>';
}
demo1.append(html);
}
if (buildUnderImgList && buildUnderImgList.length > 0) {
var html = "";
var demo2 = $("#demo2");
for (var i = 0; i < buildUnderImgList.length; i++) {
let filePath = imgUrl + buildUnderImgList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="imgb-' + buildUnderImgList[i].id + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + buildUnderImgList[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate2(\'' + buildUnderImgList[i].id + '\')">删除</button>';
}
html = html + '</div>';
}
demo2.append(html);
}
if (buildAfterImgList && buildAfterImgList.length > 0) {
var html = "";
var demo3 = $("#demo3");
for (var i = 0; i < buildAfterImgList.length; i++) {
let filePath = imgUrl + buildAfterImgList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="imgc-' + buildAfterImgList[i].id + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + buildAfterImgList[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate3(\'' + buildAfterImgList[i].id + '\')">删除</button>';
}
html = html + '</div>';
}
demo3.append(html);
}
}
if(details == 1){
document.querySelector('.layui-btn.save').style.display = 'none';
document.getElementById("test1").style.display = 'none';
document.getElementById("test2").style.display = 'none';
document.getElementById("test3").style.display = 'none';
}
layui.form.render();
}
}
function removeImageUpdate1(uniqueId) {
console.log("uniqueId:", uniqueId)
$('#imga-' + uniqueId).remove();
uniqueId = parseInt(uniqueId, 10); // 转换为数字类型
buildBeforeImgList = buildBeforeImgList.filter(item => item.id !== uniqueId);
console.log(buildBeforeImgList)
}
function removeImageUpdate2(uniqueId) {
console.log("uniqueId:", uniqueId)
$('#imgb-' + uniqueId).remove();
uniqueId = parseInt(uniqueId, 10); // 转换为数字类型
buildUnderImgList = buildUnderImgList.filter(item => item.id !== uniqueId);
console.log(buildUnderImgList)
}
function removeImageUpdate3(uniqueId) {
console.log("uniqueId:", uniqueId)
$('#imgc-' + uniqueId).remove();
uniqueId = parseInt(uniqueId, 10); // 转换为数字类型
buildAfterImgList = buildAfterImgList.filter(item => item.id !== uniqueId);
console.log(buildAfterImgList)
}
function saveData2() {
$('#formSubmit').trigger('click')
}
// 保存数据
function saveData(data) {
if (CODE_1 != 0) {
$("#hideUpload1").trigger("click");
}
if (CODE_2 != 0) {
$("#hideUpload2").trigger("click");
}
if (CODE_3 != 0) {
$("#hideUpload3").trigger("click");
}
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/coordinatePhoto/addCoordinatePhoto";
data.field.uploadType = "4";
data.field.dataSource = 1;
data.field.sysFileResourceList = [...buildBeforeImgList, ...buildUnderImgList,...buildAfterImgList];
data.field.proId = proId;
data.field.proName = proName;
data.field.majorId = majorId;
data.field.majorName = majorName;
data.field.gxId = gxId;
data.field.gxName = gxName;
console.log("data:", data)
let params = data.field;
if (params.id != "") {
url = dataUrl + "/coordinatePhoto/updateCoordinatePhoto";
}
console.log("params:", params)
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
closePage(1);
parent.layer.msg(result.msg, {icon: 1});
} else {
layer.alert(result.msg, {icon: 2})
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
error(xhr)
});
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
if (type === 1) {
parent.reloadData()
}
}

View File

@ -0,0 +1,341 @@
let form, layer, table, tableIns;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
layui.form.render();
getProSelected();
getProTypeSelected();
getProcessIdSelected();
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/coordinatePhoto/getCoordinatePhotoList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
if (result.data) {
initTable(result.data.list, result.data.pageSize, result.data.startRow)
laypages(result.data.total, result.data.startRow, result.data.pageSize)
}
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
function laypages(total, page, limit) {
layui.use(['laypage'], function () {
let laypage = layui.laypage;
laypage.render({
elem: 'voi-page',
count: total,
curr: page,
limit: limit,
limits: [10, 20, 50, 100, 200, 500],
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5,
jump: function (obj, first) {
if (!first) {
pageNum = obj.curr, limitSize = obj.limit;
pages(obj.curr, obj.limit, null);
}
}
});
})
}
function countPhotosBySourceType(data, sourceType) {
if (!data || !data.sysFileResourceList) return 0;
return data.sysFileResourceList.filter(item => item.sourceType === sourceType).length;
}
/*初始化表格*/
function initTable(dataList, limit, page) {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
tableIns = table.render({
elem: "#table_data",
height: "full-130",
data: dataList,
limit: limit,
cols: [
[
//表头
{title: "序号", width: 80, unresize: true, align: "center",
templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
}
},
{field: "proName", title: "项目名称",width: 310, unresize: true, align: "center" },
{field: "gxName", title: "工序",width: 110, unresize: true, align: "center"},
{field: "buildPlace", title: "违章地点",width: 230, unresize: true, align: "center"},
{title: "建设阶段", width: 110, unresize: true, align: "center",
templet: function(d) {
return '建设前<br><br>建设中<br><br>恢复后';
}
},
{title: "建设照片", width: 110, unresize: true, align: "center",
templet: function (d) {
// 统计各阶段的照片数量
let beforeCount = countPhotosBySourceType(d, "6");
let inProgressCount = countPhotosBySourceType(d, "7");
let afterCount = countPhotosBySourceType(d, "8");
let html = '';
html += "<a style='cursor:pointer;' title='查看建设前照片' onclick=\"viewPhasePhotos('" + d.id + "', '6')\">" + beforeCount + "</a><br><br>";
html += "<a style='cursor:pointer;' title='查看建设中照片' onclick=\"viewPhasePhotos('" + d.id + "', '7')\">" + inProgressCount + "</a><br><br>";
html += "<a style='cursor:pointer;' title='查看恢复后照片' onclick=\"viewPhasePhotos('" + d.id + "', '8')\">" + afterCount + "</a>";
return html;
}
},
{title: "建设描述", width: 310, unresize: true, align: "center",
templet: function (d) {
return d.buildBeforeDesc + '<br><br>' + d.buildUnderDesc + '<br><br>' + d.buildAfterDesc;
}
},
{field: "createUserName", title: "更新人",width: 110, unresize: true, align: "center"},
{field: "createTime", title: "更新时间 ",width: 110, unresize: true, align: "center"},
{title: "操作", unresize: true, width: 170, align: "center",
templet: function (d) {
let html = '';
let updaetpwd="<a class=\"layui-icon layui-icon-search\" style='cursor:pointer;' title='查看' onclick=\"detailsData('" + d.id + "')\"></a>";
let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>"
let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addData('" + d.id + "')\"></a>";
html=updaetpwd + edit+del;
return html;
}
},
],
],
done: function (res, curr, count) {
layer.close(loadingMsg);
table.resize("table_data");
count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block");
count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto");
},
});
}
// 获取参数
function getReqParams(page, limit, type) {
let obj = {};
if (type === 2) {
$('#keyWord').val('')
$('#proId').val('')
$('#proTypeId').val('')
$('#processId').val('')
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
keyWord: $('#keyWord').val(),
proId: $('#proId').val(),
proType: $('#proTypeId').val(),
gxId: $('#processId').val()
};
console.log(obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query(type) {
let pattern = new RegExp("[%_<>]");
if (pattern.test($("#keyWord").val())) {
$("#keyWord").val('');
return layer.msg('关键字查询包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
pageNum = 1;
pages(1, limitSize,type);
}
function reloadData() {
pages(pageNum, limitSize);
}
//详情
function detailsData(id) {
let title = '详情'
let param = {
'id': id,
'details':'1'
}
openIframe2("detailsSafetyViolations", title, "child/coordinatePhotoForm.html", '1200px', '625px', param);
}
// 新增/修改
function addData(id) {
let title = '新增'
if (id) {
title = '修改';
}
let param = {
'id': id,
'details':''
}
openIframe2("addOrEditSafetyViolations", title, "child/coordinatePhotoForm.html", '1200px', '625px', param);
}
/*删除用户*/
function delData(id) {
layer.confirm("确定删除吗?", {
move: false
}, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/imgUpload/safetyViolation/delSafetyViolationById";
let params = {
'id': id
}
params={
encryptedData:encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "DELETE", params, true, function () {
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
parent.layer.msg(result.msg, {icon: 1})
query()
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
})
}
/**
* 获取工程
*/
function getProSelected() {
let url = dataUrl + '/sys/select/getProsSelect';
let data={
encryptedData:encryptCBC(JSON.stringify({}))
}
ajaxRequest(url, "POST", data, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'proId','请选择工程');
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 获取工程类型
*/
function getProTypeSelected() {
let url = dataUrl + '/sys/select/getDictSelectByType';
let data={
encryptedData:encryptCBC(JSON.stringify({"code":"pro_type"}))
}
ajaxRequest(url, "GET", data, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'proTypeId','请选择工程类型');
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 获取工序
*/
function getProcessIdSelected() {
let url = dataUrl + '/sys/select/getProcessSelect';
let data={
encryptedData:encryptCBC(JSON.stringify({}))
}
ajaxRequest(url, "GET", data, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'processId','请选择工序类型');
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/*下拉选表单赋值*/
function setSelectValue(list, selectName, placeholder) {
let html = '<option value="" selected>'+placeholder+'</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
})
$('#' + selectName).empty().append(html);
layui.form.render();
}
/**
* 违规照片
* @param id
*/
function violationPhoto(id){
alert(id)
}
/**
* 修正照片
* @param id
*/
function correctionPhoto(id){
alert(id)
}
function exportExcel() {
let obj = {
keyWord: $('#keyWord').val(),
proId: $('#proId').val(),
proType: $('#proTypeId').val(),
gxId: $('#processId').val(),
};
let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/imgUpload/safetyViolation/downloadExcel?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj)));
let xhr = new XMLHttpRequest();
xhr.open("post", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8')
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = "安全违章列表" + ".xlsx"; // 文件名
} else {
layer.msg("数据导出发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
}
a.click();
window.URL.revokeObjectURL(url);
};
xhr.send();
}

View File

@ -49,7 +49,7 @@ layui.use(['laydate', 'upload'], function () {
const uniqueId = new Date().getTime() + '-' + index;
$('#demo1').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -238,8 +238,9 @@ function setFormData(data) {
var html = "";
var demo1 = $("#demo1");
for (var i = 0; i < vioPhotoListEdit.length; i++) {
html = html + '<div id="img-' + vioPhotoListEdit[i].id + '" style="display: inline-block; position: relative;">' +
'<img src="' + vioPhotoListEdit[i].originalFilePath + '" alt="' +vioPhotoListEdit[i].fileName + '" style="width: 90px; height: 90px;">' ;
let filePath = imgUrl + vioPhotoListEdit[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + vioPhotoListEdit[i].id + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' +vioPhotoListEdit[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + vioPhotoListEdit[i].id + '\')">删除</button>';
}

View File

@ -58,7 +58,7 @@ layui.use(['laydate', 'upload'], function () {
const uniqueId = new Date().getTime() + '-' + index;
$('#demo1').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -105,7 +105,7 @@ layui.use(['laydate', 'upload'], function () {
}
const uniqueId = new Date().getTime() + '-' + index;
$('#demo2').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -295,8 +295,9 @@ function setFormData(data) {
var html = "";
var demo1 = $("#demo1");
for (var i = 0; i < vioPhotoListEdit.length; i++) {
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative;">' +
'<img src="' + data.vioPhotoList[i].originalFilePath + '" alt="' + data.vioPhotoList[i].fileName + '" style="width: 90px; height: 90px;">' ;
let filePath = imgUrl + data.vioPhotoList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + data.vioPhotoList[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + i + '\',\'' + data.vioPhotoList[i].id + '\')">删除</button>';
}
@ -310,8 +311,9 @@ function setFormData(data) {
var demo2 = $("#demo2");
var html = "";
for (var i = 0; i < rectPhotoListEdit.length; i++) {
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative;">' +
'<img src="' + data.rectPhotoList[i].originalFilePath + '" alt="' + data.rectPhotoList[i].fileName + '" style="width: 90px; height: 90px;">';
let filePath = imgUrl + data.rectPhotoList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + data.rectPhotoList[i].fileName + '" style="width: 90px; height: 90px;">';
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + i + '\',\'' + data.rectPhotoList[i].id + '\')">删除</button>';
}

View File

@ -49,7 +49,7 @@ layui.use(['laydate', 'upload'], function () {
const uniqueId = new Date().getTime() + '-' + index;
$('#demo1').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -239,8 +239,9 @@ function setFormData(data) {
var html = "";
var demo1 = $("#demo1");
for (var i = 0; i < vioPhotoListEdit.length; i++) {
html = html + '<div id="img-' + vioPhotoListEdit[i].id + '" style="display: inline-block; position: relative;">' +
'<img src="' + vioPhotoListEdit[i].originalFilePath + '" alt="' +vioPhotoListEdit[i].fileName + '" style="width: 90px; height: 90px;">' ;
let filePath = imgUrl + vioPhotoListEdit[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + vioPhotoListEdit[i].id + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' +vioPhotoListEdit[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + vioPhotoListEdit[i].id + '\')">删除</button>';
}

View File

@ -58,7 +58,7 @@ layui.use(['laydate', 'upload'], function () {
const uniqueId = new Date().getTime() + '-' + index;
$('#demo1').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -108,7 +108,7 @@ layui.use(['laydate', 'upload'], function () {
}
const uniqueId = new Date().getTime() + '-' + index;
$('#demo2').append(
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative;">' +
'<div id="img-' + uniqueId + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + result + '" alt="' + file.name + '" style="width: 90px; height: 90px;">' +
'<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImage(\'' + uniqueId + '\')">删除</button>' +
'</div>'
@ -303,8 +303,9 @@ function setFormData(data) {
var html = "";
var demo1 = $("#demo1");
for (var i = 0; i < vioPhotoListEdit.length; i++) {
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative;">' +
'<img src="' + data.vioPhotoList[i].originalFilePath + '" alt="' + data.vioPhotoList[i].fileName + '" style="width: 90px; height: 90px;">' ;
let filePath = imgUrl + data.vioPhotoList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + data.vioPhotoList[i].fileName + '" style="width: 90px; height: 90px;">' ;
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + i + '\',\'' + data.vioPhotoList[i].id + '\')">删除</button>';
}
@ -318,8 +319,9 @@ function setFormData(data) {
var demo2 = $("#demo2");
var html = "";
for (var i = 0; i < rectPhotoListEdit.length; i++) {
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative;">' +
'<img src="' + data.rectPhotoList[i].originalFilePath + '" alt="' + data.rectPhotoList[i].fileName + '" style="width: 90px; height: 90px;">';
let filePath = imgUrl + data.rectPhotoList[i].originalFilePath + "?token=" + tokens
html = html + '<div id="img-' + i + '" style="display: inline-block; position: relative; margin: 5px 5px">' +
'<img src="' + filePath + '" alt="' + data.rectPhotoList[i].fileName + '" style="width: 90px; height: 90px;">';
if (details != 1) {
html = html + '<button class="layui-btn layui-btn-xs layui-btn-danger" style="position: absolute; top: 0; right: 0;" onclick="removeImageUpdate(\'' + i + '\',\'' + data.rectPhotoList[i].id + '\')">删除</button>';
}

View File

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/css/layui.css" media="all">
<link rel="stylesheet" href="../../../../css/dataForm.css">
<style>
.section-title {
font-weight: bold;
margin-bottom: 10px;
display: flex;
align-items: center;
padding-left: 20px;
}
.section-title::before {
content: '▋';
color: #1E9FFF;
margin-right: 5px;
}
.layui-form-item {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.layui-form-label {
width: 120px;
text-align: right;
padding-right: 10px;
}
.layui-input-inline {
flex: 1;
margin-right: 20px;
}
.layui-input-block {
flex: 1;
margin-left: 0px;
}
#main-box {
}
.btn-box {
text-align: center;
margin-top: 20px;
}
</style>
<script src="../../../../js/libs/jquery-3.7.0.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../../js/layui-v2.6.8/layui.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../../js/publicJs.js"></script>
<script src="../../../../js/select.js"></script>
<script src="../../../../js/dict.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/aes.js"></script>
<title>协调照片(建设用地)-新增/修改</title>
</head>
<body>
<div id="main-box">
<form class="layui-form" onsubmit="return false;">
<input hidden id="id">
<div class="section-title">项目信息</div>
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>项目名称:</label>
<div class="layui-input-inline">
<select class="layui-input" id="proId" name="proName" lay-verify="required" lay-search="" lay-filter="proId">
</select>
</div>
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>建设地点:</label>
<div class="layui-input-inline">
<input type="text" name="buildPlace" id="buildPlace" lay-verify="required" placeholder="输入内容" maxlength="30" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专业:</label>
<div class="layui-input-inline">
<select class="layui-input" id="majorId" name="majorName" lay-filter="majorId">
</select>
</div>
<label class="layui-form-label">工序:</label>
<div class="layui-input-inline">
<select class="layui-input" id="gxId" name="gxName" lay-filter="gxId">
</select>
</div>
</div>
<!-- Violation Information Section -->
<div class="section-title">建设前</div>
<div class="layui-form-item">
<label class="layui-form-label">建设前描述:</label>
<div class="layui-input-block">
<textarea name="buildBeforeDesc" id="buildBeforeDesc" maxlength="100" placeholder="输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">建设前照片:</label>
<div class="layui-input-block">
<div class="layui-upload">
<button type="button" class="layui-btn" id="test1">
<i class="layui-icon layui-icon-upload"></i> 多图片上传
</button>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 11px;">
预览图:
<div class="layui-upload-list" id="demo1"></div>
</blockquote>
</div>
<button id="hideUpload1" type="button" style="display: none"></button>
</div>
</div>
<div class="section-title">建设中</div>
<div class="layui-form-item">
<label class="layui-form-label">建设中描述:</label>
<div class="layui-input-block">
<textarea name="buildUnderDesc" id="buildUnderDesc" maxlength="100" placeholder="输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">建设中照片:</label>
<div class="layui-input-block">
<div class="layui-upload">
<button type="button" class="layui-btn" id="test2">
<i class="layui-icon layui-icon-upload"></i> 多图片上传
</button>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 11px;">
预览图:
<div class="layui-upload-list" id="demo2"></div>
</blockquote>
<button id="hideUpload2" type="button" style="display: none"></button>
</div>
</div>
</div>
<div class="section-title">恢复后</div>
<div class="layui-form-item">
<label class="layui-form-label">恢复后描述:</label>
<div class="layui-input-block">
<textarea name="buildAfterDesc" id="buildAfterDesc" maxlength="100" placeholder="输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">恢复后照片:</label>
<div class="layui-input-block">
<div class="layui-upload">
<button type="button" class="layui-btn" id="test3">
<i class="layui-icon layui-icon-upload"></i> 多图片上传
</button>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 11px;">
预览图:
<div class="layui-upload-list" id="demo3"></div>
</blockquote>
<button id="hideUpload3" type="button" style="display: none"></button>
</div>
</div>
</div>
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>
</div>
<div class="btn-box">
<button class="layui-btn layui-btn-norma save" onclick="saveData2()">确定</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
</div>
</body>
<script src="../../../../js/imageUpload/coordinatePhoto/child/coordinatePhotoForm.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/css/layui.css" media="all">
<link rel="stylesheet" href="../../../css/table-common2.css">
<script src="../../../js/libs/jquery-3.7.0.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../js/layui-v2.6.8/layui.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../js/publicJs.js"></script>
<script src="../../../js/commonUtils.js"></script>
<script src="../../../js/openIframe.js"></script>
<script src="../../../js/my/aes.js"></script>
<script src="../../../js/ajaxRequest.js"></script>
<title>协调照片(建设用地)</title>
</head>
<body>
<div id="content">
<div class="basic-search-box layout">
<form class="layui-form basic-form" onsubmit="return false;">
<div class="layui-form-item">
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline" style="width: 100%;">
<input type="text" id="keyWord" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入关键字">
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<select id="proId" name="proName" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<select id="proTypeId" name="proTypeName" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<select id="processId" name="processName" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-inline btns">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="query(1)">查询
</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="query(2)">重置
</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="exportExcel()">导出
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2"
onclick="addData(null)">
<div class="layout" style="justify-content: space-around;"><img
src="../../../img/form/add_icon3.png">
<p>新增</p></div>
</button>
</div>
</div>
</form>
</div>
<div class="table-box" table-responsive style="z-index: 1;">
<table id="table_data" class="table" lay-filter="table_data"></table>
<div id="voi-page" class="layout"></div>
</div>
</div>
</body>
<style>
.layui-table-init {
background-color: transparent !important;
}
</style>
<script src="../../../js/imageUpload/coordinatePhoto/coordinatePhotoList.js" charset="UTF-8" type="text/javascript"></script>
</html>