diff --git a/src/api/subscription.ts b/src/api/subscription.ts index b2f042a..7e6273b 100644 --- a/src/api/subscription.ts +++ b/src/api/subscription.ts @@ -45,6 +45,20 @@ export interface SubscriptionGroupPayload { Consumers: string[] } +/** 应用级订阅方(应用本身的两方公司,不分具体产品) */ +export interface SubscriptionAppParties { + AppUUID: string + Providers: SubscriptionCompanyItem[] + Consumers: SubscriptionCompanyItem[] +} + +/** 应用级订阅方保存入参(整体重写) */ +export interface SubscriptionAppPartyPayload { + AppUUID: string + Providers: string[] + Consumers: string[] +} + /** 订阅式软件提供 API 客户端 */ export const subscriptionApi = { /** 订阅组(产品)列表(含提供者/消费者公司) */ @@ -66,4 +80,12 @@ export const subscriptionApi = { /** 可选公司列表(当前管理员全部可管理公司,含所属租户名) */ companies: (): Promise<{ list: SubscriptionCompanyItem[]; total: number; Scope: string }> => get<{ list: SubscriptionCompanyItem[]; total: number; Scope: string }>('/API/Subscription/Companies'), + + /** 应用级订阅方(应用配置页注入卡片:提供者/消费者公司,不分产品) */ + appParties: (AppUUID: string): Promise => + get('/API/Subscription/AppParties', { AppUUID }), + + /** 保存应用级订阅方(整体重写) */ + saveAppParties: (data: SubscriptionAppPartyPayload): Promise => + post('/API/Subscription/AppParty/Save', data), } diff --git a/src/apps/index.ts b/src/apps/index.ts index c0b6f76..fe3c7b9 100644 --- a/src/apps/index.ts +++ b/src/apps/index.ts @@ -165,16 +165,15 @@ const builtin: Record = { AppCode: 'subscription', Title: '订阅式软件提供', Icon: 'Connection', - FrontendRoute: '/subscription/group', + FrontendRoute: '/subscription/software', FrontendType: 'vue', LegacySrc: '', - // 注入到「应用配置页」的自定义区块:展示当前范围作为提供者/消费者参与的产品 + // 注入到「应用配置页」的自定义卡片:确定本应用自身的提供者/消费者公司(初始化引用) ConfigPanels: [ { - Key: 'subscription-relation-overview', - Title: '订阅关系概览', - Sub: '当前范围作为提供者 / 消费者参与的产品(按公司隔离)', - CompanyOnly: true, + Key: 'subscription-app-party', + Title: '应用订阅方', + Sub: '确定本应用自身的提供者公司与消费者公司(不分具体产品),作为订阅关系的初始化引用', Component: () => import('@/views/subscription/ConfigPanel.vue'), }, ], diff --git a/src/router/index.ts b/src/router/index.ts index 61845dc..2ef73f1 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -451,6 +451,12 @@ export const staticRoutes: RouteRecordRaw[] = [ meta: { title: '绩效管理', icon: 'TrendCharts', requiresAuth: true, menuGuarded: true }, }, // === 订阅式软件提供(订阅组=产品:提供者/消费者公司) === + { + path: 'subscription/software', + name: 'SubscriptionSoftware', + component: () => import('@/views/subscription/Group.vue'), + meta: { title: '软件管理', icon: 'Management', requiresAuth: true, menuGuarded: true }, + }, { path: 'subscription/group', name: 'SubscriptionGroup', diff --git a/src/views/subscription/ConfigPanel.vue b/src/views/subscription/ConfigPanel.vue index 8029cbf..56ea2e6 100644 --- a/src/views/subscription/ConfigPanel.vue +++ b/src/views/subscription/ConfigPanel.vue @@ -1,20 +1,21 @@ diff --git a/src/views/subscription/Group.vue b/src/views/subscription/Group.vue index bb787c9..1b00689 100644 --- a/src/views/subscription/Group.vue +++ b/src/views/subscription/Group.vue @@ -7,6 +7,7 @@ * (跨租户管理员可选任意租户的公司)。 */ import { computed, onMounted, reactive, ref } from 'vue' +import { useRoute } from 'vue-router' import { ElMessage, ElMessageBox } from 'element-plus' import { setPageTitle } from '@/utils/serverScope' import { @@ -16,7 +17,9 @@ import { type SubscriptionGroupPayload, } from '@/api/subscription' -setPageTitle('订阅组管理') +// 同一页面挂两个菜单:软件管理(/subscription/software)与 订阅组管理(/subscription/group) +const route = useRoute() +setPageTitle(route.path.includes('/software') ? '软件管理' : '订阅组管理') const loading = ref(false) const saving = ref(false)