@gingkoo/pandora-metabase 1.0.99 → 1.0.101

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.
@@ -641,20 +641,23 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
641
641
  }, index)
642
642
  }, index);
643
643
  } else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
644
- return (0, _jsxRuntime.jsxs)("div", {
645
- className: "Sqb-TableName purple-name",
646
- onClick: function onClick(e) {
647
- return showSubQuery(index);
648
- },
649
- children: [v.label || (0, _locale.__)('SqlQueryBuilder.subquery'), (0, _jsxRuntime.jsx)("span", {
650
- style: {
651
- fontSize: 0
652
- },
644
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
645
+ isError: (0, _utils2.isExistsError)(v.subQuery, store.existsError),
646
+ children: (0, _jsxRuntime.jsxs)("div", {
647
+ className: "Sqb-TableName purple-name",
653
648
  onClick: function onClick(e) {
654
- return handleDel(e, index);
649
+ return showSubQuery(index);
655
650
  },
656
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
657
- })]
651
+ children: [v.label || (0, _locale.__)('SqlQueryBuilder.subquery'), (0, _jsxRuntime.jsx)("span", {
652
+ style: {
653
+ fontSize: 0
654
+ },
655
+ onClick: function onClick(e) {
656
+ return handleDel(e, index);
657
+ },
658
+ children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
659
+ })]
660
+ }, index)
658
661
  }, index);
659
662
  } else if (type === _types.AtomsTypeEnum.FIELD) {
660
663
  // 字段
@@ -9,7 +9,7 @@ import { MetaData_ColumnsType } from '../../../store/types';
9
9
  interface PropsType {
10
10
  data: MetaData_ColumnsType[];
11
11
  groupIndex: number;
12
- onChange: (record: MetaData_ColumnsType[]) => void;
12
+ onChange: (record: MetaData_ColumnsType[], newMetaList?: any[]) => void;
13
13
  }
14
14
  declare const SelectColumn: ({ data, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
15
15
  export default SelectColumn;
@@ -83,7 +83,7 @@ var SelectColumn = function SelectColumn(_ref) {
83
83
  });
84
84
  }
85
85
  }, [isAllSelect]);
