diff --git a/src/api/index.js b/src/api/index.js index f152c8b..a190e06 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -57,6 +57,11 @@ export const productApi = { getProductApiConfigByCode: (productCode) => request.get(`/products/code/${productCode}/api-config`), getProductApiConfigsByProductIDs: (productIds) => request.get('/products/api-configs', { params: { product_ids: productIds.join(',') } + }), + + // 下载接口文档(支持PDF和Markdown) + downloadProductDocumentation: (productId) => request.get(`/products/${productId}/documentation/download`, { + responseType: 'blob' }) } @@ -81,7 +86,10 @@ export const subscriptionApi = { getMySubscriptionDetail: (id) => request.get(`/my/subscriptions/${id}`), // 获取我的订阅使用情况 (需认证) - getMySubscriptionUsage: (id) => request.get(`/my/subscriptions/${id}/usage`) + getMySubscriptionUsage: (id) => request.get(`/my/subscriptions/${id}/usage`), + + // 取消我的订阅 (需认证) + cancelMySubscription: (id) => request.post(`/my/subscriptions/${id}/cancel`) } // 财务相关接口 diff --git a/src/components/product/ProductCard.vue b/src/components/product/ProductCard.vue index 7a6705c..4709916 100644 --- a/src/components/product/ProductCard.vue +++ b/src/components/product/ProductCard.vue @@ -73,12 +73,12 @@ - 已订阅 + 取消订阅 @@ -104,10 +104,14 @@ const props = defineProps({ isSubscribed: { type: Boolean, default: false + }, + subscription: { + type: Object, + default: null } }) -const emit = defineEmits(['view-detail', 'subscribe']) +const emit = defineEmits(['view-detail', 'subscribe', 'cancel-subscribe']) // 格式化价格 const formatPrice = (price) => { @@ -134,6 +138,11 @@ const handleViewDetail = () => { const handleSubscribe = () => { emit('subscribe', props.product) } + +// 取消订阅 +const handleCancelSubscribe = () => { + emit('cancel-subscribe', props.product) +}