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

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

View File

@ -62,144 +62,144 @@
</head>
<body>
<div id="main-box">
<div id="basic-box">
<form class="layui-form layuimini-form" onclick="return false;">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">退料工程</label>
<div class="layui-input-inline">
<select name="projectId" id="projectId" lay-verify="required" lay-search
class="layui-select">
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 110px !important;">退料日期</label>
<div class="layui-input-inline layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-date"></i>
<div id="main-box">
<div id="basic-box">
<form class="layui-form layuimini-form" onclick="return false;">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">退料工程</label>
<div class="layui-input-inline">
<select name="projectId" id="projectId" lay-verify="required" lay-search
lay-filter="projectId" class="layui-select">
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 110px !important;">退料日期</label>
<div class="layui-input-inline layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-date"></i>
</div>
<input class="layui-input" id="backTime" autocomplete="off" name="backTime"
lay-verify="required" readonly style="cursor: pointer;">
</div>
<input class="layui-input" id="backTime" autocomplete="off" name="backTime"
lay-verify="required" readonly style="cursor: pointer;">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">经办人</label>
<div class="layui-input-inline">
<input class="layui-input" name="manager" id="manager" autocomplete="off"
lay-verify="required" maxlength="30" lay-affix="clear">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">经办人</label>
<div class="layui-input-inline">
<input class="layui-input" name="manager" id="manager" autocomplete="off"
lay-verify="required" maxlength="30" lay-affix="clear">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">经办人电话</label>
<div class="layui-input-inline">
<input class="layui-input" name="phone" id="phone" autocomplete="off" maxlength="11"
lay-verify="required" maxlength="30" lay-affix="clear" onblur="checkPhone(event)">
</div>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">经办人电话</label>
<div class="layui-input-inline">
<input class="layui-input" name="phone" id="phone" autocomplete="off" maxlength="11"
lay-verify="required" maxlength="30" lay-affix="clear" onblur="checkPhone(event)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" style="width: 100px !important;">备注</label>
<div class="layui-input-inline" style="width: 764px;">
<div class="layui-form-item">
<label class="layui-form-label required" style="width: 100px !important;">备注</label>
<div class="layui-input-inline" style="width: 764px;">
<textarea placeholder="请输入备注" lay-verify="required" id="remark" name="remark"
class="layui-textarea" maxLength="255" lay-affix="clear"></textarea>
</div>
</div>
<!-- 添加隐藏字段存储公司名称 -->
<input type="hidden" id="companyName" name="companyName">
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>
<div class="layui-upload" style="padding: 0 39px;">
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;width: auto;border: none;">
<p>附件证明</p>
<div class="layui-upload-list uploader-list" style="overflow: auto;" id="uploader-list"></div>
<div id="test2" style="margin-left: 10px;">
<img src="../../../images/add.png">
</div>
<div class="layout" style="flex-direction: column;margin-left: 2px;">
<p style="color: red;">提示最多上传5个附件</p>
<p style="color: red;">支持格式:jpg、png、jpeg</p>
<p style="color: red;">doc、docx、pdf、xlsx、xls</p>
</div>
</blockquote>
</div>
<div class="title layout">
<span style="font-weight:700;text-decoration:none;color:#409EFF;"></span>
<p>退料明细</p>
</div>
<!-- 无数据时-展示 -->
<div id="no_data_title" class="layout">
<img src="../../../images/no_data_icon.png" alt="无数据">
<p style="font-size: 16px;font-weight: bold;">您还没选择退料安全工器具类型</p>
<p style="color: #999999;">需要添加类型后才能执行退料清点操作</p>
<p style="color: #999999;">清点完成后,物品自动处于"待检验"状态,请尽快完成检验是否合格,进行入库或报废</p>
<button class="layui-btn layui-bg-blue" onclick="chooseFitType()">选择类型</button>
</div>
<fieldset class="table-search-fieldset" id="search-info" style="display: none;">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="#" onsubmit="return false;">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="type" id="type" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入类型" maxlength="30">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="name" id="name" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入名称" maxlength="30">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="model" id="model" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入规格型号" maxlength="30">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-bg-blue" onclick="search()"><i class="layui-icon"></i>
</button>
<button class="layui-btn layui-btn-primary" onclick="resetSearch()"><i
class="layui-icon layui-icon-refresh"></i> 重 置</button>
<button class="layui-btn layui-bg-blue" onclick="chooseFitType()">选择退回类型</button>
<button class="layui-btn layui-bg-red" onclick="delFitType()">删除选中</button>
</div>
class="layui-textarea" maxLength="255" lay-affix="clear"></textarea>
</div>
</form>
</div>
<!-- 添加隐藏字段存储公司名称 -->
<input type="hidden" id="companyName" name="companyName">
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>
<div class="layui-upload" style="padding: 0 39px;">
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;width: auto;border: none;">
<p>附件证明</p>
<div class="layui-upload-list uploader-list" style="overflow: auto;" id="uploader-list"></div>
<div id="test2" style="margin-left: 10px;">
<img src="../../../images/add.png">
</div>
<div class="layout" style="flex-direction: column;margin-left: 2px;">
<p style="color: red;">提示最多上传5个附件</p>
<p style="color: red;">支持格式:jpg、png、jpeg</p>
<p style="color: red;">doc、docx、pdf、xlsx、xls</p>
</div>
</blockquote>
</div>
</fieldset>
<div class="table-box" table-responsive style="display: none;" id="table-box">
<table id="baseTable" class="classTable table-hover">
<thead>
<tr>
<th style="width: 5%" class="center">
<input id="allCheck" onclick="selectAll(this.checked)" type="checkbox">
</th>
<th style="width: 5%" class="center">序号</th>
<th style="width: 8%" class="center">类型</th>
<th style="width: 8%" class="center">名称</th>
<th style="width: 8%" class="center">规格型号</th>
<th style="width: 8%" class="center">单位</th>
<th style="width: 10%" class="center"><span style="color: red;">*</span> 本次退回</th>
<th style="width: 14%" class="center">备注</th>
</tr>
</thead>
<tbody></tbody>
</table>
<div class="title layout">
<span style="font-weight:700;text-decoration:none;color:#409EFF;"></span>
<p>退料明细</p>
</div>
<!-- 无数据时-展示 -->
<div id="no_data_title" class="layout">
<img src="../../../images/no_data_icon.png" alt="无数据">
<p style="font-size: 16px;font-weight: bold;">您还没选择退料安全工器具类型</p>
<p style="color: #999999;">需要添加类型后才能执行退料清点操作</p>
<p style="color: #999999;">清点完成后,物品自动处于"待检验"状态,请尽快完成检验是否合格,进行入库或报废</p>
<button class="layui-btn layui-bg-blue" onclick="chooseFitType()">选择类型</button>
</div>
<fieldset class="table-search-fieldset" id="search-info" style="display: none;">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="#" onsubmit="return false;">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="type" id="type" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入类型" maxlength="30">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="name" id="name" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入名称" maxlength="30">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 200px;">
<input type="text" name="model" id="model" autocomplete="off" class="layui-input"
lay-affix="clear" placeholder="输入规格型号" maxlength="30">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-bg-blue" onclick="search()"><i class="layui-icon"></i>
</button>
<button class="layui-btn layui-btn-primary" onclick="resetSearch()"><i
class="layui-icon layui-icon-refresh"></i> 重 置</button>
<button class="layui-btn layui-bg-blue" onclick="chooseFitType()">选择退回类型</button>
<button class="layui-btn layui-bg-red" onclick="delFitType()">删除选中</button>
</div>
</div>
</form>
</div>
</fieldset>
<div class="table-box" table-responsive style="display: none;" id="table-box">
<table id="baseTable" class="classTable table-hover">
<thead>
<tr>
<th style="width: 5%" class="center">
<input id="allCheck" onclick="selectAll(this.checked)" type="checkbox">
</th>
<th style="width: 5%" class="center">序号</th>
<th style="width: 8%" class="center">类型</th>
<th style="width: 8%" class="center">名称</th>
<th style="width: 8%" class="center">规格型号</th>
<th style="width: 8%" class="center">单位</th>
<th style="width: 10%" class="center"><span style="color: red;">*</span> 本次退回</th>
<th style="width: 14%" class="center">备注</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-bg-blue save" onclick="saveData2(1)">确定完成</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>
</div>
</div>
<div class="btn-box">
<button class="layui-btn layui-bg-blue save" onclick="saveData2(1)">确定完成</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>
</div>
</div>
</body>
<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>
@ -207,4 +207,4 @@
<script src="../../../js/aq_back_material/child/add_back_material.js" charset="utf-8"></script>
<script src="../../../js/openIframe.js" charset="utf-8"></script>
</html>
</html>