From 67425c0ff32d869a4d7d1ab39334f9a17e8ea27a Mon Sep 17 00:00:00 2001 From: K <1175047471@qq.com> Date: Mon, 4 Mar 2024 16:37:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=8D=E5=8A=A1=E7=AB=AF=E8=AE=A2?= =?UTF-8?q?=E9=98=85=20-=20=E6=B6=88=E8=B4=B9=E7=BB=84=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/subscription/consumer/index.ts | 29 +++++++ src/api/subscription/consumer/types.ts | 11 +++ src/api/subscription/list/index.ts | 15 ++++ .../consumer/ConsumerFormModal.vue | 66 +++++++++++++++ src/views/subscription/consumer/data.ts | 50 +++++++++++ src/views/subscription/consumer/index.vue | 82 +++++++++++++++++++ 6 files changed, 253 insertions(+) create mode 100644 src/api/subscription/consumer/index.ts create mode 100644 src/api/subscription/consumer/types.ts create mode 100644 src/views/subscription/consumer/ConsumerFormModal.vue create mode 100644 src/views/subscription/consumer/data.ts create mode 100644 src/views/subscription/consumer/index.vue diff --git a/src/api/subscription/consumer/index.ts b/src/api/subscription/consumer/index.ts new file mode 100644 index 00000000..c25862db --- /dev/null +++ b/src/api/subscription/consumer/index.ts @@ -0,0 +1,29 @@ +import type { Consumer, GetConsumerListParams } from './types' +import { defHttp } from '@/utils/http/axios' + +export function getConsumerList(params: GetConsumerListParams) { + return defHttp.get>({ + url: '/server/consumer/page', + params, + }) +} + +export function createConsumer(data: Partial) { + return defHttp.post({ + url: '/server/consumer/save', + data, + }) +} + +export function updateConsumer(data: Partial) { + return defHttp.post({ + url: '/server/consumer/update', + data, + }) +} + +export function deleteConsumer(id: string) { + return defHttp.post({ + url: `/server/consumer/remove?id=${id}`, + }) +} diff --git a/src/api/subscription/consumer/types.ts b/src/api/subscription/consumer/types.ts new file mode 100644 index 00000000..444b873c --- /dev/null +++ b/src/api/subscription/consumer/types.ts @@ -0,0 +1,11 @@ +export interface GetConsumerListParams extends PageParam { + consumerName?: string +} + +export interface Consumer { + id: string + consumerName: string + consumerToken: string + createTime: string + subscribes: string +} diff --git a/src/api/subscription/list/index.ts b/src/api/subscription/list/index.ts index a4617473..f8ee4511 100644 --- a/src/api/subscription/list/index.ts +++ b/src/api/subscription/list/index.ts @@ -27,3 +27,18 @@ export function deleteSubscription(id: string) { url: `/server/subscribe/remove?id=${id}`, }) } + +export function getAllSubscription() { + return defHttp.get({ + url: '/server/subscribe/select', + }) +} + +export function getSubscriptionDetail(id: string) { + return defHttp.get({ + url: '/server/consumer/detail', + params: { + id, + }, + }) +} diff --git a/src/views/subscription/consumer/ConsumerFormModal.vue b/src/views/subscription/consumer/ConsumerFormModal.vue new file mode 100644 index 00000000..2f61c615 --- /dev/null +++ b/src/views/subscription/consumer/ConsumerFormModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/subscription/consumer/data.ts b/src/views/subscription/consumer/data.ts new file mode 100644 index 00000000..0d9020c3 --- /dev/null +++ b/src/views/subscription/consumer/data.ts @@ -0,0 +1,50 @@ +import type { BasicColumn, FormSchema } from '@/components/Table' +import { getAllSubscription } from '@/api/subscription/list' + +export const columns: BasicColumn[] = [ + { + title: '消费组名称', + dataIndex: 'consumerName', + }, + { + title: '消费组 Token', + dataIndex: 'consumerToken', + }, + { + title: '创建时间', + dataIndex: 'createTime', + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + field: 'consumerName', + label: '消费组名称', + component: 'Input', + colProps: { + span: 6, + }, + }, +] + +export const formSchema: FormSchema[] = [ + { + field: 'consumerName', + fields: ['id'], + label: '消费组名称', + required: true, + component: 'Input', + }, + { + field: 'subscribeIds', + label: '订阅', + required: true, + component: 'ApiSelect', + componentProps: { + api: getAllSubscription, + mode: 'multiple', + valueField: 'id', + labelField: 'productName', + }, + }, +] diff --git a/src/views/subscription/consumer/index.vue b/src/views/subscription/consumer/index.vue new file mode 100644 index 00000000..66541b0b --- /dev/null +++ b/src/views/subscription/consumer/index.vue @@ -0,0 +1,82 @@ + + +