基础管理-线路工程管理-页面搭建

This commit is contained in:
lSun 2025-04-24 15:24:36 +08:00
parent 993dfeeaec
commit 4cfaf41b21
21 changed files with 3240 additions and 0 deletions

View File

@ -0,0 +1,119 @@
function setParams(params) {
layui.use(['upload', 'layer'], function(){
var upload = layui.upload;
var layer = layui.layer;
// 坐标系选择
document.querySelectorAll('.coordinate-option').forEach(function(item) {
item.addEventListener('click', function() {
var system = this.getAttribute('data-system');
// 更新选项样式
document.querySelectorAll('.coordinate-option').forEach(function(option) {
option.classList.remove('active');
});
this.classList.add('active');
// 显示对应的内容
document.querySelectorAll('.coordinate-content').forEach(function(content) {
content.classList.remove('active');
});
document.getElementById(system + '-template').classList.add('active');
document.getElementById(system + '-upload').classList.add('active');
});
});
// WGS-84坐标系模板下载
document.getElementById('downloadTemplateWGS84').addEventListener('click', function() {
layer.msg('开始下载WGS-84坐标系模板');
// 实际项目中替换为真实的下载链接
// window.location.href = 'path/to/wgs84_template.xlsx';
});
// 2000国家大地坐标系模板下载
document.getElementById('downloadTemplate2000').addEventListener('click', function() {
layer.msg('开始下载2000国家大地坐标系模板');
// 实际项目中替换为真实的下载链接
// window.location.href = 'path/to/2000_template.xlsx';
});
// WGS-84坐标系文件上传
upload.render({
elem: '#uploadFileWGS84',
url: '', // 上传接口
accept: 'file',
exts: 'xls|xlsx',
size: 10240, // 限制文件大小10MB
data: {
system: 'wgs84'
},
before: function(obj) {
layer.load(); // 上传loading
},
done: function(res) {
layer.closeAll('loading');
if (res.code == 0) {
layer.msg('WGS-84坐标系文件上传成功');
} else {
layer.msg('上传失败');
}
},
error: function() {
layer.closeAll('loading');
layer.msg('上传出错');
}
});
// 2000国家大地坐标系文件上传
upload.render({
elem: '#uploadFile2000',
url: '', // 上传接口
accept: 'file',
exts: 'xls|xlsx',
size: 10240, // 限制文件大小10MB
data: {
system: '2000'
},
before: function(obj) {
layer.load(); // 上传loading
},
done: function(res) {
layer.closeAll('loading');
if (res.code == 0) {
layer.msg('2000国家大地坐标系文件上传成功');
} else {
layer.msg('上传失败');
}
},
error: function() {
layer.closeAll('loading');
layer.msg('上传出错');
}
});
// 取消按钮
document.getElementById('cancelBtn').addEventListener('click', function() {
layer.confirm('确定要取消操作吗?', {
btn: ['确定', '取消']
}, function() {
// 确定取消
layer.msg('已取消');
// 实际项目中可能需要返回上一页或关闭弹窗
// window.history.back();
});
});
// 保存按钮
document.getElementById('saveBtn').addEventListener('click', function() {
// 获取选中的坐标系
var selectedSystem = document.querySelector('.coordinate-option.active').getAttribute('data-system');
// 检查是否已上传文件
// 实际项目中应该有更完善的验证
layer.msg('保存成功,选择的坐标系: ' + selectedSystem);
// 实际项目中这里应该提交表单或调用API
});
});
}

View File

@ -0,0 +1,156 @@
let form, layer, util,laydate, idParam, phoneParam;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [], appResList = [];
let startDate, endDate;
function setParams(params) {
console.log(params)
idParam = JSON.parse(params).id;
layui.use(['form', 'layer', 'util', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
util = layui.util;
laydate = layui.laydate;
var $ = layui.jquery;
// 初始化日期选择器
laydate.render({
elem: '#plannedStartTime',
done: function(value, date){
startDate = value;
validateDates();
}
});
laydate.render({
elem: '#plannedEndTime',
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();
saveData(data);
});
});
}
// 验证日期
function validateDates() {
if (startDate && endDate) {
var start = new Date(startDate);
var end = new Date(endDate);
if (start > end) {
$("#plannedEndTime").val("")
layer.msg("开始日期不能大于结束日期")
return false;
}
}
return true;
}
// 初始化下拉选项
function initSelects() {
// 这里可以通过AJAX获取下拉选项数据
// 项目部下拉选项
// 工程状态下拉选项
}
// 根据id获取用户信息
function getUserById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: true, time: 0,});
setTimeout(() => {
let url = dataUrl + "/users/getById";
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) {
setFormData(result.data);
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
}, 200)
}
// 设置表单内容
function setFormData(data) {
console.log("data:", data)
if (data) {
$("#password").removeAttr("lay-verify");
$("#pwd").css("display", "none");
$('#id').val(data.id)
$('#username').val(data.username)
$('#loginName').val(data.loginName)
layui.form.render();
}
}
function saveData2() {
$('#formSubmit').trigger('click')
}
// 保存数据
function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/addTemp";
let params = data.field;
if (params.id != "") {
url = dataUrl + "/users/update";
}
console.log("线路工程管理的新增修改",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,231 @@
let form, layer, util,laydate, idParam, phoneParam;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [], appResList = [];
let startDate, endDate;
function setParams(params) {
console.log(params)
idParam = JSON.parse(params).id;
layui.use(['form', 'layer', 'util', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
util = layui.util;
laydate = layui.laydate;
var $ = layui.jquery;
console.log(idParam + "idParam")
if (idParam) {
getRopewayById();
} else {
// 确保默认选中跨线路并触发相关验证规则
$('.span-type-option[data-type="cross-line"]').trigger('click');
}
// 初始化表单
form.render();
loadTowerOptions();
// 跨越类型切换
$('.span-type-option').click(function() {
$('.span-type-option').removeClass('active');
$(this).addClass('active');
let type = $(this).data('type');
// 隐藏所有输入框
$('#crossLineFields, #crossPublicFields, #crossRailwayFields').hide();
// 移除所有验证规则
$('input[name^="upper"], input[name^="lower"], input[name^="road"], input[name^="railway"]').removeAttr('lay-verify');
// 显示对应的输入框并设置验证规则
switch(type) {
case 'cross-line':
$('#crossLineFields').show();
$('input[name="upperLine"], input[name="lowerLine"]').attr('lay-verify', 'required');
break;
case 'cross-public':
$('#crossPublicFields').show();
$('input[name="roadName"], input[name="roadLevel"]').attr('lay-verify', 'required');
break;
case 'cross-railway':
$('#crossRailwayFields').show();
$('input[name="railwayName"], input[name="railwayType"]').attr('lay-verify', 'required');
break;
}
});
// 监听杆塔选择
form.on('select(towerSelect)', function(data) {
// 这里可以根据选择的杆塔自动填写相关信息
if(data.value) {
getTowerInfo(data.value);
}
});
// 表单验证
form.verify({
required: function(value, item) {
if(!value) {
return '必填项不能为空';
}
},
number: [
/^-?\d+\.?\d*$/,
'请输入有效的数字'
]
});
// 表单提交
form.on('submit(formData)', function(data) {
let formData = data.field;
// 验证必填项
if(!formData.towerId) {
layer.msg('请选择索道所在杆塔位置', {icon: 2});
return false;
}
if(!formData.ropewayLength) {
layer.msg('请输入索道长度', {icon: 2});
return false;
}
if(!formData.maxLoad) {
layer.msg('请输入最大载重', {icon: 2});
return false;
}
if(!formData.safetyDistance) {
layer.msg('请输入安全距离', {icon: 2});
return false;
}
if(!formData.maxSlope) {
layer.msg('请输入最大坡度', {icon: 2});
return false;
}
saveData(formData);
return false;
});
});
}
// 加载杆塔选项
function loadTowerOptions() {
let url = dataUrl + "/tower/list";
ajaxRequest(url, "GET", {}, true, null, function(result) {
if(result.code === 200) {
let options = '<option value="">选择杆塔</option>';
result.data.forEach(item => {
options += `<option value="${item.id}">${item.towerName}</option>`;
});
$('select[name="towerId"]').html(options);
form.render('select');
}
});
}
// 获取杆塔信息
function getTowerInfo(towerId) {
let url = dataUrl + "/tower/getById";
let params = {
id: towerId,
encryptedData: encryptCBC(JSON.stringify({id: towerId}))
};
ajaxRequest(url, "POST", params, true, null, function(result) {
if(result.code === 200) {
// 可以根据杆塔信息自动填写一些表单项
console.log("获取到杆塔信息:", result.data);
}
});
}
// 根据id获取索道信息
function getRopewayById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0});
let url = dataUrl + "/ropeway/getById";
let params = {
id: idParam,
encryptedData: encryptCBC(JSON.stringify({id: idParam}))
};
ajaxRequest(url, "POST", params, true, null, function(result) {
layer.close(loadingMsg);
if (result.code === 200) {
setFormData(result.data);
} else {
layer.alert(result.msg, {icon: 2});
}
}, function(xhr) {
layer.close(loadingMsg);
error(xhr);
});
}
// 设置表单数据
function setFormData(data) {
if(data) {
form.val("ropewayForm", data);
// 设置跨越类型并触发切换事件
$('.span-type-option').removeClass('active');
$(`.span-type-option[data-type="${data.spanType}"]`).addClass('active').trigger('click');
}
}
function saveData2() {
$('#formSubmit').trigger('click')
}
// 保存数据
function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/ropeway/add";
let params = data;
if (params.id) {
url = dataUrl + "/ropeway/update";
}
console.log("索道运输的新增修改", params);
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
// 禁用所有输入框和按钮
function disableForm() {
$('input, select').attr('disabled', true);
$('.span-type-option').css('pointer-events', 'none');
$('.save, .cancel').addClass("layui-btn-disabled").attr("disabled", true);
}
// 启用所有输入框和按钮
function enableForm() {
$('input, select').attr('disabled', false);
$('.span-type-option').css('pointer-events', 'auto');
$('.save, .cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
ajaxRequest(url, "POST", params, true, function () {
disableForm();
}, 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})
enableForm();
}
}, function (xhr) {
layer.close(loadingMsg);
enableForm();
error(xhr)
});
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
if (type === 1) {
parent.reloadData()
}
}

