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

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