Skip to content

Commit 1dc7ffd

Browse files
committed
merge(dev) code
2 parents a2cf535 + 0612238 commit 1dc7ffd

File tree

54 files changed

+978
-422
lines changed

Some content is hidden

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

54 files changed

+978
-422
lines changed

config/profiles/application-config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ datart:
7373
server:
7474
address: ${datart.address:http://127.0.0.1:8080}
7575

76-
# 租户管理模式:plateform-平台(默认),team-团队
76+
# 租户管理模式:platform-平台(默认),team-团队
7777
tenant-management-mode: platform
7878
# 团队管理员用户名/密码: 仅team模式且两者都不为空时重置
7979
admin:

core/src/main/java/datart/core/mappers/ext/SourceSchemasMapperExt.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import datart.core.entity.SourceSchemas;
2121
import datart.core.mappers.SourceSchemasMapper;
22+
import org.apache.ibatis.annotations.Delete;
2223
import org.apache.ibatis.annotations.Mapper;
2324
import org.apache.ibatis.annotations.Select;
2425

@@ -33,4 +34,7 @@ public interface SourceSchemasMapperExt extends SourceSchemasMapper {
3334
@Select("SELECT update_time FROM source_schemas where source_id = #{sourceId}")
3435
Date selectUpdateDateBySource(String sourceId);
3536

37+
@Delete("DELETE FROM source_schemas where source_id = #{sourceId}")
38+
int deleteBySource(String sourceId);
39+
3640
}

core/src/main/java/datart/core/mappers/ext/UserSettingsMapperExt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public interface UserSettingsMapperExt extends UserSettingsMapper {
1717
List<UserSettings> selectByUser(String userId);
1818

1919
@Delete({
20-
"DELETE FROM user_settings t WHERE t.user_id = #{userId}"
20+
"DELETE FROM user_settings WHERE user_id = #{userId}"
2121
})
2222
int deleteByUser(String userId);
2323

data-providers/src/main/java/datart/data/provider/DefaultDataProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public boolean validateFunction(DataProviderSource source, String snippet) {
189189
@Override
190190
public void resetSource(DataProviderSource source) {
191191
try {
192-
LocalDB.clearCache(source.getSourceId());
192+
LocalDB.clearCache("DB" + source.getSourceId());
193193
} catch (Exception e) {
194194
log.error("reset datasource error ", e);
195195
}

frontend/src/app/components/ChartDrill/ChartDrillContextMenu.tsx

Lines changed: 78 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* limitations under the License.
1717
*/
1818

19+
import { CheckOutlined } from '@ant-design/icons';
1920
import { Dropdown, Menu } from 'antd';
2021
import {
2122
ChartDataSectionType,
@@ -29,8 +30,10 @@ import ChartDrillContext from 'app/pages/ChartWorkbenchPage/contexts/ChartDrillC
2930
import { ChartConfig, ChartDataSectionField } from 'app/types/ChartConfig';
3031
import { getInterimDateAggregateRows } from 'app/utils/chartHelper';
3132
import { updateBy } from 'app/utils/mutation';
33+
import classnames from 'classnames';
3234
import { FC, memo, useCallback, useContext, useMemo } from 'react';
3335
import styled from 'styled-components/macro';
36+
import { FONT_WEIGHT_MEDIUM, SPACE_SM } from 'styles/StyleConstants';
3437

3538
const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
3639
({ children, chartConfig }) => {
@@ -42,6 +45,7 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
4245
onChartDrillDataAggregationChange,
4346
} = useContext(ChartDrillContext);
4447
const currentFields = drillOption?.getCurrentFields();
48+
const currentDrillLevel = drillOption?.getCurrentDrillLevel();
4549

4650
const currentDrillField = useMemo(() => {
4751
if (!drillOption) {
@@ -65,7 +69,9 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
6569

6670
const handleChangeDataAggregate = useCallback(
6771
(config: ChartDataSectionField) => {
68-
const groupData = chartConfig?.datas?.find(v => v.type === 'group');
72+
const groupData = chartConfig?.datas?.find(
73+
v => v.type === ChartDataSectionType.GROUP,
74+
);
6975

7076
if (groupData) {
7177
const _groupData = updateBy(groupData, draft => {
@@ -92,24 +98,32 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
9298
[chartConfig?.datas, onChartDrillDataAggregationChange],
9399
);
94100

101+
const selectDrillStatusMenu = useMemo(() => {
102+
return (
103+
<Menu.Item key="selectDrillStatus">
104+
<StyledMenuSwitch
105+
className={classnames({ on: !!drillOption?.isSelectedDrill })}
106+
>
107+
<p>
108+
{drillOption?.isSelectedDrill
109+
? t('selectDrillOn')
110+
: t('selectDrillOff')}
111+
</p>
112+
<CheckOutlined className="icon" />
113+
</StyledMenuSwitch>
114+
</Menu.Item>
115+
);
116+
}, [drillOption?.isSelectedDrill, t]);
95117
const contextMenu = useMemo(() => {
96118
return (
97-
<Menu
98-
style={{ width: 200 }}
99-
onClick={({ key, keyPath }) => {
119+
<StyledChartDrillMenu
120+
onClick={({ key }) => {
100121
if (!drillOption) {
101122
return;
102123
}
103-
if (key === 'enable') {
104-
if (!drillOption?.isSelectedDrill) {
105-
drillOption?.toggleSelectedDrill(true);
106-
onDrillOptionChange?.(drillOption);
107-
}
108-
} else if (key === 'disable') {
109-
if (drillOption?.isSelectedDrill) {
110-
drillOption?.toggleSelectedDrill(false);
111-
onDrillOptionChange?.(drillOption);
112-
}
124+
if (key === 'selectDrillStatus') {
125+
drillOption?.toggleSelectedDrill(!drillOption?.isSelectedDrill);
126+
onDrillOptionChange?.(drillOption);
113127
} else if (key === DrillMode.Drill) {
114128
drillOption?.drillDown();
115129
onDrillOptionChange?.(drillOption);
@@ -122,31 +136,21 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
122136
}
123137
}}
124138
>
125-
<Menu.Item key={'rollUp'}>{t('rollUp')}</Menu.Item>
126-
<Menu.Item
127-
disabled={drillOption?.mode === DrillMode.Expand}
128-
key={DrillMode.Drill}
129-
>
130-
{t('showNextLevel')}
131-
</Menu.Item>
132-
<Menu.Item
133-
disabled={drillOption?.mode === DrillMode.Drill}
134-
key={DrillMode.Expand}
135-
>
136-
{t('expandNextLevel')}
137-
</Menu.Item>
138-
<Menu.SubMenu
139-
disabled={drillOption?.mode === DrillMode.Expand}
140-
key="selectDrillStatus"
141-
title={t('selectDrillStatus')}
142-
>
143-
<Menu.Item key="enable" disabled={drillOption?.isSelectedDrill}>
144-
{t('enable')}
145-
</Menu.Item>
146-
<Menu.Item key="disable" disabled={!drillOption?.isSelectedDrill}>
147-
{t('disable')}
148-
</Menu.Item>
149-
</Menu.SubMenu>
139+
{!!currentDrillLevel && (
140+
<Menu.Item key={'rollUp'}>{t('rollUp')}</Menu.Item>
141+
)}
142+
{drillOption?.mode !== DrillMode.Expand &&
143+
!drillOption?.isBottomLevel && (
144+
<Menu.Item key={DrillMode.Drill}>{t('showNextLevel')}</Menu.Item>
145+
)}
146+
{drillOption?.mode !== DrillMode.Drill &&
147+
!drillOption?.isBottomLevel && (
148+
<Menu.Item key={DrillMode.Expand}>
149+
{t('expandNextLevel')}
150+
</Menu.Item>
151+
)}
152+
{drillOption?.mode !== DrillMode.Expand && selectDrillStatusMenu}
153+
150154
{currentDrillField?.map((v, i) => {
151155
if (
152156
v.category === ChartDataViewFieldCategory.DateAggregationField
@@ -163,15 +167,17 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
163167
}
164168
return false;
165169
})}
166-
</Menu>
170+
</StyledChartDrillMenu>
167171
);
168172
}, [
169-
drillOption,
173+
currentDrillLevel,
170174
t,
175+
drillOption,
176+
selectDrillStatusMenu,
171177
onDrillOptionChange,
172178
currentDrillField,
173-
sourceSupportDateField,
174179
handleChangeDataAggregate,
180+
sourceSupportDateField,
175181
]);
176182

177183
return (
@@ -181,7 +187,6 @@ const ChartDrillContextMenu: FC<{ chartConfig?: ChartConfig }> = memo(
181187
overlay={contextMenu}
182188
destroyPopupOnHide={true}
183189
trigger={['contextMenu']}
184-
getPopupContainer={triggerNode => triggerNode}
185190
>
186191
<div style={{ height: '100%' }}>{children}</div>
187192
</Dropdown>
@@ -196,3 +201,33 @@ const StyledChartDrill = styled.div`
196201
position: relative;
197202
width: 100%;
198203
`;
204+
205+
const StyledChartDrillMenu = styled(Menu)`
206+
min-width: 200px;
207+
`;
208+
209+
const StyledMenuSwitch = styled.div`
210+
display: flex;
211+
align-items: center;
212+
213+
p {
214+
flex: 1;
215+
}
216+
217+
.icon {
218+
display: none;
219+
}
220+
221+
&.on {
222+
p {
223+
font-weight: ${FONT_WEIGHT_MEDIUM};
224+
}
225+
226+
.icon {
227+
display: block;
228+
flex-shrink: 0;
229+
padding-left: ${SPACE_SM};
230+
color: ${p => p.theme.success};
231+
}
232+
}
233+
`;

frontend/src/app/components/ChartDrill/ChartDrillPaths.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import ChartDrillContext from 'app/pages/ChartWorkbenchPage/contexts/ChartDrillC
2222
import { getColumnRenderName } from 'app/utils/chartHelper';
2323
import { FC, memo, useContext } from 'react';
2424
import styled from 'styled-components/macro';
25-
import { SPACE_TIMES } from 'styles/StyleConstants';
25+
import { SPACE_SM, SPACE_XS } from 'styles/StyleConstants';
2626

2727
const ChartDrillPaths: FC<{}> = memo(() => {
2828
const { drillOption, onDrillOptionChange } = useContext(ChartDrillContext);
@@ -33,11 +33,12 @@ const ChartDrillPaths: FC<{}> = memo(() => {
3333

3434
const drilledFields = drillOption.getDrilledFields();
3535
return (
36-
<StyledChartDrillPaths className="chart-drill-path">
36+
<StyledChartDrillPaths>
3737
<Breadcrumb>
3838
{drilledFields.map(f => {
3939
return (
4040
<StyledDrillNode
41+
key={f.uid}
4142
isActive={Boolean(
4243
drillOption?.getCurrentFields()?.some(df => df.uid === f.uid),
4344
)}
@@ -62,7 +63,7 @@ const ChartDrillPaths: FC<{}> = memo(() => {
6263
export default ChartDrillPaths;
6364

6465
const StyledChartDrillPaths = styled.div`
65-
padding-left: ${SPACE_TIMES(2)};
66+
padding: ${SPACE_XS} ${SPACE_SM};
6667
`;
6768

6869
const StyledDrillNode = styled(Breadcrumb.Item)<{ isActive: boolean }>`

0 commit comments

Comments
 (0)