86
- function onSelect(columns) {
86
+ function onSelect(columns, newMetaList) {
87
87
  var originalData = (0, _cloneDeep["default"])(originList); // 原始数据
88
88
  var mergedColumns = originalData.map(function (item) {
89
89
  var match = columns.find(function (col) {
@@ -93,7 +93,7 @@ var SelectColumn = function SelectColumn(_ref) {
93
93
  });
94
94
  setColumns(columns);
95
95
  setOriginList(mergedColumns);
96
- typeof onChange === 'function' && onChange(mergedColumns);
96
+ typeof onChange === 'function' && onChange(mergedColumns, newMetaList);
97
97
  }
98
98
  var onChangeFieldAlias = function onChangeFieldAlias(val, i) {
99
99
  var fieldAlias = val || '';
@@ -128,7 +128,7 @@ var SelectColumn = function SelectColumn(_ref) {
128
128
  obj: newColumns[i],
129
129
  type: _types.ChangeType.fieldAlias
130
130
  });
131
- onSelect(newColumns);
131
+ onSelect(newColumns, newMetaList);
132
132
  setTimeout(function () {
133
133
  store.setClosable(true);
134
134
  }, 0);
@@ -333,7 +333,7 @@ var CustomColumn = function CustomColumn(props) {
333
333
  className: "Sqb-NotebookCell gray-bg",
334
334
  children: [meta.customColumn.map(function (v, i) {
335
335
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
336
- isError: (0, _utils.isError)(v.formulaList, getColumns()),
336
+ isError: (0, _utils.isError)(v.formulaList, getColumns()) || (0, _utils.isExistsError)(v.formulaList, store.existsError),
337
337
  children: (0, _jsxRuntime.jsxs)("div", {
338
338
  className: (0, _classnames["default"])("Sqb-TableName gray-name"),
339
339
  onClick: function onClick(e) {
@@ -381,13 +381,15 @@ var JoinData = function JoinData(props) {
381
381
  content: (0, _jsxRuntime.jsx)(_dialog.SelectColumn, {
382
382
  data: columns,
383
383
  groupIndex: groupIndex,
384
- onChange: function onChange(data) {
385
- var newMetaList = store.metaList[groupIndex].list.slice();
386
- newMetaList[index].columns = data;
387
- store.setMeta(newMetaList, groupIndex, {
388
- obj: data,
389
- type: _types.ChangeType.field
390
- });
384
+ onChange: function onChange(data, newMetaList) {
385
+ var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
386
+ _newMetaList[index].columns = data;
387
+ if (!newMetaList) {
388
+ store.setMeta(_newMetaList, groupIndex, {
389
+ obj: data,
390
+ type: _types.ChangeType.field
391
+ });
392
+ }
391
393
  }
392
394
  })
393
395
  });
@@ -23,6 +23,7 @@ var _utils = require("../../utils");
23
23
  var _pandoraIcons = require("@gingkoo/pandora-icons");
24
24
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
25
25
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
26
+ var _itemName = _interopRequireDefault(require("./components/item-name"));
26
27
  var _dialog = require("../dialog");
27
28
  var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
28
29
  var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
@@ -128,14 +129,17 @@ var TableData = function TableData(props) {
128
129
  content: (0, _jsxRuntime.jsx)(_dialog.SelectColumn, {
129
130
  groupIndex: groupIndex,
130
131
  data: columns,
131
- onChange: function onChange(data) {
132
- var newMetaList = store.metaList[groupIndex].list.slice();
132
+ onChange: function onChange(data, newMetaList) {
133
+ // 当前值已改变。必须以传入的数组为准,改变别名
134
+ var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
133
135
  // @ts-ignore
134
- newMetaList[0].columns = data;
135
- store.setMeta(newMetaList, groupIndex, {
136
- obj: data,
137
- type: _types.ChangeType.columns
138
- });
136
+ _newMetaList[0].columns = data;
137
+ if (!newMetaList) {
138
+ store.setMeta(_newMetaList, groupIndex, {
139
+ obj: data,
140
+ type: _types.ChangeType.columns
141
+ });
142
+ }
139
143
  }
140
144
  })
141
145
  });
@@ -308,46 +312,49 @@ var TableData = function TableData(props) {
308
312
  className: "Sqb-item--content",
309
313
  children: (0, _jsxRuntime.jsxs)("div", {
310
314
  className: "Sqb-NotebookCell",
311
- children: [meta.isSubquery ? (0, _jsxRuntime.jsxs)("div", {
312
- className: (0, _classnames["default"])("Sqb-TableName", {
313
- notSelected: !subQuerySelected
314
- }),
315
- onClick: function onClick() {
316
- showSubQuery(meta.subquery);
317
- },
318
- children: [subQuerySelected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
319
- children: function () {
320
- var showButton = store.tableEnableAlias || tableIsError() && isDel;
321
- var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
322
- return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
323
- title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
324
- children: (0, _jsxRuntime.jsx)(_pandora.Button, {
325
- danger: tableIsError(),
326
- className: (0, _classnames["default"])(':Sqb-TableName-as', {
327
- isError: tableIsError()
328
- }),
329
- shape: 'circle',
330
- style: isDel ? {
331
- fontSize: 18,
332
- backgroundColor: '#fff',
333
- width: 'auto',
334
- height: 'auto'
335
- } : {},
336
- iconOnly: true,
337
- primary: !isDel,
338
- icon: icon,
339
- size: 'small',
340
- onClick: function onClick(e) {
341
- if (store.tableEnableAlias) {
342
- var _meta$table4;
343
- e.stopPropagation();
344
- onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
315
+ children: [meta.isSubquery ? (0, _jsxRuntime.jsx)(_itemName["default"], {
316
+ isError: (0, _utils.isExistsError)(meta.subquery || [], store.existsError),
317
+ children: (0, _jsxRuntime.jsxs)("div", {
318
+ className: (0, _classnames["default"])("Sqb-TableName", {
319
+ notSelected: !subQuerySelected
320
+ }),
321
+ onClick: function onClick() {
322
+ showSubQuery(meta.subquery);
323
+ },
324
+ children: [subQuerySelected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
325
+ children: function () {
326
+ var showButton = store.tableEnableAlias || tableIsError() && isDel;
327
+ var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
328
+ return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
329
+ title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
330
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
331
+ danger: tableIsError(),
332
+ className: (0, _classnames["default"])(':Sqb-TableName-as', {
333
+ isError: tableIsError()
334
+ }),
335
+ shape: 'circle',
336
+ style: isDel ? {
337
+ fontSize: 18,
338
+ backgroundColor: '#fff',
339
+ width: 'auto',
340
+ height: 'auto'
341
+ } : {},
342
+ iconOnly: true,
343
+ primary: !isDel,
344
+ icon: icon,
345
+ size: 'small',
346
+ onClick: function onClick(e) {
347
+ if (store.tableEnableAlias) {
348
+ var _meta$table4;
349
+ e.stopPropagation();
350
+ onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
351
+ }
345
352
  }
346
- }
347
- })
348
- }) : null;
349
- }()
350
- }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
353
+ })
354
+ }) : null;
355
+ }()
356
+ }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
357
+ })
351
358
  }) : (0, _jsxRuntime.jsxs)("div", {
352
359
  className: (0, _classnames["default"])("Sqb-TableName", {
353
360
  notSelected: !selected
@@ -222,6 +222,7 @@ export interface MetaJoin {
222
222
  }
223
223
  export interface MetaCustom_Item {
224
224
  name: string;
225
+ id?: string;
225
226
  type?: string;
226
227
  formulaList?: AtomsItem[];
227
228
  }
package/lib/cjs/utils.js CHANGED
@@ -240,10 +240,11 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
240
240
  return {
241
241
  database_type: _enum.SQL_COLUMN_TYPE.STRING,
242
242
  name_zh: v.name,
243
+ id: v.id || v.name,
243
244
  name: v.name,
244
245
  select: true,
245
- fieldAlias: ''
246
- // fieldUuid: uuidv4('field'),
246
+ fieldAlias: '',
247
+ fieldUuid: (0, _helper2.uuidv4)('field')
247
248
  };
248
249
  });
249
250
  return {
@@ -447,7 +448,6 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
447
448
  }
448
449
  if (v.type === _enum.TypeEnum.filter) {
449
450
  if (v.filter && v.filter.length > 0) {
450
- console.log(v.filter);
451
451
  v.filter = _changeAlias(v.filter, {
452
452
  uuid: uuid,
453
453
  alias: alias
@@ -770,14 +770,17 @@ var _isError = exports.isError = function isError(item, data) {
770
770
  } else {
771
771
  var _tables$_datasourceId2;
772
772
  return tables === null || tables === void 0 || (_tables$_datasourceId2 = tables[_datasourceId]) === null || _tables$_datasourceId2 === void 0 || (_tables$_datasourceId2 = _tables$_datasourceId2[tableId]) === null || _tables$_datasourceId2 === void 0 ? void 0 : _tables$_datasourceId2.every(function (field) {
773
+ if (field.id === undefined) {
774
+ return field.name !== fieldName;
775
+ }
773
776
  return field.name !== fieldName || field.id !== fieldId;
774
777
  });
775
778
  }
776
779
  } else {
777
- var _tables$_datasourceId3;
778
- var hasField = (tables === null || tables === void 0 || (_tables$_datasourceId3 = tables[_datasourceId]) === null || _tables$_datasourceId3 === void 0 || (_tables$_datasourceId3 = _tables$_datasourceId3[tableId + tableAlias]) === null || _tables$_datasourceId3 === void 0 || (_tables$_datasourceId3 = _tables$_datasourceId3.filter(function (v) {
779
- return v.name === fieldName && v.id === fieldId;
780
- })) === null || _tables$_datasourceId3 === void 0 ? void 0 : _tables$_datasourceId3.length) > 0;
780
+ var _tables$_datasourceId3, _tables$_datasourceId4;
781
+ var hasField = (_tables$_datasourceId3 = tables === null || tables === void 0 || (_tables$_datasourceId4 = tables[_datasourceId]) === null || _tables$_datasourceId4 === void 0 || (_tables$_datasourceId4 = _tables$_datasourceId4[tableId + tableAlias]) === null || _tables$_datasourceId4 === void 0 ? void 0 : _tables$_datasourceId4.some(function (v) {
782
+ return v.name === fieldName && (v.id === undefined || v.id === fieldId);
783
+ })) !== null && _tables$_datasourceId3 !== void 0 ? _tables$_datasourceId3 : false;
781
784
  return !hasField; // 注意:返回 true 表示“有错误”
782
785
  }
783
786
  }
@@ -633,20 +633,23 @@ var FormulaList = forwardRef(function (props, ref) {
633
633
  }, index)
634
634
  }, index);
635
635
  } else if (v.type === AtomsTypeEnum.SUB_QUERY) {
636
- return _jsxs("div", {
637
- className: "Sqb-TableName purple-name",
638
- onClick: function onClick(e) {
639
- return showSubQuery(index);
640
- },
641
- children: [v.label || __('SqlQueryBuilder.subquery'), _jsx("span", {
642
- style: {
643
- fontSize: 0
644
- },
636
+ return _jsx(ItemName, {
637
+ isError: isExistsError(v.subQuery, store.existsError),
638
+ children: _jsxs("div", {
639
+ className: "Sqb-TableName purple-name",
645
640
  onClick: function onClick(e) {
646
- return handleDel(e, index);
641
+ return showSubQuery(index);
647
642
  },
648
- children: _jsx(CloseIcon, {})
649
- })]
643
+ children: [v.label || __('SqlQueryBuilder.subquery'), _jsx("span", {
644
+ style: {
645
+ fontSize: 0
646
+ },
647
+ onClick: function onClick(e) {
648
+ return handleDel(e, index);
649
+ },
650
+ children: _jsx(CloseIcon, {})
651
+ })]
652
+ }, index)
650
653
  }, index);
651
654
  } else if (type === AtomsTypeEnum.FIELD) {
652
655
  // 字段
@@ -9,7 +9,7 @@ import { MetaData_ColumnsType } from '../../../store/types';
9
9
  interface PropsType {
10
10
  data: MetaData_ColumnsType[];
11
11
  groupIndex: number;
12
- onChange: (record: MetaData_ColumnsType[]) => void;
12
+ onChange: (record: MetaData_ColumnsType[], newMetaList?: any[]) => void;
13
13
  }
14
14
  declare const SelectColumn: ({ data, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
15
15
  export default SelectColumn;
@@ -76,7 +76,7 @@ var SelectColumn = function SelectColumn(_ref) {
76
76
  });
77
77
  }
78
78
  }, [isAllSelect]);
79
- function onSelect(columns) {
79
+ function onSelect(columns, newMetaList) {
80
80
  var originalData = cloneDeep(originList); // 原始数据
81
81
  var mergedColumns = originalData.map(function (item) {
82
82
  var match = columns.find(function (col) {
@@ -86,7 +86,7 @@ var SelectColumn = function SelectColumn(_ref) {
86
86
  });
87
87
  setColumns(columns);
88
88
  setOriginList(mergedColumns);
89
- typeof onChange === 'function' && onChange(mergedColumns);
89
+ typeof onChange === 'function' && onChange(mergedColumns, newMetaList);
90
90
  }
91
91
  var onChangeFieldAlias = function onChangeFieldAlias(val, i) {
92
92
  var fieldAlias = val || '';
@@ -121,7 +121,7 @@ var SelectColumn = function SelectColumn(_ref) {
121
121
  obj: newColumns[i],
122
122
  type: ChangeType.fieldAlias
123
123
  });
124
- onSelect(newColumns);
124
+ onSelect(newColumns, newMetaList);
125
125
  setTimeout(function () {
126
126
  store.setClosable(true);
127
127
  }, 0);
@@ -7,7 +7,7 @@ import { Modal2 } from '@gingkoo/pandora';
7
7
  import { Provider } from '../../hooks/use-provider';
8
8
  import cx from 'classnames';
9
9
  import { __ } from '../../locale';
10
- import { findIndex, isError } from '../../utils';
10
+ import { findIndex, isError, isExistsError } from '../../utils';
11
11
  import { sleep, flatArray } from '../../utils/helper';
12
12
  import { ChangeType } from '../../store/types';
13
13
  import { getHelper } from '../../utils';
@@ -329,7 +329,7 @@ var CustomColumn = function CustomColumn(props) {
329
329
  className: "Sqb-NotebookCell gray-bg",
330
330
  children: [meta.customColumn.map(function (v, i) {
331
331
  return _jsx(ItemName, {
332
- isError: isError(v.formulaList, getColumns()),
332
+ isError: isError(v.formulaList, getColumns()) || isExistsError(v.formulaList, store.existsError),
333
333
  children: _jsxs("div", {
334
334
  className: cx("Sqb-TableName gray-name"),
335
335
  onClick: function onClick(e) {
@@ -376,13 +376,15 @@ var JoinData = function JoinData(props) {
376
376
  content: _jsx(SelectColumn, {
377
377
  data: columns,
378
378
  groupIndex: groupIndex,
379
- onChange: function onChange(data) {
380
- var newMetaList = store.metaList[groupIndex].list.slice();
381
- newMetaList[index].columns = data;
382
- store.setMeta(newMetaList, groupIndex, {
383
- obj: data,
384
- type: ChangeType.field
385
- });
379
+ onChange: function onChange(data, newMetaList) {
380
+ var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
381
+ _newMetaList[index].columns = data;
382
+ if (!newMetaList) {
383
+ store.setMeta(_newMetaList, groupIndex, {
384
+ obj: data,
385
+ type: ChangeType.field
386
+ });
387
+ }
386
388
  }
387
389
  })
388
390
  });
@@ -13,10 +13,11 @@ import { ChangeType } from '../../store/types';
13
13
  import { Tooltip, Button, Modal, Modal2, Input, Toast } from '@gingkoo/pandora';
14
14
  import Metabase from '../../index';
15
15
  import { uuidv4, getAlias } from '../../utils/helper';
16
- import { changeTableAlias, getSubColumns, isValidSQLAlias } from '../../utils';
16
+ import { changeTableAlias, getSubColumns, isValidSQLAlias, isExistsError } from '../../utils';
17
17
  import { RelatedWork } from '@gingkoo/pandora-icons';
18
18
  import cloneDeep from 'lodash/cloneDeep';
19
19
  import isEqual from 'lodash/isEqual';
20
+ import ItemName from './components/item-name';
20
21
  import { SelectTable, SelectColumn } from '../dialog';
21
22
  import Wrapper from './components/Wrapper';
22
23
  import NextDom from './components/meta-icon';
@@ -122,14 +123,17 @@ var TableData = function TableData(props) {
122
123
  content: _jsx(SelectColumn, {
123
124
  groupIndex: groupIndex,
124
125
  data: columns,
125
- onChange: function onChange(data) {
126
- var newMetaList = store.metaList[groupIndex].list.slice();
126
+ onChange: function onChange(data, newMetaList) {
127
+ // 当前值已改变。必须以传入的数组为准,改变别名
128
+ var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
127
129
  // @ts-ignore
128
- newMetaList[0].columns = data;
129
- store.setMeta(newMetaList, groupIndex, {
130
- obj: data,
131
- type: ChangeType.columns
132
- });
130
+ _newMetaList[0].columns = data;
131
+ if (!newMetaList) {
132
+ store.setMeta(_newMetaList, groupIndex, {
133
+ obj: data,
134
+ type: ChangeType.columns
135
+ });
136
+ }
133
137
  }
134
138
  })
135
139
  });
@@ -302,46 +306,49 @@ var TableData = function TableData(props) {
302
306
  className: "Sqb-item--content",
303
307
  children: _jsxs("div", {
304
308
  className: "Sqb-NotebookCell",
305
- children: [meta.isSubquery ? _jsxs("div", {
306
- className: cx("Sqb-TableName", {
307
- notSelected: !subQuerySelected
308
- }),
309
- onClick: function onClick() {
310
- showSubQuery(meta.subquery);
311
- },
312
- children: [subQuerySelected && _jsx(_Fragment, {
313
- children: function () {
314
- var showButton = store.tableEnableAlias || tableIsError() && isDel;
315
- var icon = isDel ? _jsx(ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
316
- return showButton ? _jsx(Tooltip, {
317
- title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
318
- children: _jsx(Button, {
319
- danger: tableIsError(),
320
- className: cx(':Sqb-TableName-as', {
321
- isError: tableIsError()
322
- }),
323
- shape: 'circle',
324
- style: isDel ? {
325
- fontSize: 18,
326
- backgroundColor: '#fff',
327
- width: 'auto',
328
- height: 'auto'
329
- } : {},
330
- iconOnly: true,
331
- primary: !isDel,
332
- icon: icon,
333
- size: 'small',
334
- onClick: function onClick(e) {
335
- if (store.tableEnableAlias) {
336
- var _meta$table4;
337
- e.stopPropagation();
338
- onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
309
+ children: [meta.isSubquery ? _jsx(ItemName, {
310
+ isError: isExistsError(meta.subquery || [], store.existsError),
311
+ children: _jsxs("div", {
312
+ className: cx("Sqb-TableName", {
313
+ notSelected: !subQuerySelected
314
+ }),
315
+ onClick: function onClick() {
316
+ showSubQuery(meta.subquery);
317
+ },
318
+ children: [subQuerySelected && _jsx(_Fragment, {
319
+ children: function () {
320
+ var showButton = store.tableEnableAlias || tableIsError() && isDel;
321
+ var icon = isDel ? _jsx(ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
322
+ return showButton ? _jsx(Tooltip, {
323
+ title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
324
+ children: _jsx(Button, {
325
+ danger: tableIsError(),
326
+ className: cx(':Sqb-TableName-as', {
327
+ isError: tableIsError()
328
+ }),
329
+ shape: 'circle',
330
+ style: isDel ? {
331
+ fontSize: 18,
332
+ backgroundColor: '#fff',
333
+ width: 'auto',
334
+ height: 'auto'
335
+ } : {},
336
+ iconOnly: true,
337
+ primary: !isDel,
338
+ icon: icon,
339
+ size: 'small',
340
+ onClick: function onClick(e) {
341
+ if (store.tableEnableAlias) {
342
+ var _meta$table4;
343
+ e.stopPropagation();
344
+ onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
345
+ }
339
346
  }
340
- }
341
- })
342
- }) : null;
343
- }()
344
- }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
347
+ })
348
+ }) : null;
349
+ }()
350
+ }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
351
+ })
345
352
  }) : _jsxs("div", {
346
353
  className: cx("Sqb-TableName", {
347
354
  notSelected: !selected
@@ -222,6 +222,7 @@ export interface MetaJoin {
222
222
  }
223
223
  export interface MetaCustom_Item {
224
224
  name: string;
225
+ id?: string;
225
226
  type?: string;
226
227
  formulaList?: AtomsItem[];
227
228
  }
package/lib/es/utils.js CHANGED
@@ -227,10 +227,11 @@ export var getSubColumns = function getSubColumns(metaList) {
227
227
  return {
228
228
  database_type: SQL_COLUMN_TYPE.STRING,
229
229
  name_zh: v.name,
230
+ id: v.id || v.name,
230
231
  name: v.name,
231
232
  select: true,
232
- fieldAlias: ''
233
- // fieldUuid: uuidv4('field'),
233
+ fieldAlias: '',
234
+ fieldUuid: uuidv4('field')
234
235
  };
235
236
  });
236
237
  return {
@@ -434,7 +435,6 @@ export var changeFieldAlias = function changeFieldAlias(list, curObj) {
434
435
  }
435
436
  if (v.type === TypeEnum.filter) {
436
437
  if (v.filter && v.filter.length > 0) {
437
- console.log(v.filter);
438
438
  v.filter = _changeAlias(v.filter, {
439
439
  uuid: uuid,
440
440
  alias: alias
@@ -757,14 +757,17 @@ var _isError = function isError(item, data) {
757
757
  } else {
758
758
  var _tables$_datasourceId2;
759
759
  return tables === null || tables === void 0 || (_tables$_datasourceId2 = tables[_datasourceId]) === null || _tables$_datasourceId2 === void 0 || (_tables$_datasourceId2 = _tables$_datasourceId2[tableId]) === null || _tables$_datasourceId2 === void 0 ? void 0 : _tables$_datasourceId2.every(function (field) {
760
+ if (field.id === undefined) {
761
+ return field.name !== fieldName;
762
+ }
760
763
  return field.name !== fieldName || field.id !== fieldId;
761
764
  });
762
765
  }
763
766
  } else {
764
- var _tables$_datasourceId3;
765
- var hasField = (tables === null || tables === void 0 || (_tables$_datasourceId3 = tables[_datasourceId]) === null || _tables$_datasourceId3 === void 0 || (_tables$_datasourceId3 = _tables$_datasourceId3[tableId + tableAlias]) === null || _tables$_datasourceId3 === void 0 || (_tables$_datasourceId3 = _tables$_datasourceId3.filter(function (v) {
766
- return v.name === fieldName && v.id === fieldId;
767
- })) === null || _tables$_datasourceId3 === void 0 ? void 0 : _tables$_datasourceId3.length) > 0;
767
+ var _tables$_datasourceId3, _tables$_datasourceId4;
768
+ var hasField = (_tables$_datasourceId3 = tables === null || tables === void 0 || (_tables$_datasourceId4 = tables[_datasourceId]) === null || _tables$_datasourceId4 === void 0 || (_tables$_datasourceId4 = _tables$_datasourceId4[tableId + tableAlias]) === null || _tables$_datasourceId4 === void 0 ? void 0 : _tables$_datasourceId4.some(function (v) {
769
+ return v.name === fieldName && (v.id === undefined || v.id === fieldId);
770
+ })) !== null && _tables$_datasourceId3 !== void 0 ? _tables$_datasourceId3 : false;
768
771
  return !hasField; // 注意:返回 true 表示“有错误”
769
772
  }
770
773
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.99",
3
+ "version": "1.0.101",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",