View File

@ -0,0 +1,181 @@
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();
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/users/getList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} 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 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: "loginName", title: "索道所在杆塔", unresize: true, align: "center"},
{field: "username", title: "索道长度km", unresize: true, align: "center"},
{field: "username", title: "最大载重kg", unresize: true, align: "center"},
{field: "roleName", title: "安全距离m", unresize: true, align: "center"},
{field: "roleName", title: "最大坡度", unresize: true, align: "center"},
{
title: "操作", unresize: true, width: 200, align: "center",
templet: function (d) {
let html = '';
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 = edit + del;
if (d.delFlag == 1) {
return '';
}
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) {
$('#towerName').val('')
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
towerName: $('#towerName').val()
};
console.log("杆塔管理查询条件", obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query(type) {
pageNum = 1;
if(type === 2){
$('#towerName').val('')
layui.form.render();
}
pages(1, limitSize,type);
}
function reloadData() {
pages(pageNum, limitSize);
}
// 修改用户
function addData(id) {
let title = '修改'
let param = {
'id': id
}
openIframe2("editPro", title, "ropewayFormTemp.html", '1000px', '625px', param);
}
function addDataRopeway(id) {
let title = '新增'
let param = {
'id': id
}
openIframe2("addDataRopeway", title, "ropewayFormTemp.html", '1000px', '625px', param);
}
/*删除用户*/
function delData(id) {
layer.confirm("确定删除吗?", {
move: false
}, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/delById";
let params = {
'id': id
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", 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 exportRopeway(){
alert("导出")
}

View File

@ -0,0 +1,276 @@
let form, layer, util,laydate, idParam, phoneParam;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [], appResList = [];
let startDate, endDate;
function setParams(params) {
console.log(params)
idParam = JSON.parse(params).id;
layui.use(['form', 'layer', 'util', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
util = layui.util;
laydate = layui.laydate;
var $ = layui.jquery;
console.log(idParam + "idParam")
if (idParam) {
getThreeSpanById();
} else {
// 确保默认选中跨线路并触发相关验证规则
$('.span-type-option[data-type="cross-line"]').trigger('click');
}
// 初始化表单
form.render();
loadTowerOptions();
// 跨越类型切换
$('.span-type-option').click(function() {
$('.span-type-option').removeClass('active');
$(this).addClass('active');
let type = $(this).data('type');
// 隐藏所有输入框
$('#crossLineFields, #crossPublicFields, #crossRailwayFields').hide();
// 移除所有验证规则
$('input[name^="upper"], input[name^="lower"], input[name^="road"], input[name^="railway"]').removeAttr('lay-verify');
// 显示对应的输入框并设置验证规则
switch(type) {
case 'cross-line':
$('#crossLineFields').show();
$('input[name="upperLine"], input[name="lowerLine"]').attr('lay-verify', 'required');
break;
case 'cross-public':
$('#crossPublicFields').show();
$('input[name="roadName"], input[name="roadLevel"]').attr('lay-verify', 'required');
break;
case 'cross-railway':
$('#crossRailwayFields').show();
$('input[name="railwayName"], input[name="railwayType"]').attr('lay-verify', 'required');
break;
}
});
// 监听杆塔选择
form.on('select(towerSelect)', function(data) {
// 这里可以根据选择的杆塔自动填写相关信息
if(data.value) {
getTowerInfo(data.value);
}
});
// 表单验证
form.verify({
required: function(value, item) {
if(!value) {
return '必填项不能为空';
}
},
number: [
/^-?\d+\.?\d*$/,
'请输入有效的数字'
]
});
// 表单提交
form.on('submit(formData)', function(data) {
let formData = data.field;
let spanType = $('.span-type-option.active').data('type');
if(!spanType) {
layer.msg('请选择跨越类型', {icon: 2});
return false;
}
formData.spanType = spanType;
// 验证必填项
if(!formData.towerId) {
layer.msg('请选择杆塔', {icon: 2});
return false;
}
// 根据跨越类型验证必填项
switch(spanType) {
case 'cross-line':
if(!formData.upperLine) {
layer.msg('请输入上层线路', {icon: 2});
return false;
}
if(!formData.lowerLine) {
layer.msg('请输入下层线路', {icon: 2});
return false;
}
if(!formData.crossAngle) {
layer.msg('请输入交叉角度', {icon: 2});
return false;
}
if(!formData.verticalDistance) {
layer.msg('请输入垂直距离', {icon: 2});
return false;
}
if(!formData.safetyMargin) {
layer.msg('请输入安全裕度', {icon: 2});
return false;
}
break;
case 'cross-public':
if(!formData.verticalClearance) {
layer.msg('请输入垂直净距', {icon: 2});
return false;
}
if(!formData.towerSpacing) {
layer.msg('请输入杆塔间距', {icon: 2});
return false;
}
if(!formData.roadWidth) {
layer.msg('请输入公路宽度', {icon: 2});
return false;
}
break;
case 'cross-railway':
if(!formData.verticalClearance) {
layer.msg('请输入垂直净距', {icon: 2});
return false;
}
if(!formData.towerSpacing) {
layer.msg('请输入杆塔间距', {icon: 2});
return false;
}
if(!formData.crossAngle) {
layer.msg('请输入交叉角度', {icon: 2});
return false;
}
break;
}
saveData(formData);
return false;
});
});
}
// 加载杆塔选项
function loadTowerOptions() {
let url = dataUrl + "/tower/list";
ajaxRequest(url, "GET", {}, true, null, function(result) {
if(result.code === 200) {
let options = '<option value="">选择项目</option>';
result.data.forEach(item => {
options += `<option value="${item.id}">${item.towerName}</option>`;
});
$('select[name="towerId"]').html(options);
form.render('select');
}
});
}
// 获取杆塔信息
function getTowerInfo(towerId) {
let url = dataUrl + "/tower/getById";
let params = {
id: towerId,
encryptedData: encryptCBC(JSON.stringify({id: towerId}))
};
ajaxRequest(url, "POST", params, true, null, function(result) {
if(result.code === 200) {
// 可以根据杆塔信息自动填写一些表单项
console.log("获取到杆塔信息:", result.data);
}
});
}
// 根据id获取三跨信息
function getThreeSpanById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0});
let url = dataUrl + "/threeSpan/getById";
let params = {
id: idParam,
encryptedData: encryptCBC(JSON.stringify({id: idParam}))
};
ajaxRequest(url, "POST", params, true, null, function(result) {
layer.close(loadingMsg);
if (result.code === 200) {
setFormData(result.data);
} else {
layer.alert(result.msg, {icon: 2});
}
}, function(xhr) {
layer.close(loadingMsg);
error(xhr);
});
}
// 设置表单数据
function setFormData(data) {
if(data) {
form.val("threeSpanForm", data);
// 设置跨越类型并触发切换事件
$('.span-type-option').removeClass('active');
$(`.span-type-option[data-type="${data.spanType}"]`).addClass('active').trigger('click');
}
}
function saveData2() {
$('#formSubmit').trigger('click')
}
// 保存数据
function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/threeSpan/add";
let params = data;
if (params.id) {
url = dataUrl + "/threeSpan/update";
}
console.log("三跨管理的新增修改", params);
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
// 禁用所有输入框和按钮
function disableForm() {
$('input, select').attr('disabled', true);
$('.span-type-option').css('pointer-events', 'none');
$('.save, .cancel').addClass("layui-btn-disabled").attr("disabled", true);
}
// 启用所有输入框和按钮
function enableForm() {
$('input, select').attr('disabled', false);
$('.span-type-option').css('pointer-events', 'auto');
$('.save, .cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
ajaxRequest(url, "POST", params, true, function () {
disableForm();
}, 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})
enableForm();
}
}, function (xhr) {
layer.close(loadingMsg);
enableForm();
error(xhr)
});
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
if (type === 1) {
parent.reloadData()
}
}

