新增工程概况字段接口调试完成

This commit is contained in:
BianLzhaoMin 2025-06-09 16:37:59 +08:00
parent 66950444c8
commit b7618fd2e8
1 changed files with 249 additions and 187 deletions

View File

@ -1,116 +1,134 @@
let form, layer, util, laydate, idParam, phoneParam; let form, layer, util, laydate, idParam, phoneParam;
let arr = ['background', 'web', 'mobile', 'wx']; let arr = ["background", "web", "mobile", "wx"];
let background, web, mobile, wx; let background, web, mobile, wx;
let data = [], appResList = []; let data = [],
appResList = [];
let startDate, endDate; let startDate, endDate;
function setParams(params) { function setParams(params) {
console.log(params) console.log(params);
idParam = JSON.parse(params).id; idParam = JSON.parse(params).id;
layui.config({ layui
base: "../../../../js/layui-v2.6.8/" .config({
}).extend({ base: "../../../../js/layui-v2.6.8/",
dtree: 'dtree/dtree', })
formSelects: 'formSelects-v4', .extend({
}).use(['form', 'layer', 'dtree', 'util', 'laydate', 'formSelects'], function () { dtree: "dtree/dtree",
form = layui.form; formSelects: "formSelects-v4",
layer = layui.layer; })
util = layui.util; .use(
formSelects = layui.formSelects; ["form", "layer", "dtree", "util", "laydate", "formSelects"],
dtree = layui.dtree; function () {
laydate = layui.laydate; form = layui.form;
var $ = layui.jquery; layer = layui.layer;
util = layui.util;
formSelects = layui.formSelects;
dtree = layui.dtree;
laydate = layui.laydate;
var $ = layui.jquery;
// 添加自定义验证规则 // 添加自定义验证规则
form.verify({ form.verify({
// 正数验证(线路长度) // 正数验证(线路长度)
positiveNumber: function (value, item) { positiveNumber: function (value, item) {
if (value) { if (value) {
if (!/^[0-9]+\.?[0-9]*$/.test(value)) { if (!/^[0-9]+\.?[0-9]*$/.test(value)) {
return '请输入正数'; return "请输入正数";
} }
if (parseFloat(value) <= 0) { if (parseFloat(value) <= 0) {
return '请输入大于0的数'; return "请输入大于0的数";
} }
} }
}, },
// 经度验证 // 经度验证
longitude: function (value, item) { longitude: function (value, item) {
if (value) { if (value) {
// if (!/^[\-\+]?((180(\.0{1,6})?)|((\d{1,2}|1[0-7]\d)(\.\d{1,6})?))$/.test(value)) { // if (!/^[\-\+]?((180(\.0{1,6})?)|((\d{1,2}|1[0-7]\d)(\.\d{1,6})?))$/.test(value)) {
// return '请输入正确的经度(-180.0+180.0'; // return '请输入正确的经度(-180.0+180.0';
// } // }
const longitudeValue = parseFloat(value); const longitudeValue = parseFloat(value);
if(isNaN(longitudeValue) || longitudeValue < 73.55 || longitudeValue > 135.08) { if (
return '请输入位于正确的经度大约73.55°E至135.08°E'; isNaN(longitudeValue) ||
} longitudeValue < 73.55 ||
// 可选检查小数位数假设要求最多6位小数 longitudeValue > 135.08
if(!/^[\-\+]?((135(\.0{1,6})?)|((\d{1,2}|1[0-2]\d|13[0-4])(\.\d{1,6})?))$/.test(value)) { ) {
return '经度应精确到最多6位小数且在正确范围内'; return "请输入位于正确的经度大约73.55°E至135.08°E";
} }
} // 可选检查小数位数假设要求最多6位小数
}, if (
!/^[\-\+]?((135(\.0{1,6})?)|((\d{1,2}|1[0-2]\d|13[0-4])(\.\d{1,6})?))$/.test(
value
)
) {
return "经度应精确到最多6位小数且在正确范围内";
}
}
},
// 纬度验证 // 纬度验证
latitude: function (value, item) { latitude: function (value, item) {
if (value) { if (value) {
/*if (!/^[\-\+]?((90(\.0{1,6})?)|(([0-8]?\d)(\.\d{1,6})?))$/.test(value)) { /*if (!/^[\-\+]?((90(\.0{1,6})?)|(([0-8]?\d)(\.\d{1,6})?))$/.test(value)) {
return '请输入正确的纬度(-90.0+90.0'; return '请输入正确的纬度(-90.0+90.0';
}*/ }*/
const latitudeValue = parseFloat(value); const latitudeValue = parseFloat(value);
if(isNaN(latitudeValue) || latitudeValue < 4 || latitudeValue > 53) { if (
return '请输入位于正确的纬度大约4°N至53°N'; isNaN(latitudeValue) ||
} latitudeValue < 4 ||
// 可选检查小数位数假设要求最多6位小数 latitudeValue > 53
// if(!/^[\-\+]?((53(\.0{1,6})?)|(([0-4]?\d)(\.\d{1,6})?))$/.test(value)) { ) {
// return '纬度应精确到最多6位小数且在正确范围内'; return "请输入位于正确的纬度大约4°N至53°N";
// } }
// 可选检查小数位数假设要求最多6位小数
// if(!/^[\-\+]?((53(\.0{1,6})?)|(([0-4]?\d)(\.\d{1,6})?))$/.test(value)) {
// return '纬度应精确到最多6位小数且在正确范围内';
// }
// 检查最多6位小数允许整数或最多6位小数 // 检查最多6位小数允许整数或最多6位小数
if (!/^-?\d+(\.\d{1,6})?$/.test(value)) { if (!/^-?\d+(\.\d{1,6})?$/.test(value)) {
return '纬度应精确到最多6位小数'; return "纬度应精确到最多6位小数";
} }
}
},
});
// 初始化日期选择器
laydate.render({
elem: "#planStartTime",
done: function (value, date) {
startDate = value;
validateDates();
},
});
laydate.render({
elem: "#planEndTime",
done: function (value, date) {
endDate = value;
validateDates();
},
});
// 初始化下拉选项
initSelects();
console.log(idParam + "idParam");
if (idParam) {
getUserById();
} }
form.render("select"); //重新渲染页面checkbox控件
form.on("submit(formData)", function (data) {
data.field.id = $("#id").val();
console.log(data);
if (!data.field.orgId_select_nodeId) {
return layer.alert("请选择项目部!", { icon: 2 });
}
saveData(data);
});
} }
}); );
// 初始化日期选择器
laydate.render({
elem: '#planStartTime',
done: function (value, date) {
startDate = value;
validateDates();
}
});
laydate.render({
elem: '#planEndTime',
done: function (value, date) {
endDate = value;
validateDates();
}
});
// 初始化下拉选项
initSelects();
console.log(idParam + "idParam")
if (idParam) {
getUserById();
}
form.render("select");//重新渲染页面checkbox控件
form.on('submit(formData)', function (data) {
data.field.id = $('#id').val();
console.log(data)
if (!data.field.orgId_select_nodeId) {
return layer.alert("请选择项目部!", {icon: 2})
}
saveData(data);
});
});
} }
// 验证日期 // 验证日期
@ -119,8 +137,8 @@ function validateDates() {
var start = new Date(startDate); var start = new Date(startDate);
var end = new Date(endDate); var end = new Date(endDate);
if (start > end) { if (start > end) {
$("#planEndTime").val("") $("#planEndTime").val("");
layer.msg("计划开始时间不能早于计划完工时间") layer.msg("计划开始时间不能早于计划完工时间");
return false; return false;
} }
} }
@ -131,57 +149,73 @@ function validateDates() {
function initSelects() { function initSelects() {
getOrgTree(); getOrgTree();
let voltageLevelData = getDistinctListByParentCode({dictCode: "voltage_level"}); let voltageLevelData = getDistinctListByParentCode({
setSelectValueNameCode(voltageLevelData, "voltageLevel", "请选择电压等级") dictCode: "voltage_level",
});
setSelectValueNameCode(voltageLevelData, "voltageLevel", "请选择电压等级");
let proStatusData = getDistinctListByParentCode({dictCode: "pro_status"}); let proStatusData = getDistinctListByParentCode({ dictCode: "pro_status" });
setSelectValueNameCode(proStatusData, "proStatus", "请选择状态") setSelectValueNameCode(proStatusData, "proStatus", "请选择状态");
} }
// 根据id获取用户信息 // 根据id获取用户信息
function getUserById() { function getUserById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: true, time: 0,}); let loadingMsg = layer.msg("数据加载中,请稍候...", {
icon: 16,
scrollbar: true,
time: 0,
});
setTimeout(() => { setTimeout(() => {
let url = dataUrl + "/tbProject/getTbProjectById"; let url = dataUrl + "/tbProject/getTbProjectById";
let params = { let params = {
id: idParam id: idParam,
} };
console.log(params) console.log(params);
params = { params = {
encryptedData: encryptCBC(JSON.stringify(params)) encryptedData: encryptCBC(JSON.stringify(params)),
} };
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(
}, function (result) { url,
layer.close(loadingMsg); // 关闭提示层 "POST",
if (result.code === 200) { params,
setFormData(result.data); true,
} else if (result.code === 500) { function () {},
layer.alert(result.msg, {icon: 2}) function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
setFormData(result.data);
} else if (result.code === 500) {
layer.alert(result.msg, { icon: 2 });
}
},
function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr);
} }
}, function (xhr) { );
layer.close(loadingMsg); // 关闭提示层 }, 200);
error(xhr)
});
}, 200)
} }
// 设置表单内容 // 设置表单内容
function setFormData(data) { function setFormData(data) {
console.log("data:", data) console.log("data:", data);
if (data) { if (data) {
$('#id').val(data.id) $("#id").val(data.id);
$('#proName').val(data.proName) $("#proName").val(data.proName);
$('#voltageLevel').val(data.voltageLevel) $("#voltageLevel").val(data.voltageLevel);
$('#lineLength').val(data.lineLength) $("#lineLength").val(data.lineLength);
$('#planStartTime').val(data.planStartTime) $("#planStartTime").val(data.planStartTime);
$('#planEndTime').val(data.planEndTime) $("#planEndTime").val(data.planEndTime);
$('#lon').val(data.lon) $("#lon").val(data.lon);
$('#lat').val(data.lat) $("#lat").val(data.lat);
$('#address').val(data.address) $("#address").val(data.address);
$('#proStatus').val(data.proStatus) $("#proStatus").val(data.proStatus);
$('#orgId').val(data.departId) $("#orgId").val(data.departId);
// 增加工程概况字段 2025-06-09
$("#projectOverview").val(data.projectOverview);
dtree.dataInit("orgId", data.departId); dtree.dataInit("orgId", data.departId);
dtree.selectVal("orgId"); dtree.selectVal("orgId");
layui.form.render(); layui.form.render();
@ -189,13 +223,13 @@ function setFormData(data) {
} }
function saveData2() { function saveData2() {
$('#formSubmit').trigger('click') $("#formSubmit").trigger("click");
} }
// 处理空字段转换为null // 处理空字段转换为null
function handleEmptyFields(data) { function handleEmptyFields(data) {
for (let key in data) { for (let key in data) {
if (data[key] === '' || data[key] === undefined) { if (data[key] === "" || data[key] === undefined) {
data[key] = null; data[key] = null;
} }
} }
@ -204,7 +238,11 @@ function handleEmptyFields(data) {
// 保存数据 // 保存数据
function saveData(data) { function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); let loadingMsg = layer.msg("数据上传中,请稍候...", {
icon: 16,
scrollbar: false,
time: 0,
});
let url = dataUrl + "/tbProject/addTbProject"; let url = dataUrl + "/tbProject/addTbProject";
let params = data.field; let params = data.field;
if (params.id != "") { if (params.id != "") {
@ -217,52 +255,75 @@ function saveData(data) {
console.log("线路工程管理的新增修改", params); console.log("线路工程管理的新增修改", params);
params = { params = {
encryptedData: encryptCBC(JSON.stringify(params)) encryptedData: encryptCBC(JSON.stringify(params)),
} };
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(
$('.save').addClass("layui-btn-disabled").attr("disabled", true); url,
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true); "POST",
}, function (result) { params,
layer.close(loadingMsg); true,
if (result.code === 200) { function () {
layer.msg(result.msg, {icon: 1}); $(".save").addClass("layui-btn-disabled").attr("disabled", true);
setTimeout(function () { $(".cancel").addClass("layui-btn-disabled").attr("disabled", true);
closePage(1); },
},3000) function (result) {
} else { layer.close(loadingMsg);
layer.alert(result.msg, {icon: 2}) if (result.code === 200) {
$('.save').removeClass("layui-btn-disabled").attr("disabled", false); layer.msg(result.msg, { icon: 1 });
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); setTimeout(function () {
closePage(1);
}, 3000);
} 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 (xhr) { );
layer.close(loadingMsg);
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
error(xhr)
});
} }
function getOrgTree() { function getOrgTree() {
let data = []; let data = [];
let url = dataUrl + '/users/getOrgByUserId'; let url = dataUrl + "/users/getOrgByUserId";
ajaxRequest(url, "POST", null, false, function () { ajaxRequest(
}, function (result) { url,
if (result.code === 200) { "POST",
console.log(result, "getOrgTree") null,
data = result.data; false,
data.forEach(node => { function () {},
if (node.level !== "3") { function (result) {
node.disabled = true; // 标记为不可选中 if (result.code === 200) {
} console.log(result, "getOrgTree");
}); data = result.data;
setOrgTree(data) data.forEach((node) => {
} else { if (node.level !== "3") {
layer.alert(result.msg, {icon: 2}) node.disabled = true; // 标记为不可选中
}
});
setOrgTree(data);
} else {
layer.alert(result.msg, { icon: 2 });
}
},
function (xhr) {
error(xhr);
} }
}, function (xhr) { );
error(xhr)
});
return data; return data;
} }
@ -272,35 +333,36 @@ function setOrgTree(data) {
data: data, data: data,
dataFormat: "list", dataFormat: "list",
skin: "laySimple", skin: "laySimple",
line: true, // 显示树线 line: true, // 显示树线
checkbar: false, //开启复选框 checkbar: false, //开启复选框
done: function (data, url, first) { done: function (data, url, first) {
console.log($('#orgId').val()) console.log($("#orgId").val());
if (first) { if (first) {
var params = dtree.dataInit("orgId", $('#orgId').val()); var params = dtree.dataInit("orgId", $("#orgId").val());
var selectParam = dtree.selectVal("orgId"); var selectParam = dtree.selectVal("orgId");
console.log(params) console.log(params);
} }
}, },
formatter: { formatter: {
title: function (data) { title: function (data) {
// 非第三层的节点显示为灰色 // 非第三层的节点显示为灰色
if (data.level != "3") { if (data.level != "3") {
return '<span style="color: #999;" >' return (
+ data.title + '</span>'; '<span style="color: #999;" >' + data.title + "</span>"
);
} }
return data.title; return data.title;
} },
}, },
nodeClick: function (param) { nodeClick: function (param) {
alert(param) alert(param);
// 如果节点不是第三层,则阻止选择 // 如果节点不是第三层,则阻止选择
if (param.level !== "3") { if (param.level !== "3") {
layer.msg("只能选择第三层节点!", { icon: 0 }); layer.msg("只能选择第三层节点!", { icon: 0 });
return false; // 阻止选择 return false; // 阻止选择
} }
return true; // 允许选择 return true; // 允许选择
} },
}); });
} }
@ -309,6 +371,6 @@ function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭 parent.layer.close(index); //再执行关闭
if (type === 1) { if (type === 1) {
parent.reloadData() parent.reloadData();
} }
} }