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)
+}