Skip to content

Commit d02abb4

Browse files
committed
refactor-workspace
1 parent a64fead commit d02abb4

47 files changed

Lines changed: 1356 additions & 1326 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"ghostoy",
3434
"hljs",
3535
"iconfont",
36+
"indexs",
3637
"jdbc",
3738
"kingbase",
3839
"macos",

chat2db-client/src/blocks/CreateConnection/index.less

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
@import '../../styles/var.less';
22

33
.box {
4+
width: 100%;
5+
height: 100%;
6+
overflow-y: auto;
7+
}
8+
9+
.dataBaseListBox{
410
display: flex;
5-
align-items: center;
611
justify-content: center;
12+
align-items: center;
713
min-height: 100%;
814
}
915

@@ -86,13 +92,39 @@
8692
}
8793

8894
.createConnections {
95+
min-height: 100%;
96+
display: flex;
97+
justify-content: center;
98+
align-items: center;
8999
background-color: var(--color-bg);
90-
overflow-y: auto;
91100
transform: scale(0.2);
92101
transition: 0.1s ease-in-out;
93102
}
94103

95104
.showCreateConnections {
96105
transform: scale(1);
97106
transition: transform 0.3s ease-in-out;
98-
}
107+
}
108+
109+
.notPermission {
110+
display: flex;
111+
flex-direction: column;
112+
.notPermissionIconTips {
113+
color: var(--color-text-tertiary);
114+
text-align: center;
115+
width: 340px;
116+
}
117+
.notPermissionIconBox,
118+
.connectButtonBox {
119+
display: flex;
120+
justify-content: center;
121+
}
122+
.notPermissionIcon {
123+
font-size: 200px;
124+
color: var(--color-text-quaternary);
125+
margin: 20px 0px;
126+
}
127+
.connectButton {
128+
margin-top: 20px;
129+
}
130+
}
Lines changed: 59 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
1-
import React, { memo, useEffect, useRef, useState } from 'react';
1+
import React, { memo, useEffect, useState } from 'react';
22
import styles from './index.less';
33
import classnames from 'classnames';
44
import { IConnectionDetails, IDatabase } from '@/typings';
5-
import ConnectionEdit, { ICreateConnectionFunction } from '@/components/ConnectionEdit';
5+
import ConnectionEdit from '@/components/ConnectionEdit';
66
import { databaseTypeList } from '@/constants';
77
import Iconfont from '@/components/Iconfont';
88

9+
// IConnectionDetails 全部信息代表修改
10+
// null 展示因增列表
11+
// { type: string } 只有数据库类型代表新增
12+
type IEditConnectionDetail = IConnectionDetails | null | Pick<IConnectionDetails, 'type'>;
13+
914
interface IProps {
1015
className?: string;
1116
onSubmit?: (data: IConnectionDetails) => void; // 点击保存或修改的回调,我会把数据给你
12-
connectionDetail?: IConnectionDetails; // 如果你想编辑,就直接传入完成的数据就好
17+
connectionDetail: IEditConnectionDetail;
18+
noPermission?: boolean;
1319
}
1420

1521
export default memo<IProps>((props) => {
16-
const { className, onSubmit, connectionDetail } = props;
17-
const [curConnection, setCurConnection] = useState<Partial<IConnectionDetails>>({});
18-
const createConnectionRef = useRef<ICreateConnectionFunction>();
22+
const { className, onSubmit, connectionDetail: externalConnectionDetail } = props;
23+
const [connectionDetail, setConnectionDetail] = useState<IEditConnectionDetail>(externalConnectionDetail);
1924

2025
useEffect(() => {
21-
if (connectionDetail) {
22-
setCurConnection(connectionDetail);
23-
} else {
24-
setCurConnection({});
25-
}
26-
}, [connectionDetail]);
26+
setConnectionDetail(externalConnectionDetail);
27+
}, [externalConnectionDetail]);
2728

