p-honggang.li
7 天以前 522737d66480d2f42b8e83c2ddde0efa3b740f38
src/views/productManage/productPriceViewer/index.vue
@@ -337,7 +337,7 @@
    <div class="footer" v-if="showPricePanel">
     <el-button type="primary" @click="handleOrder">立即订购</el-button>
    </div>
    <div class="footer" v-else>
    <div class="footer" v-if="showOrderPanel">
      <el-button @click="returnPricePanel">返回价格对比</el-button>
      <el-button type="primary" @click="submitOrder">提交申请</el-button>
    </div>
@@ -639,7 +639,7 @@
  loading.value = true
  try {
    // 只查询一起用的定价
    // 只查询已启用的定价
    const res: any = await productPricingApi.listBycondition({ productId: productId,isActive: true })
    if (res?.code === 200) {
      const list = Array.isArray(res.data) ? res.data : []
@@ -796,6 +796,21 @@
  }else{
     paymentType = '协议'
  }
     let processdefId: string = ''
     const type = hasAGREEMENT ? 'trade_agreement' : 'trade_point';
     // 获取工作流参数
     const  wkParamsRes: any = await workFlowApi.getWorkFlowParams({
      type: type,
      unitId: '1',
      businessKey: type
    })
  if(wkParamsRes?.code === 200 && wkParamsRes.data?.processTemplateId){
    processdefId = wkParamsRes.data.processTemplateId
  }else {
    ElMessage.error('获取工作流参数失败!')
    return
  }
  // 组装创建订单参数(CreateOrderDTO)
  const payload = {
    userId: currentUserId.value,
@@ -805,6 +820,7 @@
    providerId: productHeader.value.createUserId,
    paymentType: paymentType,
    buyerRemarks: '',
    processdefId: processdefId,
    items: items.map(it => ({
      pricingId: it.id,
      productId: it.productId,
@@ -839,34 +855,35 @@
        applyTime: data.applyTime ? String(data.applyTime) : new Date().toLocaleString()
      }
      // 调用工作流接口发起审批流程,拿到流程实例ID后回写订单workflow_id
      try {
        // 根据是否包含协议明细,配置不同流程定义与业务Key(先用静态值占位)
        // const processdefId = hasAGREEMENT ? 'Process_Agreement_Static' : 'Process_Points_Static'
        const businessKey = hasAGREEMENT ? 'agreement_biz_key' : 'points_biz_key'
        const type = hasAGREEMENT ? 'trade_agreement' : 'trade_point';
        // 获取工作流参数
        const  wkParamsRes: any = await workFlowApi.getWorkFlowParams({
          type: type,
          unitId: '1'
        })
        if(wkParamsRes?.code === 200 && wkParamsRes.data?.processTemplateId){
          const wfRes: any = await workFlowApi.startWorkflowAndComplete({
            processdefId: wkParamsRes.data.processTemplateId,
            userid: String(currentUserId.value || ''),
            businessKey: businessKey
          })
          if (wfRes?.code === 200 && wfRes.data?.processinstId) {
            await orderApi.updateWorkflowId(data.orderId, wfRes.data.processinstId)
          }
        }
      } catch (e) {
        console.warn('启动工作流失败或更新workflow_id失败', e)
      }
      // 放后端处理
      // try {
      //   // 根据是否包含协议明细,配置不同流程定义与业务Key(先用静态值占位)
      //   // const processdefId = hasAGREEMENT ? 'Process_Agreement_Static' : 'Process_Points_Static'
      //   const businessKey = hasAGREEMENT ? 'agreement_biz_key' : 'points_biz_key'
      //   const type = hasAGREEMENT ? 'trade_agreement' : 'trade_point';
      //   // 获取工作流参数
      //   const  wkParamsRes: any = await workFlowApi.getWorkFlowParams({
      //     type: type,
      //     unitId: '1'
      //   })
      //   if(wkParamsRes?.code === 200 && wkParamsRes.data?.processTemplateId){
      //     const wfRes: any = await workFlowApi.startWorkflowAndComplete({
      //       processdefId: wkParamsRes.data.processTemplateId,
      //       userid: String(currentUserId.value || ''),
      //       businessKey: businessKey
      //     })
      //     if (wfRes?.code === 200 && wfRes.data?.processinstId) {
      //       await orderApi.updateWorkflowId(data.orderId, wfRes.data.processinstId)
      //     }
      //   }
      //
      // } catch (e) {
      //   console.warn('启动工作流失败或更新workflow_id失败', e)
      // }
      // 清空购物车(后端 + 本地状态)
      try {
        const clearRes: any = await cartApi.clearCart(currentUserId.value, currentUnitId.value,currentProductId.value)
        const clearRes: any = await cartApi.clearCart(currentUserId.value, currentUnitId.value,currentProductId.value ? currentProductId.value : '')
        if (clearRes?.code === 200) {
          cartItems.value = []
          orderSuites.value = []
@@ -919,7 +936,7 @@
const removeFromCart = async (pricingId: string) => {
  try {
    const res: any = await cartApi.removeFromCart(currentUserId.value, currentUnitId.value, currentProductId.value,pricingId)
    const res: any = await cartApi.removeFromCart(currentUserId.value, currentUnitId.value, currentProductId.value? currentProductId.value : '',pricingId)
    if (res?.code === 200) {
      ElMessage.success('已从购物车移除')
    } else {
@@ -931,15 +948,15 @@
  }
}
const updateCartItem = async (pricingId: number, quantity: number, duration: number) => {
const updateCartItem = async (pricingId: number, quantity: number | null, duration: number | null) => {
  try {
    // 这里需要根据实际接口调整,可能需要传递更多参数
    let res: any = {}
    if(quantity){
      res = await cartApi.updateCartItem(currentUserId.value, currentUnitId.value, currentProductId.value, pricingId, quantity)
      res = await cartApi.updateCartItem(currentUserId.value, currentUnitId.value, currentProductId.value? currentProductId.value : '', pricingId, quantity)
    }
    if(duration){
      res = await cartApi.updateCartItemDuration(currentUserId.value, currentUnitId.value, currentProductId.value, pricingId, duration)
      res = await cartApi.updateCartItemDuration(currentUserId.value, currentUnitId.value, currentProductId.value? currentProductId.value : '', pricingId, duration)
    }
    if (res?.code === 200) {
      ElMessage.success('购物车已更新')
@@ -955,7 +972,7 @@
const fetchCartItems = async () => {
  cartLoading.value = true
  try {
    const res: any = await cartApi.getCartItems(currentUserId.value, currentUnitId.value, currentProductId.value)
    const res: any = await cartApi.getCartItems(currentUserId.value, currentUnitId.value, currentProductId.value? currentProductId.value : '')
    if (res?.code === 200) {
      cartItems.value = res.data || []
      // 将购物车数据转换为订单套件格式