From 3a2524692711cf35fc142881b2837368ae2c3d25 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 13 十月 2025 14:57:19 +0800
Subject: [PATCH] 定制商品
---
api/order.js | 11 +++++
pages/order/myOrder.vue | 4 +-
pages/order/orderDetail.vue | 2
pages.json | 7 +++
pages/product/m-buy/goods.vue | 64 ++++++++++++++++++++++++++++++++
5 files changed, 85 insertions(+), 3 deletions(-)
diff --git a/api/order.js b/api/order.js
index 1e42272..deae057 100644
--- a/api/order.js
+++ b/api/order.js
@@ -82,6 +82,17 @@
});
}
/**
+ * 鑾峰彇璁㈠崟瀹氬埗淇℃伅
+ * @param orderSn 璁㈠崟缂栧彿
+ */
+export function getOrderCustomize(orderSn) {
+ return http.request({
+ url: `/order/order/customize/${orderSn}`,
+ method: Method.GET,
+ needToken: true,
+ });
+}
+/**
* 鑾峰彇璁㈠崟璇︽儏
* @param orderSn 璁㈠崟缂栧彿
*/
diff --git a/pages.json b/pages.json
index f95be17..10765d2 100644
--- a/pages.json
+++ b/pages.json
@@ -1865,6 +1865,13 @@
"u-empty": "view"
}
}
+ },
+ {
+ "path" : "constomize/constomize",
+ "style" :
+ {
+ "navigationBarTitleText" : "瀹氬埗淇℃伅"
+ }
}
]
},
diff --git a/pages/order/myOrder.vue b/pages/order/myOrder.vue
index 0f790f4..25c3d35 100644
--- a/pages/order/myOrder.vue
+++ b/pages/order/myOrder.vue
@@ -172,7 +172,7 @@
shape="circle"
class="cancel-btn"
size="mini"
- v-if="order.orderStatus === 'COMPLETED'&& order.orderType !=='VIRTUAL'"
+ v-if="order.orderStatus === 'COMPLETED'&& order.orderType !=='VIRTUAL'&& order.customizeFlag !=='CUSTOMIZE'"
@click="buyBack(order)"
>
鍐嶆潵涓�鍗�
@@ -470,7 +470,7 @@
opencustomize(order){
console.log(order)
uni.navigateTo({
- url:"/pages/order/cardPack?sn=" + order.sn
+ url:"/pages/order/constomize/constomize?sn=" + order.sn
})
},
//鍐嶆潵涓�鍗�
diff --git a/pages/order/orderDetail.vue b/pages/order/orderDetail.vue
index d89c8d9..2d9f4ba 100644
--- a/pages/order/orderDetail.vue
+++ b/pages/order/orderDetail.vue
@@ -149,7 +149,7 @@
@click="ByUserMessage(order)">鏌ョ湅鎷煎洟淇℃伅</view>
<view class="customer-service"
@click="contact(order.storeId)">鑱旂郴瀹㈡湇</view>
- <view class="customer-service" v-if="order.orderStatus==='COMPLETED' && order.orderType !=='VIRTUAL'"
+ <view class="customer-service" v-if="order.orderStatus==='COMPLETED' && order.orderType !=='VIRTUAL'&& order.customizeFlag !=='CUSTOMIZE'"
@click="buyBack"
>鍐嶆潵涓�鍗�</view>
</view>
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