@gingkoo/pandora-metabase 1.0.33 → 1.0.35
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 +4 -2
- package/lib/cjs/components/dialog/formula-list/utils.js +8 -0
- package/lib/cjs/components/dialog/select-column-multiple/index.js +11 -9
- package/lib/cjs/components/dialog/select-permission-table/index.js +0 -1
- package/lib/cjs/components/modules/filter.js +14 -1
- package/lib/cjs/components/modules/join-data.js +48 -20
- package/lib/cjs/components/modules/summarize/group-by.js +2 -1
- package/lib/cjs/components/modules/table-data.js +34 -16
- package/lib/cjs/hooks/use-state.js +8 -26
- package/lib/cjs/locale/en.js +2 -0
- package/lib/cjs/locale/zh.js +2 -0
- package/lib/cjs/utils/helper.d.ts +1 -1
- package/lib/cjs/utils/helper.js +5 -1
- package/lib/cjs/utils/transformSql.d.ts +3 -4
- package/lib/cjs/utils/transformSql.js +72 -80
- package/lib/es/components/dialog/formula-list/index.js +4 -2
- package/lib/es/components/dialog/formula-list/utils.js +8 -0
- package/lib/es/components/dialog/select-column-multiple/index.js +11 -9
- package/lib/es/components/dialog/select-permission-table/index.js +0 -1
- package/lib/es/components/modules/filter.js +14 -1
- package/lib/es/components/modules/join-data.js +48 -20
- package/lib/es/components/modules/summarize/group-by.js +3 -2
- package/lib/es/components/modules/table-data.js +34 -16
- package/lib/es/hooks/use-state.js +8 -26
- package/lib/es/locale/en.js +2 -0
- package/lib/es/locale/zh.js +2 -0
- package/lib/es/utils/helper.d.ts +1 -1
- package/lib/es/utils/helper.js +5 -1
- package/lib/es/utils/transformSql.d.ts +3 -4
- package/lib/es/utils/transformSql.js +72 -80
- package/package.json +1 -1
|
@@ -28,7 +28,7 @@ var _selectList = _interopRequireDefault(require("../../dialog/select-list"));
|
|
|
28
28
|
var _arrow = _interopRequireDefault(require("./arrow.svg"));
|
|
29
29
|
var _useProvider = require("../../../hooks/use-provider");
|
|
30
30
|
var _itemName = _interopRequireDefault(require("../../modules/components/item-name"));
|
|
31
|
-
var _excluded = ["notExistsToolbar", "toolbar"]; // import './index.less';
|
|
31
|
+
var _excluded = ["notExistsToolbar", "subShowSubquery", "toolbar"]; // import './index.less';
|
|
32
32
|
var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
33
33
|
var value = props.value,
|
|
34
34
|
data = props.data,
|
|
@@ -145,6 +145,8 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
145
145
|
var _caseList$i, _caseList$i2;
|
|
146
146
|
var _store$preProps = store.preProps,
|
|
147
147
|
notExistsToolbar = _store$preProps.notExistsToolbar,
|
|
148
|
+
_store$preProps$subSh = _store$preProps.subShowSubquery,
|
|
149
|
+
subShowSubquery = _store$preProps$subSh === void 0 ? false : _store$preProps$subSh,
|
|
148
150
|
toolbar = _store$preProps.toolbar,
|
|
149
151
|
other = (0, _objectWithoutProperties2["default"])(_store$preProps, _excluded);
|
|
150
152
|
var _value = ((_caseList$i = caseList[i]) === null || _caseList$i === void 0 ? void 0 : _caseList$i.notExists) || [];
|
|
@@ -160,7 +162,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
160
162
|
children: (0, _jsxRuntime.jsx)(_index["default"], (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), {}, {
|
|
161
163
|
notExistsColumns: exitData,
|
|
162
164
|
showFields: false,
|
|
163
|
-
showSubquery
|
|
165
|
+
// showSubquery={subShowSubquery}
|
|
164
166
|
toolbar: _toolbar,
|
|
165
167
|
btnText: (0, _locale.__)('SqlQueryBuilder.confirm'),
|
|
166
168
|
value: (0, _cloneDeep["default"])(_value),
|
|
@@ -164,6 +164,14 @@ var customTypes = exports.customTypes = [
|
|
|
164
164
|
value: _types.AtomsTypeEnum.FORMULA,
|
|
165
165
|
label: (0, _locale.__)('customColumn.formula'),
|
|
166
166
|
children: operatorList
|
|
167
|
+
},
|
|
168
|
+
// EXISTS
|
|
169
|
+
{
|
|
170
|
+
value: _types.AtomsTypeEnum.NOT_EXISTS,
|
|
171
|
+
label: 'NOT_EXISTS'
|
|
172
|
+
}, {
|
|
173
|
+
value: _types.AtomsTypeEnum.EXISTS,
|
|
174
|
+
label: 'EXISTS'
|
|
167
175
|
}];
|
|
168
176
|
var getTemplateItem = exports.getTemplateItem = function getTemplateItem(type) {
|
|
169
177
|
var temItem;
|
|
@@ -71,7 +71,8 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
71
71
|
var _useState3 = (0, _react.useState)((_value === null || _value === void 0 || (_value$ = _value[0]) === null || _value$ === void 0 ? void 0 : _value$.tableId) === _helper.SummarizeAlias ? '' : _value === null || _value === void 0 || (_value$2 = _value[0]) === null || _value$2 === void 0 ? void 0 : _value$2.tableUuid),
|
|
72
72
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
73
73
|
curTable = _useState4[0],
|
|
74
|
-
setCurTable = _useState4[1];
|
|
74
|
+
setCurTable = _useState4[1];
|
|
75
|
+
// 当前选择的表
|
|
75
76
|
// const [curColumn, setCurColumn] = useState(_value); // 当前选择的字段
|
|
76
77
|
var _useState5 = (0, _react.useState)(data.map(function (v, i) {
|
|
77
78
|
var open = !i && !curTable ? true : v.tableUuid === curTable; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
|
|
@@ -99,9 +100,10 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
99
100
|
return v.tableUuid === tableUuid;
|
|
100
101
|
});
|
|
101
102
|
if (isHas.length < 1 && tableUuid !== _helper.SummarizeAlias) {
|
|
102
|
-
|
|
103
|
+
var _data$;
|
|
104
|
+
tableUuid = (data === null || data === void 0 || (_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.tableUuid) || '';
|
|
103
105
|
}
|
|
104
|
-
setTableList(data.map(function (v, i) {
|
|
106
|
+
setTableList(data === null || data === void 0 ? void 0 : data.map(function (v, i) {
|
|
105
107
|
var open = !i && !tableUuid ? true : v.tableUuid === tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
|
|
106
108
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
107
109
|
open: open,
|
|
@@ -168,7 +170,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
168
170
|
style: {
|
|
169
171
|
width: 300
|
|
170
172
|
},
|
|
171
|
-
children: tableList.map(function (tableItem) {
|
|
173
|
+
children: tableList.map(function (tableItem, i) {
|
|
172
174
|
var tableAlias = tableItem.alias,
|
|
173
175
|
tableName = tableItem.name,
|
|
174
176
|
columns = tableItem.columns,
|
|
@@ -273,7 +275,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
273
275
|
className: (0, _classnames["default"])("Sqb-List-section"),
|
|
274
276
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
275
277
|
className: (0, _classnames["default"])("Sqb-List-item mx-2", {
|
|
276
|
-
active: isActive(v.id)
|
|
278
|
+
active: isActive(v.id || v.name)
|
|
277
279
|
}),
|
|
278
280
|
onClick: function onClick() {
|
|
279
281
|
if (isSummarize) {
|
|
@@ -288,7 +290,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
288
290
|
datasourceName: tableItem.datasourceName || '',
|
|
289
291
|
datasourceId: tableItem.datasourceId || '',
|
|
290
292
|
fieldName: v.name,
|
|
291
|
-
fieldId: v.id,
|
|
293
|
+
fieldId: v.id || v.name,
|
|
292
294
|
fieldNameZh: v.name_zh || '',
|
|
293
295
|
fieldAlias: v.fieldAlias,
|
|
294
296
|
fieldUuid: v.fieldUuid,
|
|
@@ -316,9 +318,9 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
316
318
|
className: 'List-item-icon',
|
|
317
319
|
children: IconMap[special_type || database_type] || (0, _jsxRuntime.jsx)(_icons.LetterAaIcon, {})
|
|
318
320
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
319
|
-
children: (0, _jsxRuntime.
|
|
321
|
+
children: (0, _jsxRuntime.jsxs)("h4", {
|
|
320
322
|
className: 'List-item-title ml-2',
|
|
321
|
-
children: (0, _helper2.replaceTpl)(store.fieldNameTpl, v)
|
|
323
|
+
children: [(0, _helper2.replaceTpl)(store.fieldNameTpl, v), v.fieldAlias ? " as ".concat(v.fieldAlias) : '']
|
|
322
324
|
})
|
|
323
325
|
})]
|
|
324
326
|
})
|
|
@@ -326,7 +328,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
326
328
|
}, i);
|
|
327
329
|
})]
|
|
328
330
|
})]
|
|
329
|
-
}, tableUuid || tableAlias);
|
|
331
|
+
}, (tableUuid || tableAlias) + '' + i);
|
|
330
332
|
})
|
|
331
333
|
})
|
|
332
334
|
}), showNextBtn && multiple && (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -42,7 +42,6 @@ var SelectPermissionTable = function SelectPermissionTable(_ref) {
|
|
|
42
42
|
width: '100%'
|
|
43
43
|
},
|
|
44
44
|
children: Array.isArray(datasource) && datasource.map(function (v) {
|
|
45
|
-
console.log('🚀 ~ SelectPermissionTable ~ v:', v);
|
|
46
45
|
return (0, _jsxRuntime.jsx)("div", {
|
|
47
46
|
className: (0, _classnames["default"])("Sqb-List-section"),
|
|
48
47
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
@@ -149,6 +149,19 @@ var Filter = function Filter(props) {
|
|
|
149
149
|
newMeta[index].filter = val;
|
|
150
150
|
store.setMeta(newMeta, groupIndex);
|
|
151
151
|
};
|
|
152
|
+
var getPreColumns = function getPreColumns() {
|
|
153
|
+
var data = [].concat((0, _toConsumableArray2["default"])(getColumns()), (0, _toConsumableArray2["default"])((0, _cloneDeep["default"])(notExistsColumns || [])));
|
|
154
|
+
// 将source 拍到最前面
|
|
155
|
+
var priorityNames = ['source'];
|
|
156
|
+
var sorted = data.sort(function (a, b) {
|
|
157
|
+
var aPriority = priorityNames.includes(a.name);
|
|
158
|
+
var bPriority = priorityNames.includes(b.name);
|
|
159
|
+
if (aPriority && !bPriority) return -1;
|
|
160
|
+
if (!aPriority && bPriority) return 1;
|
|
161
|
+
return 0;
|
|
162
|
+
});
|
|
163
|
+
return sorted;
|
|
164
|
+
};
|
|
152
165
|
return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
|
|
153
166
|
className: "Sqb-item",
|
|
154
167
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -166,7 +179,7 @@ var Filter = function Filter(props) {
|
|
|
166
179
|
customTypes: _filterEnum.customTypes,
|
|
167
180
|
operatorList: _filterEnum.operatorList,
|
|
168
181
|
value: filter,
|
|
169
|
-
data:
|
|
182
|
+
data: getPreColumns(),
|
|
170
183
|
exitData: getColumns(),
|
|
171
184
|
onChange: function onChange(val) {
|
|
172
185
|
selectFilter(val);
|
|
@@ -67,7 +67,7 @@ var menuOperator = operators.map(function (v) {
|
|
|
67
67
|
};
|
|
68
68
|
});
|
|
69
69
|
var JoinData = function JoinData(props) {
|
|
70
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
70
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table3, _meta$table4, _meta$table6, _meta$table7, _meta$table8, _meta$table9, _meta$expressions, _meta$table0, _meta$table1, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
|
|
71
71
|
var meta = props.meta,
|
|
72
72
|
groupIndex = props.groupIndex;
|
|
73
73
|
var store = (0, _useProvider.useStore)();
|
|
@@ -79,7 +79,8 @@ var JoinData = function JoinData(props) {
|
|
|
79
79
|
var subQuerySelected = Boolean((_meta$subquery = meta.subquery) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery[0]) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery.table) === null || _meta$subquery === void 0 ? void 0 : _meta$subquery.name);
|
|
80
80
|
var columnsSelected = meta.table1.name && meta.table2.name;
|
|
81
81
|
var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
82
|
-
prevTables = _getHelper.prevTables
|
|
82
|
+
prevTables = _getHelper.prevTables,
|
|
83
|
+
prevGroupBy = _getHelper.prevGroupBy;
|
|
83
84
|
// const ref = useRef(null);
|
|
84
85
|
// useEffect(() => {
|
|
85
86
|
// let newMetaList = store.metaList[groupIndex].list.slice();
|
|
@@ -371,8 +372,9 @@ var JoinData = function JoinData(props) {
|
|
|
371
372
|
onChange: function onChange(data) {
|
|
372
373
|
var tableName = data.name;
|
|
373
374
|
if (meta.table2.name !== tableName || meta.table2.datasourceId !== data.datasourceId) {
|
|
375
|
+
var _store$preProps;
|
|
374
376
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
375
|
-
var alias = (0, _helper.getAlias)(tableName, newMeta);
|
|
377
|
+
var alias = (0, _helper.getAlias)(tableName, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []);
|
|
376
378
|
var _table2 = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
|
|
377
379
|
name: tableName,
|
|
378
380
|
tableUuid: data.tableUuid || (0, _helper.uuidv4)('table'),
|
|
@@ -606,6 +608,7 @@ var JoinData = function JoinData(props) {
|
|
|
606
608
|
return data;
|
|
607
609
|
}
|
|
608
610
|
function selectMoreJoinColumn(e) {
|
|
611
|
+
var _data2, _data3, _data4;
|
|
609
612
|
var node = e.currentTarget;
|
|
610
613
|
var _position = node.getAttribute('v-position');
|
|
611
614
|
var _ind = Number(node.getAttribute('v-index'));
|
|
@@ -722,6 +725,10 @@ var JoinData = function JoinData(props) {
|
|
|
722
725
|
columns: meta.columns
|
|
723
726
|
}];
|
|
724
727
|
}
|
|
728
|
+
// 字段为空,或只存在聚合且聚合为空时
|
|
729
|
+
if (data.length < 1 || Array.isArray(data) && ((_data2 = data) === null || _data2 === void 0 ? void 0 : _data2.length) === 1 && ((_data3 = data) === null || _data3 === void 0 || (_data3 = _data3[0]) === null || _data3 === void 0 ? void 0 : _data3.name) === _helper2.SummarizeAlias && ((_data4 = data) === null || _data4 === void 0 || (_data4 = _data4[0]) === null || _data4 === void 0 || (_data4 = _data4.columns) === null || _data4 === void 0 ? void 0 : _data4.length) < 1) {
|
|
730
|
+
_pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.pleaseSelectTable'));
|
|
731
|
+
}
|
|
725
732
|
!meta.readonly && store.setPopup({
|
|
726
733
|
visible: true,
|
|
727
734
|
node: node,
|
|
@@ -889,10 +896,10 @@ var JoinData = function JoinData(props) {
|
|
|
889
896
|
// 子查询弹窗
|
|
890
897
|
var showSubQuery = function showSubQuery() {
|
|
891
898
|
var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
892
|
-
var _store$
|
|
893
|
-
subToolbar = _store$
|
|
894
|
-
toolbar = _store$
|
|
895
|
-
other = (0, _objectWithoutProperties2["default"])(_store$
|
|
899
|
+
var _store$preProps2 = store.preProps,
|
|
900
|
+
subToolbar = _store$preProps2.subToolbar,
|
|
901
|
+
toolbar = _store$preProps2.toolbar,
|
|
902
|
+
other = (0, _objectWithoutProperties2["default"])(_store$preProps2, _excluded);
|
|
896
903
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
897
904
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
898
905
|
var oldList = (0, _cloneDeep["default"])(newMeta[index].subquery);
|
|
@@ -911,6 +918,7 @@ var JoinData = function JoinData(props) {
|
|
|
911
918
|
value: (0, _cloneDeep["default"])(val),
|
|
912
919
|
onOk: function onOk(newList) {
|
|
913
920
|
try {
|
|
921
|
+
var _store$preProps3;
|
|
914
922
|
// 子查询未改变不做操作
|
|
915
923
|
if ((0, _isEqual["default"])(newList, oldList)) {
|
|
916
924
|
o.close();
|
|
@@ -918,7 +926,7 @@ var JoinData = function JoinData(props) {
|
|
|
918
926
|
}
|
|
919
927
|
newMeta[index].subquery = newList;
|
|
920
928
|
newMeta[index].table2 = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newList[0].table), {}, {
|
|
921
|
-
alias: newMeta[index].table2.alias || (0, _helper.getAlias)(newList[0].table.name, newMeta)
|
|
929
|
+
alias: newMeta[index].table2.alias || (0, _helper.getAlias)(newList[0].table.name, newMeta, ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.notExistsColumns) || [])
|
|
922
930
|
// fields: [],
|
|
923
931
|
});
|
|
924
932
|
var items = (0, _utils.getSubColumns)(newList);
|
|
@@ -1143,6 +1151,9 @@ var JoinData = function JoinData(props) {
|
|
|
1143
1151
|
var leftTableIsError = function leftTableIsError() {
|
|
1144
1152
|
var _prevTables$meta$tabl;
|
|
1145
1153
|
if (!meta.table1.datasourceId || !meta.table1.id || meta.table1.datasourceId === _helper2.SummarizeAlias) {
|
|
1154
|
+
if (!prevGroupBy && meta.table1.id === _helper2.SummarizeAlias) {
|
|
1155
|
+
return true;
|
|
1156
|
+
}
|
|
1146
1157
|
return false;
|
|
1147
1158
|
}
|
|
1148
1159
|
return !(prevTables !== null && prevTables !== void 0 && (_prevTables$meta$tabl = prevTables[meta.table1.datasourceId]) !== null && _prevTables$meta$tabl !== void 0 && _prevTables$meta$tabl[meta.table1.alias || meta.table1.id]);
|
|
@@ -1222,6 +1233,17 @@ var JoinData = function JoinData(props) {
|
|
|
1222
1233
|
});
|
|
1223
1234
|
}
|
|
1224
1235
|
};
|
|
1236
|
+
var tableIsError = function tableIsError() {
|
|
1237
|
+
var _store$preProps4, _meta$table;
|
|
1238
|
+
var aliass = ((_store$preProps4 = store.preProps) === null || _store$preProps4 === void 0 || (_store$preProps4 = _store$preProps4.notExistsColumns) === null || _store$preProps4 === void 0 ? void 0 : _store$preProps4.map(function (v) {
|
|
1239
|
+
return v.alias;
|
|
1240
|
+
})) || [];
|
|
1241
|
+
var tableAlias = (_meta$table = meta.table2) === null || _meta$table === void 0 ? void 0 : _meta$table.alias;
|
|
1242
|
+
if (tableAlias && aliass.includes(tableAlias)) {
|
|
1243
|
+
return true;
|
|
1244
|
+
}
|
|
1245
|
+
return false;
|
|
1246
|
+
};
|
|
1225
1247
|
return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
|
|
1226
1248
|
className: (0, _classnames["default"])("Sqb-item"),
|
|
1227
1249
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -1271,42 +1293,48 @@ var JoinData = function JoinData(props) {
|
|
|
1271
1293
|
showSubQuery(meta.subquery);
|
|
1272
1294
|
},
|
|
1273
1295
|
children: [subQuerySelected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1274
|
-
title: (0, _locale.__)('SqlQueryBuilder.alias'),
|
|
1296
|
+
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1275
1297
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1276
|
-
|
|
1298
|
+
danger: tableIsError(),
|
|
1299
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
1300
|
+
isError: tableIsError()
|
|
1301
|
+
}),
|
|
1277
1302
|
shape: 'circle',
|
|
1278
1303
|
iconOnly: true,
|
|
1279
1304
|
primary: true,
|
|
1280
1305
|
icon: 'As',
|
|
1281
1306
|
size: 'small',
|
|
1282
1307
|
onClick: function onClick(e) {
|
|
1283
|
-
var _meta$
|
|
1308
|
+
var _meta$table2;
|
|
1284
1309
|
e.stopPropagation();
|
|
1285
|
-
onChangeTableAlias(((_meta$
|
|
1310
|
+
onChangeTableAlias(((_meta$table2 = meta.table2) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias) || '');
|
|
1286
1311
|
}
|
|
1287
1312
|
})
|
|
1288
|
-
}), 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$
|
|
1313
|
+
}), 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$table3 = meta.table2) !== null && _meta$table3 !== void 0 && _meta$table3.alias ? "as ".concat((_meta$table4 = meta.table2) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
1289
1314
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
1290
1315
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
1291
1316
|
notSelected: !table2Selected
|
|
1292
1317
|
}),
|
|
1293
1318
|
onClick: selectTable,
|
|
1294
1319
|
children: [table2Selected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1295
|
-
title: (0, _locale.__)('SqlQueryBuilder.alias'),
|
|
1320
|
+
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1296
1321
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1297
|
-
|
|
1322
|
+
danger: tableIsError(),
|
|
1323
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
1324
|
+
isError: tableIsError()
|
|
1325
|
+
}),
|
|
1298
1326
|
shape: 'circle',
|
|
1299
1327
|
iconOnly: true,
|
|
1300
1328
|
primary: true,
|
|
1301
1329
|
icon: 'As',
|
|
1302
1330
|
size: 'small',
|
|
1303
1331
|
onClick: function onClick(e) {
|
|
1304
|
-
var _meta$
|
|
1332
|
+
var _meta$table5;
|
|
1305
1333
|
e.stopPropagation();
|
|
1306
|
-
onChangeTableAlias(((_meta$
|
|
1334
|
+
onChangeTableAlias(((_meta$table5 = meta.table2) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) || '');
|
|
1307
1335
|
}
|
|
1308
1336
|
})
|
|
1309
|
-
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$
|
|
1337
|
+
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table6 = meta.table2) !== null && _meta$table6 !== void 0 && _meta$table6.alias ? "as ".concat((_meta$table7 = meta.table2) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
1310
1338
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1311
1339
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
1312
1340
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -1317,7 +1345,7 @@ var JoinData = function JoinData(props) {
|
|
|
1317
1345
|
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.RelatedWork, {}),
|
|
1318
1346
|
onClick: switchSubQuery
|
|
1319
1347
|
})
|
|
1320
|
-
}), ((_meta$
|
|
1348
|
+
}), ((_meta$table8 = meta.table2) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.name) && ((_meta$table9 = meta.table1) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
|
|
1321
1349
|
if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
|
|
1322
1350
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
1323
1351
|
className: (0, _classnames["default"])("Sqb-where block"),
|
|
@@ -1544,7 +1572,7 @@ var JoinData = function JoinData(props) {
|
|
|
1544
1572
|
})]
|
|
1545
1573
|
}, i);
|
|
1546
1574
|
}
|
|
1547
|
-
})), ((_meta$
|
|
1575
|
+
})), ((_meta$table0 = meta.table2) === null || _meta$table0 === void 0 ? void 0 : _meta$table0.name) && ((_meta$table1 = meta.table1) === null || _meta$table1 === void 0 ? void 0 : _meta$table1.name) && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1548
1576
|
title: (0, _locale.__)('SqlQueryBuilder.add'),
|
|
1549
1577
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
1550
1578
|
trigger: ['click'],
|
|
@@ -200,7 +200,8 @@ var GroupBy = function GroupBy(props) {
|
|
|
200
200
|
newMeta[index].by.push(data);
|
|
201
201
|
// @ts-ignore
|
|
202
202
|
newMeta[index].by = newMeta[index].by.map(function (v) {
|
|
203
|
-
var
|
|
203
|
+
var _store$preProps;
|
|
204
|
+
var fieldAlias = "".concat((0, _helper.getAlias)(v.alias, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []), "__").concat(v.name);
|
|
204
205
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
205
206
|
sql: "".concat(v.alias, ".").concat(v.realName || v.name),
|
|
206
207
|
fieldAlias: fieldAlias,
|
|
@@ -27,7 +27,7 @@ var _header = _interopRequireDefault(require("./components/header"));
|
|
|
27
27
|
var _useProvider = require("../../hooks/use-provider");
|
|
28
28
|
var _excluded = ["subToolbar", "toolbar"];
|
|
29
29
|
var TableData = function TableData(props) {
|
|
30
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
30
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table3, _meta$table4, _meta$table6, _meta$table7, _store$showMainColumn;
|
|
31
31
|
var meta = props.meta,
|
|
32
32
|
groupIndex = props.groupIndex;
|
|
33
33
|
var store = (0, _useProvider.useStore)();
|
|
@@ -42,10 +42,11 @@ var TableData = function TableData(props) {
|
|
|
42
42
|
value: meta.table,
|
|
43
43
|
onChange: function onChange(data) {
|
|
44
44
|
if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
|
|
45
|
+
var _store$preProps;
|
|
45
46
|
var newMetaList = store.metaList[groupIndex].list.slice()[0];
|
|
46
47
|
newMetaList.table = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
|
|
47
48
|
tableUuid: (0, _helper.uuidv4)('table'),
|
|
48
|
-
alias: (0, _helper.getAlias)(data.name, store.metaList[groupIndex].list.slice())
|
|
49
|
+
alias: (0, _helper.getAlias)(data.name, store.metaList[groupIndex].list.slice(), ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || [])
|
|
49
50
|
});
|
|
50
51
|
store.fetchColumns(data, data.datasourceId, [], function (columns) {
|
|
51
52
|
newMetaList.columns = columns;
|
|
@@ -125,10 +126,10 @@ var TableData = function TableData(props) {
|
|
|
125
126
|
// 子查询弹窗
|
|
126
127
|
var showSubQuery = function showSubQuery() {
|
|
127
128
|
var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
128
|
-
var _store$
|
|
129
|
-
subToolbar = _store$
|
|
130
|
-
toolbar = _store$
|
|
131
|
-
other = (0, _objectWithoutProperties2["default"])(_store$
|
|
129
|
+
var _store$preProps2 = store.preProps,
|
|
130
|
+
subToolbar = _store$preProps2.subToolbar,
|
|
131
|
+
toolbar = _store$preProps2.toolbar,
|
|
132
|
+
other = (0, _objectWithoutProperties2["default"])(_store$preProps2, _excluded);
|
|
132
133
|
var newMetaList = store.metaList[groupIndex].list.slice()[0];
|
|
133
134
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
134
135
|
var oldList = (0, _cloneDeep["default"])(newMetaList.subquery);
|
|
@@ -212,6 +213,17 @@ var TableData = function TableData(props) {
|
|
|
212
213
|
};
|
|
213
214
|
store.setMeta(newMetaList, groupIndex);
|
|
214
215
|
};
|
|
216
|
+
var tableIsError = function tableIsError() {
|
|
217
|
+
var _store$preProps3, _meta$table;
|
|
218
|
+
var aliass = ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 || (_store$preProps3 = _store$preProps3.notExistsColumns) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.map(function (v) {
|
|
219
|
+
return v.alias;
|
|
220
|
+
})) || [];
|
|
221
|
+
var tableAlias = (_meta$table = meta.table) === null || _meta$table === void 0 ? void 0 : _meta$table.alias;
|
|
222
|
+
if (tableAlias && aliass.includes(tableAlias)) {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
return false;
|
|
226
|
+
};
|
|
215
227
|
return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
|
|
216
228
|
className: "Sqb-item",
|
|
217
229
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -230,42 +242,48 @@ var TableData = function TableData(props) {
|
|
|
230
242
|
showSubQuery(meta.subquery);
|
|
231
243
|
},
|
|
232
244
|
children: [subQuerySelected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
233
|
-
title: (0, _locale.__)('SqlQueryBuilder.alias'),
|
|
245
|
+
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
234
246
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
235
|
-
|
|
247
|
+
danger: tableIsError(),
|
|
248
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
249
|
+
isError: tableIsError()
|
|
250
|
+
}),
|
|
236
251
|
shape: 'circle',
|
|
237
252
|
iconOnly: true,
|
|
238
253
|
primary: true,
|
|
239
254
|
icon: 'As',
|
|
240
255
|
size: 'small',
|
|
241
256
|
onClick: function onClick(e) {
|
|
242
|
-
var _meta$
|
|
257
|
+
var _meta$table2;
|
|
243
258
|
e.stopPropagation();
|
|
244
|
-
onChangeTableAlias(((_meta$
|
|
259
|
+
onChangeTableAlias(((_meta$table2 = meta.table) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias) || '');
|
|
245
260
|
}
|
|
246
261
|
})
|
|
247
|
-
}), 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$
|
|
262
|
+
}), 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$table3 = meta.table) !== null && _meta$table3 !== void 0 && _meta$table3.alias ? "as ".concat((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
248
263
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
249
264
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
250
265
|
notSelected: !selected
|
|
251
266
|
}),
|
|
252
267
|
onClick: selectTable,
|
|
253
268
|
children: [selected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
254
|
-
title: (0, _locale.__)('SqlQueryBuilder.alias'),
|
|
269
|
+
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
255
270
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
256
|
-
|
|
271
|
+
danger: tableIsError(),
|
|
272
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
273
|
+
isError: tableIsError()
|
|
274
|
+
}),
|
|
257
275
|
shape: 'circle',
|
|
258
276
|
iconOnly: true,
|
|
259
277
|
primary: true,
|
|
260
278
|
icon: 'As',
|
|
261
279
|
size: 'small',
|
|
262
280
|
onClick: function onClick(e) {
|
|
263
|
-
var _meta$
|
|
281
|
+
var _meta$table5;
|
|
264
282
|
e.stopPropagation();
|
|
265
|
-
onChangeTableAlias(((_meta$
|
|
283
|
+
onChangeTableAlias(((_meta$table5 = meta.table) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) || '');
|
|
266
284
|
}
|
|
267
285
|
})
|
|
268
|
-
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$
|
|
286
|
+
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table6 = meta.table) !== null && _meta$table6 !== void 0 && _meta$table6.alias ? "as ".concat((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
269
287
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
270
288
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
271
289
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -278,9 +278,12 @@ var useStore = function useStore() {
|
|
|
278
278
|
};
|
|
279
279
|
}();
|
|
280
280
|
var setMeta = function setMeta(curData, groupInd) {
|
|
281
|
-
var
|
|
282
|
-
newMeta
|
|
283
|
-
|
|
281
|
+
var _metaList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : metaList;
|
|
282
|
+
var newMeta = _metaList.slice();
|
|
283
|
+
if (newMeta[groupInd]) {
|
|
284
|
+
newMeta[groupInd].list = curData;
|
|
285
|
+
_setMeta(newMeta);
|
|
286
|
+
}
|
|
284
287
|
};
|
|
285
288
|
// 回显
|
|
286
289
|
var setPreData = function setPreData(data) {
|
|
@@ -294,27 +297,6 @@ var useStore = function useStore() {
|
|
|
294
297
|
if (v.table) {
|
|
295
298
|
v.table.tableUuid = v.table.tableUuid || (0, _helper.uuidv4)('table');
|
|
296
299
|
}
|
|
297
|
-
// // 兼容
|
|
298
|
-
// if (patchVersion != '1.0.0') {
|
|
299
|
-
// if (v.type === TypeEnum.joinData) {
|
|
300
|
-
// v = joinDataPatch(v);
|
|
301
|
-
// }
|
|
302
|
-
// if (v.type === TypeEnum.filter) {
|
|
303
|
-
// v = filterPatch(v);
|
|
304
|
-
// }
|
|
305
|
-
// if (v.type === TypeEnum.sort) {
|
|
306
|
-
// v = sortPatch(v);
|
|
307
|
-
// }
|
|
308
|
-
// if (v.type === TypeEnum.customColumn) {
|
|
309
|
-
// v = customColumnPatch(v);
|
|
310
|
-
// }
|
|
311
|
-
// if (v.type === TypeEnum.data) {
|
|
312
|
-
// v = dataPatch(v);
|
|
313
|
-
// }
|
|
314
|
-
// }
|
|
315
|
-
// if (v.type === TypeEnum.filter) {
|
|
316
|
-
// newMeta[i] = setFilterQuotes(newMeta[i]);
|
|
317
|
-
// }
|
|
318
300
|
// 设置右侧column
|
|
319
301
|
if ((_v$table = v.table2) !== null && _v$table !== void 0 && _v$table.datasourceId) {
|
|
320
302
|
fetchColumns(newMeta[i].table2, newMeta[i].table2.datasourceId, v.columns, function () {
|
|
@@ -329,7 +311,7 @@ var useStore = function useStore() {
|
|
|
329
311
|
} else {
|
|
330
312
|
newMeta[i].columns = columns || [];
|
|
331
313
|
}
|
|
332
|
-
setMeta(newMeta, groupIndex);
|
|
314
|
+
setMeta(newMeta, groupIndex, data);
|
|
333
315
|
});
|
|
334
316
|
return (0, _objectSpread2["default"])({}, v);
|
|
335
317
|
}
|
|
@@ -350,7 +332,7 @@ var useStore = function useStore() {
|
|
|
350
332
|
// if (v.type === TypeEnum.joinData) {
|
|
351
333
|
// newMeta[i] = setQuotes(newMeta[i]);
|
|
352
334
|
// }
|
|
353
|
-
setMeta(newMeta, groupIndex);
|
|
335
|
+
setMeta(newMeta, groupIndex, data);
|
|
354
336
|
});
|
|
355
337
|
return (0, _objectSpread2["default"])({}, v);
|
|
356
338
|
}
|
package/lib/cjs/locale/en.js
CHANGED
|
@@ -56,6 +56,8 @@ var _default = exports["default"] = (0, _index.register)('en', {
|
|
|
56
56
|
'SqlQueryBuilder.selectColumnAll': 'select all',
|
|
57
57
|
'SqlQueryBuilder.alias': 'alias',
|
|
58
58
|
'SqlQueryBuilder.aliasForRules': 'The alias only supports a combination of letters, numbers, and underscores. It must start with a letter and cannot exceed 30 bytes',
|
|
59
|
+
'SqlQueryBuilder.pleaseSelectTable': 'The currently dependent table is empty or has been deleted',
|
|
60
|
+
'SqlQueryBuilder.repeatAlias': 'If there are duplicate names, please modify them',
|
|
59
61
|
'customColumn.operator': 'operator',
|
|
60
62
|
'customColumn.collection': 'collection',
|
|
61
63
|
'customColumn.field': 'field',
|
package/lib/cjs/locale/zh.js
CHANGED
|
@@ -52,6 +52,8 @@ var _default = exports["default"] = (0, _index.register)('zh', {
|
|
|
52
52
|
'SqlQueryBuilder.selectColumnAll': '全选',
|
|
53
53
|
'SqlQueryBuilder.alias': '别名',
|
|
54
54
|
'SqlQueryBuilder.aliasForRules': '别名只支持字母 + 数字 + 下划线组合,必须是字母开头,且不能超过30个字节',
|
|
55
|
+
'SqlQueryBuilder.pleaseSelectTable': '当前依赖的表为空或被删除',
|
|
56
|
+
'SqlQueryBuilder.repeatAlias': '有重名请修改',
|
|
55
57
|
'customColumn.operator': '操作符',
|
|
56
58
|
'customColumn.collection': '自定义组合',
|
|
57
59
|
'customColumn.field': '字段',
|
|
@@ -16,4 +16,4 @@ export declare const replaceTpl: (inputString: string, values: {
|
|
|
16
16
|
[key: string]: any;
|
|
17
17
|
}) => string;
|
|
18
18
|
export declare const uuidv4: (prefix?: string) => string;
|
|
19
|
-
export declare const getAlias: (name: string | undefined, list: MetaListType[]) => string;
|
|
19
|
+
export declare const getAlias: (name: string | undefined, list: MetaListType[], columns?: any[]) => string;
|
package/lib/cjs/utils/helper.js
CHANGED
|
@@ -141,6 +141,7 @@ var uuidv4 = exports.uuidv4 = function uuidv4() {
|
|
|
141
141
|
var getAlias = exports.getAlias = function getAlias() {
|
|
142
142
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
143
143
|
var list = arguments.length > 1 ? arguments[1] : undefined;
|
|
144
|
+
var columns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
144
145
|
// 提取所有有效的 alias
|
|
145
146
|
if (!list || list.length < 1) return name;
|
|
146
147
|
// const baseOld = oldName?.split('_')[0] ?? '';
|
|
@@ -158,9 +159,12 @@ var getAlias = exports.getAlias = function getAlias() {
|
|
|
158
159
|
return (_v$table2 = v.table2) === null || _v$table2 === void 0 ? void 0 : _v$table2.alias;
|
|
159
160
|
}
|
|
160
161
|
return undefined;
|
|
161
|
-
}).
|
|
162
|
+
}).concat(columns.map(function (v) {
|
|
163
|
+
return v.alias;
|
|
164
|
+
})).filter(function (alias) {
|
|
162
165
|
return Boolean(alias);
|
|
163
166
|
});
|
|
167
|
+
console.log('🚀 ~ getAlias ~ aliass:', aliass);
|
|
164
168
|
// 收集所有 name_x 中的数字
|
|
165
169
|
var regex = new RegExp("^".concat(name, "_(\\d+)$"));
|
|
166
170
|
var indexes = aliass.map(function (alias) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const transformSql: (metas: MetaListType[], db?: string) => {
|
|
1
|
+
export declare const transformSql: (metas: any, db?: string) => {
|
|
3
2
|
sql: string;
|
|
4
|
-
fields: any
|
|
5
|
-
union_fields: any[]
|
|
3
|
+
fields: any;
|
|
4
|
+
union_fields: any[];
|
|
6
5
|
};
|