2829
function handleCreateConnections(database: IDatabase) {
29-
setCurConnection({
30+
setConnectionDetail({
3031
type: database.code,
3132
});
3233
}
@@ -37,47 +38,61 @@ export default memo<IProps>((props) => {
3738

3839
return (
3940
<div className={classnames(styles.box, className)}>
40-
{curConnection && Object.keys(curConnection).length ? (
41+
{connectionDetail && (
4142
<div
4243
className={classnames(styles.createConnections, {
43-
[styles.showCreateConnections]: Object.keys(curConnection).length,
44+
[styles.showCreateConnections]: connectionDetail,
4445
})}
4546
>
46-
{
47-
<ConnectionEdit
48-
ref={createConnectionRef as any}
49-
closeCreateConnection={() => {
50-
setCurConnection({});
51-
}}
52-
connectionData={curConnection as any}
53-
submit={handleSubmit}
54-
/>
55-
}
47+
<ConnectionEdit connectionData={connectionDetail as any} submit={handleSubmit} />
5648
</div>
57-
) : (
58-
<div className={styles.dataBaseList}>
59-
{databaseTypeList.map((t) => {
60-
return (
61-
<div key={t.code} className={styles.databaseItem} onClick={handleCreateConnections.bind(null, t)}>
62-
<div className={styles.databaseItemMain}>
63-
<div className={styles.databaseItemLeft}>
64-
<div className={styles.logoBox}>
65-
<Iconfont code={t.icon} />
49+
)}
50+
{!connectionDetail && (
51+
<div className={styles.dataBaseListBox}>
52+
<div className={styles.dataBaseList}>
53+
{databaseTypeList.map((t) => {
54+
return (
55+
<div key={t.code} className={styles.databaseItem} onClick={handleCreateConnections.bind(null, t)}>
56+
<div className={styles.databaseItemMain}>
57+
<div className={styles.databaseItemLeft}>
58+
<div className={styles.logoBox}>
59+
<Iconfont code={t.icon} />
60+
</div>
61+
{t.name}
62+
</div>
63+
<div className={styles.databaseItemRight}>
64+
<Iconfont code="&#xe631;" />
6665
</div>
67-
{t.name}
68-
</div>
69-
<div className={styles.databaseItemRight}>
70-
<Iconfont code="&#xe631;" />
7166
</div>
7267
</div>
73-
</div>
74-
);
75-
})}
76-
{Array.from({ length: 20 }).map((t, index) => {
77-
return <div key={index} className={styles.databaseItemSpacer} />;
78-
})}
68+
);
69+
})}
70+
{Array.from({ length: 20 }).map((t, index) => {
71+
return <div key={index} className={styles.databaseItemSpacer} />;
72+
})}
73+
</div>
7974
</div>
8075
)}
8176
</div>
8277
);
8378
});
79+
80+
81+
{/* <div className={styles.notPermission}>
82+
<div className={styles.notPermissionIconBox}>
83+
<Iconfont className={styles.notPermissionIcon} code="&#xe658;" />
84+
</div>
85+
<div className={styles.notPermissionIconTips}>{i18n('connection.tips.noConnectionTips')}</div>
86+
<div className={styles.connectButtonBox}>
87+
<Button
88+
type="primary"
89+
className={styles.connectButton}
90+
icon={<Iconfont code="&#xec57;" />}
91+
onClick={() => {
92+
handleMenuItemDoubleClick(curConnection);
93+
}}
94+
>
95+
{i18n('connection.button.connect')}
96+
</Button>
97+
</div>
98+
</div> */}

chat2db-client/src/blocks/SQLExecute/index.tsx

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,6 @@ const SQLExecute = memo<IProps>((props) => {
3535
const searchResultRef = useRef<ISearchResultRef>(null);
3636
const consoleRef = useRef<IConsoleRef>(null);
3737

38-
// useEffect(() => {
39-
// if (!doubleClickTreeNodeData) {
40-
// return;
41-
// }
42-
// if (doubleClickTreeNodeData.treeNodeType === TreeNodeType.TABLE) {
43-
// const { extraParams } = doubleClickTreeNodeData;
44-
// const { tableName } = extraParams || {};
45-
// const ddl = `SELECT * FROM ${tableName};\n`;
46-
// if (isActive) {
47-
// setAppendValue({ text: ddl });
48-
// }
49-
// }
50-
// dispatch({
51-
// type: 'workspace/setDoubleClickTreeNodeData',
52-
// payload: '',
53-
// });
54-
// }, [doubleClickTreeNodeData]);
55-
5638
useUpdateEffect(() => {
5739
consoleRef.current?.editorRef?.setValue(data.initDDL, 'cover');
5840
}, [data.initDDL]);

chat2db-client/src/pages/main/workspace/components/Tree/TreeNodeRightClick/index.less renamed to chat2db-client/src/blocks/Tree/TreeNodeRightClick/index.less

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
1-
@import '../../../../../../styles/var.less';
1+
@import '../../../styles/var.less';
22

33
.operationItem {
44
display: flex;
55
align-items: center;
6-
.operationIcon {
7-
}
6+
87
.operationTitle {
98
margin-left: 14px;
109
}
10+
1111
:global {
1212
.ant-dropdown {
1313
z-index: 1080;
1414
}
1515
}
1616
}
17-
.errorOperationItem{
18-
19-
}
2017

2118
.monacoEditorBox {
2219
margin-top: -15px;

0 commit comments

Comments
 (0)