1- import React , { memo , useRef , useState , useEffect } from 'react' ;
1+ import React , { memo , useRef , useState } from 'react' ;
22import { connect } from 'umi' ;
33import styles from './index.less' ;
44import classnames from 'classnames' ;
55import DraggableContainer from '@/components/DraggableContainer' ;
66import Console , { IAppendValue } from '@/components/Console' ;
77import SearchResult from '@/components/SearchResult' ;
8- import { DatabaseTypeCode , ConsoleStatus , TreeNodeType } from '@/constants' ;
9- import { IManageResultData , IResultConfig } from '@/typings' ;
8+ import { DatabaseTypeCode , ConsoleStatus } from '@/constants' ;
109import { IWorkspaceModelState , IWorkspaceModelType } from '@/models/workspace' ;
1110import { IAIState } from '@/models/ai' ;
12- import sqlServer , { IExecuteSqlParams } from '@/service/sql' ;
13- import { v4 as uuidV4 } from 'uuid' ;
14- import { Spin } from 'antd' ;
1511import { useUpdateEffect } from '@/hooks/useUpdateEffect' ;
16- import i18n from '@/i18n' ;
1712interface IProps {
1813 className ?: string ;
1914 isActive : boolean ;
@@ -31,78 +26,35 @@ interface IProps {
3126 } ;
3227}
3328
34- const defaultResultConfig : IResultConfig = {
35- pageNo : 1 ,
36- pageSize : 200 ,
37- total : 0 ,
38- hasNextPage : true ,
39- } ;
40-
4129const SQLExecute = memo < IProps > ( ( props ) => {
4230 const { data, workspaceModel, aiModel, isActive, dispatch } = props ;
4331 const draggableRef = useRef < any > ( ) ;
4432 const [ appendValue , setAppendValue ] = useState < IAppendValue > ( ) ;
45- const [ resultData , setResultData ] = useState < IManageResultData [ ] > ( [ ] ) ;
46- const { doubleClickTreeNodeData, curTableList, curWorkspaceParams } = workspaceModel ;
47- const [ tableLoading , setTableLoading ] = useState ( false ) ;
48- const controllerRef = useRef < AbortController > ( ) ;
33+ const { curTableList, curWorkspaceParams } = workspaceModel ;
34+ const [ sql , setSql ] = useState < string > ( '' ) ;
4935
50- useEffect ( ( ) => {
51- if ( ! doubleClickTreeNodeData ) {
52- return ;
53- }
54- if ( doubleClickTreeNodeData . treeNodeType === TreeNodeType . TABLE ) {
55- const { extraParams } = doubleClickTreeNodeData ;
56- const { tableName } = extraParams || { } ;
57- const ddl = `SELECT * FROM ${ tableName } ;\n` ;
58- if ( isActive ) {
59- setAppendValue ( { text : ddl } ) ;
60- }
61- }
62- dispatch ( {
63- type : 'workspace/setDoubleClickTreeNodeData' ,
64- payload : '' ,
65- } ) ;
66- } , [ doubleClickTreeNodeData ] ) ;
36+ // useEffect(() => {
37+ // if (!doubleClickTreeNodeData) {
38+ // return;
39+ // }
40+ // if (doubleClickTreeNodeData.treeNodeType === TreeNodeType.TABLE) {
41+ // const { extraParams } = doubleClickTreeNodeData;
42+ // const { tableName } = extraParams || {};
43+ // const ddl = `SELECT * FROM ${tableName};\n`;
44+ // if (isActive) {
45+ // setAppendValue({ text: ddl });
46+ // }
47+ // }
48+ // dispatch({
49+ // type: 'workspace/setDoubleClickTreeNodeData',
50+ // payload: '',
51+ // });
52+ // }, [doubleClickTreeNodeData]);
6753
6854 useUpdateEffect ( ( ) => {
6955 setAppendValue ( { text : data . initDDL } ) ;
7056 } , [ data . initDDL ] ) ;
7157
72- /**
73- * 执行SQL
74- * @param sql
75- */
76- const handleExecuteSQL = async ( sql : string ) => {
77- setTableLoading ( true ) ;
78-
79- const executeSQLParams : IExecuteSqlParams = {
80- sql,
81- ...defaultResultConfig ,
82- ...data ,
83- } ;
84-
85- controllerRef . current = new AbortController ( ) ;
86- // 获取当前SQL的查询结果
87- let sqlResult = await sqlServer . executeSql ( executeSQLParams , {
88- signal : controllerRef . current . signal ,
89- } ) ;
90-
91- sqlResult = sqlResult . map ( ( res ) => ( {
92- ...res ,
93- uuid : uuidV4 ( ) ,
94- } ) ) ;
95-
96- setResultData ( sqlResult ) ;
97- setTableLoading ( false ) ;
98- } ;
99-
100- const stopExecuteSql = ( ) => {
101- controllerRef . current && controllerRef . current . abort ( ) ;
102- setResultData ( [ ] ) ;
103- setTableLoading ( false ) ;
104- } ;
105-
10658 return (
10759 < div className = { classnames ( styles . box ) } >
10860 < DraggableContainer layout = "column" className = { styles . boxRightCenter } >
@@ -115,7 +67,7 @@ const SQLExecute = memo<IProps>((props) => {
11567 executeParams = { { ...data } }
11668 hasAiChat = { true }
11769 hasAi2Lang = { true }
118- onExecuteSQL = { handleExecuteSQL }
70+ onExecuteSQL = { setSql }
11971 onConsoleSave = { ( ) => {
12072 dispatch ( {
12173 type : 'workspace/fetchGetSavedConsole' ,
@@ -137,16 +89,7 @@ const SQLExecute = memo<IProps>((props) => {
13789 />
13890 </ div >
13991 < div className = { styles . boxRightResult } >
140- { tableLoading ? (
141- < div className = { styles . tableLoading } >
142- < Spin />
143- < div className = { styles . stopExecuteSql } onClick = { stopExecuteSql } >
144- { i18n ( 'common.button.cancelRequest' ) }
145- </ div >
146- </ div >
147- ) : (
148- < SearchResult executeSqlParams = { data } queryResultDataList = { resultData } />
149- ) }
92+ < SearchResult executeSqlParams = { data } sql = { sql } />
15093 </ div >
15194 </ DraggableContainer >
15295 </ div >
0 commit comments