From fca192d3c38c5dcfbb6ace8bc71d6078f6a079b2 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期日, 20 七月 2025 18:09:06 +0800 Subject: [PATCH] LLJ附件系统全面优化:多格式文件预览与APK兼容性 --- pages/QC/LLJ/detail.vue | 82 ++++++++++++++++++++++++++++++----------- 1 files changed, 60 insertions(+), 22 deletions(-) diff --git a/pages/QC/LLJ/detail.vue b/pages/QC/LLJ/detail.vue index 925e9db..68272a8 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"> @@ -101,9 +103,9 @@ <view class="info-label">涓嶈壇鎻忚堪</view> <view class="info-value danger">{{formData.funit}}</view> </view> - <view v-if="formData.meom!=null" class="result-ng"> - <view class="info-label">澶囨敞</view> - <view class="info-value danger">{{formData.meom}}</view> + <view class="result-ng"> + <view class="info-label">澶囨敞</view> + <view class="info-value danger">{{formData.meom}}</view> </view> </view> </view> @@ -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,19 @@ <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" + @input="onNumberInput" + v-model="formData.fcheckResu" + type="text" + class="result-input" + placeholder="璇疯緭鍏ユ楠岀粨鏋�..." + placeholder-class="placeholder" /> + <input v-else + @input="search($event)" + 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" @@ -230,7 +243,7 @@ </form> </view> </view> - <view v-if="showPopup" class="overlay"> + <view v-if="showMeom" class="overlay"> <view class="popup"> <h3>淇敼妫�楠岀粨鏋�</h3> <form :modelValue="editData"> @@ -239,7 +252,7 @@ <input class="form-input" type="text" v-model="editData.fcheckResu" /> </view> <button type="warn" @click="eidt">淇敼</button> - <button @click="showPopup = !showPopup">鍙栨秷</button> + <button @click="showMeom = !showMeom">鍙栨秷</button> </form> </view> </view> @@ -275,6 +288,7 @@ isBatchInputValid: false, funit:'', meomPopup: false, + showMeom:false, meom: '', } }, @@ -364,6 +378,14 @@ search(event) { this.formData.fcheckResu = event.detail.value; }, + 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; + }, toggleResult(item) { let fstand = "鈭�"; let fcheckResu = "OK"; @@ -413,7 +435,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)) { @@ -483,6 +509,7 @@ } else { this.isNumber = false; } + }) }, editResult(fcheckResu) { @@ -494,20 +521,23 @@ }, toDetail(item) { this.showPopup = !this.showPopup; + this.showMeom = !this.showMeom; this.editData = item; + }, upMeom() { this.meomPopup = true; - this.meom = this.formData.meom || ''; // 鍒濆鍖栧娉ㄥ�� + }, editMeom() { // 淇濆瓨澶囨敞淇℃伅 - if (this.Meom) { + if (this.meom) { this.$post({ url: "/LLJ/saveRemarksPid", data: { pid: this.formData.id, - remarks: this.meom + meom: this.meom, + } }).then(res => { if (res.data.tbBillList > 0) { @@ -534,7 +564,7 @@ }, editRemarks() { if (this.remarks) { - //saveRemarksGid + this.$post({ url: "/LLJ/saveRemarksPid", data: { @@ -641,7 +671,7 @@ data: { id: this.formID, releaseNo: this.releaseNo, - meom:this.meom + } }).then(res1 => { let tableData = res1.data.tbBillList @@ -703,17 +733,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