This commit is contained in:
BianLzhaoMin 2026-01-27 16:24:43 +08:00
parent cf419e231e
commit ae2b6ffa0c
2 changed files with 169 additions and 158 deletions

View File

@ -41,30 +41,34 @@ function setParams(obj) {
}); });
form.render(); form.render();
// 绑定工程下拉选change事件 - 关键在form.render()之前绑定 // 绑定工程下拉选事件Layui 事件)
form.on('select(projectId)', function(data) { form.on('select(projectId)', function (data) {
console.log("Layui select事件触发,值:", data.value); console.log("Layui select(projectId) 事件触发,值:", data.value);
var selectedOption = $(data.elem).find('option:selected'); var selectedOption = $(data.elem).find('option:selected');
var companyName = selectedOption.data('companyName') || ''; // 与 option 上的 data-company 保持一致
var companyName = selectedOption.data('company') || '';
// 如果data属性没有获取到尝试从proListData中查找 // 如果 data 属性没有获取到,尝试从 proListData 中查找
if (!companyName && data.value) { if (!companyName && data.value) {
var foundItem = proListData.find(function(item) { var foundItem = proListData.find(function (item) {
return item.id == data.value; return item.id == data.value;
}); });
if (foundItem) { if (foundItem) {
companyName = foundItem.companyName || ''; companyName = foundItem.companyName || foundItem.company || '';
} }
} }
console.log("获取到的公司名称:", companyName); console.log("获取到的公司名称:", companyName);
// 设置公司输入框的值 // 设置公司输入框的值
$('#companyName').val(companyName); // 设置隐藏字段 $('#company').val(companyName);
$('#companyName').val(companyName);
$('#remark').val(companyName); $('#remark').val(companyName);
// 更新表单数据 // 更新表单数据
if (form && typeof form.val === 'function') { if (form && typeof form.val === 'function') {
form.val('formInfo', { form.val('formInfo', {
company: companyName,
companyName: companyName companyName: companyName
}); });
} }
@ -76,7 +80,7 @@ function setParams(obj) {
} else { } else {
// 编辑模式下隐藏上传按钮 // 编辑模式下隐藏上传按钮
$('#test2').hide(); $('#test2').hide();
$('.layout p').each(function() { $('.layout p').each(function () {
if ($(this).text().includes('提示最多上传5个附件')) { if ($(this).text().includes('提示最多上传5个附件')) {
// $(this).text('提示:编辑模式下不可新增附件,可删除原有附件'); // $(this).text('提示:编辑模式下不可新增附件,可删除原有附件');
} }
@ -113,7 +117,7 @@ function disableBasicFields() {
$('.layui-upload').addClass('disabled-upload'); $('.layui-upload').addClass('disabled-upload');
// 隐藏必填标记 // 隐藏必填标记
$('.required').each(function() { $('.required').each(function () {
if ($(this).find('span').length === 0) { if ($(this).find('span').length === 0) {
$(this).append('<span style="color: #f56c6c;margin-left: 4px;">*</span>'); $(this).append('<span style="color: #f56c6c;margin-left: 4px;">*</span>');
} }
@ -152,8 +156,8 @@ function initUpload() {
uploadObj.config.elem.next()[0].value = ''; uploadObj.config.elem.next()[0].value = '';
let num = 0; let num = 0;
obj.preview(function (index, file, result) { obj.preview(function (index, file, result) {
num ++; num++;
if(num <= (5-length)){ if (num <= (5 - length)) {
$('#uploader-list').append( $('#uploader-list').append(
'<div id="" class="file-iteme">' + '<div id="" class="file-iteme">' +
'<div class="handle"><p>x</p></div>' + '<div class="handle"><p>x</p></div>' +
@ -211,6 +215,8 @@ function fillFormData(data) {
$('#phone').val(data.phone); $('#phone').val(data.phone);
$('#remark').val(data.remark); $('#remark').val(data.remark);
layui.form.render(); layui.form.render();
// 主动触发一次 change确保事件逻辑在回显时也执行
$('#projectId').trigger('change');
// 设置只读显示的文本(可选) // 设置只读显示的文本(可选)
if (isEditMode) { if (isEditMode) {
@ -230,7 +236,7 @@ function loadAttachments(fileList) {
if (fileList && fileList.length > 0) { if (fileList && fileList.length > 0) {
// 这里需要根据实际情况处理附件的显示 // 这里需要根据实际情况处理附件的显示
// 假设附件有预览地址 // 假设附件有预览地址
$.each(fileList, function(index, file) { $.each(fileList, function (index, file) {
let html = ''; let html = '';
// 这里简化处理,实际需要根据文件类型显示不同的图标 // 这里简化处理,实际需要根据文件类型显示不同的图标
$('#uploader-list').append( $('#uploader-list').append(
@ -301,7 +307,7 @@ function deleteAttachment(fileId, element) {
} }
// 编辑模式下的删除逻辑 // 编辑模式下的删除逻辑
layer.confirm('确定要删除这个附件吗?', function(index) { layer.confirm('确定要删除这个附件吗?', function (index) {
let url = dataUrl + 'backstage/backApply/deleteAttachment'; let url = dataUrl + 'backstage/backApply/deleteAttachment';
let params = { let params = {
encryptedData: JSON.stringify({ encryptedData: JSON.stringify({
@ -339,6 +345,8 @@ function getProList() {
setTimeout(() => { setTimeout(() => {
$('#projectId').val(objParam.projectId); $('#projectId').val(objParam.projectId);
layui.form.render(); layui.form.render();
// 主动触发一次 change确保事件逻辑在回显时也执行
$('#projectId').trigger('change');
}, 100); }, 100);
} }
} }
@ -371,17 +379,19 @@ function setSelectData(proList) {
layui.form.render('select'); layui.form.render('select');
} }
// 同时绑定jQuery的change事件 // 同时绑定 jQuery change 事件,作为兜底
$('#projectId').off('change').on('change', function() { $('#projectId').off('change').on('change', function () {
console.log("setSelectProData中的change事件触发"); console.log("setSelectData 中的 change 事件触发,值:", $(this).val());
var selectedOption = $(this).find('option:selected'); var self = this;
var selectedOption = $(self).find('option:selected');
var companyName = selectedOption.data('company') || ''; var companyName = selectedOption.data('company') || '';
// 如果data属性没有获取到从proListData中查找 // 如果 data 属性没有获取到,从 proListData 中查找
if (!companyName && $(this).val()) { var value = $(self).val();
var foundItem = proListData.find(function(item) { if (!companyName && value) {
return item.id == $(this).val(); var foundItem = proListData.find(function (item) {
return item.id == value;
}); });
if (foundItem) { if (foundItem) {
companyName = foundItem.companyName || foundItem.company || ''; companyName = foundItem.companyName || foundItem.company || '';
@ -393,8 +403,9 @@ function setSelectData(proList) {
// 设置公司输入框的值 // 设置公司输入框的值
$('#company').val(companyName); $('#company').val(companyName);
$('#companyName').val(companyName); $('#companyName').val(companyName);
$('#remark').val(remark); $('#remark').val(companyName);
// 如果form对象存在更新表单数据
// 如果 form 对象存在,更新表单数据
if (window.form && typeof window.form.val === 'function') { if (window.form && typeof window.form.val === 'function') {
window.form.val('formInfo', { window.form.val('formInfo', {
company: companyName, company: companyName,
@ -407,10 +418,10 @@ function setSelectData(proList) {
// 设置文件类型 // 设置文件类型
function handleFileType(index, file, result) { function handleFileType(index, file, result) {
let html = '', img = ''; let html = '', img = '';
if(file.ext){ if (file.ext) {
file.ext = file.ext.toLowerCase(); file.ext = file.ext.toLowerCase();
} }
if(file.name){ if (file.name) {
file.name = file.name.toLowerCase(); file.name = file.name.toLowerCase();
} }
if (file.ext === 'doc' || file.ext === 'docx') { if (file.ext === 'doc' || file.ext === 'docx') {

View File

@ -62,7 +62,7 @@
</head> </head>
<body> <body>
<div id="main-box"> <div id="main-box">
<div id="basic-box"> <div id="basic-box">
<form class="layui-form layuimini-form" onclick="return false;"> <form class="layui-form layuimini-form" onclick="return false;">
<div class="layui-form-item"> <div class="layui-form-item">
@ -70,7 +70,7 @@
<label class="layui-form-label required" style="width: 100px !important;">退料工程</label> <label class="layui-form-label required" style="width: 100px !important;">退料工程</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="projectId" id="projectId" lay-verify="required" lay-search <select name="projectId" id="projectId" lay-verify="required" lay-search
class="layui-select"> lay-filter="projectId" class="layui-select">
</select> </select>
</div> </div>
</div> </div>
@ -199,7 +199,7 @@
<button class="layui-btn layui-bg-green temp-save" onclick="saveData2(0)">暂存</button> <button class="layui-btn layui-bg-green temp-save" onclick="saveData2(0)">暂存</button>
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">返回</button> <button class="layui-btn layui-btn-primary cancel" onclick="closePage()">返回</button>
</div> </div>
</div> </div>
</body> </body>
<script src="../../../lib/jquery-3.4.1/jquery-3.7.1.min.js" charset="utf-8"></script> <script src="../../../lib/jquery-3.4.1/jquery-3.7.1.min.js" charset="utf-8"></script>
<script src="../../../js/public.js" charset="utf-8"></script> <script src="../../../js/public.js" charset="utf-8"></script>