p-honggang.li
9 天以前 bd125eecd57d2f4e559c6170d20157591300fe3d
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 {
    // 这里需要根据实际接口调整,可能需要传递更多参数
    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) // 暂时传递默认duration为1
    await updateCartItem(pricingId, quantity, null) // 暂时传递默认duration为1
  } catch (error) {
    console.error('更新数量失败:', error)
  }
@@ -992,7 +1007,7 @@
const handleDurationChange = async (pricingId: number, duration: number) => {
  try {
    // 这里可能需要根据实际接口调整,传递duration参数
    await updateCartItem(pricingId, 1, duration) // 暂时传递默认quantity为1
    await updateCartItem(pricingId, null, duration) // 暂时传递默认quantity为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; }