From a1e7497dac705b43e474403b935762399cf8c742 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 26 Jan 2026 14:28:30 +0800 Subject: [PATCH] =?UTF-8?q?2026-01-26=20=E4=BC=98=E5=8C=96=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E9=A2=86=E9=80=80=E6=96=99=E7=9A=84=E9=A2=86=E6=96=99?= =?UTF-8?q?=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productionIssueReturnDetail.vue | 126 ++++++++++++------ 1 file changed, 83 insertions(+), 43 deletions(-) diff --git a/src/views/modules/production/productionIssueReturnDetail.vue b/src/views/modules/production/productionIssueReturnDetail.vue index 0eeed83..43c4436 100644 --- a/src/views/modules/production/productionIssueReturnDetail.vue +++ b/src/views/modules/production/productionIssueReturnDetail.vue @@ -54,24 +54,21 @@
领料工单 - - - {{ item.orderNo }} - - + +
{ - this.orderSearchLoading = false if (data && data.code === 0) { this.issueOrderOptions = data.orders || [] + callback(this.issueOrderOptions) } else { - this.issueOrderOptions = [] - this.$message.error(data.msg || '搜索工单失败') + callback([]) } }).catch(error => { - this.orderSearchLoading = false console.error('搜索工单失败:', error) - this.$message.error('搜索工单失败') + callback([]) }) }, - // 领料工单选择变化 - handleIssueOrderChange(value) { + // 选择领料工单(el-autocomplete 的 select 事件) + handleIssueOrderSelect(item) { // 校验:领料工单不能等于退库工单 - if (value === this.returnOrderNo) { + if (item.orderNo === this.returnOrderNo) { this.$message.error('领料工单不能与退库工单相同') - // 清空领料工单选择 this.issueOrderNo = '' this.selectedIssueOrder = null this.operationSeq = '' @@ -359,17 +351,27 @@ export default { return } - const selected = this.issueOrderOptions.find(item => item.orderNo === value) - if (selected) { - this.selectedIssueOrder = selected + this.issueOrderNo = item.orderNo + this.selectedIssueOrder = item - // 清空工序选择 - this.operationSeq = '' - this.operationName = '' - this.operationOptions = [] + // 清空工序选择 + this.operationSeq = '' + this.operationName = '' + this.operationOptions = [] + + // 加载工序列表 + this.loadOperationList(item.orderNo) + }, - // 加载工序列表 - this.loadOperationList(value) + // 领料工单输入框失焦(验证输入值是否有效) + handleIssueOrderBlur() { + // 如果用户手动输入了值但没有从列表选择,检查是否有效 + if (this.issueOrderNo && !this.selectedIssueOrder) { + // 检查输入的值是否在选项中 + const found = this.issueOrderOptions.find(item => item.orderNo === this.issueOrderNo) + if (found) { + this.handleIssueOrderSelect(found) + } } }, @@ -755,5 +757,43 @@ export default { .action-btn:active { transform: scale(0.98); } + +/* el-autocomplete 移动端样式优化 */ +.info-item /deep/ .el-autocomplete { + width: 100%; +} + +.info-item /deep/ .el-autocomplete .el-input__inner { + /* 确保输入框可点击和输入 */ + pointer-events: auto !important; + background-color: #fff !important; + cursor: text !important; + /* 增大触摸区域 */ + min-height: 36px; + padding: 0 10px; + /* 移动端输入优化 */ + -webkit-user-select: text; + user-select: text; + /* 确保可以输入 */ + -webkit-appearance: none; + /* 移除 iOS 输入框阴影 */ + -webkit-box-shadow: none; + box-shadow: none; +} + +.info-item /deep/ .el-autocomplete .el-input__inner:focus { + border-color: #17B3A3; + outline: none; +} + +/* autocomplete 建议列表样式 */ +.el-autocomplete-suggestion { + max-height: 200px; +} + +.el-autocomplete-suggestion li { + padding: 10px 15px; + line-height: 1.5; +}