@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.
- package/lib/cjs/components/dialog/formula-list/index.js +15 -12
- package/lib/cjs/components/dialog/select-column/index.d.ts +1 -1
- package/lib/cjs/components/dialog/select-column/index.js +3 -3
- package/lib/cjs/components/modules/custom-column.js +1 -1
- package/lib/cjs/components/modules/join-data.js +9 -7
- package/lib/cjs/components/modules/table-data.js +53 -46
- package/lib/cjs/store/types.d.ts +1 -0
- package/lib/cjs/utils.js +10 -7
- package/lib/es/components/dialog/formula-list/index.js +15 -12
- package/lib/es/components/dialog/select-column/index.d.ts +1 -1
- package/lib/es/components/dialog/select-column/index.js +3 -3
- package/lib/es/components/modules/custom-column.js +2 -2
- package/lib/es/components/modules/join-data.js +9 -7
- package/lib/es/components/modules/table-data.js +54 -47
- package/lib/es/store/types.d.ts +1 -0
- package/lib/es/utils.js +10 -7
- package/package.json +1 -1
|
@@ -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.
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
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
|
|
649
|
+
return showSubQuery(index);
|
|
655
650
|
},
|
|
656
|
-
children: (0, _jsxRuntime.jsx)(
|
|
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
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
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
|
-
|
|
132
|
+
onChange: function onChange(data, newMetaList) {
|
|
133
|
+
// 当前值已改变。必须以传入的数组为准,改变别名
|
|
134
|
+
var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
|
|
133
135
|
// @ts-ignore
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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.
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
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
|
-
})
|
|
349
|
-
}()
|
|
350
|
-
})
|
|
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
|
package/lib/cjs/store/types.d.ts
CHANGED
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
|
-
|
|
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$
|
|
779
|
-
return v.name === fieldName && v.id === fieldId;
|
|
780
|
-
}))
|
|
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
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
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
|
|
641
|
+
return showSubQuery(index);
|
|
647
642
|
},
|
|
648
|
-
children: _jsx(
|
|
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
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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
|
-
|
|
126
|
+
onChange: function onChange(data, newMetaList) {
|
|
127
|
+
// 当前值已改变。必须以传入的数组为准,改变别名
|
|
128
|
+
var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
|
|
127
129
|
// @ts-ignore
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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 ?
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
})
|
|
343
|
-
}()
|
|
344
|
-
})
|
|
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
|
package/lib/es/store/types.d.ts
CHANGED
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
|
-
|
|
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$
|
|
766
|
-
return v.name === fieldName && v.id === fieldId;
|
|
767
|
-
}))
|
|
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
|
}
|