From bd125eecd57d2f4e559c6170d20157591300fe3d Mon Sep 17 00:00:00 2001 From: p-honggang.li <p-honggang.li@pcitc.com> Date: 星期四, 04 九月 2025 20:57:44 +0800 Subject: [PATCH] 修改购物车等BUG --- src/views/productManage/productPriceViewer/index.vue | 45 ++++++++++++++++++++++++++++++--------------- 1 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/views/productManage/productPriceViewer/index.vue b/src/views/productManage/productPriceViewer/index.vue index 5d87a57..3c9e4fa 100644 --- a/src/views/productManage/productPriceViewer/index.vue +++ b/src/views/productManage/productPriceViewer/index.vue @@ -250,7 +250,7 @@ :controls="true" size="large" class="quantity-input" - @change="(value) => handleQuantityChange(suite.id, value?value:1)" + @change="(value) => handleQuantityChange(suite.id,value?value:1)" /> </td> <td class="th-center"> @@ -353,7 +353,6 @@ import productPricingApi from '@/api/productPricingApi' import cartApi from '@/api/cartApi' import orderApi from '@/api/orderApi' -import { ShoppingCart, Coin, Money } from '@element-plus/icons-vue' import { useUserInfo } from '@/stores/modules/userInfo' import { queryUserDetail } from '@/api/userInfo' import productApi from '@/api/productApi' @@ -394,7 +393,7 @@ const showOrderStatus = ref(false) // 妯℃嫙鐢ㄦ埛淇℃伅锛堝疄闄呭簲浠庣敤鎴风姸鎬佽幏鍙栵級 const userStore = useUserInfo() -let currentUserId = computed(() => userStore.getUserId || userStore.getUserInfo?.userId) +const currentUserId = computed(() => userStore.getUserId || userStore.getUserInfo?.userId) const currentUnitId = computed(() => userStore.getUnitId || userStore.getUserInfo?.unitId || '') onMounted(async () => { @@ -403,7 +402,8 @@ const res: any = await queryUserDetail() if (res?.code === 200 && res.data) { userStore.updateUserDetail(res.data) - currentUserId = res.data.userId || res.data.id + // currentUserId.value = res.data.id || res.data.userId + console.log(currentUserId.value) userInfo.value = res.data } else { ElMessage.error(res?.msg || '鏃犳硶鑾峰彇鐢ㄦ埛淇℃伅锛岃鍏堢櫥褰�') @@ -417,7 +417,8 @@ }else{ userInfo.value = userStore.getUserInfos } - + // 鑾峰彇璁㈣喘淇℃伅 + fetchProductData(currentProductId.value ? currentProductId.value : '') }) type PriceTypeKey = 'POINTS' | 'CURRENCY' | 'AGREEMENT' | 'FREE' interface OrderSuite extends PriceItem { @@ -638,7 +639,8 @@ loading.value = true try { - const res: any = await productPricingApi.listByProductId(productId) + // 鍙煡璇竴璧风敤鐨勫畾浠� + const res: any = await productPricingApi.listBycondition({ productId: productId,isActive: true }) if (res?.code === 200) { const list = Array.isArray(res.data) ? res.data : [] const mapped: PriceItem[] = list.map((it: any) => { @@ -708,6 +710,13 @@ } finally { loading.value = false } + // 淇敼activeTab 榛樿鍊� + if(priceList.value.length > 0){ + + activeTab.value = groupedPriceData.value.hasOwnProperty('enterprise') ? 'enterprise' + : groupedPriceData.value.hasOwnProperty('project') ? 'project' : 'personal' + } + } // 鐩戝惉浜у搧ID鍙樺寲 @@ -715,7 +724,7 @@ if (newProductId) { fetchProductData(newProductId) } -},{ immediate: true }) +}) // 濂椾欢閫夋嫨澶勭悊 const handleSuiteSelect = (suiteId: number, checked: any) => { @@ -841,7 +850,7 @@ unitId: '1' }) if(wkParamsRes?.code === 200 && wkParamsRes.data?.processTemplateId){ - const wfRes: any = await orderApi.startWorkflowAndComplete({ + const wfRes: any = await workFlowApi.startWorkflowAndComplete({ processdefId: wkParamsRes.data.processTemplateId, userid: String(currentUserId.value || ''), businessKey: businessKey @@ -857,7 +866,7 @@ // 娓呯┖璐墿杞︼紙鍚庣 + 鏈湴鐘舵�侊級 try { - const clearRes: any = await cartApi.clearCart(currentUserId.value, currentUnitId.value) + const clearRes: any = await cartApi.clearCart(currentUserId.value, currentUnitId.value,currentProductId.value) if (clearRes?.code === 200) { cartItems.value = [] orderSuites.value = [] @@ -910,7 +919,7 @@ const removeFromCart = async (pricingId: string) => { try { - const res: any = await cartApi.removeFromCart(currentUserId.value, currentUnitId.value, pricingId) + const res: any = await cartApi.removeFromCart(currentUserId.value, currentUnitId.value, currentProductId.value,pricingId) if (res?.code === 200) { ElMessage.success('宸蹭粠璐墿杞︾Щ闄�') } else { @@ -925,7 +934,13 @@ const updateCartItem = async (pricingId: number, quantity: number, duration: number) => { try { // 杩欓噷闇�瑕佹牴鎹疄闄呮帴鍙h皟鏁达紝鍙兘闇�瑕佷紶閫掓洿澶氬弬鏁� - const res: any = await cartApi.updateCartItem(currentUserId.value, currentUnitId.value, pricingId, quantity) + let res: any = {} + if(quantity){ + res = await cartApi.updateCartItem(currentUserId.value, currentUnitId.value, currentProductId.value, pricingId, quantity) + } + if(duration){ + res = await cartApi.updateCartItemDuration(currentUserId.value, currentUnitId.value, currentProductId.value, pricingId, duration) + } if (res?.code === 200) { ElMessage.success('璐墿杞﹀凡鏇存柊') } else { @@ -940,7 +955,7 @@ const fetchCartItems = async () => { cartLoading.value = true try { - const res: any = await cartApi.getCartItems(currentUserId.value, currentUnitId.value) + const res: any = await cartApi.getCartItems(currentUserId.value, currentUnitId.value, currentProductId.value) if (res?.code === 200) { cartItems.value = res.data || [] // 灏嗚喘鐗╄溅鏁版嵁杞崲涓鸿鍗曞浠舵牸寮� @@ -982,7 +997,7 @@ // 澶勭悊鏁伴噺鍙樺寲 const handleQuantityChange = async (pricingId: number, quantity: number) => { try { - await updateCartItem(pricingId, quantity, 1) // 鏆傛椂浼犻�掗粯璁uration涓�1 + await updateCartItem(pricingId, quantity, null) // 鏆傛椂浼犻�掗粯璁uration涓�1 } catch (error) { console.error('鏇存柊鏁伴噺澶辫触:', error) } @@ -992,7 +1007,7 @@ const handleDurationChange = async (pricingId: number, duration: number) => { try { // 杩欓噷鍙兘闇�瑕佹牴鎹疄闄呮帴鍙h皟鏁达紝浼犻�抎uration鍙傛暟 - await updateCartItem(pricingId, 1, duration) // 鏆傛椂浼犻�掗粯璁uantity涓�1 + await updateCartItem(pricingId, null, duration) // 鏆傛椂浼犻�掗粯璁uantity涓�1 } catch (error) { console.error('鏇存柊骞撮檺澶辫触:', error) } @@ -1463,7 +1478,7 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - line-height: 1; + line-height: 2; } .label { color:#606266; font-weight: 500; } .value { color:#303133; } -- Gitblit v1.8.0