View File

@ -0,0 +1,179 @@
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();
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/users/getList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} 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 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: "loginName", title: "杆塔号", unresize: true, align: "center"},
{field: "username", title: "跨越类型", unresize: true, align: "center"},
{field: "username", title: "跨越信息", unresize: true, align: "center"},
{
title: "操作", unresize: true, width: 200, align: "center",
templet: function (d) {
let html = '';
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 = edit + del;
if (d.delFlag == 1) {
return '';
}
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) {
$('#towerName').val('')
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
towerName: $('#towerName').val()
};
console.log("杆塔管理查询条件", obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query(type) {
pageNum = 1;
if(type === 2){
$('#towerName').val('')
layui.form.render();
}
pages(1, limitSize,type);
}
function reloadData() {
pages(pageNum, limitSize);
}
// 修改用户
function addData(id) {
let title = '修改'
let param = {
'id': id
}
openIframe2("editPro", title, "threeSpanFormTemp.html", '1000px', '625px', param);
}
function addDataThreeSpan(id) {
let title = '新增'
let param = {
'id': id
}
openIframe2("addDataThreeSpan", title, "threeSpanFormTemp.html", '1000px', '625px', param);
}
/*删除用户*/
function delData(id) {
layer.confirm("确定删除吗?", {
move: false
}, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/delById";
let params = {
'id': id
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", 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 exportThreeSpan(){
alert("导出")
}

View File

@ -0,0 +1,206 @@
let form, layer, util,laydate, idParam, phoneParam;
let arr = ['background', 'web', 'mobile', 'wx'];
let background, web, mobile, wx;
let data = [], appResList = [];
let startDate, endDate;
function setParams(params) {
console.log(params)
idParam = JSON.parse(params).id;
layui.use(['form', 'layer', 'util', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
util = layui.util;
laydate = layui.laydate;
var $ = layui.jquery;
console.log(idParam + "idParam")
if (idParam) {
getTowerById();
}
// 初始化表单
form.render();
// 坐标系切换
$('.coordinate-option').click(function() {
let system = $(this).data('system');
$('.coordinate-option').removeClass('active');
$(this).addClass('active');
if(system === 'WGS-84') {
$('#wgs84Fields').show();
$('#2000Fields').hide();
// 设置验证规则
$('input[name^="longitude2000"], input[name^="latitude2000"], input[name="centralMeridian"]').removeAttr('lay-verify');
$('input[name="longitude"], input[name="latitude"]').attr('lay-verify', 'required|number');
} else {
$('#wgs84Fields').hide();
$('#2000Fields').show();
// 设置验证规则
$('input[name="longitude"], input[name="latitude"]').removeAttr('lay-verify');
$('input[name^="longitude2000"], input[name^="latitude2000"], input[name="centralMeridian"]').attr('lay-verify', 'required|number');
}
});
// 表单验证
form.verify({
required: function(value, item) {
if(!value) {
return '必填项不能为空';
}
},
number: [
/^-?\d+\.?\d*$/,
'请输入有效的数字'
]
});
// 表单提交
form.on('submit(formData)', function(data) {
let formData = data.field;
let currentSystem = $('.coordinate-option.active').data('system');
formData.coordinateSystem = currentSystem;
// 验证必填项
if(!formData.towerName) {
layer.msg('请输入杆塔名称', {icon: 2});
return false;
}
if(!formData.sortNumber) {
layer.msg('请输入排序号', {icon: 2});
return false;
}
// 根据坐标系验证必填项
if(currentSystem === 'WGS-84') {
if(!formData.longitude) {
layer.msg('请输入经度', {icon: 2});
return false;
}
if(!formData.latitude) {
layer.msg('请输入纬度', {icon: 2});
return false;
}
} else {
if(!formData.centralMeridian) {
layer.msg('请输入中央子午线', {icon: 2});
return false;
}
if(!formData.longitude2000) {
layer.msg('请输入经度', {icon: 2});
return false;
}
if(!formData.latitude2000) {
layer.msg('请输入纬度', {icon: 2});
return false;
}
}
// 处理提交数据
if(currentSystem === 'WGS-84') {
delete formData.longitude2000;
delete formData.latitude2000;
delete formData.centralMeridian;
} else {
delete formData.longitude;
delete formData.latitude;
}
saveData(formData);
return false;
});
});
}
// 根据id获取杆塔信息
function getTowerById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, time: 0});
let url = dataUrl + "/tower/getById";
let params = {
id: idParam,
encryptedData: encryptCBC(JSON.stringify({id: idParam}))
};
ajaxRequest(url, "POST", params, true, null, function(result) {
layer.close(loadingMsg);
if (result.code === 200) {
setFormData(result.data);
} else {
layer.alert(result.msg, {icon: 2});
}
}, function(xhr) {
layer.close(loadingMsg);
error(xhr);
});
}
// 设置表单数据
function setFormData(data) {
if(data) {
form.val("towerForm", data);
// 设置坐标系
$('.coordinate-option').removeClass('active');
$(`.coordinate-option[data-system="${data.coordinateSystem}"]`).addClass('active').trigger('click');
}
}
function saveData2() {
$('#formSubmit').trigger('click')
}
// 保存数据
function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/tower/add";
let params = data; // 修改这里因为data已经是处理好的数据
if (params.id) {
url = dataUrl + "/tower/update";
}
console.log("杆塔管理的新增修改", params);
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
// 禁用所有输入框和按钮
function disableForm() {
$('input').attr('disabled', true);
$('.coordinate-option').css('pointer-events', 'none');
$('.save, .cancel').addClass("layui-btn-disabled").attr("disabled", true);
}
// 启用所有输入框和按钮
function enableForm() {
$('input').attr('disabled', false);
$('.coordinate-option').css('pointer-events', 'auto');
$('.save, .cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
ajaxRequest(url, "POST", params, true, function () {
disableForm(); // 请求开始时禁用表单
}, 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})
enableForm(); // 保存失败时启用表单
}
}, function (xhr) {
layer.close(loadingMsg);
enableForm(); // 发生错误时启用表单
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,240 @@
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();
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/users/getList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} 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 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: "loginName", title: "杆塔号", unresize: true, align: "center"},
{field: "username", title: "经度", unresize: true, align: "center"},
{field: "username", title: "纬度", unresize: true, align: "center"},
{field: "roleName", title: "排序号", unresize: true, align: "center"},
{
title: "操作", unresize: true, width: 200, align: "center",
templet: function (d) {
let html = '';
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 = edit + del;
if (d.delFlag == 1) {
return '';
}
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) {
$('#towerName').val('')
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
towerName: $('#towerName').val()
};
console.log("杆塔管理查询条件", obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query(type) {
pageNum = 1;
if(type === 2){
$('#towerName').val('')
layui.form.render();
}
pages(1, limitSize,type);
}
function reloadData() {
pages(pageNum, limitSize);
}
// 修改用户
function addData(id) {
let title = '修改'
let param = {
'id': id
}
openIframe2("editPro", title, "towerFormTemp.html", '1000px', '625px', param);
}
function addDataTower(id) {
let title = '新增'
let param = {
'id': id
}
openIframe2("addDataTower", title, "towerFormTemp.html", '1000px', '625px', param);
}
/*删除用户*/
function delData(id) {
layer.confirm("确定删除吗?", {
move: false
}, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/delById";
let params = {
'id': id
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", 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 editUserAccountStatus(id, status, type) {
let url = dataUrl + "/sys/user/editUserAccountStatus?token=" + token;
let params = {
'id': id,
'accountStatus': status,
'type': type
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
if (result.code === 200) {
if (type) {
reloadData();
}
parent.layer.msg(result.msg, {icon: 1})
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
// 管理员修改密码
function resetPwd(id) {
let param = {
'id': id,
'type': '1'
}
openIframe2("addOrEditUnifyUser", '修改密码', "password.html", '770px', '400px', param);
}
function addTower(id){
let param = {
'id': id
}
openIframe2("tower", '杆塔管理', "child/towerList.html", '1200px', '625px', param);
}
function addThreeSpan(id){
let param = {
'id': id
}
openIframe2("threeSpan", '“三跨”管理', "child/threeSpanList.html", '1200px', '625px', param);
}
function addRopeway(id){
let param = {
'id': id
}
openIframe2("ropeway", '索道运输', "child/ropewayList.html", '1200px', '625px', param);
}
function exportTower(){
alert("导出")
}
function importTower(){
let param = {
'id': ''
}
openIframe2("ropeway", '数据导入', "importTower.html", '1000px', '625px', param);
}

View File

@ -0,0 +1,265 @@
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();
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/users/getList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log(result);
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} 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 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: "loginName", title: "所属项目部", width: 180, unresize: true, align: "center"},
{field: "username", title: "线路工程名称",width: 180, unresize: true, align: "center"},
{field: "username", title: "电压等级",width: 180, unresize: true, align: "center"},
{field: "roleName", title: "线路长度(公里)",width: 200, unresize: true, align: "center"},
{field: "createTime", title: "计划起止时间",width: 180, unresize: true, align: "center"},
{field: "deptName", title: "工程地址 ",width: 180, unresize: true, align: "center"},
{field: "deptName", title: "工程状态 ",width: 180, unresize: true, align: "center"},
{field: "", title: "杆塔数量 ",width: 130, unresize: true, align: "center",
templet: function (d) {
let html = "<a class=\"layui-icon\" style='cursor:pointer;' title='杆塔管理' onclick=\"addTower('" + d.id + "')\">0</a>";
return html;
}
},
{field: "", title: "“三跨”数量 ",width: 150, unresize: true, align: "center",
templet: function (d) {
let html = "<a class=\"layui-icon\" style='cursor:pointer;' title='“三跨”管理' onclick=\"addThreeSpan('" + d.id + "')\">1</a>";
return html;
}
},
{
field: "", title: "索道数量 ",width: 130, unresize: true, align: "center",
templet: function (d) {
let html = "<a class=\"layui-icon\" style='cursor:pointer;' title='索道运输' onclick=\"addRopeway('" + d.id + "')\">12</a>";
return html;
}
},
{
title: "操作", unresize: true, width: 550, align: "center",
templet: function (d) {
let html = '';
let tower = "<a class=\"layui-icon layui-icon-set\" style='cursor:pointer;' title='杆塔管理' onclick=\"addTower('" + d.id + "')\">杆塔管理</a>";
let threeSpan = "<a class=\"layui-icon layui-icon-set\" style='cursor:pointer;' title='“三跨”管理' onclick=\"addThreeSpan('" + d.id + "')\">三跨管理</a>";
let ropeway = "<a class=\"layui-icon layui-icon-set\" style='cursor:pointer;' title='索道运输' onclick=\"addRopeway('" + 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 = tower + threeSpan + ropeway + edit + del;
if (d.delFlag == 1) {
return '';
}
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) {
$('#departName').val('');
$('#proName').val('');
$('#state').val('');
layui.form.render();
}
obj = {
page: page + "",
limit: limit + "",
departName: $('#departName').val(),
proName: $('#proName').val(),
state: $('#state').val(),
};
console.log("线路工程管理查询条件", obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query(type) {
pageNum = 1;
if(type === 2){
$('#departName').val('');
$('#proName').val('');
$('#state').val('');
layui.form.render();
}
pages(1, limitSize,type);
}
function reloadData() {
pages(pageNum, limitSize);
}
// 修改用户
function addData(id) {
let title = '修改'
let param = {
'id': id
}
openIframe2("editPro", title, "child/lineFormTemp.html", '1000px', '625px', param);
}
function addDataPro(id) {
let title = '新增'
let param = {
'id': id
}
openIframe2("addDataPro", title, "child/lineFormTemp.html", '1000px', '625px', param);
}
/*删除用户*/
function delData(id) {
layer.confirm("确定删除吗?", {
move: false
}, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/delById";
let params = {
'id': id
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", 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 editUserAccountStatus(id, status, type) {
let url = dataUrl + "/sys/user/editUserAccountStatus?token=" + token;
let params = {
'id': id,
'accountStatus': status,
'type': type
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
if (result.code === 200) {
if (type) {
reloadData();
}
parent.layer.msg(result.msg, {icon: 1})
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
// 管理员修改密码
function resetPwd(id) {
let param = {
'id': id,
'type': '1'
}
openIframe2("addOrEditUnifyUser", '修改密码', "password.html", '770px', '400px', param);
}
function addTower(id){
let param = {
'id': id
}
openIframe2("tower", '杆塔管理', "child/towerList.html", '1200px', '685px', param);
}
function addThreeSpan(id){
let param = {
'id': id
}
openIframe2("threeSpan", '“三跨”管理', "child/threeSpanList.html", '1200px', '685px', param);
}
function addRopeway(id){
let param = {
'id': id
}
openIframe2("ropeway", '索道运输', "child/ropewayList.html", '1200px', '685px', param);
}
function exportPro(){
alert("导出")
}

View File

@ -0,0 +1,136 @@
<!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="../../../js/layui-v2.6.8/dtree/dtree.css">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../css/dataForm.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/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="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>用户名</label>
<div class="layui-input-inline">
<input class="layui-input" id="username" name="username" autocomplete="off"
lay-verify="required" maxlength="30">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录名</label>
<div class="layui-input-inline">
<input class="layui-input" id="loginName" name="loginName" autocomplete="off"
lay-verify="required" maxlength="30">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>密码</label>
<div class="layui-input-inline">
<input class="layui-input" type="password" id="password" name="password" autocomplete="off"
lay-verify="required" maxlength="50">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录手机号</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off"
lay-verify="required|isRepeat" maxlength="11" id="phone" name="phone">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">邮箱</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off"
maxlength="50" id="email" name="email">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-inline">
<select class="form-control input-sm" name="sex" id="sex">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">组织机构</label>
<div class="layui-input-inline">
<ul id="orgId" class="dtree" data-id="0"></ul>
<!-- <select class="form-control input-sm" name="orgId" id="orgId">-->
<!-- </select>-->
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所属单位</label>
<div class="layui-input-inline">
<select class="form-control input-sm" name="unit" id="unit">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所属部门</label>
<div class="layui-input-inline">
<select class="form-control input-sm" name="dept" id="dept">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">登录权限</label>
<div class="layui-input-inline" id="cbGuDing" >
<input type="checkbox" name="loginType" value="1" title="后台" lay-skin="primary" checked>
<input type="checkbox" name="loginType" value="2" title="大屏" lay-skin="primary">
<input type="hidden" id="loginType" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色</label>
<div class="layui-input-inline">
<select id="roleId" name="roleId" class="form-control input-sm">
</select>
</div>
</div>
<!--权限暂时去除-->
<!--<div class="layui-form-item" style="padding: 0;">
<label class="layui-form-label" style="width: 70px;"><i style="padding: 0 10px;">*</i>权限</label>
<div class="layui-input-inline" id="tree">
<div class="tree-demo">
<ul id="background" class="dtree" data-id="0"></ul>
</div>
<div class="tree-demo">
<ul id="web" class="dtree" data-id="0"></ul>
</div>
<div class="tree-demo">
<ul id="mobile" class="dtree" data-id="0"></ul>
</div>
<div class="tree-demo">
<ul id="wx" class="dtree" data-id="0"></ul>
</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/system/child/userForm.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -0,0 +1,247 @@
<!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>
<style>
body {
background-color: #f2f2f2;
}
.container {
padding: 20px;
max-width: 800px;
margin: 0 auto;
background-color: #fff;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
}
.coordinate-system {
margin-bottom: 20px;
}
.required-label:before {
content: "*";
color: #FF5722;
margin-right: 5px;
}
.upload-section {
background-color: #fff;
margin-bottom: 20px;
border-radius: 2px;
display: flex;
align-items: stretch;
border: 1px solid #e6e6e6;
overflow: hidden;
}
.icon-container {
width: 120px;
background-color: #f2f2f2;
display: flex;
align-items: center;
justify-content: center;
}
.content-container {
flex: 1;
padding: 20px;
}
.upload-icon {
font-size: 40px;
color: #ccc;
text-align: center;
}
.upload-title {
font-weight: bold;
margin-bottom: 10px;
}
.upload-desc {
color: #666;
font-size: 14px;
margin-bottom: 10px;
}
.upload-link {
color: #1E9FFF;
cursor: pointer;
}
.notice-box {
background-color: #FFFBE5;
padding: 15px;
border-radius: 2px;
margin-bottom: 20px;
display: flex;
align-items: flex-start;
}
.notice-icon {
color: #FFB800;
margin-right: 15px;
font-size: 24px;
width: 30px;
text-align: center;
}
.btn-group {
text-align: right;
}
.layui-btn {
margin-left: 10px;
}
.coordinate-option {
display: inline-block;
padding: 6px 15px;
border: 1px solid #e6e6e6;
border-radius: 20px;
margin-right: 10px;
cursor: pointer;
background-color: #fff;
}
.coordinate-option.active {
background-color: #ecf5ff;
border-color: #d9ecff;
color: #409eff;
}
.coordinate-content {
display: none;
}
.coordinate-content.active {
display: block;
}
.system-label {
display: inline-block;
margin-right: 10px;
font-weight: bold;
color: #409eff;
}
</style>
</head>
<body>
<div class="container">
<div class="coordinate-system">
<span class="required-label">坐标系:</span>
<span class="coordinate-option active" data-system="wgs84">WGS-84坐标系</span>
<span class="coordinate-option" data-system="2000">2000国家大地坐标系</span>
</div>
<!-- WGS-84坐标系 模板下载 -->
<div id="wgs84-template" class="coordinate-content active">
<div class="upload-section">
<div class="icon-container">
<div class="upload-icon">
<i class="layui-icon layui-icon-download-circle" style="font-size: 80px;"></i>
</div>
</div>
<div class="content-container">
<div class="upload-title">
填写导入数据模板信息
</div>
<div class="upload-desc">
请按照数据模板的格式准备导入数据,模板中的表头名称不可更改,表头行不能删除
</div>
<a class="upload-link" id="downloadTemplateWGS84">下载模板</a>
</div>
</div>
</div>
<!-- 2000国家大地坐标系 模板下载 -->
<div id="2000-template" class="coordinate-content">
<div class="upload-section">
<div class="icon-container">
<div class="upload-icon">
<i class="layui-icon layui-icon-download-circle" style="font-size: 80px;"></i>
</div>
</div>
<div class="content-container">
<div class="upload-title">
填写导入数据模板信息
</div>
<div class="upload-desc">
请按照数据模板的格式准备导入数据,模板中的表头名称不可更改,表头行不能删除
</div>
<a class="upload-link" id="downloadTemplate2000">下载模板</a>
</div>
</div>
</div>
<!-- WGS-84坐标系 文件上传 -->
<div id="wgs84-upload" class="coordinate-content active">
<div class="upload-section">
<div class="icon-container">
<div class="upload-icon">
<i class="layui-icon layui-icon-upload" style="font-size: 80px;"></i>
</div>
</div>
<div class="content-container">
<div class="upload-title">
上传填好的信息表
</div>
<div class="upload-desc">文件后缀名必须为xls 或
xlsx即Excel格式文件大小不得超过10M最多支持导入3000条数据
</div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="uploadFileWGS84">上传文件
</button>
</div>
</div>
</div>
<!-- 2000国家大地坐标系 文件上传 -->
<div id="2000-upload" class="coordinate-content">
<div class="upload-section">
<div class="icon-container">
<div class="upload-icon">
<i class="layui-icon layui-icon-upload" style="font-size: 80px;"></i>
</div>
</div>
<div class="content-container">
<div class="upload-title">
上传填好的信息表
</div>
<div class="upload-desc">文件后缀名必须为xls 或
xlsx即Excel格式文件大小不得超过10M最多支持导入3000条数据
</div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="uploadFile2000">上传文件
</button>
</div>
</div>
</div>
<div class="notice-box">
<div class="notice-icon">
<i class="layui-icon layui-icon-about" style="font-size: 30px;"></i>
</div>
<div style="flex: 1;">
<div style="font-weight: bold; margin-bottom: 5px;">特别提示</div>
<div>导入过程中如发现同名坐标号,且对数据库有更新权限,则更新该条数据</div>
</div>
</div>
<div class="btn-group">
<button type="button" class="layui-btn layui-btn-primary" id="cancelBtn">取消</button>
<button type="button" class="layui-btn" id="saveBtn">保存</button>
</div>
</div>
</body>
<script type="text/javascript" src="../../../../js/basic/lineManagement/child/importTower.js"></script>
</html>

View File

@ -0,0 +1,169 @@
<!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="../../../../js/layui-v2.6.8/dtree/dtree.css">
<link href="../../../../js/layui-v2.6.8/formSelects-v4.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../../css/dataForm.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/select.js"></script>
<script src="../../../../js/dict.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/aes.js"></script>
<title>线路工程管理 -新增/修改</title>
<style>
/* 基本样式 */
.form-container {
width: 100%;
padding: 20px 0px;
}
/* 行样式 */
.form-row {
display: flex;
margin-bottom: 20px;
width: 100%;
}
/* 表单项样式 */
.form-item {
display: flex;
align-items: center;
width: 50%;
padding-right: 20px;
box-sizing: border-box;
}
/* 标签样式 */
.form-label {
min-width: 120px;
text-align: right;
padding-right: 10px;
}
/* 输入框容器 */
.input-container {
flex: 1;
}
/* 输入框样式 */
.layui-input, .layui-select {
width: 100%;
}
/* 必填项标记 */
.required {
color: red;
margin-right: 5px;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form form-container " onsubmit="return false;">
<input hidden id="id">
<div class="form-row">
<div class="form-item">
<div class="form-label"><span class="required">*</span>项目部:</div>
<div class="input-container">
<select id="projectId" lay-verify="required" name="projectId" lay-filter="projectId" class="layui-input">
<option value="">选择选项</option>
</select>
</div>
</div>
<div class="form-item">
<div class="form-label"><span class="required">*</span>工程名称:</div>
<div class="input-container">
<input class="layui-input" id="engineeringName" name="engineeringName" autocomplete="off"
placeholder="输入内容" lay-verify="required" maxlength="50">
</div>
</div>
</div>
<div class="form-row">
<div class="form-item">
<div class="form-label">电压等级:</div>
<div class="input-container">
<input class="layui-input" id="voltageLevel" name="voltageLevel" autocomplete="off"
placeholder="输入内容" maxlength="20">
</div>
</div>
<div class="form-item">
<div class="form-label">线路长度km</div>
<div class="input-container">
<input class="layui-input" id="lineLength" name="lineLength" autocomplete="off"
placeholder="输入内容" maxlength="20">
</div>
</div>
</div>
<div class="form-row">
<div class="form-item">
<div class="form-label">计划开始时间:</div>
<div class="input-container">
<input type="text" class="layui-input" id="plannedStartTime" name="plannedStartTime"
readonly>
</div>
</div>
<div class="form-item">
<div class="form-label">计划完工时间:</div>
<div class="input-container">
<input type="text" class="layui-input" id="plannedEndTime" name="plannedEndTime"
readonly>
</div>
</div>
</div>
<div class="form-row">
<div class="form-item">
<div class="form-label">工程程度:</div>
<div class="input-container">
<input class="layui-input" id="engineeringDegree" name="engineeringDegree" autocomplete="off"
placeholder="输入内容" maxlength="50">
</div>
</div>
<div class="form-item">
<div class="form-label">工程结果:</div>
<div class="input-container">
<input class="layui-input" id="engineeringResult" name="engineeringResult" autocomplete="off"
placeholder="输入内容" maxlength="50">
</div>
</div>
</div>
<div class="form-row">
<div class="form-item">
<div class="form-label">工程地址:</div>
<div class="input-container">
<input class="layui-input" id="engineeringAddress" name="engineeringAddress" autocomplete="off"
placeholder="输入内容" maxlength="100">
</div>
</div>
<div class="form-item">
<div class="form-label">工程状态:</div>
<div class="input-container">
<select id="engineeringStatus" name="engineeringStatus" lay-filter="engineeringStatus" class="layui-input">
<option value="">选择选项</option>
</select>
</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/basic/lineManagement/child/lineFormTemp.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -0,0 +1,87 @@
<!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="../../../../js/layui-v2.6.8/dtree/dtree.css">
<link href="../../../../js/layui-v2.6.8/formSelects-v4.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../../css/dataForm.css">
<title>线路工程管理-索道运输-新增/修改</title>
<style>
.layui-form-item {
margin-bottom: 15px;
}
.layui-input-inline {
width: 420px;
}
.required-mark {
color: #FF5722;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form" lay-filter="ropewayForm">
<input type="hidden" name="id" id="id">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>索道所在杆塔位置:</label>
<div class="layui-input-inline">
<select name="towerId" lay-verify="required" lay-filter="towerSelect">
<option value="">选择杆塔</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>索道长度(km):</label>
<div class="layui-input-inline">
<input type="text" name="ropewayLength" lay-verify="required|number" autocomplete="off"
placeholder="请输入" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>最大载重(kg):</label>
<div class="layui-input-inline">
<input type="text" name="maxLoad" lay-verify="required|number" autocomplete="off"
placeholder="请输入" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>安全距离(m):</label>
<div class="layui-input-inline">
<input type="text" name="safetyDistance" lay-verify="required|number" autocomplete="off"
placeholder="请输入" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>最大坡度(°):</label>
<div class="layui-input-inline">
<input type="text" name="maxSlope" lay-verify="required|number" autocomplete="off"
placeholder="请输入" class="layui-input">
</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-normal save" onclick="saveData2()">确定</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
</div>
</body>
<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>
<script src="../../../../js/basic/lineManagement/child/ropewayFormTemp.js"></script>
</html>

View File

@ -0,0 +1,53 @@
<!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">
<input type="text" id="towerName" name="towerName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入杆塔号">
</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-primary layui-btn-sm btn-1" style="background-color: #00377A;color: #ffffff"
onclick="exportRopeway()">
<div class="layout" style="justify-content: space-around;">
<p>导出</p></div>
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" style="background-color: #00377A;color: #ffffff"
onclick="addDataRopeway(null)">
<div class="layout" style="justify-content: space-around;">
<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>
<script type="text/javascript" src="../../../../js/basic/lineManagement/child/ropewayList.js"></script>
</html>

View File

@ -0,0 +1,235 @@
<!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="../../../../js/layui-v2.6.8/dtree/dtree.css">
<link href="../../../../js/layui-v2.6.8/formSelects-v4.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../../css/dataForm.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/select.js"></script>
<script src="../../../../js/dict.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/aes.js"></script>
<title>线路工程管理-"三跨"管理 -新增/修改</title>
<style>
.layui-form-item {
margin-bottom: 15px;
}
.layui-input-inline {
width: 420px;
}
.required-mark {
color: #FF5722;
}
.span-type-options {
display: flex;
gap: 15px;
}
.span-type-option {
padding: 8px 20px;
border: 1px solid #e6e6e6;
border-radius: 20px;
cursor: pointer;
background: #fff;
}
.span-type-option.active {
background: #ecf5ff;
border-color: #409eff;
color: #409eff;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form" lay-filter="threeSpanForm">
<input type="hidden" name="id" id="id">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>跨越类型:</label>
<div class="layui-input-block span-type-options">
<div class="span-type-option active" data-type="cross-line">跨线路</div>
<div class="span-type-option" data-type="cross-public">跨公路</div>
<div class="span-type-option" data-type="cross-railway">跨铁路</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>杆塔:</label>
<div class="layui-input-inline">
<select name="towerId" lay-verify="required" lay-filter="towerSelect">
<option value="">选择项目</option>
</select>
</div>
<div class="layui-form-mid layui-word-aux">根据杆塔行序号自动填写下方杆塔序号</div>
</div>
<!-- 跨线路输入框 -->
<div id="crossLineFields">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>上层线路:</label>
<div class="layui-input-inline">
<input type="text" name="upperLine" lay-verify="required" autocomplete="off"
placeholder="请输入上层线路" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>下层线路:</label>
<div class="layui-input-inline">
<input type="text" name="lowerLine" lay-verify="required" autocomplete="off"
placeholder="请输入下层线路" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>交叉角度:</label>
<div class="layui-input-inline">
<input type="text" name="crossAngle" lay-verify="required|number" autocomplete="off"
placeholder="请输入交叉角度" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>垂直距离(m):</label>
<div class="layui-input-inline">
<input type="text" name="verticalDistance" lay-verify="required|number" autocomplete="off"
placeholder="请输入垂直距离" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>安全裕度(°):</label>
<div class="layui-input-inline">
<input type="text" name="safetyMargin" lay-verify="required|number" autocomplete="off"
placeholder="请输入安全裕度" class="layui-input">
</div>
</div>
<!-- 跨越杆塔经纬度信息 -->
<div class="layui-form-item">
<label class="layui-form-label">跨越杆塔信息:</label>
</div>
<div class="layui-form-item">
<label class="layui-form-label">跨越杆塔经纬度:</label>
<div class="layui-input-inline" style="width: 140px;">
<input type="text" name="crossTowerLongitude1" autocomplete="off"
placeholder="经度" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 140px; margin-right: 0;">
<input type="text" name="crossTowerLatitude1" autocomplete="off"
placeholder="纬度" class="layui-input">
</div>
<div class="layui-form-mid" style="padding: 0 8px;">1</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">跨越杆塔经纬度:</label>
<div class="layui-input-inline" style="width: 140px;">
<input type="text" name="crossTowerLongitude2" autocomplete="off"
placeholder="经度" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 140px; margin-right: 0;">
<input type="text" name="crossTowerLatitude2" autocomplete="off"
placeholder="纬度" class="layui-input">
</div>
<div class="layui-form-mid" style="padding: 0 8px;">2</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">跨越杆塔经纬度:</label>
<div class="layui-input-inline" style="width: 140px;">
<input type="text" name="crossTowerLongitude3" autocomplete="off"
placeholder="经度" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 140px; margin-right: 0;">
<input type="text" name="crossTowerLatitude3" autocomplete="off"
placeholder="纬度" class="layui-input">
</div>
<div class="layui-form-mid" style="padding: 0 8px;">3</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">跨越杆塔经纬度:</label>
<div class="layui-input-inline" style="width: 140px;">
<input type="text" name="crossTowerLongitude4" autocomplete="off"
placeholder="经度" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 140px; margin-right: 0;">
<input type="text" name="crossTowerLatitude4" autocomplete="off"
placeholder="纬度" class="layui-input">
</div>
<div class="layui-form-mid" style="padding: 0 8px;">4</div>
</div>
</div>
<!-- 跨公路输入框 -->
<div id="crossPublicFields" style="display: none;">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>垂直净距(m):</label>
<div class="layui-input-inline">
<input type="text" name="verticalClearance" lay-verify="required|number" autocomplete="off"
placeholder="请输入垂直净距" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>杆塔间距(m):</label>
<div class="layui-input-inline">
<input type="text" name="towerSpacing" lay-verify="required|number" autocomplete="off"
placeholder="请输入杆塔间距" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>公路宽度(m):</label>
<div class="layui-input-inline">
<input type="text" name="roadWidth" lay-verify="required|number" autocomplete="off"
placeholder="请输入公路宽度" class="layui-input">
</div>
</div>
</div>
<!-- 跨铁路输入框 -->
<div id="crossRailwayFields" style="display: none;">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>垂直净距(m):</label>
<div class="layui-input-inline">
<input type="text" name="verticalClearance" lay-verify="required|number" autocomplete="off"
placeholder="请输入垂直净距" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>杆塔间距(m):</label>
<div class="layui-input-inline">
<input type="text" name="towerSpacing" lay-verify="required|number" autocomplete="off"
placeholder="请输入杆塔间距" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>交叉角度(°):</label>
<div class="layui-input-inline">
<input type="text" name="crossAngle" lay-verify="required|number" autocomplete="off"
placeholder="请输入交叉角度" class="layui-input">
</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-normal save" onclick="saveData2()">确定</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
</div>
</body>
<script src="../../../../js/basic/lineManagement/child/threeSpanFormTemp.js"></script>
</html>

View File

@ -0,0 +1,53 @@
<!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">
<input type="text" id="towerName" name="towerName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入杆塔号">
</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-primary layui-btn-sm btn-1" style="background-color: #00377A;color: #ffffff"
onclick="exportThreeSpan()">
<div class="layout" style="justify-content: space-around;">
<p>导出</p></div>
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" style="background-color: #00377A;color: #ffffff;width: 100px !important;"
onclick="addDataThreeSpan(null)">
<div class="layout" style="justify-content: space-around;">
<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>
<script type="text/javascript" src="../../../../js/basic/lineManagement/child/threeSpanList.js"></script>
</html>

View File

@ -0,0 +1,143 @@
<!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="../../../../js/layui-v2.6.8/dtree/dtree.css">
<link href="../../../../js/layui-v2.6.8/formSelects-v4.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="../../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../../css/dataForm.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/select.js"></script>
<script src="../../../../js/dict.js"></script>
<script src="../../../../js/ajaxRequest.js"></script>
<script src="../../../../js/my/aes.js"></script>
<title>线路工程管理-杆塔管理 -新增/修改</title>
<style>
.layui-form-item {
margin-bottom: 15px;
}
.layui-input-inline {
width: 420px;
}
.required-mark {
color: #FF5722;
}
.coordinate-options {
display: flex;
gap: 15px;
}
.coordinate-option {
display: flex;
align-items: center;
padding: 8px 20px;
border: 1px solid #e6e6e6;
border-radius: 20px;
cursor: pointer;
background: #fff;
}
.coordinate-option.active {
background: #ecf5ff;
border-color: #409eff;
color: #409eff;
}
</style>
</head>
<body>
<div id="main-box">
<form class="layui-form" lay-filter="towerForm">
<input type="hidden" name="id" id="id">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>杆塔:</label>
<div class="layui-input-inline">
<input type="text" name="towerName" lay-verify="required" autocomplete="off"
placeholder="请输入杆塔名称" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>排序号:</label>
<div class="layui-input-inline">
<input type="text" name="sortNumber" lay-verify="required|number" autocomplete="off"
placeholder="请输入排序号" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>坐标系:</label>
<div class="layui-input-block coordinate-options">
<div class="coordinate-option active" data-system="WGS-84">
<span>WGS-84地心坐标系</span>
</div>
<div class="coordinate-option" data-system="2000">
<span>2000国家大地坐标系</span>
</div>
</div>
</div>
<!-- WGS-84坐标系输入框 -->
<div id="wgs84Fields">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>经度:</label>
<div class="layui-input-inline">
<input type="text" name="longitude" lay-verify="required|number" autocomplete="off"
placeholder="请输入经度" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>纬度:</label>
<div class="layui-input-inline">
<input type="text" name="latitude" lay-verify="required|number" autocomplete="off"
placeholder="请输入纬度" class="layui-input">
</div>
</div>
</div>
<!-- 2000坐标系输入框 -->
<div id="2000Fields" style="display: none;">
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>中央子午线:</label>
<div class="layui-input-inline">
<input type="text" name="centralMeridian" lay-verify="required|number" autocomplete="off"
placeholder="请输入中央子午线" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>经度:</label>
<div class="layui-input-inline">
<input type="text" name="longitude2000" lay-verify="required|number" autocomplete="off"
placeholder="请输入经度" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="required-mark">*</span>纬度:</label>
<div class="layui-input-inline">
<input type="text" name="latitude2000" lay-verify="required|number" autocomplete="off"
placeholder="请输入纬度" class="layui-input">
</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-normal save" onclick="saveData2()">确定</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
</div>
</body>
<script src="../../../../js/basic/lineManagement/child/towerFormTemp.js"></script>
</html>

View File

@ -0,0 +1,59 @@
<!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">
<input type="text" id="towerName" name="towerName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入杆塔号">
</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-primary layui-btn-sm btn-1" style="background-color: #00377A;color: #ffffff"
onclick="exportTower()">
<div class="layout" style="justify-content: space-around;">
<p>导出</p></div>
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" style="background-color: #00377A;color: #ffffff"
onclick="addDataTower(null)">
<div class="layout" style="justify-content: space-around;">
<p>新增杆塔</p></div>
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" style="background-color: #00377A;color: #ffffff"
onclick="importTower()">
<div class="layout" style="justify-content: space-around;">
<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>
<script type="text/javascript" src="../../../../js/basic/lineManagement/child/towerList.js"></script>
</html>

View File

@ -0,0 +1,137 @@
<!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="../../../js/layui-v2.6.8/dtree/dtree.css">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/dtree/font/dtreefont.css">
<link rel="stylesheet" href="../../../css/dataForm.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/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="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录账号</label>
<div class="layui-input-inline">
<input class="layui-input" id="loginName" name="loginName" autocomplete="off"
lay-verify="required" maxlength="20">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>姓名</label>
<div class="layui-input-inline">
<input class="layui-input" id="username" name="username" autocomplete="off"
lay-verify="required" maxlength="10">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 性别</label>
<div class="layui-input-block" >
<input type="radio" id="sex_1" name="sex" value="1" title="男" checked>
<input type="radio" id="sex_0" name="sex" value="0" title="女">
</div>
</div>
<!-- <div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>单位部门</label>
<div class="layui-input-inline">
<ul id="orgId" class="dtree" data-id="0"></ul>
</div>
</div>-->
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>角色</label>
<div class="layui-input-inline">
<select id="roleId" lay-verify="required" name="roleId" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-form-item layui-hide" id="projectDiv">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>管理的工程</label>
<div class="layui-input-inline">
<select id="project" lay-verify="required" name="project" class="form-control input-sm">
</select>
</div>
</div>
<!-- <div class="layui-form-item">
<label class="layui-form-label">班组</label>
<div class="layui-input-inline">
<select id="teamId" name="teamId" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>联系电话</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off"
lay-verify="isRepeat |required" maxlength="11" id="phone" name="phone">
</div>
</div>-->
<!-- <div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 用户类型:</label>
<div class="layui-input-block" >
<input type="radio" id="userType_1" name="userType" value="1" title="外部用户" checked>
<input type="radio" id="userType_0" name="userType" value="0" title="内部用户">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 是否启用:</label>
<div class="layui-input-block" >
<input type="radio" id="state_1" name="state" value="1" title="启用" checked>
<input type="radio" id="state_0" name="state" value="0" title="关闭">
</div>
</div>-->
<!-- <div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录权限</label>
<div class="layui-input-inline" id="cbGuDing" >
<input type="checkbox" name="loginType" value="1" title="后台" lay-skin="primary" checked>
<input type="checkbox" name="loginType" value="2" title="大屏" lay-skin="primary">
<input type="checkbox" name="loginType" value="3" title="app" lay-skin="primary">
<input type="hidden" id="loginType" />
</div>
</div>-->
<div class="layui-form-item" style="margin-top: 2%;" id="pwd">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>密码</label>
<div class="layui-input-inline password" >
<input class="layui-input secret1" type="password" id="password" name="password" autocomplete="off"
lay-verify="required" maxlength="50">
<span class="eyes1">
<img class="secreteyes1 fa" src="../../../img/by.gif"> <!-- 闭眼 -->
<img class="secreteyesk1 none fa" src="../../../img/ky.gif">
</span>
</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/system/child/userForm.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -0,0 +1,67 @@
<!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">
<input type="text" id="departName" name="departName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入项目部名称">
</div>
<div class="layui-input-inline">
<input type="text" id="proName" name="proName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入工程名称">
</div>
<div class="layui-input-inline">
<select id="state" name="state" lay-filter="state" lay-search="">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="0">禁用</option>
</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-primary layui-btn-sm btn-1" style="background-color: #00377A;color: #ffffff"
onclick="exportPro()">
<div class="layout" style="justify-content: space-around;">
<p>导出</p></div>
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2" style="background-color: #00377A;color: #ffffff"
onclick="addDataPro(null)">
<div class="layout" style="justify-content: space-around;">
<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>
<script type="text/javascript" src="../../../js/basic/lineManagement/lineList.js"></script>
</html>

View File

@ -10,6 +10,7 @@
<script type="text/javascript" src="../../../js/jq.js"></script>
<link rel="stylesheet" href="../../../css/ztree/3.5/zTreeStyle.css" type="text/css">
<script src="../../../css/ztree/3.5/jquery.ztree.all.min.js"></script>
<title>项目部管理</title>
<style type="text/css">
.ztree * {
font-size: 20px;