From f63e51553b520b5dd760ba186d9b274ed246a64a Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期四, 16 十月 2025 14:27:18 +0800
Subject: [PATCH] SJ,XJ,RKJ单独检验项目拍照+提交限制

---
 pages/QC/RKJ/Add.vue |  133 ++++++++++++++++++++++++++++++-------------
 1 files changed, 92 insertions(+), 41 deletions(-)

diff --git a/pages/QC/RKJ/Add.vue b/pages/QC/RKJ/Add.vue
index 3a0fa04..00437a2 100644
--- a/pages/QC/RKJ/Add.vue
+++ b/pages/QC/RKJ/Add.vue
@@ -1191,51 +1191,102 @@
 					return;
 				}
 
-				// 妫�鏌ラ拤閽夋帹閫佹潯浠讹細PSZT涓哄緟鍒わ紝涓斾笉鑹師鍥犮�佷笉鑹弿杩般�佹墍灞炶溅闂翠笉涓虹┖
-				const shouldPushToDingTalk = this.PSTYPE === '寰呭垽' &&
-					this.badreason &&
-					this.formData.fngDesc &&
-					this.WORKSHOP;
+				// 楠岃瘉涓嶅悎鏍兼楠岄」鐩繀椤讳笂浼犲浘鐗囧苟濉啓涓嶈壇鎻忚堪
+				this.validateUnqualifiedItems().then(() => {
+					// 妫�鏌ラ拤閽夋帹閫佹潯浠讹細PSZT涓哄緟鍒わ紝涓斾笉鑹師鍥犮�佷笉鑹弿杩般�佹墍灞炶溅闂翠笉涓虹┖
+					const shouldPushToDingTalk = this.PSTYPE === '寰呭垽' &&
+						this.badreason &&
+						this.formData.fngDesc &&
+						this.WORKSHOP;
 
-				let confirmMessage = '纭畾瑕佹彁浜ゆ妫�楠屽崟鍚楋紵鎻愪氦鍚庡皢鏃犳硶淇敼銆�';
-				if (shouldPushToDingTalk) {
-					confirmMessage += '\n\n婊¤冻閽夐拤鎺ㄩ�佹潯浠讹紝灏嗚嚜鍔ㄦ帹閫佸埌閽夐拤瀹℃壒娴佺▼銆�';
-				}
-
-				// 纭鎻愪氦
-				uni.showModal({
-					title: '纭鎻愪氦',
-					content: confirmMessage,
-					success: (res) => {
-						if (res.confirm) {
-							this.$post({
-								url: "/RKJ/submitInspection",
-								data: {
-									id: this.formData.id,
-									userNo: this.$loginInfo.account
-								}
-							}).then(res => {
-								if (res.status == 0) {
-									let successMessage = "妫�楠屽崟鎻愪氦鎴愬姛锛�";
-									if (shouldPushToDingTalk) {
-										successMessage += "\n宸叉帹閫佸埌閽夐拤瀹℃壒娴佺▼銆�";
-									}
-									this.$showMessage(successMessage);
-									// 鏇存柊鏈湴鐘舵��
-									this.formData.fsubmit = 1;
-									// 鍒锋柊鏁版嵁
-									this.init();
-								} else {
-									this.$showMessage(res.message || "鎻愪氦澶辫触");
-								}
-							}).catch(error => {
-								console.error("鎻愪氦澶辫触:", error);
-								this.$showMessage("鎻愪氦澶辫触锛岃閲嶈瘯");
-							});
-						}
+					let confirmMessage = '纭畾瑕佹彁浜ゆ妫�楠屽崟鍚楋紵鎻愪氦鍚庡皢鏃犳硶淇敼銆�';
+					if (shouldPushToDingTalk) {
+						confirmMessage += '\n\n婊¤冻閽夐拤鎺ㄩ�佹潯浠讹紝灏嗚嚜鍔ㄦ帹閫佸埌閽夐拤瀹℃壒娴佺▼銆�';
 					}
+
+					// 纭鎻愪氦
+					uni.showModal({
+						title: '纭鎻愪氦',
+						content: confirmMessage,
+						success: (res) => {
+							if (res.confirm) {
+								this.$post({
+									url: "/RKJ/submitInspection",
+									data: {
+										id: this.formData.id,
+										userNo: this.$loginInfo.account
+									}
+								}).then(res => {
+									if (res.status == 0) {
+										let successMessage = "妫�楠屽崟鎻愪氦鎴愬姛锛�";
+										if (shouldPushToDingTalk) {
+											successMessage += "\n宸叉帹閫佸埌閽夐拤瀹℃壒娴佺▼銆�";
+										}
+										this.$showMessage(successMessage);
+										// 鏇存柊鏈湴鐘舵��
+										this.formData.fsubmit = 1;
+										// 鍒锋柊鏁版嵁
+										this.init();
+									} else {
+										this.$showMessage(res.message || "鎻愪氦澶辫触");
+									}
+								}).catch(error => {
+									console.error("鎻愪氦澶辫触:", error);
+									this.$showMessage("鎻愪氦澶辫触锛岃閲嶈瘯");
+								});
+							}
+						}
+					});
+				}).catch(error => {
+					this.$showMessage(error);
 				});
 			},
+			
+			// 楠岃瘉涓嶅悎鏍兼楠岄」鐩�
+			async validateUnqualifiedItems() {
+				const unqualifiedItems = this.tableData.filter(item => item.result === '涓嶅悎鏍�');
+				
+				if (unqualifiedItems.length === 0) {
+					return Promise.resolve();
+				}
+				
+				// 妫�鏌ユ瘡涓笉鍚堟牸椤圭洰鏄惁鏈夊浘鐗囧拰鎻忚堪
+				for (const item of unqualifiedItems) {
+					try {
+						const detail = await this.getInspectionItemDetail(item.id);
+						if (!detail.hasImage || !detail.hasRemarks) {
+							const missingItems = [];
+							if (!detail.hasImage) missingItems.push('鍥剧墖');
+							if (!detail.hasRemarks) missingItems.push('涓嶈壇鎻忚堪');
+							
+							throw new Error(`妫�楠岄」鐩�"${item.projName}"涓嶅悎鏍硷紝浣嗙己灏戯細${missingItems.join('銆�')}锛岃瀹屽杽鍚庨噸鏂版彁浜わ紒`);
+						}
+					} catch (error) {
+						throw error;
+					}
+				}
+				
+				return Promise.resolve();
+			},
+			
+			// 鑾峰彇妫�楠岄」鐩缁嗕俊鎭�
+			getInspectionItemDetail(itemId) {
+				return new Promise((resolve, reject) => {
+					this.$post({
+						url: "/RKJ/getXjDetail02ById",
+						data: { id: itemId }
+					}).then(res => {
+						const itemData = res.data.tbBillList.itemXj01;
+						resolve({
+							hasImage: itemData.imageData && itemData.imageData.length > 0,
+							hasRemarks: itemData.remarks && itemData.remarks.trim() !== ''
+						});
+					}).catch(error => {
+						reject('鑾峰彇妫�楠岄」鐩鎯呭け璐�');
+					});
+				});
+			},
+			
 			viewAttachmentInfo() {
 				this.showAttachmentPopup = true; // 鍏堝脊绐�
 				this.attachmentsLoading = true;

--
Gitblit v1.9.3