From 2565d78042b7cc5ac500c4bac5edefdb7a046af5 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 17 九月 2025 14:04:52 +0800
Subject: [PATCH] Merge branch 'master' of http://43.142.96.171:8080/r/~cnf/HM_StandardPda-Browse
---
pages/QC/LLJ/detail.vue | 157 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 144 insertions(+), 13 deletions(-)
diff --git a/pages/QC/LLJ/detail.vue b/pages/QC/LLJ/detail.vue
index e698a41..0b40165 100644
--- a/pages/QC/LLJ/detail.vue
+++ b/pages/QC/LLJ/detail.vue
@@ -7,12 +7,14 @@
</view>
<!-- 鏍囩鏍� -->
- <view class="tabs">
- <view v-for="(tab, index) in tabs" :key="index" class="tab" :class="{active: currentTab === index}"
- @tap="switchTab(index,tab.id)">
- {{ tab.fcheckItem }}
+ <scroll-view class="tabs" scroll-x="true" :show-scrollbar="false">
+ <view class="tabs-container">
+ <view v-for="(tab, index) in tabs" :key="index" class="tab" :class="{active: currentTab === index}"
+ @tap="switchTab(index,tab.id)">
+ {{ tab.fcheckItem }}
+ </view>
</view>
- </view>
+ </scroll-view>
<view class="tab-content">
<!-- 鍩烘湰淇℃伅 -->
<view class="section">
@@ -112,7 +114,7 @@
<view class="section">
<view class="section-header">妫�楠岀粨鏋滃綍鍏�</view>
<view class="section-body">
- <view class="input-group" v-if="tableData.length >= formData.checkQyt">
+ <view class="input-group" v-if="tableData.length >= formData.checkQyt && formData.fstand == null">
<view class="input-wrapper">
<input v-model="batchInput" type="text" class="result-input"
placeholder="鏍煎紡锛歄K-3 鎴� NG-3锛堣鍕夸慨鏀圭粨鏋滀负鏁板瓧鐨勫�硷級" placeholder-class="placeholder"
@@ -138,8 +140,27 @@
<uni-icons type="compose" size="16" color="#fff"></uni-icons>
澶囨敞
</button>
- <input v-if="(tableData.length < formData.checkQyt)" @input="search($event)"
- v-model="inputTxt" type="text" class="result-input" placeholder="璇疯緭鍏ユ楠岀粨鏋�..."
+ <input v-if="(tableData.length < formData.checkQyt) && formData.fupAllow && formData.fdownAllow"
+ ref="numberInput"
+ :focus="isFocus"
+ @input="onNumberInput"
+ @confirm="onEnterSave"
+ @blur="isFocus = false"
+ v-model="formData.fcheckResu"
+ type="text"
+ class="result-input"
+ placeholder="璇疯緭鍏ユ楠岀粨鏋�..."
+ placeholder-class="placeholder" />
+ <input v-else
+ ref="textInput"
+ :focus="isFocus"
+ @input="search($event)"
+ @confirm="onEnterSave"
+ @blur="isFocus = false"
+ v-model="inputTxt"
+ type="text"
+ class="result-input"
+ placeholder="璇疯緭鍏ユ楠岀粨鏋�..."
placeholder-class="placeholder" />
<button v-if="(tableData.length < formData.checkQyt)"
style="margin: 0px;background-color: #3498db;color:#ffffff ;" class="btn primary-btn"
@@ -167,7 +188,10 @@
<view class="input-wrapper" style="margin-top: 15px;">
- <input v-if="(tableData.length < formData.checkQyt)" @input="search($event)"
+ <input v-if="(tableData.length < formData.checkQyt)"
+ ref="textInput2"
+ @input="search($event)"
+ @confirm="onEnterSave"
v-model="inputTxt" type="text" class="result-input" placeholder="璇疯緭鍏ユ楠岀粨鏋�..."
placeholder-class="placeholder" />
<button v-if="(tableData.length < formData.checkQyt)"
@@ -277,9 +301,76 @@
meomPopup: false,
showMeom:false,
meom: '',
+ autoSaveTimer: null, // 鑷姩淇濆瓨瀹氭椂鍣�
+ isFocus: false, // 鏂板锛屾帶鍒惰緭鍏ユ鑱氱劍
}
},
methods: {
+ // 闃叉姈鑷姩淇濆瓨鏂规硶
+ autoSaveResult() {
+ // 娓呴櫎涔嬪墠鐨勫畾鏃跺櫒
+ if (this.autoSaveTimer) {
+ clearTimeout(this.autoSaveTimer);
+ }
+
+ // 璁剧疆鏂扮殑瀹氭椂鍣紝1绉掑悗鑷姩淇濆瓨
+ this.autoSaveTimer = setTimeout(() => {
+ // 妫�鏌ユ槸鍚﹀凡缁忚揪鍒版楠屾暟閲忎笂闄�
+ if (this.tableData.length >= this.formData.checkQyt) {
+ return;
+ }
+
+ // 楠岃瘉杈撳叆骞朵繚瀛�
+ if (this.validateAndSave()) {
+ this.saveResult();
+ }
+ }, 2000);
+ },
+
+ // 楠岃瘉杈撳叆鏄惁鏈夋晥
+ validateAndSave() {
+ // 鏈変笂涓嬮檺鐨勬儏鍐�
+ if (this.formData.fupAllow && this.formData.fdownAllow) {
+ const value = this.formData.fcheckResu;
+ if (!value || value.trim() === '') {
+ return false;
+ }
+
+ // 楠岃瘉鏄惁涓烘湁鏁堟暟瀛�
+ if (isNaN(parseFloat(value)) || !/^-?\d+(\.\d+)?$/.test(value)) {
+ return false;
+ }
+
+ return true;
+ } else {
+ // 鏃犱笂涓嬮檺鐨勬儏鍐碉紝妫�楠岀粨鏋滃瓨鍌ㄥ湪 formData.fcheckResu 涓�
+ const value = this.formData.fcheckResu;
+ if (!value || value.trim() === '') {
+ return false;
+ }
+
+ return true;
+ }
+ },
+
+ // 澶勭悊鍥炶溅閿繚瀛樹簨浠�
+ onEnterSave() {
+ // 妫�鏌ユ槸鍚﹀凡缁忚揪鍒版楠屾暟閲忎笂闄�
+ if (this.tableData.length >= this.formData.checkQyt) {
+ this.$showMessage("宸茶揪鍒版楠屾暟閲忎笂闄�");
+ return;
+ }
+
+ // 娓呴櫎鑷姩淇濆瓨瀹氭椂鍣�
+ if (this.autoSaveTimer) {
+ clearTimeout(this.autoSaveTimer);
+ this.autoSaveTimer = null;
+ }
+
+ // 鐩存帴淇濆瓨缁撴灉
+ this.saveResult();
+ },
+
switchTab(index, mainIds) {
this.currentTab = index
this.mainId = mainIds;
@@ -364,6 +455,21 @@
//妫�娴嬭緭鍏ユ鐨勮緭鍏ワ紝骞剁粰鍙橀噺璧嬪��
search(event) {
this.formData.fcheckResu = event.detail.value;
+ this.inputTxt = event.detail.value;
+
+ // 瑙﹀彂鑷姩淇濆瓨
+ this.autoSaveResult();
+ },
+ onNumberInput(e) {
+ // 鍙厑璁歌緭鍏ユ暟瀛楀拰灏忔暟鐐�
+ let val = e.detail.value.replace(/[^\d.]/g, '');
+ // 鍙厑璁镐竴涓皬鏁扮偣
+ val = val.replace(/\.{2,}/g, '.');
+ val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
+ this.formData.fcheckResu = val;
+
+ // 瑙﹀彂鑷姩淇濆瓨
+ this.autoSaveResult();
},
toggleResult(item) {
let fstand = "鈭�";
@@ -414,7 +520,11 @@
this.$showMessage("璇疯緭鍏ユ纭殑妫�楠屽��");
return;
}
-
+
+ if (!/^-?\d+(\.\d+)?$/.test(this.formData.fcheckResu)) {
+ this.$showMessage("璇疯緭鍏ユ纭殑鏁板�硷紒");
+ return;
+ }
if (parseFloat(this.formData.fcheckResu) >= parseFloat(this.formData.fdownAllow) && parseFloat(this
.formData
.fcheckResu) <= parseFloat(this.formData.fupAllow)) {
@@ -455,6 +565,11 @@
this.$showMessage("淇濆瓨鎴愬姛");
this.refreshResult();
this.inputTxt = '';
+ // 浣跨敤 isFocus 鎺у埗鑱氱劍锛屽吋瀹瑰绔�
+ this.isFocus = false;
+ this.$nextTick(() => {
+ this.isFocus = true;
+ });
})
},
@@ -674,6 +789,14 @@
this.$nextTick(() => {
this.validateBatchInput();
});
+ },
+
+ // 椤甸潰鍗歌浇鏃舵竻闄ゅ畾鏃跺櫒
+ onUnload() {
+ if (this.autoSaveTimer) {
+ clearTimeout(this.autoSaveTimer);
+ this.autoSaveTimer = null;
+ }
}
}
</script>
@@ -708,17 +831,25 @@
}
.tabs {
- display: flex;
background-color: $bg-color;
border-bottom: 1px solid $border-color;
+ width: 100%;
+ white-space: nowrap;
+
+ .tabs-container {
+ display: flex;
+ min-width: 100%;
+ }
.tab {
- flex: 1;
+ flex: none;
+ min-width: 120px;
text-align: center;
- padding: 12px 0;
+ padding: 12px 16px;
border-right: 1px solid $border-color;
color: #666;
transition: all 0.3s;
+ white-space: nowrap;
&:last-child {
border-right: none;
--
Gitblit v1.9.3