Skip to content

Commit 009ffeb

Browse files
authored
修复一些前端问题 (#1192)
请不要在没有先创建Issue的情况下创建Pull Request。 ## 变更的目的是什么 XXXXX ## 简短的更新日志 - [Bugfix]优化系统管理子应用无法正常启动(#1167) - [Optimize]security下的users、acls接入进权限管理(#1089) - [BugFix]修复Topic消息展示,offset为0不显示问题(#996) - [Optimize]Connect操作接入权限管理,所有用户都可以重启、编辑、删除(#1050) - [Optimize]权限新增ACL,自定义权限配置,资源TransactionalId优化(#1160) - [Optimize]Connect-JSON模式下的JSON格式和官方API的格式不一致(#1048) - [Optimize]登录页面star数量变更 - [Optimize]Connect样式优化 ## 验证这一变化 XXXX 请遵循此清单,以帮助我们快速轻松地整合您的贡献: * [ ] 一个 PR(Pull Request的简写)只解决一个问题,禁止一个 PR 解决多个问题; * [ ] 确保 PR 有对应的 Issue(通常在您开始处理之前创建),除非是书写错误之类的琐碎更改不需要 Issue ; * [ ] 格式化 PR 及 Commit-Log 的标题及内容,例如 #861 。PS:Commit-Log 需要在 Git Commit 代码时进行填写,在 GitHub 上修改不了; * [ ] 编写足够详细的 PR 描述,以了解 PR 的作用、方式和原因; * [ ] 编写必要的单元测试来验证您的逻辑更正。如果提交了新功能或重大更改,请记住在 test 模块中添加 integration-test; * [ ] 确保编译通过,集成测试通过;
2 parents af82c2e + e8e0581 commit 009ffeb

File tree

13 files changed

+173
-106
lines changed

13 files changed

+173
-106
lines changed

km-console/packages/config-manager-fe/config/webpack.common.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ const babelOptions = {
1616
cacheDirectory: true,
1717
babelrc: false,
1818
presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-typescript'), require.resolve('@babel/preset-react')],
19+
overrides: [
20+
// TODO:编译时需要做的事情更多,应该只针对目标第三方库
21+
{
22+
include: './node_modules',
23+
sourceType: 'unambiguous'
24+
}
25+
],
1926
plugins: [
2027
[require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }],
2128
[require.resolve('@babel/plugin-proposal-class-properties'), { loose: true }],

km-console/packages/layout-clusters-fe/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
"optimize-css-assets-webpack-plugin": "^5.0.1",
109109
"prettier": "2.3.2",
110110
"progress-bar-webpack-plugin": "^1.12.1",
111+
"pubsub-js": "^1.9.4",
111112
"query-string": "^7.0.1",
112113
"react-refresh": "^0.10.0",
113114
"react-router-dom": "5.2.1",

km-console/packages/layout-clusters-fe/src/components/CardBar/ConnectDetailCard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const ConnectDetailCard = (props: { record: any }) => {
4949
return (
5050
<>
5151
{
52-
<span style={{ fontFamily: 'HelveticaNeue-Medium', fontSize: 32, color: '#212529' }}>
52+
<span style={{ fontFamily: 'HelveticaNeue-Medium', fontSize: 28, color: '#212529' }}>
5353
{Utils.firstCharUppercase(type) || '-'}
5454
</span>
5555
}
@@ -64,7 +64,7 @@ const ConnectDetailCard = (props: { record: any }) => {
6464
return (
6565
<>
6666
{
67-
<span style={{ fontFamily: 'HelveticaNeue-Medium', fontSize: 32, color: stateEnum[state].color }}>
67+
<span style={{ fontFamily: 'HelveticaNeue-Medium', fontSize: 28, color: stateEnum[state].color }}>
6868
{Utils.firstCharUppercase(state) || '-'}
6969
</span>
7070
}

km-console/packages/layout-clusters-fe/src/pages/CommonConfig.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ export enum ClustersPermissionMap {
4848
CONNECTOR_DELETE = 'Connector-删除',
4949
CONNECTOR_RESTART = 'Connector-重启',
5050
CONNECTOR_STOP_RESUME = 'Connector-暂停&恢复',
51+
// Security
52+
SECURITY_ACL_ADD = 'Security-ACL新增',
53+
SECURITY_ACL_DELETE = 'Security-ACL删除',
54+
SECURITY_USER_ADD = 'Security-User新增',
55+
SECURITY_USER_DELETE = 'Security-User删除',
56+
SECURITY_USER_EDIT_PASSWORD = 'Security-User修改密码',
5157
}
5258

5359
export interface PermissionNode {
@@ -98,9 +104,7 @@ const CommonConfig = () => {
98104
clustersPermissions.childList.forEach((node: PermissionNode) => node.has && userPermissions.push(node.permissionName));
99105

100106
// 获取用户在系统管理拥有的权限
101-
const configPermissions = userPermissionTree.find(
102-
(sys: PermissionNode) => sys.permissionName === ClustersPermissionMap.SYS_MANAGE
103-
);
107+
const configPermissions = userPermissionTree.find((sys: PermissionNode) => sys.permissionName === ClustersPermissionMap.SYS_MANAGE);
104108
configPermissions &&
105109
configPermissions.childList.forEach((node: PermissionNode) => node.has && userPermissions.push(node.permissionName));
106110

km-console/packages/layout-clusters-fe/src/pages/Connect/AddConnectorUseJSON.tsx

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import api from '@src/api';
22
import CodeMirrorFormItem from '@src/components/CodeMirrorFormItem';
33
import customMessage from '@src/components/Message';
4-
import { Button, Divider, Drawer, Form, message, Space, Utils } from 'knowdesign';
4+
import { Button, Divider, Drawer, Form, message, Space, Utils, Select } from 'knowdesign';
55
import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';
66
import { useParams } from 'react-router-dom';
77
import { ConnectCluster, ConnectorPlugin, ConnectorPluginConfig, OperateInfo } from './AddConnector';
88

99
const PLACEHOLDER = `配置格式如下
1010
1111
{
12-
"connectClusterName": "", // Connect Cluster 名称
12+
"name": "", // Connect Cluster 名称
1313
"config": { // 具体配置项
14-
"name": "",
1514
"connector.class": "",
1615
"tasks.max": 1,
1716
...
@@ -43,11 +42,16 @@ export default forwardRef((props: any, ref) => {
4342
const onOpen = (type: 'create' | 'edit', connectClusterName?: string, defaultConfigs?: { [key: string]: any }) => {
4443
if (defaultConfigs) {
4544
setDefaultConfigs({ ...defaultConfigs, connectClusterName });
45+
const connectorName = connectClusterName;
46+
const connectClusterId = connectClusters.find((cluster) => cluster.label === connectClusterName).value;
4647
form.setFieldsValue({
48+
connectClusterId,
49+
connectorName,
4750
configs: JSON.stringify(
4851
{
49-
connectClusterName,
50-
config: defaultConfigs,
52+
// connectClusterName,
53+
name: defaultConfigs.name,
54+
config: { ...defaultConfigs, name: undefined },
5155
},
5256
null,
5357
2
@@ -63,10 +67,11 @@ export default forwardRef((props: any, ref) => {
6367
form.validateFields().then(
6468
(data) => {
6569
const postData = JSON.parse(data.configs);
66-
postData.connectorName = postData.config.name;
67-
postData.connectClusterId = connectClusters.find((cluster) => cluster.label === postData.connectClusterName).value;
68-
delete postData.connectClusterName;
69-
70+
postData.connectorName = postData.name;
71+
postData.connectClusterId = data.connectClusterId;
72+
postData.config.name = postData.name;
73+
// delete postData.connectClusterName;
74+
delete postData.name;
7075
Object.entries(postData.config).forEach(([key, val]) => {
7176
if (val === null) {
7277
delete postData.config[key];
@@ -161,6 +166,26 @@ export default forwardRef((props: any, ref) => {
161166
}
162167
>
163168
<Form form={form} layout="vertical">
169+
<Form.Item
170+
name="connectClusterId"
171+
label="Connect 集群"
172+
rules={[
173+
{
174+
required: true,
175+
validator(rule, value) {
176+
if (!value) {
177+
return Promise.reject('Connect 集群不能为空');
178+
} else {
179+
return Promise.resolve();
180+
}
181+
},
182+
},
183+
]}
184+
initialValue={defaultConfigs?.connectClusterId}
185+
className="connector-json-connectCluster"
186+
>
187+
<Select options={connectClusters} placeholder="请选择 Connect 集群" disabled={type === 'edit'} />
188+
</Form.Item>
164189
<Form.Item
165190
name="configs"
166191
validateTrigger="onBlur"
@@ -175,40 +200,27 @@ export default forwardRef((props: any, ref) => {
175200
if (typeof v !== 'object') {
176201
return Promise.reject('输入内容必须为 JSON');
177202
}
178-
let connectClusterId = -1;
179-
// 校验 connectClusterName 字段
180-
if (!v.connectClusterName) {
181-
return Promise.reject('内容缺少 connectClusterName 字段或字段内容为空');
203+
let connectClusterId = form.getFieldValue('connectClusterId');
204+
// 校验 connectorName 字段
205+
if (!v.name) {
206+
return Promise.reject('内容缺少 name 项');
182207
} else {
183-
if (type === 'edit') {
184-
if (v.connectClusterName !== defaultConfigs.connectClusterName) {
185-
return Promise.reject('编辑模式下不允许修改 connectClusterName 字段');
186-
}
187-
} else {
188-
if (!connectClusters.length) {
189-
getConnectClusters();
190-
return Promise.reject('connectClusterName 列表获取失败,请重试');
191-
}
192-
const targetConnectCluster = connectClusters.find((cluster) => cluster.label === v.connectClusterName);
193-
if (!targetConnectCluster) {
194-
return Promise.reject('connectClusterName 不存在,请检查');
195-
} else {
196-
connectClusterId = targetConnectCluster.value;
197-
}
208+
if (type === 'edit' && v.name !== defaultConfigs.name) {
209+
return Promise.reject('编辑模式下不允许修改 name 字段');
198210
}
199211
}
200212

201213
if (!v.config || typeof v.config !== 'object') {
202214
return Promise.reject('内容缺少 config 字段或字段格式错误');
203215
} else {
204-
// 校验 connectorName 字段
205-
if (!v.config.name) {
206-
return Promise.reject('config 字段下缺少 name 项');
207-
} else {
208-
if (type === 'edit' && v.config.name !== defaultConfigs.name) {
209-
return Promise.reject('编辑模式下不允许修改 name 字段');
210-
}
211-
}
216+
// // 校验 connectorName 字段
217+
// if (!v.config.name) {
218+
// return Promise.reject('config 字段下缺少 name 项');
219+
// } else {
220+
// if (type === 'edit' && v.config.name !== defaultConfigs.name) {
221+
// return Promise.reject('编辑模式下不允许修改 name 字段');
222+
// }
223+
// }
212224
if (!v.config['connector.class']) {
213225
return Promise.reject('config 字段下缺少 connector.class 项');
214226
} else if (type === 'edit' && v.config['connector.class'] !== defaultConfigs['connector.class']) {
@@ -217,6 +229,10 @@ export default forwardRef((props: any, ref) => {
217229
}
218230

219231
if (type === 'create') {
232+
// 校验创建时是否选择了connect集群
233+
if (!connectClusterId) {
234+
return Promise.reject('请先选择 Connect 集群');
235+
}
220236
// 异步校验 connector 名称是否重复 以及 className 是否存在
221237
return Promise.all([
222238
Utils.request(api.isConnectorExist(connectClusterId, v.config.name)),

km-console/packages/layout-clusters-fe/src/pages/Connect/config.tsx

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ export const getWorkersColumns = (arg?: any) => {
315315

316316
// Detail
317317
export const getConnectorsDetailColumns = (arg?: any) => {
318+
const [global] = AppContainer.useGlobalValue();
318319
const columns = [
319320
{
320321
title: 'Task ID',
@@ -363,16 +364,20 @@ export const getConnectorsDetailColumns = (arg?: any) => {
363364
render: (_t: any, r: any) => {
364365
return (
365366
<div>
366-
<Popconfirm
367-
title="是否重试当前任务?"
368-
onConfirm={() => arg?.retryOption(r.taskId)}
369-
// onCancel={cancel}
370-
okText="是"
371-
cancelText="否"
372-
overlayClassName="connect-popconfirm"
373-
>
374-
<a>重试</a>
375-
</Popconfirm>
367+
{global.hasPermission(ClustersPermissionMap.CONNECTOR_RESTART) ? (
368+
<Popconfirm
369+
title="是否重试当前任务?"
370+
onConfirm={() => arg?.retryOption(r.taskId)}
371+
// onCancel={cancel}
372+
okText="是"
373+
cancelText="否"
374+
overlayClassName="connect-popconfirm"
375+
>
376+
<a>重试</a>
377+
</Popconfirm>
378+
) : (
379+
<></>
380+
)}
376381
</div>
377382
);
378383
},

km-console/packages/layout-clusters-fe/src/pages/Connect/index.less

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,10 @@
185185

186186
.operate-connector-drawer-use-json {
187187
.CodeMirror.cm-s-default {
188-
height: calc(100vh - 146px);
188+
height: calc(100vh - 196px);
189189
}
190190
.dcloud-form-item {
191+
margin-top: 16px;
191192
margin-bottom: 0 !important;
192193
}
193194
}

km-console/packages/layout-clusters-fe/src/pages/ConsumerGroup/ResetOffsetDrawer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useParams } from 'react-router-dom';
44
import EditTable from '../TestingProduce/component/EditTable';
55
import Api from '@src/api/index';
66
import moment from 'moment';
7-
import PubSub from 'pubsub-js'
7+
import PubSub from 'pubsub-js';
88

99
const CustomSelectResetTime = (props: { value?: string; onChange?: (val: Number | String) => void }) => {
1010
const { value, onChange } = props;

km-console/packages/layout-clusters-fe/src/pages/Login/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const carouselList = [
1313
<img className="carousel-eg-ctr-two-img img-one" src={egTwoContent} />
1414
<div className="carousel-eg-ctr-two-desc desc-one">
1515
<span>Github: </span>
16-
<span>5.8K</span>
16+
<span>6.8K</span>
1717
<span>+ Star的的实时流处理平台</span>
1818
</div>
1919
<div className="carousel-eg-ctr-two-desc desc-two">

km-console/packages/layout-clusters-fe/src/pages/MirrorMaker2/index.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185

186186
.operate-connector-drawer-use-json {
187187
.CodeMirror.cm-s-default {
188-
height: calc(100vh - 146px);
188+
height: calc(100vh - 196px);
189189
}
190190
.dcloud-form-item {
191191
margin-bottom: 0 !important;

0 commit comments

Comments
 (0)