From 3a2524692711cf35fc142881b2837368ae2c3d25 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 13 十月 2025 14:57:19 +0800
Subject: [PATCH] 定制商品

---
 pages/product/m-buy/goods.vue |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/pages/product/m-buy/goods.vue b/pages/product/m-buy/goods.vue
index 2821674..f6c92b1 100644
--- a/pages/product/m-buy/goods.vue
+++ b/pages/product/m-buy/goods.vue
@@ -604,6 +604,10 @@
 			this.formValues.templateId = this.consumizetemplateInfo.id;
 			this.formValues.templateName = this.consumizetemplateInfo.name;
 			
+			// 鏌ユ壘瀵瑰簲鐨勬ā鏉垮瓧娈典互鑾峰彇contentType
+			const templateItem = this.consumizetemplateInfo.templateConstomizeTitles.find(item => item.id === fieldId);
+			const contentType = templateItem ? templateItem.contentType : '';
+			
 			// 鏌ユ壘鏄惁宸插瓨鍦ㄨ瀛楁
 			const existingIndex = this.formValues.templateForm.findIndex(item => item.id === fieldId);
 			
@@ -612,6 +616,7 @@
 				this.$set(this.formValues.templateForm, existingIndex, {
 					id: fieldId,
 					templateTitle: templateTitle,
+					contentType: contentType, // 娣诲姞contentType
 					value: value
 				});
 			} else {
@@ -619,6 +624,7 @@
 				this.formValues.templateForm.push({
 					id: fieldId,
 					templateTitle: templateTitle,
+					contentType: contentType, // 娣诲姞contentType
 					value: value
 				});
 			}
@@ -736,6 +742,14 @@
 		 * 娣诲姞鍒拌喘鐗╄溅鎴栬喘涔�
 		 */
 		addToCartOrBuy(val) {
+			// 妫�鏌ュ晢鍝佹槸鍚﹂渶瑕佹ā鏉垮苟涓旀ā鏉挎暟鎹槸鍚﹀畬鏁�
+			if (this.consumizetemplateInfo && this.consumizetemplateInfo.id) {
+				const isValid = this.validateTemplateData();
+				if (!isValid) {
+					return;
+				}
+			}
+			
 			console.log(JSON.stringify(this.formValues))
 			if (!this.selectSkuList) {
 				// 浣跨敤setTimeout寤惰繜鏄剧ず鎻愮ず锛岄伩鍏嶅奖鍝嶅脊绐�
@@ -795,6 +809,56 @@
 				});
 			}
 		},
+		
+		/**
+		 * 楠岃瘉妯℃澘鏁版嵁鏄惁瀹屾暣
+		 */
+		validateTemplateData() {
+			// 妫�鏌ユā鏉垮浘鐗囨槸鍚﹀凡閫夋嫨锛堝鏋滄湁妯℃澘鍥剧墖锛�
+			if (this.consumizetemplateInfo.templateImgs && 
+				this.consumizetemplateInfo.templateImgs.length > 0 && 
+				this.selectedImageObjects.length === 0) {
+				setTimeout(() => {
+					uni.showToast({
+						title: '璇烽�夋嫨妯℃澘鍥剧墖',
+						icon: 'none'
+					});
+				}, 100);
+				return false;
+			}
+			
+			// 妫�鏌ュ姩鎬佽〃鍗曢」鏄惁宸插~鍐�
+			if (this.consumizetemplateInfo.templateConstomizeTitles) {
+				for (const item of this.consumizetemplateInfo.templateConstomizeTitles) {
+					const formItem = this.formValues.templateForm.find(formItem => formItem.id === item.id);
+					
+					// 濡傛灉琛ㄥ崟椤逛笉瀛樺湪鎴栬�呭�间负绌�
+					if (!formItem || !formItem.value || formItem.value.trim() === '') {
+						setTimeout(() => {
+							uni.showToast({
+								title: `璇峰~鍐�${item.templateTitle}`,
+								icon: 'none'
+							});
+						}, 100);
+						return false;
+					}
+					
+					// 鐗瑰埆妫�鏌ュ浘鐗囩被鍨嬬殑琛ㄥ崟椤规槸鍚︽湁涓婁紶
+					if (item.contentType === 'IMAGE' && 
+						(!this.imagePreviewUrls[item.id] || this.imagePreviewUrls[item.id].trim() === '')) {
+						setTimeout(() => {
+							uni.showToast({
+								title: `璇蜂笂浼�${item.templateTitle}`,
+								icon: 'none'
+							});
+						}, 100);
+						return false;
+					}
+				}
+			}
+			
+			return true;
+		},
 		formatSku(list) {
 			// 鏍煎紡鍖栨暟鎹�
 			let arr = [{}];

--
Gitblit v1.8.0