From 55f0be610b3adae8cc0d83e6d33ff71075f1b9de Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期六, 09 八月 2025 11:15:01 +0800 Subject: [PATCH] 扫码优化 --- pages/QC/XJ/Add.vue | 126 +++++++++++++++++++++++++++++++---------- 1 files changed, 95 insertions(+), 31 deletions(-) diff --git a/pages/QC/XJ/Add.vue b/pages/QC/XJ/Add.vue index 1930b90..6190db1 100644 --- a/pages/QC/XJ/Add.vue +++ b/pages/QC/XJ/Add.vue @@ -61,13 +61,8 @@ </view> <!-- 鎿嶄綔鎸夐挳鍖� - 妫�楠岄」鐩幏鍙� --> - <view v-if="isUpdate && !isShowTable" class="action-buttons"> - <button class="primary-btn" @click="getItem">鍒涘缓妫�楠屽崟</button> - </view> - - <view v-if="isShowTable" class="action-buttons"> - <button class="secondary-btn" @click="getTable">鑾峰彇椤圭洰</button> - <button v-if="isUpdate" class="primary-btn" @click="saveTable">鐢熸垚椤圭洰</button> + <view v-if="isUpdate" class="action-buttons"> + <button class="secondary-btn" @click="getTable">鑾峰彇妫�楠岄」鐩�</button> </view> <!-- 妫�楠岄」鐩〃鏍� --> @@ -126,11 +121,12 @@ <view class="description-text">{{ item.itemMod }}</view> </td> <td> - <button :class="{ - 'record-btn-fill': item.isCheck >= item.levelNum, - 'record-btn-view': item.isCheck < item.levelNum - }" class="record-btn" @click="toDetail(item)"> - {{ item.isCheck >= item.levelNum ? '鏌ョ湅' : '濉啓' }} + <button v-if="item.isCheck < item.levelNum" class="record-btn record-btn-fill" + @click="toDetail(item)"> + 濉啓 ({{ item.isCheck }}/{{ item.levelNum }}) + </button> + <button v-else class="record-btn record-btn-view" @click="toDetail(item)"> + 鏌ョ湅 ({{ item.isCheck }}/{{ item.levelNum }}) </button> </td> </tr> @@ -138,27 +134,31 @@ </table> </view> - <!-- 鎿嶄綔鎸夐挳鍖� - 搴曢儴鎿嶄綔 --> - <view v-if="!isUpdate && !isShowTable" class="action-buttons"> - <button class="secondary-btn" @click="toImage">鍥剧墖绠$悊</button> - <button class="secondary-btn" @click="saveRemarks">娣诲姞鎻忚堪</button> - <button v-if="!formData.fcheckResu" class="primary-btn" - style="background: linear-gradient(135deg, #e74c3c, #c0392b);" @click="removeXJ">鍒犻櫎鍗曟嵁 + <!-- 鎿嶄綔鎸夐挳鍖� --> + <view class="action-buttons"> + <button v-if="isUpdate && !isShowTable" class="secondary-btn" @click="getItem">鍒涘缓妫�楠屽崟骞剁敓鎴愰儴鍒嗛粯璁ゅ��</button> + <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toImage">涓婁紶/鏌ョ湅鍥剧墖</button> + <button v-if="!isUpdate && !formData.fsubmit && !isShowTable" class="secondary-btn" @click="removeXJ"> + 鍒犻櫎鍗曟嵁 </button> + <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="saveRemarks">娣诲姞澶囨敞</button> + <button v-if="!isUpdate && !isShowTable && formData.fsubmit !== 1 && getPendingCount() === 0 && tableData.length > 0" class="primary-btn" @click="submit">瀹℃牳鍗曟嵁</button> + <button v-if="isShowTable" class="secondary-btn" @click="getTable">鑾峰彇妫�楠岄」鐩�</button> + <button v-if="isShowTable && isUpdate" class="primary-btn" @click="saveTable">鐢熸垚妫�楠岄」鐩�</button> </view> <!-- 涓嶅悎鏍兼弿杩板脊绐� --> <view v-if="remarksPopup" class="overlay"> <view class="popup"> - <h3>淇敼涓嶅悎鏍兼弿杩�</h3> - <view class="form-group"> - <label class="form-label">涓嶅悎鏍兼弿杩�:</label> - <input v-model="remarks" class="form-input" placeholder="璇疯緭鍏ヤ笉鍚堟牸鎻忚堪" type="text"/> - </view> - <view class="popup-buttons"> + <h3>淇敼澶囨敞</h3> + <form> + <view class="form-group"> + <label class="form-label">澶囨敞:</label> + <textarea v-model="remarks" class="form-input form-textarea" placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�..."></textarea> + </view> <button class="updateBut" @click="editRemarks">淇敼</button> - <button class="secondary-btn" @click="remarksPopup = !remarksPopup">鍙栨秷</button> - </view> + <button @click="remarksPopup = !remarksPopup">鍙栨秷</button> + </form> </view> </view> </view> @@ -179,11 +179,12 @@ catQty: "", detailMem: "", taskNo: "", - fcheckResu: "", + fcheckResu: 0, boardModel: "", planQty: "", mocode: "", - boardStyle: "" + boardStyle: "", + fSubmit: 0 }, DAA020List: [], @@ -254,8 +255,51 @@ }, // 鑾峰彇寰呮楠岄」鐩暟閲� getPendingCount() { - return this.tableData.filter(item => !item.result || item.result === '').length; + return this.tableData.filter(item => item.result === '鏈畬鎴�').length; }, + submit() { + // 鍙岄噸淇濋櫓锛氭鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勬楠岄」鐩� + const pendingCount = this.getPendingCount(); + if (pendingCount > 0) { + this.$showMessage(`杩樻湁 ${pendingCount} 涓楠岄」鐩湭瀹屾垚锛岃瀹屾垚鎵�鏈夋楠岄」鐩悗鍐嶆彁浜ゅ鏍竊); + return; + } + + // 妫�鏌ユ槸鍚︽湁妫�楠岄」鐩� + if (this.tableData.length === 0) { + this.$showMessage("娌℃湁妫�楠岄」鐩紝鏃犳硶鎻愪氦瀹℃牳"); + return; + } + + this.$post({ + url: "/XJ/XJQaSubmit", + data: { + userNo: this.$loginInfo.account, + gid: this.formData.id + } + }).then(res => { + console.log("瀹屾暣鍝嶅簲鏁版嵁:", res); + console.log("Status Code鐨勫��:", res.statusCode); + console.log("杩斿洖鐨勬暟鎹�:", res.data); + + // 妫�鏌ュ绉嶆垚鍔熸潯浠� + if (res.statusCode === 200 || res.status === 0 || res.data === true || res.data.tbBillList === true) { + this.$showMessage("鎴愬姛鎻愪氦妫�楠�"); + // 鎻愪氦鎴愬姛鍚庤烦杞埌鍒楄〃椤甸潰 + setTimeout(() => { + uni.navigateTo({ + url: '/pages/QC/XJ/List' + }); + }, 1500); // 1.5绉掑悗璺宠浆锛岃鐢ㄦ埛鐪嬪埌鎴愬姛鎻愮ず + } else { + this.$showMessage(res.data.message || res.message || "鎻愪氦澶辫触"); + } + }).catch(err => { + console.log("鎻愪氦鍑洪敊:", err); + this.$showMessage("鎻愪氦澶辫触锛岃閲嶈瘯"); + }) + }, + removeXJ() { if (this.formData.id) { this.$post({ @@ -959,8 +1003,9 @@ padding: 20px; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); - width: 68vw; - height: 25vh; + width: 85vw; + min-height: 35vh; + max-height: 60vh; border-radius: 8px; } @@ -993,6 +1038,13 @@ border-radius: 4px; font-size: 14px; box-sizing: border-box; +} + +.popup .form-textarea { + min-height: 120px; + resize: vertical; + font-family: inherit; + line-height: 1.5; } .popup-buttons { @@ -1033,5 +1085,17 @@ display: block; overflow-x: auto; } + + /* 绉诲姩绔脊鍑烘浼樺寲 */ + .popup { + width: 95vw; + min-height: 40vh; + max-height: 70vh; + padding: 15px; + } + + .popup .form-textarea { + min-height: 100px; + } } </style> \ No newline at end of file -- Gitblit v1.9.3