This is an automated email from the ASF dual-hosted git repository. dockerzhang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push: new 0b5cd7b03 [INLONG-5926][Dashboard] Change the consume related config to adapt the Manager module (#5983) 0b5cd7b03 is described below commit 0b5cd7b03757e8d1425c046888960d8bcfac5b1d Author: ciscozhou <45899072+ciscoz...@users.noreply.github.com> AuthorDate: Thu Sep 22 18:49:07 2022 +0800 [INLONG-5926][Dashboard] Change the consume related config to adapt the Manager module (#5983) Co-authored-by: Daniel <lee...@apache.org> Co-authored-by: healchow <healc...@gmail.com> --- inlong-dashboard/src/configs/menus/index.ts | 4 +- inlong-dashboard/src/configs/routes/index.tsx | 2 +- inlong-dashboard/src/i18n.ts | 10 +-- inlong-dashboard/src/locales/cn.json | 58 +++++++------- inlong-dashboard/src/locales/en.json | 59 +++++++-------- .../{consumption => consume}/extends/index.tsx | 4 +- .../src/metas/{consumption => consume}/index.tsx | 88 ++++++++++------------ .../src/metas/{consumption => consume}/status.tsx | 0 inlong-dashboard/src/metas/group/index.tsx | 20 ++--- .../src/pages/ConsumeDashboard/config.tsx | 10 +-- .../src/pages/ConsumeDashboard/index.tsx | 6 +- .../src/pages/ConsumeDetail/Info/config.tsx | 12 +-- .../src/pages/ConsumeDetail/Info/index.tsx | 47 +++++------- inlong-dashboard/src/pages/ConsumeDetail/index.tsx | 14 ++-- inlong-dashboard/src/pages/GroupDetail/index.tsx | 2 - .../src/pages/ProcessDetail/Consume.tsx | 18 ++--- .../src/pages/ProcessDetail/ConsumeConfig.tsx | 6 +- inlong-dashboard/src/pages/ProcessDetail/index.tsx | 2 +- 18 files changed, 170 insertions(+), 192 deletions(-) diff --git a/inlong-dashboard/src/configs/menus/index.ts b/inlong-dashboard/src/configs/menus/index.ts index 98b64ccdf..e49d683f6 100644 --- a/inlong-dashboard/src/configs/menus/index.ts +++ b/inlong-dashboard/src/configs/menus/index.ts @@ -33,7 +33,7 @@ const menus: MenuItemType[] = [ }, { path: '/consume', - name: i18n.t('configs.menus.DataConsumption'), + name: i18n.t('configs.menus.Consumes'), }, { name: i18n.t('configs.menus.Clusters'), @@ -50,7 +50,7 @@ const menus: MenuItemType[] = [ }, { path: '/node', - name: i18n.t('configs.menus.Node'), + name: i18n.t('configs.menus.Nodes'), }, { path: '/process', diff --git a/inlong-dashboard/src/configs/routes/index.tsx b/inlong-dashboard/src/configs/routes/index.tsx index c63c5983a..8cbfdcefe 100644 --- a/inlong-dashboard/src/configs/routes/index.tsx +++ b/inlong-dashboard/src/configs/routes/index.tsx @@ -54,7 +54,7 @@ const routes: RouteProps[] = [ exact: true, childRoutes: [ { - path: '/create', + path: '/create/:id?', component: () => import('@/pages/ConsumeDetail'), exact: true, }, diff --git a/inlong-dashboard/src/i18n.ts b/inlong-dashboard/src/i18n.ts index d77cd3ce1..5b12e2f2b 100644 --- a/inlong-dashboard/src/i18n.ts +++ b/inlong-dashboard/src/i18n.ts @@ -26,27 +26,27 @@ const resources = { en: { translation: { 'configs.menus.Process': 'Approval', - 'configs.menus.Groups': 'Data Groups', - 'configs.menus.DataConsumption': 'Data Consumptions', + 'configs.menus.Groups': 'Inlong Groups', + 'configs.menus.Consumes': 'Inlong Consumes', 'configs.menus.Clusters': 'Clusters', 'configs.menus.ClusterTags': 'ClusterTags', 'configs.menus.SystemManagement': 'System', 'configs.menus.UserManagement': 'User Management', 'configs.menus.ApprovalManagement': 'Approval Management', - 'configs.menus.Node': 'Nodes', + 'configs.menus.Nodes': 'Nodes', }, }, cn: { translation: { 'configs.menus.Process': '审批管理', 'configs.menus.Groups': '数据流组', - 'configs.menus.DataConsumption': '数据消费', + 'configs.menus.Consumes': '数据消费', 'configs.menus.Clusters': '集群管理', 'configs.menus.ClusterTags': '标签管理', 'configs.menus.SystemManagement': '系统管理', 'configs.menus.UserManagement': '用户管理', 'configs.menus.ApprovalManagement': '审批责任人管理', - 'configs.menus.Node': '节点管理', + 'configs.menus.Nodes': '节点管理', }, }, }; diff --git a/inlong-dashboard/src/locales/cn.json b/inlong-dashboard/src/locales/cn.json index d1d8dcd22..16e5161f7 100644 --- a/inlong-dashboard/src/locales/cn.json +++ b/inlong-dashboard/src/locales/cn.json @@ -192,20 +192,13 @@ "meta.Sinks.HBase.IsMetaField": "是否为元字段", "meta.Sinks.HBase.FieldFormat": "字段格式", "meta.Sinks.HBase.FieldDescription": "字段描述", - "meta.Group.Stripe/Second": "条/秒", - "meta.Group.MessageMiddleware": "消息中间件", - "meta.Group.AccessSize": "按天接入大小", - "meta.Group.GB/Day": "GB/天", - "meta.Group.BusinessIntroduction": "描述", - "meta.Group.BusinessOwners": "责任人", - "meta.Group.SingleStripMaximumLength": "单条最大长度", - "meta.Group.thousand/day": "万条/天", - "meta.Group.AccessPeakPerSecond": "每秒接入峰值", - "meta.Group.InlongGroupId": "Group ID", + "meta.Group.InlongGroupId": "数据流组ID", "meta.Group.InlongGroupIdRules": "只能包含小写字母、数字、中划线、下划线", "meta.Group.InlongGroupName": "数据流组名称", - "meta.Group.NumberOfAccess": "按天接入条数", - "meta.Group.BusinessOwnersExtra": "责任人,可查看、修改数据流组信息", + "meta.Group.InlongGroupOwners": "责任人", + "meta.Group.InlongGroupOwnersExtra": "责任人,可查看、修改数据流组信息", + "meta.Group.InlongGroupIntroduction": "描述", + "meta.Group.MQType": "MQ类型", "meta.Group.QueueModule": "队列模型", "meta.Group.Parallel": "并行", "meta.Group.Serial": "顺序", @@ -219,8 +212,13 @@ "meta.Group.RetentionTimeExtra": "处于ack状态的消息的保存时⻓,超过此值时消息会被删除(最多保留14天)", "meta.Group.TtlExtra": "消息的time-to-live时⻓,超过此值的消息会被标记为ack(最多保留14天)", "meta.Group.RetentionSizeExtra": "处于ack状态的消息容量,超过此值的消息会被删除(-1表示永不删除)", - "meta.Group.DataCopyTitle": "数据副本信息", - "meta.Group.DataStoragePeriodTitle": "数据存储周期信息", + "meta.Group.NumberOfAccess": "按天接入条数", + "meta.Group.TenThousand/Day": "万条/天", + "meta.Group.AccessSize": "按天接入大小", + "meta.Group.GB/Day": "GB/天", + "meta.Group.AccessPeakPerSecond": "每秒接入峰值", + "meta.Group.Stripe/Second": "条/秒", + "meta.Group.SingleStripMaximumLength": "单条最大长度", "meta.Group.Status.Approved": "审批通过", "meta.Group.Status.Draft": "草稿", "meta.Group.Status.Cancel": "取消", @@ -253,17 +251,18 @@ "meta.Stream.Status.Pending": "配置中", "meta.Stream.Status.Error": "配置失败", "meta.Stream.Status.Success": "配置成功", - "meta.Consumption.Owner": "消费责任人", - "meta.Consumption.ConsumerGroupName": "消费组名称", - "meta.Consumption.ConsumerGroupNameRules": "只能包含小写字母、数字、中划线、下划线", - "meta.Consumption.DataStreamIDsHelp": "多个数据流ID之间用逗号(,)隔开", - "meta.Consumption.ConsumerDataStreamID": "消费的数据流ID", - "meta.Consumption.ConsumerTargetBusinessID": "消费的 Group ID", - "meta.Consumption.No": "否", - "meta.Consumption.filterEnabled": "是否过滤消费", - "meta.Consumption.MasterAddress": "Master地址", - "meta.Consumption.Yes": "是", - "meta.Consumption.OwnersExtra": "消费责任人,可查看、修改消费信息", + "meta.Consume.ConsumerGroupName": "消费组名称", + "meta.Consume.ConsumerGroupNameRules": "只能包含小写字母、数字、中划线、下划线", + "meta.Consume.TopicName": "Topic名称", + "meta.Consume.MQType": "MQ类型", + "meta.Consume.TargetInlongGroupID": "所属的数据流组ID", + "meta.Consume.TargetInlongStreamID": "所属的数据流ID", + "meta.Consume.MQAddress": "消息队列地址", + "meta.Consume.FilterEnabled": "是否过滤消费", + "meta.Consume.Yes": "是", + "meta.Consume.No": "否", + "meta.Consume.Owner": "消费责任人", + "meta.Consume.OwnersExtra": "可查看、修改消费信息", "meta.Nodes.Name": "节点名称", "meta.Nodes.Type": "类型", "meta.Nodes.Owners": "责任人", @@ -395,7 +394,7 @@ "pages.Approvals.Approver": "审批人", "pages.Approvals.Applicant": "申请人", "pages.Approvals.ProcessID": "流程单ID", - "pages.Approvals.GroupId": "Group ID", + "pages.Approvals.GroupId": "数据流组ID", "pages.Approvals.MyApplication": "我的申请", "pages.Approvals.MyApproval": "我的审批", "pages.ConsumeCreate.ConsumerInformation": "消费信息", @@ -411,8 +410,8 @@ "pages.ConsumeDashboard.config.Total": "消费总数", "pages.ConsumeDashboard.config.Pending": "待审批", "pages.ConsumeDashboard.config.ConsumerGroup": "消费组", - "pages.ConsumeDashboard.config.ConsumptionInlongGroupId": "消费的Group ID", - "pages.ConsumeDashboard.config.RecentConsumptionTime": "最近消费时间", + "pages.ConsumeDashboard.config.ConsumeInlongGroupId": "数据流组ID", + "pages.ConsumeDashboard.config.RecentConsumeTime": "最近消费时间", "pages.ConsumeDashboard.config.Middleware": "消息队列", "pages.ConsumeDashboard.status.Normal": "正常", "pages.ConsumeDashboard.status.Abnormal": "异常", @@ -421,8 +420,7 @@ "pages.ConsumeDashboard.status.Passed": "已通过", "pages.ConsumeDashboard.status.Cancelled": "已取消", "pages.ConsumeDashboard.NewConsume": "新建消费", - "pages.ConsumeDetail.Info.config.ConsumerGroupID": "消费组ID", - "pages.ConsumeDetail.ConsumptionDetails": "消费详情", + "pages.ConsumeDetail.ConsumeDetails": "消费详情", "pages.Clusters.Type": "类型", "pages.Clusters.TypeAll": "全部", "pages.Clusters.Create": "新建集群", diff --git a/inlong-dashboard/src/locales/en.json b/inlong-dashboard/src/locales/en.json index 452dfd354..691e8f98d 100644 --- a/inlong-dashboard/src/locales/en.json +++ b/inlong-dashboard/src/locales/en.json @@ -192,20 +192,13 @@ "meta.Sinks.HBase.IsMetaField": "IsMetaField", "meta.Sinks.HBase.FieldFormat": "FieldFormat", "meta.Sinks.HBase.FieldDescription": "FieldDescription", - "meta.Group.Stripe/Second": "Stripe / S", - "meta.Group.MessageMiddleware": "Middleware", - "meta.Group.AccessSize": "Access Size", - "meta.Group.GB/Day": "GB / Day", - "meta.Group.BusinessIntroduction": "Description", - "meta.Group.BusinessOwners": "Group Owners", - "meta.Group.SingleStripMaximumLength": "Single Max Length", - "meta.Group.thousand/day": "Ten Thousand / day", - "meta.Group.AccessPeakPerSecond": "PeakRecords", - "meta.Group.InlongGroupId": "Group ID", + "meta.Group.InlongGroupId": "Inlong Group ID", "meta.Group.InlongGroupIdRules": "Only lowercase letters, numbers, minus, and underscores", - "meta.Group.InlongGroupName": "Group Name", - "meta.Group.NumberOfAccess": "Number of Access", - "meta.Group.BusinessOwnersExtra": "Group in charges, they can view, modify Group information", + "meta.Group.InlongGroupName": "Inlong Group Name", + "meta.Group.InlongGroupOwners": "Inlong Group Owners", + "meta.Group.InlongGroupOwnersExtra": "Can view, modify group info", + "meta.Group.InlongGroupIntroduction": "Description", + "meta.Group.MQType": "MQ Type", "meta.Group.QueueModule": "Queue Module", "meta.Group.Parallel": "Parallel", "meta.Group.Serial": "Serial", @@ -219,8 +212,13 @@ "meta.Group.RetentionTimeExtra": "The save time of the message in the ack state, the message will be deleted when this value is exceeded (up to 14 days)", "meta.Group.TtlExtra": "The time-to-live time of the message, messages exceeding this value will be marked as ack (retained for up to 14 days)", "meta.Group.RetentionSizeExtra": "Message capacity in ack state, messages exceeding this value will be deleted (-1 means never delete)", - "meta.Group.DataCopyTitle": "Data copy information", - "meta.Group.DataStoragePeriodTitle": "Data storage period information", + "meta.Group.NumberOfAccess": "Number of Access", + "meta.Group.TenThousand/Day": "Ten Thousand / Day", + "meta.Group.AccessSize": "Access Size", + "meta.Group.GB/Day": "GB / Day", + "meta.Group.AccessPeakPerSecond": "PeakRecords", + "meta.Group.Stripe/Second": "Stripe / Second", + "meta.Group.SingleStripMaximumLength": "Single Max Length", "meta.Group.Status.Approved": "Approved", "meta.Group.Status.Draft": "Draft", "meta.Group.Status.Cancel": "Cancel", @@ -253,17 +251,18 @@ "meta.Stream.Status.Pending": "Pending", "meta.Stream.Status.Error": "Error", "meta.Stream.Status.Success": "Success", - "meta.Consumption.Owner": "Owner", - "meta.Consumption.ConsumerGroupName": "Consumer Group Name", - "meta.Consumption.ConsumerGroupNameRules": "Only lowercase letters, numbers, minus, and underscores", - "meta.Consumption.DataStreamIDsHelp": "Inlong stream IDs are divided by commas;", - "meta.Consumption.ConsumerDataStreamID": "Consumer Stream ID", - "meta.Consumption.ConsumerTargetBusinessID": "Consumer Group ID", - "meta.Consumption.No": "No", - "meta.Consumption.filterEnabled": "FilterEnabled", - "meta.Consumption.MasterAddress": "Master address", - "meta.Consumption.Yes": "Yes", - "meta.Consumption.OwnersExtra": "Consumption in charges, they can view, modify consumption information", + "meta.Consume.ConsumerGroupName": "Consumer Group Name", + "meta.Consume.TopicName": "Topic Name", + "meta.Consume.MQType": "MQ Type", + "meta.Consume.ConsumerGroupNameRules": "Only lowercase letters, numbers, minus, and underscores", + "meta.Consume.TargetInlongGroupID": "Target Inlong Group ID", + "meta.Consume.TargetInlongStreamID": "Target Inlong Stream ID", + "meta.Consume.MQAddress": "MQ Address", + "meta.Consume.FilterEnabled": "Filter Enabled", + "meta.Consume.Yes": "Yes", + "meta.Consume.No": "No", + "meta.Consume.Owner": "Consume Owners", + "meta.Consume.OwnersExtra": "Can view, modify consume info", "meta.Nodes.Name": "Name", "meta.Nodes.Type": "Type", "meta.Nodes.Owners": "Owners", @@ -395,7 +394,7 @@ "pages.Approvals.Approver": "Approver", "pages.Approvals.Applicant": "Applicant", "pages.Approvals.ProcessID": "Process ID", - "pages.Approvals.GroupId": "Group ID", + "pages.Approvals.GroupId": "Inlong Group ID", "pages.Approvals.MyApplication": "My Application", "pages.Approvals.MyApproval": "My Approval", "pages.ConsumeCreate.ConsumerInformation": "Consumer information", @@ -411,8 +410,8 @@ "pages.ConsumeDashboard.config.Total": "Total", "pages.ConsumeDashboard.config.Pending": "Pending", "pages.ConsumeDashboard.config.ConsumerGroup": "ConsumerGroup", - "pages.ConsumeDashboard.config.ConsumptionInlongGroupId": "Consumption inlong group id", - "pages.ConsumeDashboard.config.RecentConsumptionTime": "Last consumption time", + "pages.ConsumeDashboard.config.ConsumeInlongGroupId": "Target Inlong Group ID", + "pages.ConsumeDashboard.config.RecentConsumeTime": "Recent consume time", "pages.ConsumeDashboard.config.Middleware": "Message Queue", "pages.ConsumeDashboard.status.Normal": "Normal", "pages.ConsumeDashboard.status.Abnormal": "Abnormal", @@ -422,7 +421,7 @@ "pages.ConsumeDashboard.status.Cancelled": "Cancelled", "pages.ConsumeDashboard.NewConsume": "Create", "pages.ConsumeDetail.Info.config.ConsumerGroupID": "Consumer group ID", - "pages.ConsumeDetail.ConsumptionDetails": "Consumption Detail", + "pages.ConsumeDetail.ConsumeDetails": "Consume Detail", "pages.Clusters.Type": "Type", "pages.Clusters.TypeAll": "All", "pages.Clusters.Create": "Create", diff --git a/inlong-dashboard/src/metas/consumption/extends/index.tsx b/inlong-dashboard/src/metas/consume/extends/index.tsx similarity index 89% rename from inlong-dashboard/src/metas/consumption/extends/index.tsx rename to inlong-dashboard/src/metas/consume/extends/index.tsx index 9c5af7f5f..8a7c0bd8e 100644 --- a/inlong-dashboard/src/metas/consumption/extends/index.tsx +++ b/inlong-dashboard/src/metas/consume/extends/index.tsx @@ -19,6 +19,6 @@ import type { FieldItemType } from '@/metas/common'; -export const consumptionExtends: FieldItemType[] = [ - // You can extended consumption fields here... +export const consumeExtends: FieldItemType[] = [ + // You can extended consume fields here... ]; diff --git a/inlong-dashboard/src/metas/consumption/index.tsx b/inlong-dashboard/src/metas/consume/index.tsx similarity index 73% rename from inlong-dashboard/src/metas/consumption/index.tsx rename to inlong-dashboard/src/metas/consume/index.tsx index c5037cce9..32ef3be34 100644 --- a/inlong-dashboard/src/metas/consumption/index.tsx +++ b/inlong-dashboard/src/metas/consume/index.tsx @@ -29,38 +29,34 @@ import { genStatusTag, genLastConsumerStatusTag, } from './status'; -import { consumptionExtends } from './extends'; +import { consumeExtends } from './extends'; -const consumptionDefault: FieldItemType[] = [ +const consumeDefault: FieldItemType[] = [ { type: 'input', - label: i18n.t('meta.Consumption.ConsumerGroupName'), + label: i18n.t('meta.Consume.ConsumerGroupName'), name: 'consumerGroup', - extra: i18n.t('meta.Consumption.ConsumerGroupNameRules'), + extra: i18n.t('meta.Consume.ConsumerGroupNameRules'), rules: [ { required: true }, { - pattern: /^[0-9a-z_\d]+$/, - message: i18n.t('meta.Consumption.ConsumerGroupNameRules'), + pattern: /^[0-9a-z_-]+$/, + message: i18n.t('meta.Consume.ConsumerGroupNameRules'), }, ], _renderTable: true, }, { type: <UserSelect mode="multiple" currentUserClosable={false} />, - label: i18n.t('meta.Consumption.Owner'), + label: i18n.t('meta.Consume.Owner'), name: 'inCharges', - extra: i18n.t('meta.Consumption.OwnersExtra'), - rules: [ - { - required: true, - }, - ], + extra: i18n.t('meta.Consume.OwnersExtra'), + rules: [{ required: true }], _renderTable: true, }, { type: 'select', - label: i18n.t('meta.Consumption.ConsumerTargetBusinessID'), + label: i18n.t('meta.Consume.TargetInlongGroupID'), name: 'inlongGroupId', extraNames: ['mqType'], rules: [{ required: true }], @@ -95,9 +91,16 @@ const consumptionDefault: FieldItemType[] = [ }, _renderTable: true, }, + { + type: 'text', + label: i18n.t('meta.Consume.MQType'), + name: 'mqType', + visible: false, + _renderTable: true, + }, { type: 'select', - label: 'Topic', + label: i18n.t('meta.Consume.TopicName'), name: 'topic', rules: [{ required: true }], props: values => ({ @@ -131,13 +134,6 @@ const consumptionDefault: FieldItemType[] = [ visible: values => !!values.inlongGroupId, _renderTable: true, }, - { - type: 'text', - label: 'MQ Type', - name: 'mqType', - visible: false, - _renderTable: true, - }, { type: 'select', label: i18n.t('basic.Status'), @@ -154,8 +150,8 @@ const consumptionDefault: FieldItemType[] = [ }, { type: 'input', - label: i18n.t('pages.ConsumeDashboard.config.RecentConsumptionTime'), - name: 'lastConsumptionTime', + label: i18n.t('pages.ConsumeDashboard.config.RecentConsumeTime'), + name: 'lastConsumeTime', visible: false, _renderTable: { render: text => text && timestampFormat(text), @@ -164,7 +160,7 @@ const consumptionDefault: FieldItemType[] = [ { type: 'select', label: i18n.t('pages.ConsumeDashboard.config.OperatingStatus'), - name: 'lastConsumptionStatus', + name: 'lastConsumeStatus', props: { allowClear: true, dropdownMatchSelectWidth: false, @@ -177,17 +173,17 @@ const consumptionDefault: FieldItemType[] = [ }, { type: 'radio', - label: i18n.t('meta.Consumption.filterEnabled'), + label: i18n.t('meta.Consume.FilterEnabled'), name: 'filterEnabled', initialValue: 0, props: { options: [ { - label: i18n.t('meta.Consumption.Yes'), + label: i18n.t('meta.Consume.Yes'), value: 1, }, { - label: i18n.t('meta.Consumption.No'), + label: i18n.t('meta.Consume.No'), value: 0, }, ], @@ -197,31 +193,30 @@ const consumptionDefault: FieldItemType[] = [ }, { type: 'input', - label: i18n.t('meta.Consumption.ConsumerDataStreamID'), + label: i18n.t('meta.Consume.TargetInlongStreamID'), name: 'inlongStreamId', - extra: i18n.t('meta.Consumption.DataStreamIDsHelp'), rules: [{ required: true }], - visible: values => values.mqType === 'PULSAR' || values.filterEnabled, + visible: values => values.filterEnabled, }, { type: 'text', - label: i18n.t('meta.Consumption.MasterAddress'), + label: i18n.t('meta.Consume.MQAddress'), name: 'masterUrl', }, { type: 'radio', label: 'isDlq', - name: 'mqExtInfo.isDlq', + name: 'isDlq', initialValue: 0, rules: [{ required: true }], props: { options: [ { - label: i18n.t('meta.Consumption.Yes'), + label: i18n.t('meta.Consume.Yes'), value: 1, }, { - label: i18n.t('meta.Consumption.No'), + label: i18n.t('meta.Consume.No'), value: 0, }, ], @@ -231,42 +226,41 @@ const consumptionDefault: FieldItemType[] = [ { type: 'input', label: 'deadLetterTopic', - name: 'mqExtInfo.deadLetterTopic', + name: 'deadLetterTopic', rules: [{ required: true }], - visible: values => values.mqExtInfo?.isDlq && values.mqType === 'PULSAR', + visible: values => values?.isDlq && values.mqType === 'PULSAR', }, { type: 'radio', label: 'isRlq', - name: 'mqExtInfo.isRlq', + name: 'isRlq', initialValue: 0, rules: [{ required: true }], props: { options: [ { - label: i18n.t('meta.Consumption.Yes'), + label: i18n.t('meta.Consume.Yes'), value: 1, }, { - label: i18n.t('meta.Consumption.No'), + label: i18n.t('meta.Consume.No'), value: 0, }, ], }, - visible: values => values.mqExtInfo?.isDlq && values.mqType === 'PULSAR', + visible: values => values?.isDlq && values.mqType === 'PULSAR', }, { type: 'input', label: 'retryLetterTopic', - name: 'mqExtInfo.retryLetterTopic', + name: 'retryLetterTopic', rules: [{ required: true }], - visible: values => - values.mqExtInfo?.isDlq && values.mqExtInfo?.isRlq && values.mqType === 'PULSAR', + visible: values => values?.isDlq && values?.isRlq && values.mqType === 'PULSAR', }, ]; -export const consumption = genFields(consumptionDefault, consumptionExtends); +export const consume = genFields(consumeDefault, consumeExtends); -export const consumptionForm = genForm(consumption); +export const consumeForm = genForm(consume); -export const consumptionTable = genTable(consumption); +export const consumeTable = genTable(consume); diff --git a/inlong-dashboard/src/metas/consumption/status.tsx b/inlong-dashboard/src/metas/consume/status.tsx similarity index 100% rename from inlong-dashboard/src/metas/consumption/status.tsx rename to inlong-dashboard/src/metas/consume/status.tsx diff --git a/inlong-dashboard/src/metas/group/index.tsx b/inlong-dashboard/src/metas/group/index.tsx index 3a907bd17..1ec6cd1e4 100644 --- a/inlong-dashboard/src/metas/group/index.tsx +++ b/inlong-dashboard/src/metas/group/index.tsx @@ -50,26 +50,21 @@ const groupDefault: FieldItemType[] = [ maxLength: 32, }, }, - { - type: 'text', - label: 'MQ Resource', - name: 'mqResource', - }, { type: <UserSelect mode="multiple" currentUserClosable={false} />, - label: i18n.t('meta.Group.BusinessOwners'), + label: i18n.t('meta.Group.InlongGroupOwners'), name: 'inCharges', rules: [ { required: true, }, ], - extra: i18n.t('meta.Group.BusinessOwnersExtra'), + extra: i18n.t('meta.Group.InlongGroupOwnersExtra'), _renderTable: true, }, { type: 'textarea', - label: i18n.t('meta.Group.BusinessIntroduction'), + label: i18n.t('meta.Group.InlongGroupIntroduction'), name: 'description', props: { showCount: true, @@ -78,7 +73,7 @@ const groupDefault: FieldItemType[] = [ }, { type: 'radio', - label: i18n.t('meta.Group.MessageMiddleware'), + label: i18n.t('meta.Group.MQType'), name: 'mqType', initialValue: 'TUBEMQ', rules: [{ required: true }], @@ -96,6 +91,11 @@ const groupDefault: FieldItemType[] = [ }, _renderTable: true, }, + { + type: 'text', + label: 'MQ Resource', + name: 'mqResource', + }, { type: 'input', label: i18n.t('basic.CreateTime'), @@ -155,7 +155,7 @@ const groupDefault: FieldItemType[] = [ label: i18n.t('meta.Group.NumberOfAccess'), name: 'dailyRecords', rules: [{ required: true }], - suffix: i18n.t('meta.Group.thousand/day'), + suffix: i18n.t('meta.Group.TenThousand/Day'), props: { min: 1, precision: 0, diff --git a/inlong-dashboard/src/pages/ConsumeDashboard/config.tsx b/inlong-dashboard/src/pages/ConsumeDashboard/config.tsx index 4e74b0bd4..48b9a2df6 100644 --- a/inlong-dashboard/src/pages/ConsumeDashboard/config.tsx +++ b/inlong-dashboard/src/pages/ConsumeDashboard/config.tsx @@ -22,7 +22,7 @@ import { Button } from 'antd'; import { Link } from 'react-router-dom'; import i18n from '@/i18n'; import { DashTotal, DashToBeAssigned, DashPending, DashRejected } from '@/components/Icons'; -import { consumptionForm, consumptionTable } from '@/metas/consumption'; +import { consumeForm, consumeTable } from '@/metas/consume'; import { pickObjectArray } from '@/utils'; export const dashCardList = [ @@ -59,7 +59,7 @@ export const getFilterFormContent = defaultValues => }, }, ].concat( - pickObjectArray(['status', 'lastConsumptionStatus'], consumptionForm).map(item => ({ + pickObjectArray(['status', 'lastConsumeStatus'], consumeForm).map(item => ({ ...item, visible: true, initialValue: defaultValues[item.name], @@ -67,11 +67,11 @@ export const getFilterFormContent = defaultValues => ); export const getColumns = ({ onDelete }) => { - const genCreateUrl = record => `/consume/create?id=${record.id}`; + const genCreateUrl = record => `/consume/create/${record.id}`; const genDetailUrl = record => - record.status === 10 ? genCreateUrl(record) : `/consume/detail/${record.id}`; + [0, 10].includes(record.status) ? genCreateUrl(record) : `/consume/detail/${record.id}`; - return consumptionTable + return consumeTable .map(item => { if (item.dataIndex === 'consumerGroup') { return { ...item, render: (text, record) => <Link to={genDetailUrl(record)}>{text}</Link> }; diff --git a/inlong-dashboard/src/pages/ConsumeDashboard/index.tsx b/inlong-dashboard/src/pages/ConsumeDashboard/index.tsx index 542659c09..6c25382e2 100644 --- a/inlong-dashboard/src/pages/ConsumeDashboard/index.tsx +++ b/inlong-dashboard/src/pages/ConsumeDashboard/index.tsx @@ -39,7 +39,7 @@ const Comp: React.FC = () => { }); const { data: summary = {} } = useRequest({ - url: '/consumption/summary', + url: '/consume/countStatus', }); const { @@ -48,7 +48,7 @@ const Comp: React.FC = () => { run: getList, } = useRequest( { - url: '/consumption/list', + url: '/consume/list', params: options, }, { @@ -61,7 +61,7 @@ const Comp: React.FC = () => { title: t('basic.DeleteConfirm'), onOk: async () => { await request({ - url: `/consumption/delete/${id}`, + url: `/consume/delete/${id}`, method: 'DELETE', }); await getList(); diff --git a/inlong-dashboard/src/pages/ConsumeDetail/Info/config.tsx b/inlong-dashboard/src/pages/ConsumeDetail/Info/config.tsx index 1b5fdf827..157d81313 100644 --- a/inlong-dashboard/src/pages/ConsumeDetail/Info/config.tsx +++ b/inlong-dashboard/src/pages/ConsumeDetail/Info/config.tsx @@ -17,12 +17,12 @@ * under the License. */ -import { consumptionForm } from '@/metas/consumption'; +import { consumeForm } from '@/metas/consume'; import { excludeObjectArray } from '@/utils'; export const getFormContent = ({ editing, isCreate }) => { const excludeKeys = isCreate ? ['masterUrl'] : []; - const fields = excludeObjectArray(excludeKeys, consumptionForm); + const fields = excludeObjectArray(excludeKeys, consumeForm); return isCreate ? fields @@ -43,13 +43,7 @@ export const getFormContent = ({ editing, isCreate }) => { function transType(editing: boolean, conf) { const arr = [ { - name: [ - 'inCharges', - 'mqExtInfo.isDlq', - 'mqExtInfo.deadLetterTopic', - 'mqExtInfo.isRlq', - 'mqExtInfo.retryLetterTopic', - ], + name: ['isDlq', 'deadLetterTopic', 'isRlq', 'retryLetterTopic'], as: 'text', active: !editing, }, diff --git a/inlong-dashboard/src/pages/ConsumeDetail/Info/index.tsx b/inlong-dashboard/src/pages/ConsumeDetail/Info/index.tsx index 77ead049d..c8279f040 100644 --- a/inlong-dashboard/src/pages/ConsumeDetail/Info/index.tsx +++ b/inlong-dashboard/src/pages/ConsumeDetail/Info/index.tsx @@ -17,10 +17,10 @@ * under the License. */ -import React, { useMemo, useImperativeHandle, forwardRef } from 'react'; -import { Button, Space, message } from 'antd'; +import React, { forwardRef, useImperativeHandle, useMemo } from 'react'; +import { Button, message, Space } from 'antd'; import FormGenerator, { useForm } from '@/components/FormGenerator'; -import { useRequest, useBoolean } from '@/hooks'; +import { useBoolean, useRequest } from '@/hooks'; import request from '@/utils/request'; import { useTranslation } from 'react-i18next'; import { CommonInterface } from '../common'; @@ -38,22 +38,17 @@ const Comp = ({ id, readonly, isCreate }: Props, ref) => { return !!id; }, [id]); - const { data, run: getDetail } = useRequest( - { - url: `/consumption/get/${id}`, + const { data, run: getDetail } = useRequest(`/consume/get/${id}`, { + ready: isUpdate, + refreshDeps: [id], + formatResult: result => ({ + ...result, + inCharges: result.inCharges?.split(',') || [], + }), + onSuccess: data => { + form.setFieldsValue(data); }, - { - ready: !!id, - refreshDeps: [id], - formatResult: result => ({ - ...result, - inCharges: result.inCharges?.split(',') || [], - }), - onSuccess: data => { - form.setFieldsValue(data); - }, - }, - ); + }); const onOk = async () => { const values = await form.validateFields(); @@ -61,20 +56,18 @@ const Comp = ({ id, readonly, isCreate }: Props, ref) => { ...values, inCharges: values.inCharges.join(','), consumerGroup: values.consumerGroup || data?.consumerGroup, - topic: Array.isArray(values.topic) ? values.topic.join(',') : values.topic, - version: data?.version, - mqExtInfo: { - ...values.mqExtInfo, - mqType: values.mqType, - }, }; - const result = await request({ - url: isUpdate ? `/consumption/update/${id}` : '/consumption/save', + if (isUpdate) { + submitData.id = data?.id; + submitData.version = data?.version; + } + + return await request({ + url: isUpdate ? `/consume/update` : '/consume/save', method: 'POST', data: submitData, }); - return result; }; useImperativeHandle(ref, () => ({ diff --git a/inlong-dashboard/src/pages/ConsumeDetail/index.tsx b/inlong-dashboard/src/pages/ConsumeDetail/index.tsx index a03be3943..6eb736ef8 100644 --- a/inlong-dashboard/src/pages/ConsumeDetail/index.tsx +++ b/inlong-dashboard/src/pages/ConsumeDetail/index.tsx @@ -17,7 +17,7 @@ * under the License. */ -import React, { useState, useMemo, useRef } from 'react'; +import React, { useState, useMemo, useRef, useEffect } from 'react'; import { Tabs, Button, Card, message, Steps, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { parse } from 'qs'; @@ -41,7 +41,11 @@ const Comp: React.FC = () => { const childRef = useRef(null); const [isCreate] = useState(location.pathname.indexOf('/consume/create') === 0); - const { data } = useRequest(`/consumption/get/${id}`, { + useEffect(() => { + if (!hasOpened(current)) addOpened(current); + }, [current, addOpened, hasOpened]); + + const { data } = useRequest(`/consume/get/${id}`, { ready: !!id, refreshDeps: [id], }); @@ -51,7 +55,7 @@ const Comp: React.FC = () => { const list = useMemo( () => [ { - label: t('pages.ConsumeDetail.ConsumptionDetails'), + label: t('pages.ConsumeDetail.ConsumeDetails'), value: 'consumeDetail', content: Info, }, @@ -79,7 +83,7 @@ const Comp: React.FC = () => { const onSubmit = async _id => { await request({ - url: `/consumption/startProcess/${_id}`, + url: `/consume/startProcess/${_id}`, method: 'POST', data, }); @@ -129,7 +133,7 @@ const Comp: React.FC = () => { { name: isCreate ? t('pages.ConsumeCreate.NewConsume') - : `${t('pages.ConsumeDetail.ConsumptionDetails')}${data?.id}`, + : `${t('pages.ConsumeDetail.ConsumeDetails')}${data?.id}`, }, ]} useDefaultContainer={!isCreate} diff --git a/inlong-dashboard/src/pages/GroupDetail/index.tsx b/inlong-dashboard/src/pages/GroupDetail/index.tsx index 7e0223515..a855963c8 100644 --- a/inlong-dashboard/src/pages/GroupDetail/index.tsx +++ b/inlong-dashboard/src/pages/GroupDetail/index.tsx @@ -42,7 +42,6 @@ const Comp: React.FC = () => { const [, { add: addOpened, has: hasOpened }] = useSet([current]); const [confirmLoading, setConfirmLoading] = useState(false); const [id, setId] = useState(groupId || ''); - const childRef = useRef(null); const [mqType, setMqType] = useState(); @@ -95,7 +94,6 @@ const Comp: React.FC = () => { const onOk = async current => { const onOk = childRef?.current?.onOk; - setConfirmLoading(true); try { const result = onOk && (await onOk()); diff --git a/inlong-dashboard/src/pages/ProcessDetail/Consume.tsx b/inlong-dashboard/src/pages/ProcessDetail/Consume.tsx index 8be291cbe..700d7f7ed 100644 --- a/inlong-dashboard/src/pages/ProcessDetail/Consume.tsx +++ b/inlong-dashboard/src/pages/ProcessDetail/Consume.tsx @@ -17,7 +17,7 @@ * under the License. */ -import React, { useEffect, forwardRef, useImperativeHandle } from 'react'; +import React, { forwardRef, useEffect, useImperativeHandle } from 'react'; import FormGenerator, { useForm } from '@/components/FormGenerator'; import { CommonInterface } from './common'; import { getFormContent } from './ConsumeConfig'; @@ -31,12 +31,12 @@ const Comp = ( const [form] = useForm(); useEffect(() => { - const consumptionInfo = defaultData?.processInfo?.formData?.consumptionInfo; - const consumptionApproveInfo = defaultData?.currentTask?.formData?.consumptionApproveInfo; - if (consumptionInfo || consumptionApproveInfo) { + const consumeInfo = defaultData?.processInfo?.formData?.consumeInfo; + const consumeApproveInfo = defaultData?.currentTask?.formData?.consumeApproveInfo; + if (consumeInfo || consumeApproveInfo) { const obj = { - ...consumptionInfo, - ...consumptionApproveInfo, + ...consumeInfo, + ...consumeApproveInfo, }; form.setFieldsValue(obj); } @@ -44,11 +44,9 @@ const Comp = ( const onOk = async (useValidate = true) => { if (!useValidate) { - const values = await form.getFieldsValue(); - return values; + return await form.getFieldsValue(); } - const values = await form.validateFields(); - return values; + return await form.validateFields(); }; useImperativeHandle(ref, () => ({ diff --git a/inlong-dashboard/src/pages/ProcessDetail/ConsumeConfig.tsx b/inlong-dashboard/src/pages/ProcessDetail/ConsumeConfig.tsx index 54bec7652..ce5b71ee8 100644 --- a/inlong-dashboard/src/pages/ProcessDetail/ConsumeConfig.tsx +++ b/inlong-dashboard/src/pages/ProcessDetail/ConsumeConfig.tsx @@ -20,10 +20,10 @@ import React from 'react'; import { Divider } from 'antd'; import i18n from '@/i18n'; -import { consumptionForm } from '@/metas/consumption'; +import { consumeForm } from '@/metas/consume'; const getContent = () => { - return consumptionForm.map(item => { + return consumeForm.map(item => { const obj = { ...item }; if (typeof obj.suffix !== 'string') { delete obj.suffix; @@ -64,7 +64,7 @@ export const getFormContent = ( type: 'input', label: i18n.t('pages.ApprovalDetail.ConsumeConfig.ConsumerGroup'), name: ['form', 'consumerGroup'], - initialValue: formData.consumptionInfo?.consumerGroup, + initialValue: formData.consumeInfo?.consumerGroup, rules: [{ required: true }], props: { disabled: isFinished, diff --git a/inlong-dashboard/src/pages/ProcessDetail/index.tsx b/inlong-dashboard/src/pages/ProcessDetail/index.tsx index 7e6b91638..64b86667a 100644 --- a/inlong-dashboard/src/pages/ProcessDetail/index.tsx +++ b/inlong-dashboard/src/pages/ProcessDetail/index.tsx @@ -175,7 +175,7 @@ const Comp: React.FC = () => { const Form = useMemo(() => { return { APPLY_GROUP_PROCESS: Access, - APPLY_CONSUMPTION_PROCESS: Consume, + APPLY_CONSUME_PROCESS: Consume, }[processInfo?.name]; }, [processInfo]);