@gingkoo/pandora-metabase 1.0.0-alpha.4 → 1.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,13 @@
1
1
  import * as React from 'react';
2
2
  export declare function generateTrigger(PortalComponent: any): {
3
3
  new (props: PropsType): {
4
+ resizeObserver: ResizeObserver | null;
4
5
  resetId: number;
5
6
  ref: any;
6
7
  componentDidMount(): void;
8
+ componentDidUpdate(prevProps: PropsType): void;
7
9
  componentWillUnmount(): void;
10
+ initResizeObserver: () => void;
8
11
  bindEvent: () => void;
9
12
  closePopup: () => void;
10
13
  attachParent: (popupContainer: HTMLSpanElement) => void;
@@ -29,7 +32,6 @@ export declare function generateTrigger(PortalComponent: any): {
29
32
  shouldComponentUpdate?(nextProps: Readonly<PropsType>, nextState: Readonly<{}>, nextContext: any): boolean;
30
33
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
31
34
  getSnapshotBeforeUpdate?(prevProps: Readonly<PropsType>, prevState: Readonly<{}>): any;
32
- componentDidUpdate?(prevProps: Readonly<PropsType>, prevState: Readonly<{}>, snapshot?: any): void;
33
35
  componentWillMount?(): void;
34
36
  UNSAFE_componentWillMount?(): void;
35
37
  componentWillReceiveProps?(nextProps: Readonly<PropsType>, nextContext: any): void;
@@ -45,10 +47,13 @@ export declare function generateTrigger(PortalComponent: any): {
45
47
  };
46
48
  declare const _default: {
47
49
  new (props: PropsType): {
50
+ resizeObserver: ResizeObserver | null;
48
51
  resetId: number;
49
52
  ref: any;
50
53
  componentDidMount(): void;
54
+ componentDidUpdate(prevProps: PropsType): void;
51
55
  componentWillUnmount(): void;
56
+ initResizeObserver: () => void;
52
57
  bindEvent: () => void;
53
58
  closePopup: () => void;
54
59
  attachParent: (popupContainer: HTMLSpanElement) => void;
@@ -73,7 +78,6 @@ declare const _default: {
73
78
  shouldComponentUpdate?(nextProps: Readonly<PropsType>, nextState: Readonly<{}>, nextContext: any): boolean;
74
79
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
75
80
  getSnapshotBeforeUpdate?(prevProps: Readonly<PropsType>, prevState: Readonly<{}>): any;
76
- componentDidUpdate?(prevProps: Readonly<PropsType>, prevState: Readonly<{}>, snapshot?: any): void;
77
81
  componentWillMount?(): void;
78
82
  UNSAFE_componentWillMount?(): void;
79
83
  componentWillReceiveProps?(nextProps: Readonly<PropsType>, nextContext: any): void;
package/lib/es/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @gingkoo/pandora-metabase v1.0.0-alpha.4
2
+ * @gingkoo/pandora-metabase v1.0.0-alpha.6
3
3
  */
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import * as React from 'react';
@@ -278,7 +278,6 @@ const summarizeToSql = (arr, record) => {
278
278
  condition,
279
279
  alias,
280
280
  name,
281
- fieldAlias,
282
281
  realName = ''
283
282
  } = record;
284
283
  let index = arr.indexOf(record);
@@ -339,7 +338,7 @@ const summarizeToSql = (arr, record) => {
339
338
  count++;
340
339
  }
341
340
  });
342
- as = fieldAlias || as + (count ? '_' + (count + 1) : '');
341
+ as = as + (count ? '_' + (count + 1) : '');
343
342
  return {
344
343
  sql: sql + ' AS ' + as,
345
344
  fieldAlias: as
@@ -736,8 +735,8 @@ const changeTableAlias = (list, curObj) => {
736
735
  if (v.type === TypeEnum.customColumn) {
737
736
  v.customColumn.map(item => {
738
737
  item.formulaList?.map(formula => {
739
- if (formula.tableUuid === tableUuid) {
740
- formula.alias = alias;
738
+ if (formula.expression && formula.expression.tableUuid === tableUuid) {
739
+ formula.expression.alias = alias;
741
740
  }
742
741
  });
743
742
  });
@@ -809,8 +808,8 @@ const changeFieldAlias = (list, curObj) => {
809
808
  if (v.type === TypeEnum.customColumn) {
810
809
  v.customColumn.map(item => {
811
810
  item.formulaList?.map(formula => {
812
- if (formula.fieldUuid === fieldUuid) {
813
- formula.fieldAlias = fieldAlias;
811
+ if (formula.expression && formula.expression.fieldUuid === fieldUuid) {
812
+ formula.expression.fieldAlias = fieldAlias;
814
813
  }
815
814
  });
816
815
  });
@@ -1001,6 +1000,8 @@ const useStore = () => {
1001
1000
  }); //弹窗
1002
1001
  const [popupClosable, setClosable] = useState(true); //是否可关闭 如果弹框里面再弹框 则不可关闭
1003
1002
  const [popupClosable2, setClosable2] = useState(true); //是否可关闭 如果弹框里面再弹框 则不可关闭
1003
+ // 外层ref
1004
+ const popupContainer = useRef();
1004
1005
  // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
1005
1006
  // async () => {},
1006
1007
  // ); //fn
@@ -1411,7 +1412,8 @@ const useStore = () => {
1411
1412
  _setShowSubquery,
1412
1413
  constantList,
1413
1414
  setConstantList,
1414
- changeAlias
1415
+ changeAlias,
1416
+ popupContainer
1415
1417
  };
1416
1418
  };
1417
1419
 
@@ -3426,6 +3428,7 @@ function returnDocument(element) {
3426
3428
  const outSpacing = 10;
3427
3429
  function generateTrigger(PortalComponent) {
3428
3430
  class Trigger extends React.Component {
3431
+ resizeObserver = null; // 显式声明 resizeObserver 属性
3429
3432
  resetId = -1; // 监听窗口改变事件id 用于组件销毁的时候清除事件
3430
3433
  static defaultProps = {
3431
3434
  visible: false,
@@ -3440,11 +3443,39 @@ function generateTrigger(PortalComponent) {
3440
3443
  this.resetId = winResetEvent.addEvent(this.didUpdate, this, 300);
3441
3444
  this.props.container && this.props.container.addEventListener('scroll', this.didUpdate);
3442
3445
  this.bindEvent();
3446
+ // 延迟绑定 ResizeObserver 到 ensure the element is ready
3447
+ this.initResizeObserver();
3448
+ }
3449
+ componentDidUpdate(prevProps) {
3450
+ // 如果 children 发生变化,重新初始化观察器
3451
+ if (prevProps.children !== this.props.children) {
3452
+ this.initResizeObserver();
3453
+ }
3443
3454
  }
3444
3455
  componentWillUnmount() {
3445
3456
  winResetEvent.removeEvent(this.resetId);
3446
3457
  this.props.container && this.props.container.removeEventListener('scroll', this.didUpdate);
3458
+ if (this.resizeObserver) {
3459
+ this.resizeObserver.disconnect();
3460
+ this.resizeObserver = null;
3461
+ }
3447
3462
  }
3463
+ // children高度变化后,从新计算高度
3464
+ initResizeObserver = () => {
3465
+ const targetNode = this.ref.current;
3466
+ if (!targetNode) return;
3467
+ // 如果已经存在 ResizeObserver,先断开连接
3468
+ if (this.resizeObserver) {
3469
+ this.resizeObserver.disconnect();
3470
+ }
3471
+ // 初始化 ResizeObserver 并开始观察目标节点
3472
+ this.resizeObserver = new ResizeObserver(entries => {
3473
+ entries.forEach(entry => {
3474
+ this.didUpdate();
3475
+ });
3476
+ });
3477
+ this.resizeObserver.observe(targetNode);
3478
+ };
3448
3479
  bindEvent = () => {
3449
3480
  let that = this;
3450
3481
  returnDocument().body.addEventListener('click', function (e) {
@@ -3680,7 +3711,7 @@ const SelectColumn = ({
3680
3711
  });
3681
3712
  };
3682
3713
 
3683
- var css_248z$6 = ".Sqb-SelectColumns--box {\n box-sizing: border-box;\n min-width: 1em;\n max-width: 500px;\n background-color: #ffffff;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item {\n display: flex;\n border-radius: 4px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item a {\n flex: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-icon {\n display: flex;\n align-items: center;\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n color: #4c5773;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra {\n display: flex;\n align-items: center;\n padding: 0.5rem;\n cursor: pointer;\n border-left: 2px solid rgba(113, 114, 173, 0.1);\n color: rgba(255, 255, 255, 0.5);\n visibility: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra h4 {\n margin-bottom: 0;\n color: inherit;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra svg {\n color: #fff;\n margin-left: 0.5rem;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra:hover {\n color: #fff;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box .Sqb-List-item.active {\n background-color: #509ee3;\n border-color: rgba(169, 137, 197, 0.2);\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-icon,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-icon {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-title,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-title {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .Field-extra,\n.Sqb-SelectColumns--box .Sqb-List-item.active .Field-extra {\n visibility: visible;\n}\n.Sqb-SelectColumns--box .Sqb-List-item.disabled .List-item-title {\n color: #949aab !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-title {\n display: flex;\n border-radius: 4px;\n}\n.Sqb-SelectColumns--box .Sqb-List-title a {\n flex: auto;\n cursor: default;\n display: flex;\n align-items: center;\n color: #4c5773;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-icon {\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-title-arrow {\n margin-left: auto;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.active .List-item-icon {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink a {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover a {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover a .List-item-title {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search {\n display: flex;\n align-items: center;\n flex: 1 0 auto;\n color: #b8bbc3;\n background-color: #fff;\n border: 1px solid #f0f0f0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-search span {\n line-height: 0;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input {\n box-shadow: none;\n outline: 0;\n border: none !important;\n background: transparent;\n color: #4c5773;\n font-size: 1.12em;\n font-weight: 600;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-webkit-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-ms-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item.active {\n background-color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.active .List-item-icon {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a .List-item-title {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.purple .Sqb-List-item.active {\n background-color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.active .List-item-icon {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a .List-item-title {\n color: #7172ad;\n}\n.menu-list {\n border: none !important;\n}\n.menu-list .ant-menu-item:hover {\n color: #88bf4d !important;\n}\n.menu-list .ant-menu-item-selected {\n background-color: #88bf4d !important;\n color: #fff !important;\n border-radius: 4px !important;\n}\n";
3714
+ var css_248z$6 = ".Sqb-SelectColumns--box {\n box-sizing: border-box;\n min-width: 1em;\n max-width: 500px;\n background-color: #ffffff;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item {\n display: flex;\n border-radius: 4px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item {\n flex: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-icon {\n display: flex;\n align-items: center;\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n color: #4c5773;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra {\n display: flex;\n align-items: center;\n padding: 0.5rem;\n cursor: pointer;\n border-left: 2px solid rgba(113, 114, 173, 0.1);\n color: rgba(255, 255, 255, 0.5);\n visibility: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra h4 {\n margin-bottom: 0;\n color: inherit;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra svg {\n color: #fff;\n margin-left: 0.5rem;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra:hover {\n color: #fff;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box .Sqb-List-item.active {\n background-color: #509ee3;\n border-color: rgba(169, 137, 197, 0.2);\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-icon,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-icon {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-title,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-title {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .Field-extra,\n.Sqb-SelectColumns--box .Sqb-List-item.active .Field-extra {\n visibility: visible;\n}\n.Sqb-SelectColumns--box .Sqb-List-item.disabled .List-item-title {\n color: #949aab !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-title {\n display: flex;\n border-radius: 4px;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item {\n flex: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n color: #4c5773;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-icon {\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-title-arrow {\n margin-left: auto;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.active .List-item-icon {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink .List-item {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover .List-item {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover .List-item .List-item-title {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search {\n display: flex;\n align-items: center;\n flex: 1 0 auto;\n color: #b8bbc3;\n background-color: #fff;\n border: 1px solid #f0f0f0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-search span {\n line-height: 0;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input {\n box-shadow: none;\n outline: 0;\n border: none !important;\n background: transparent;\n color: #4c5773;\n font-size: 1.12em;\n font-weight: 600;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-webkit-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-ms-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item.active {\n background-color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.active .List-item-icon {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a .List-item-title {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.purple .Sqb-List-item.active {\n background-color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.active .List-item-icon {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a .List-item-title {\n color: #7172ad;\n}\n.menu-list {\n border: none !important;\n}\n.menu-list .ant-menu-item:hover {\n color: #88bf4d !important;\n}\n.menu-list .ant-menu-item-selected {\n background-color: #88bf4d !important;\n color: #fff !important;\n border-radius: 4px !important;\n}\n";
3684
3715
  styleInject(css_248z$6);
3685
3716
 
3686
3717
  const NUMBER_GROUP = [SQL_COLUMN_TYPE.FLOAT, SQL_COLUMN_TYPE.LONG, SQL_COLUMN_TYPE.CURRENCY];
@@ -3798,7 +3829,8 @@ const SelectJoinColumn = ({
3798
3829
  })));
3799
3830
  }
3800
3831
  },
3801
- children: jsxs("a", {
3832
+ children: jsxs("div", {
3833
+ className: 'List-item',
3802
3834
  children: [jsx("span", {
3803
3835
  className: 'List-item-icon',
3804
3836
  children: jsx(TableIcon, {})
@@ -3817,7 +3849,7 @@ const SelectJoinColumn = ({
3817
3849
  })]
3818
3850
  })
3819
3851
  })
3820
- }), open && jsxs(Fragment, {
3852
+ }), (open || isSummarize) && jsxs(Fragment, {
3821
3853
  children: [!isSummarize && jsx("div", {
3822
3854
  className: cx(`Sqb-List-section`),
3823
3855
  children: jsxs("div", {
@@ -3890,8 +3922,8 @@ const SelectJoinColumn = ({
3890
3922
  realName
3891
3923
  });
3892
3924
  },
3893
- children: [jsxs("a", {
3894
- className: 'p-2',
3925
+ children: [jsxs("div", {
3926
+ className: 'p-2 List-item',
3895
3927
  children: [jsx("span", {
3896
3928
  className: 'List-item-icon',
3897
3929
  children: IconMap[special_type || database_type] || jsx(LetterAaIcon, {})
@@ -6003,10 +6035,11 @@ const JoinData = props => {
6003
6035
  let oldList = cloneDeep(newMeta[index].subquery);
6004
6036
  let _toolbar = subToolbar || toolbar;
6005
6037
  _toolbar = _toolbar.filter(v => v !== 'group'); // 子查询不需要分组
6038
+ let zIndex = store.popupContainer.current ? getMaxZIndexInParents(store.popupContainer.current) : 0;
6006
6039
  let o = Modal2.openModal({
6007
6040
  title: __('SqlQueryBuilder.subquery'),
6008
6041
  transparentMask: true,
6009
- zIndex: 200,
6042
+ zIndex: Number(zIndex),
6010
6043
  content: jsx(Fragment, {
6011
6044
  children: jsx(SqlVisionBuilder, {
6012
6045
  ...other,
@@ -6549,8 +6582,13 @@ const CaseEditor = props => {
6549
6582
  isGroup: true,
6550
6583
  // @ts-ignore
6551
6584
  onGroup: data => {
6585
+ let _data = cloneDeep(data);
6586
+ if (_data.alias != SummarizeAlias$1) {
6587
+ _data.fieldAlias = _data.name;
6588
+ _data.fieldUuid = uuidv4('field');
6589
+ }
6552
6590
  const _caseList = caseList.slice();
6553
- _caseList[i].expression = data;
6591
+ _caseList[i].expression = _data;
6554
6592
  setCaseList(_caseList);
6555
6593
  closePopup();
6556
6594
  }
@@ -6574,8 +6612,13 @@ const CaseEditor = props => {
6574
6612
  data: data,
6575
6613
  value: val,
6576
6614
  onChange: data => {
6615
+ let _data = cloneDeep(data);
6616
+ if (_data.alias != SummarizeAlias$1) {
6617
+ _data.fieldAlias = _data.name;
6618
+ _data.fieldUuid = uuidv4('field');
6619
+ }
6577
6620
  const _caseList = caseList.slice();
6578
- _caseList[i].expression = data;
6621
+ _caseList[i].expression = _data;
6579
6622
  setCaseList(_caseList);
6580
6623
  closePopup();
6581
6624
  }
@@ -7046,10 +7089,11 @@ const CustomColumn = props => {
7046
7089
  const showSubQuery = (e, i) => {
7047
7090
  let newMeta = store.metaList[groupIndex].list.slice();
7048
7091
  const _value = newMeta[index].customColumn[i] || [];
7092
+ let zIndex = store.popupContainer.current ? getMaxZIndexInParents(store.popupContainer.current) : 0;
7049
7093
  let o = Modal2.openModal({
7050
7094
  title: __('SqlQueryBuilder.customExpression'),
7051
7095
  transparentMask: true,
7052
- zIndex: 200,
7096
+ zIndex: Number(zIndex),
7053
7097
  content: jsx(Fragment, {
7054
7098
  children: jsx(Provider, {
7055
7099
  value: store,
@@ -7421,10 +7465,11 @@ const Filter = props => {
7421
7465
  let oldList = position ? [] : cloneDeep(newMeta[index].filter[i]?.subquery || []);
7422
7466
  let _toolbar = subToolbar || toolbar;
7423
7467
  _toolbar = _toolbar.filter(v => v !== 'group'); // 子查询不需要分组
7468
+ let zIndex = store.popupContainer.current ? getMaxZIndexInParents(store.popupContainer.current) : null;
7424
7469
  let o = Modal2.openModal({
7425
7470
  title: 'NOT EXISTS',
7426
7471
  transparentMask: true,
7427
- zIndex: 200,
7472
+ zIndex: Number(zIndex),
7428
7473
  content: jsx(Fragment, {
7429
7474
  children: jsx(SqlVisionBuilder, {
7430
7475
  ...other,
@@ -7760,7 +7805,7 @@ const GroupBy = props => {
7760
7805
  newMeta[index].by.splice(i, 1, data);
7761
7806
  // @ts-ignore
7762
7807
  newMeta[index].by = newMeta[index].by.map(v => {
7763
- const fieldAlias = v.fieldAlias || `${v.alias}__${v.name}`;
7808
+ const fieldAlias = `${v.alias}__${v.name}`;
7764
7809
  return {
7765
7810
  ...v,
7766
7811
  sql: `${v.alias}.${v.realName || v.name} AS ${fieldAlias}`,
@@ -7812,7 +7857,7 @@ const GroupBy = props => {
7812
7857
  newMeta[index].by.push(data);
7813
7858
  // @ts-ignore
7814
7859
  newMeta[index].by = newMeta[index].by.map(v => {
7815
- const fieldAlias = v.fieldAlias || `${v.alias}__${v.name}`;
7860
+ const fieldAlias = `${v.alias}__${v.name}`;
7816
7861
  return {
7817
7862
  ...v,
7818
7863
  sql: `${v.alias}.${v.realName || v.name} AS ${fieldAlias}`,
@@ -8627,7 +8672,8 @@ const Metabase = props => {
8627
8672
  } = props;
8628
8673
  const store = useStore$1();
8629
8674
  const [saveLoading, setSaveLoading] = useState(false);
8630
- const popupContainer = useRef();
8675
+ // const popupContainer = useRef();
8676
+ // store.setPopupContainer(popupContainer);
8631
8677
  const popupContent = useMemo(() => {
8632
8678
  let {
8633
8679
  visible,
@@ -8658,11 +8704,11 @@ const Metabase = props => {
8658
8704
  await onOk?.(_metaList);
8659
8705
  setSaveLoading(false);
8660
8706
  };
8661
- let zIndex = popupContainer.current ? getMaxZIndexInParents(popupContainer.current) : null;
8707
+ let zIndex = store.popupContainer.current ? getMaxZIndexInParents(store.popupContainer.current) : null;
8662
8708
  return (
8663
8709
  // @ts-ignore
8664
8710
  jsx(VisualBox, {
8665
- ref: popupContainer,
8711
+ ref: store.popupContainer,
8666
8712
  children: jsxs("div", {
8667
8713
  className: 'Sqb',
8668
8714
  children: [store.metaList.map((v, index) => {
@@ -8699,8 +8745,8 @@ const Metabase = props => {
8699
8745
  disabled: saveLoading,
8700
8746
  onClick: onSave,
8701
8747
  children: btnText || __('SqlQueryBuilder.visualize')
8702
- }) : null, popupContainer.current && jsx(Popup, {
8703
- container: popupContainer.current,
8748
+ }) : null, store.popupContainer.current && jsx(Popup, {
8749
+ container: store.popupContainer.current,
8704
8750
  visible: store.popupData.visible,
8705
8751
  node: store.popupData.node,
8706
8752
  closable: store.popupClosable,
@@ -8711,8 +8757,8 @@ const Metabase = props => {
8711
8757
  });
8712
8758
  },
8713
8759
  children: popupContent
8714
- }), popupContainer.current && jsx(Popup, {
8715
- container: popupContainer.current,
8760
+ }), store.popupContainer.current && jsx(Popup, {
8761
+ container: store.popupContainer.current,
8716
8762
  visible: store.popupData2.visible,
8717
8763
  node: store.popupData2.node,
8718
8764
  closable: store.popupClosable2,