@gingkoo/pandora-metabase 1.0.54 → 1.0.56
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/select-column/index.js +6 -2
- package/lib/cjs/components/modules/custom-column.js +13 -3
- package/lib/cjs/components/modules/filter.js +5 -1
- package/lib/cjs/components/modules/join-data.js +191 -69
- package/lib/cjs/components/modules/summarize/group-by.js +27 -16
- package/lib/cjs/components/modules/summarize/select-index.js +27 -16
- package/lib/cjs/components/modules/table-data.js +123 -55
- package/lib/cjs/hooks/use-state.js +74 -14
- package/lib/cjs/index.js +17 -4
- package/lib/cjs/store/types.d.ts +18 -0
- package/lib/cjs/store/types.js +21 -1
- package/lib/cjs/types.d.ts +5 -0
- package/lib/es/components/dialog/select-column/index.js +6 -2
- package/lib/es/components/modules/custom-column.js +13 -3
- package/lib/es/components/modules/filter.js +5 -1
- package/lib/es/components/modules/join-data.js +192 -70
- package/lib/es/components/modules/summarize/group-by.js +29 -18
- package/lib/es/components/modules/summarize/select-index.js +29 -18
- package/lib/es/components/modules/table-data.js +123 -55
- package/lib/es/hooks/use-state.js +75 -14
- package/lib/es/index.js +17 -4
- package/lib/es/store/types.d.ts +18 -0
- package/lib/es/store/types.js +20 -0
- package/lib/es/types.d.ts +5 -0
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
10
|
import cx from 'classnames';
|
|
11
11
|
import { __ } from '../../locale';
|
|
12
|
+
import { ChangeType } from '../../store/types';
|
|
12
13
|
import { Tooltip, Button, Modal, Modal2, Input, Toast } from '@gingkoo/pandora';
|
|
13
14
|
import Metabase from '../../index';
|
|
14
15
|
import { uuidv4, getAlias } from '../../utils/helper';
|
|
@@ -83,6 +84,7 @@ var TableData = function TableData(props) {
|
|
|
83
84
|
data: store.sourceList,
|
|
84
85
|
value: meta.table,
|
|
85
86
|
onChange: function onChange(data) {
|
|
87
|
+
console.log('🚀 ~ selectTable ~ data:', data);
|
|
86
88
|
if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
|
|
87
89
|
var _store$preProps;
|
|
88
90
|
var newMetaList = store.metaList[groupIndex].list.slice()[0];
|
|
@@ -95,7 +97,10 @@ var TableData = function TableData(props) {
|
|
|
95
97
|
// ① 主表动了 其他都得重新选
|
|
96
98
|
var newMetas = store.metaList[groupIndex].list.slice();
|
|
97
99
|
newMetas[0] = newMetaList;
|
|
98
|
-
store.setMeta(newMetas, groupIndex
|
|
100
|
+
store.setMeta(newMetas, groupIndex, {
|
|
101
|
+
obj: data,
|
|
102
|
+
type: ChangeType.datasource
|
|
103
|
+
});
|
|
99
104
|
// store.setMeta([newMetaList], groupIndex);
|
|
100
105
|
});
|
|
101
106
|
}
|
|
@@ -119,7 +124,10 @@ var TableData = function TableData(props) {
|
|
|
119
124
|
var newMetaList = store.metaList[groupIndex].list.slice();
|
|
120
125
|
// @ts-ignore
|
|
121
126
|
newMetaList[0].columns = data;
|
|
122
|
-
store.setMeta(newMetaList, groupIndex
|
|
127
|
+
store.setMeta(newMetaList, groupIndex, {
|
|
128
|
+
obj: data,
|
|
129
|
+
type: ChangeType.columns
|
|
130
|
+
});
|
|
123
131
|
}
|
|
124
132
|
})
|
|
125
133
|
});
|
|
@@ -151,7 +159,10 @@ var TableData = function TableData(props) {
|
|
|
151
159
|
newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
|
|
152
160
|
newMetaList[0].table.alias = alias;
|
|
153
161
|
newMetaList = changeTableAlias(newMetaList, newMetaList[0].table);
|
|
154
|
-
store.setMeta(newMetaList, groupIndex
|
|
162
|
+
store.setMeta(newMetaList, groupIndex, {
|
|
163
|
+
obj: newMetaList[0].table,
|
|
164
|
+
type: ChangeType.tableAlias
|
|
165
|
+
});
|
|
155
166
|
case 2:
|
|
156
167
|
case "end":
|
|
157
168
|
return _context2.stop();
|
|
@@ -215,13 +226,18 @@ var TableData = function TableData(props) {
|
|
|
215
226
|
var existingCol = newMetaList.columns.find(function (oldCol) {
|
|
216
227
|
return oldCol.name === newCol.name;
|
|
217
228
|
});
|
|
229
|
+
var _column = existingCol ? existingCol : newCol;
|
|
230
|
+
_column.select = store.isSelectFields || _column.select;
|
|
218
231
|
// 如果存在,返回旧列;否则返回新列
|
|
219
|
-
return
|
|
232
|
+
return _column;
|
|
220
233
|
});
|
|
221
234
|
// (newMeta[index] as MetaJoin).expressions = [];
|
|
222
235
|
var newMetas = store.metaList[groupIndex].list.slice();
|
|
223
236
|
newMetas[0] = newMetaList;
|
|
224
|
-
store.setMeta(newMetas, groupIndex
|
|
237
|
+
store.setMeta(newMetas, groupIndex, {
|
|
238
|
+
obj: newList,
|
|
239
|
+
type: ChangeType.subQuery
|
|
240
|
+
});
|
|
225
241
|
o.close();
|
|
226
242
|
} catch (e) {
|
|
227
243
|
console.warn(e);
|
|
@@ -284,61 +300,113 @@ var TableData = function TableData(props) {
|
|
|
284
300
|
onClick: function onClick() {
|
|
285
301
|
showSubQuery(meta.subquery);
|
|
286
302
|
},
|
|
287
|
-
children: [subQuerySelected && _jsx(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
303
|
+
children: [subQuerySelected && _jsx(_Fragment, {
|
|
304
|
+
children: function () {
|
|
305
|
+
var showButton = store.tableEnableAlias || tableIsError() && isDel;
|
|
306
|
+
var icon = isDel ? _jsx(ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
|
|
307
|
+
return showButton ? _jsx(Tooltip, {
|
|
308
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
309
|
+
children: _jsx(Button, {
|
|
310
|
+
danger: tableIsError(),
|
|
311
|
+
className: cx(':Sqb-TableName-as', {
|
|
312
|
+
isError: tableIsError()
|
|
313
|
+
}),
|
|
314
|
+
shape: 'circle',
|
|
315
|
+
style: isDel ? {
|
|
316
|
+
fontSize: 18,
|
|
317
|
+
backgroundColor: '#fff',
|
|
318
|
+
width: 'auto',
|
|
319
|
+
height: 'auto'
|
|
320
|
+
} : {},
|
|
321
|
+
iconOnly: true,
|
|
322
|
+
primary: !isDel,
|
|
323
|
+
icon: icon,
|
|
324
|
+
size: 'small',
|
|
325
|
+
onClick: function onClick(e) {
|
|
326
|
+
if (store.tableEnableAlias) {
|
|
327
|
+
var _meta$table4;
|
|
328
|
+
e.stopPropagation();
|
|
329
|
+
onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
})
|
|
333
|
+
}) : null;
|
|
334
|
+
}()
|
|
335
|
+
}), 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')]
|
|
312
336
|
}) : _jsxs("div", {
|
|
313
337
|
className: cx("Sqb-TableName", {
|
|
314
338
|
notSelected: !selected
|
|
315
339
|
}),
|
|
316
340
|
onClick: selectTable,
|
|
317
|
-
children: [selected && _jsx(
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
341
|
+
children: [selected && _jsx(_Fragment, {
|
|
342
|
+
children: function () {
|
|
343
|
+
var showButton = store.tableEnableAlias || tableIsError() && isDel;
|
|
344
|
+
var icon = isDel ? _jsx(ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
|
|
345
|
+
return showButton ? _jsx(Tooltip, {
|
|
346
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
347
|
+
children: _jsx(Button, {
|
|
348
|
+
danger: tableIsError(),
|
|
349
|
+
className: cx(':Sqb-TableName-as', {
|
|
350
|
+
isError: tableIsError()
|
|
351
|
+
}),
|
|
352
|
+
shape: 'circle',
|
|
353
|
+
style: isDel ? {
|
|
354
|
+
fontSize: 18,
|
|
355
|
+
backgroundColor: '#fff',
|
|
356
|
+
width: 'auto',
|
|
357
|
+
height: 'auto'
|
|
358
|
+
} : {},
|
|
359
|
+
iconOnly: true,
|
|
360
|
+
primary: !isDel,
|
|
361
|
+
icon: icon,
|
|
362
|
+
size: 'small',
|
|
363
|
+
onClick: function onClick(e) {
|
|
364
|
+
if (store.tableEnableAlias) {
|
|
365
|
+
var _meta$table7;
|
|
366
|
+
e.stopPropagation();
|
|
367
|
+
onChangeTableAlias(((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) || '');
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
})
|
|
371
|
+
}) : null;
|
|
372
|
+
}()
|
|
373
|
+
})
|
|
374
|
+
// <Tooltip
|
|
375
|
+
// title={__(
|
|
376
|
+
// tableIsError()
|
|
377
|
+
// ? isDel
|
|
378
|
+
// ? 'metabase.verify'
|
|
379
|
+
// : 'SqlQueryBuilder.repeatAlias'
|
|
380
|
+
// : 'SqlQueryBuilder.alias',
|
|
381
|
+
// )}
|
|
382
|
+
// >
|
|
383
|
+
// <Button
|
|
384
|
+
// danger={tableIsError()}
|
|
385
|
+
// className={cx(':Sqb-TableName-as', {
|
|
386
|
+
// isError: tableIsError(),
|
|
387
|
+
// })}
|
|
388
|
+
// shape='circle'
|
|
389
|
+
// style={
|
|
390
|
+
// isDel
|
|
391
|
+
// ? {
|
|
392
|
+
// fontSize: 18,
|
|
393
|
+
// backgroundColor: '#fff',
|
|
394
|
+
// width: 'auto',
|
|
395
|
+
// height: 'auto',
|
|
396
|
+
// }
|
|
397
|
+
// : {}
|
|
398
|
+
// }
|
|
399
|
+
// iconOnly
|
|
400
|
+
// primary={!isDel}
|
|
401
|
+
// icon={isDel ? <ExclamationCircleFill /> : 'As'}
|
|
402
|
+
// size='small'
|
|
403
|
+
// onClick={(e) => {
|
|
404
|
+
// e.stopPropagation();
|
|
405
|
+
// onChangeTableAlias(meta.table?.alias || '');
|
|
406
|
+
// }}
|
|
407
|
+
// ></Button>
|
|
408
|
+
// </Tooltip>
|
|
409
|
+
, selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : __('SqlQueryBuilder.pickTable')]
|
|
342
410
|
}), store.showSubquery && _jsx(Tooltip, {
|
|
343
411
|
title: __('SqlQueryBuilder.switchSubQuery'),
|
|
344
412
|
children: _jsx(Button, {
|
|
@@ -8,6 +8,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
8
8
|
import { useState, useRef, useMemo } from 'react';
|
|
9
9
|
import { uuidv4 } from '../utils/helper';
|
|
10
10
|
import { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';
|
|
11
|
+
import { splitByUnion } from '../utils';
|
|
12
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
11
13
|
import { findIndex } from '../utils';
|
|
12
14
|
var metaKey = 1;
|
|
13
15
|
export var SummarizeAlias = 'source';
|
|
@@ -126,6 +128,18 @@ var useStore = function useStore() {
|
|
|
126
128
|
_useState38 = _slicedToArray(_useState37, 2),
|
|
127
129
|
isExit = _useState38[0],
|
|
128
130
|
setIsExit = _useState38[1]; // 是否是notExit
|
|
131
|
+
var _useState39 = useState(true),
|
|
132
|
+
_useState40 = _slicedToArray(_useState39, 2),
|
|
133
|
+
tableEnableAlias = _useState40[0],
|
|
134
|
+
setTableEnableAlias = _useState40[1]; // 表名是否开启别名
|
|
135
|
+
var _useState41 = useState(true),
|
|
136
|
+
_useState42 = _slicedToArray(_useState41, 2),
|
|
137
|
+
fieldEnableAlias = _useState42[0],
|
|
138
|
+
setFieldEnableAlias = _useState42[1]; // 字段名是否开启别名
|
|
139
|
+
var _useState43 = useState(true),
|
|
140
|
+
_useState44 = _slicedToArray(_useState43, 2),
|
|
141
|
+
isSelectFields = _useState44[0],
|
|
142
|
+
setIsSelectFields = _useState44[1]; // 是否默认勾选字段
|
|
129
143
|
// 外层ref
|
|
130
144
|
var popupContainer = useRef();
|
|
131
145
|
// const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
|
|
@@ -136,6 +150,10 @@ var useStore = function useStore() {
|
|
|
136
150
|
fetchDatasetFn.current = fn;
|
|
137
151
|
};
|
|
138
152
|
var fetchColumnsFn = useRef();
|
|
153
|
+
var fetchChangeFn = useRef();
|
|
154
|
+
var setFetchChangeFn = function setFetchChangeFn(fn) {
|
|
155
|
+
fetchChangeFn.current = fn;
|
|
156
|
+
};
|
|
139
157
|
var setFetchColumnsFn = function setFetchColumnsFn(fn) {
|
|
140
158
|
fetchColumnsFn.current = fn;
|
|
141
159
|
};
|
|
@@ -219,6 +237,7 @@ var useStore = function useStore() {
|
|
|
219
237
|
var _columns2;
|
|
220
238
|
var oldColumns,
|
|
221
239
|
callback,
|
|
240
|
+
isSelect,
|
|
222
241
|
oldObj,
|
|
223
242
|
selectId,
|
|
224
243
|
_table$alias,
|
|
@@ -236,6 +255,7 @@ var useStore = function useStore() {
|
|
|
236
255
|
case 0:
|
|
237
256
|
oldColumns = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
|
|
238
257
|
callback = _args2.length > 3 ? _args2[3] : undefined;
|
|
258
|
+
isSelect = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : isSelectFields;
|
|
239
259
|
// 获取之前选中的数据
|
|
240
260
|
oldObj = {};
|
|
241
261
|
selectId = oldColumns.filter(function (v) {
|
|
@@ -264,7 +284,7 @@ var useStore = function useStore() {
|
|
|
264
284
|
var obj = {};
|
|
265
285
|
obj = oldObj[v.id] || {};
|
|
266
286
|
return _objectSpread(_objectSpread(_objectSpread({}, obj), v), {}, {
|
|
267
|
-
select: select,
|
|
287
|
+
select: isSelect || select,
|
|
268
288
|
fieldUuid: obj.fieldUuid || v.fieldUuid || uuidv4('field')
|
|
269
289
|
});
|
|
270
290
|
});
|
|
@@ -279,14 +299,47 @@ var useStore = function useStore() {
|
|
|
279
299
|
return _ref2.apply(this, arguments);
|
|
280
300
|
};
|
|
281
301
|
}();
|
|
282
|
-
var setMeta = function
|
|
283
|
-
var
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
302
|
+
var setMeta = /*#__PURE__*/function () {
|
|
303
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(curData, groupInd) {
|
|
304
|
+
var changeObj,
|
|
305
|
+
_metaList,
|
|
306
|
+
newMeta,
|
|
307
|
+
isChange,
|
|
308
|
+
_args3 = arguments;
|
|
309
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
310
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
311
|
+
case 0:
|
|
312
|
+
changeObj = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
|
|
313
|
+
_metaList = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : metaList;
|
|
314
|
+
newMeta = cloneDeep(_metaList);
|
|
315
|
+
if (newMeta[groupInd]) {
|
|
316
|
+
newMeta[groupInd].list = curData;
|
|
317
|
+
_setMeta(newMeta);
|
|
318
|
+
}
|
|
319
|
+
// 过滤掉初始化
|
|
320
|
+
if (!(changeObj === 'init')) {
|
|
321
|
+
_context3.next = 1;
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
return _context3.abrupt("return");
|
|
325
|
+
case 1:
|
|
326
|
+
_context3.next = 2;
|
|
327
|
+
return fetchChangeFn.current(splitByUnion(_metaList), changeObj);
|
|
328
|
+
case 2:
|
|
329
|
+
isChange = _context3.sent;
|
|
330
|
+
if (isChange === false) {
|
|
331
|
+
_setMeta(_metaList);
|
|
332
|
+
}
|
|
333
|
+
case 3:
|
|
334
|
+
case "end":
|
|
335
|
+
return _context3.stop();
|
|
336
|
+
}
|
|
337
|
+
}, _callee3);
|
|
338
|
+
}));
|
|
339
|
+
return function setMeta(_x4, _x5) {
|
|
340
|
+
return _ref3.apply(this, arguments);
|
|
341
|
+
};
|
|
342
|
+
}();
|
|
290
343
|
// 回显
|
|
291
344
|
var setPreData = function setPreData(data) {
|
|
292
345
|
// let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
|
|
@@ -311,8 +364,8 @@ var useStore = function useStore() {
|
|
|
311
364
|
} else {
|
|
312
365
|
newMeta[i].columns = columns || [];
|
|
313
366
|
}
|
|
314
|
-
setMeta(newMeta, groupIndex, data);
|
|
315
|
-
});
|
|
367
|
+
setMeta(newMeta, groupIndex, 'init', data);
|
|
368
|
+
}, false);
|
|
316
369
|
return _objectSpread({}, v);
|
|
317
370
|
}
|
|
318
371
|
// 设置column
|
|
@@ -330,8 +383,8 @@ var useStore = function useStore() {
|
|
|
330
383
|
// if (v.type === TypeEnum.joinData) {
|
|
331
384
|
// newMeta[i] = setQuotes(newMeta[i]);
|
|
332
385
|
// }
|
|
333
|
-
setMeta(newMeta, groupIndex, data);
|
|
334
|
-
});
|
|
386
|
+
setMeta(newMeta, groupIndex, 'init', data);
|
|
387
|
+
}, false);
|
|
335
388
|
return _objectSpread({}, v);
|
|
336
389
|
}
|
|
337
390
|
return _objectSpread({}, v);
|
|
@@ -573,6 +626,8 @@ var useStore = function useStore() {
|
|
|
573
626
|
fetchDatasetFn: fetchDatasetFn.current,
|
|
574
627
|
setFetchDatasetFn: setFetchDatasetFn,
|
|
575
628
|
fetchColumnsFn: fetchColumnsFn.current,
|
|
629
|
+
setFetchChangeFn: setFetchChangeFn,
|
|
630
|
+
fetchChangeFn: fetchChangeFn.current,
|
|
576
631
|
setFetchColumnsFn: setFetchColumnsFn,
|
|
577
632
|
showMainColumn: showMainColumn,
|
|
578
633
|
showToolbar: showToolbar,
|
|
@@ -602,7 +657,13 @@ var useStore = function useStore() {
|
|
|
602
657
|
formulaTemplates: formulaTemplates,
|
|
603
658
|
setFormulaTemplates: setFormulaTemplates,
|
|
604
659
|
isExit: isExit,
|
|
605
|
-
setIsExit: setIsExit
|
|
660
|
+
setIsExit: setIsExit,
|
|
661
|
+
tableEnableAlias: tableEnableAlias,
|
|
662
|
+
setTableEnableAlias: setTableEnableAlias,
|
|
663
|
+
fieldEnableAlias: fieldEnableAlias,
|
|
664
|
+
setFieldEnableAlias: setFieldEnableAlias,
|
|
665
|
+
isSelectFields: isSelectFields,
|
|
666
|
+
setIsSelectFields: setIsSelectFields
|
|
606
667
|
};
|
|
607
668
|
};
|
|
608
669
|
export default useStore;
|
package/lib/es/index.js
CHANGED
|
@@ -23,6 +23,7 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
23
23
|
showFields = _props$showFields === void 0 ? true : _props$showFields,
|
|
24
24
|
getTables = props.getTables,
|
|
25
25
|
getColumns = props.getColumns,
|
|
26
|
+
onChange = props.onChange,
|
|
26
27
|
_props$tableNameTpl = props.tableNameTpl,
|
|
27
28
|
tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
|
|
28
29
|
_props$fieldNameTpl = props.fieldNameTpl,
|
|
@@ -33,6 +34,8 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
33
34
|
value = _props$value === void 0 ? [] : _props$value,
|
|
34
35
|
_props$sourceList = props.sourceList,
|
|
35
36
|
sourceList = _props$sourceList === void 0 ? [] : _props$sourceList,
|
|
37
|
+
_props$exitSourceList = props.exitSourceList,
|
|
38
|
+
exitSourceList = _props$exitSourceList === void 0 ? [] : _props$exitSourceList,
|
|
36
39
|
_props$showSubquery = props.showSubquery,
|
|
37
40
|
showSubquery = _props$showSubquery === void 0 ? true : _props$showSubquery,
|
|
38
41
|
_props$subShowSubquer = props.subShowSubquery,
|
|
@@ -44,11 +47,18 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
44
47
|
_props$filterCustomTy = props.filterCustomType,
|
|
45
48
|
filterCustomType = _props$filterCustomTy === void 0 ? false : _props$filterCustomTy,
|
|
46
49
|
_props$isExit = props.isExit,
|
|
47
|
-
isExit = _props$isExit === void 0 ? false : _props$isExit
|
|
50
|
+
isExit = _props$isExit === void 0 ? false : _props$isExit,
|
|
51
|
+
_props$tableEnableAli = props.tableEnableAlias,
|
|
52
|
+
tableEnableAlias = _props$tableEnableAli === void 0 ? true : _props$tableEnableAli,
|
|
53
|
+
_props$fieldEnableAli = props.fieldEnableAlias,
|
|
54
|
+
fieldEnableAlias = _props$fieldEnableAli === void 0 ? true : _props$fieldEnableAli,
|
|
55
|
+
_props$isSelectFields = props.isSelectFields,
|
|
56
|
+
isSelectFields = _props$isSelectFields === void 0 ? true : _props$isSelectFields;
|
|
48
57
|
var store = useData();
|
|
49
58
|
useEffect(function () {
|
|
50
59
|
getTables && store.setFetchDatasetFn(getTables);
|
|
51
60
|
getColumns && store.setFetchColumnsFn(getColumns);
|
|
61
|
+
onChange && store.setFetchChangeFn(onChange);
|
|
52
62
|
}, []);
|
|
53
63
|
useEffect(function () {
|
|
54
64
|
store.setProps(props);
|
|
@@ -58,8 +68,8 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
58
68
|
store.setPreData(_value);
|
|
59
69
|
}, [value]);
|
|
60
70
|
useEffect(function () {
|
|
61
|
-
store.setSourceList(sourceList);
|
|
62
|
-
}, [sourceList]);
|
|
71
|
+
store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
|
|
72
|
+
}, [sourceList, exitSourceList, isExit]);
|
|
63
73
|
useEffect(function () {
|
|
64
74
|
store.setShowFields(showFields);
|
|
65
75
|
store.setFieldNameTpl(fieldNameTpl || '${name}');
|
|
@@ -72,7 +82,10 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
72
82
|
store.setIgnoreGroupByType(ignoreGroupByType);
|
|
73
83
|
store.setfilterCustomType(filterCustomType);
|
|
74
84
|
store.setIsExit(isExit);
|
|
75
|
-
|
|
85
|
+
store.setTableEnableAlias(tableEnableAlias);
|
|
86
|
+
store.setFieldEnableAlias(fieldEnableAlias);
|
|
87
|
+
store.setIsSelectFields(isSelectFields);
|
|
88
|
+
}, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, isSelectFields]);
|
|
76
89
|
React.useImperativeHandle(ref, function () {
|
|
77
90
|
return {
|
|
78
91
|
// setDatasource: (list) => {
|
package/lib/es/store/types.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import type { DatasourceType } from '../types';
|
|
2
2
|
import { TypeEnum, SpecialType, JoinEnum, SQL_COLUMN_TYPE, SortEnum } from './enum';
|
|
3
|
+
export declare enum ChangeType {
|
|
4
|
+
fieldAlias = "fieldAlias",// 修改字段别名
|
|
5
|
+
tableAlias = "tableAlias",// 修改字段别名
|
|
6
|
+
customColumn = "customColumn",// 自定义列
|
|
7
|
+
formula = "formula",
|
|
8
|
+
field = "field",// 修改字段别名
|
|
9
|
+
expressions = "expressions",// expressions
|
|
10
|
+
table1 = "table1",
|
|
11
|
+
table2 = "table2",
|
|
12
|
+
joinType = "joinType",
|
|
13
|
+
lhs = "lhs",
|
|
14
|
+
rhs = "rhs",
|
|
15
|
+
subQuery = "subQuery",
|
|
16
|
+
datasource = "datasource",
|
|
17
|
+
columns = "columns",
|
|
18
|
+
by = "by",
|
|
19
|
+
group = "group"
|
|
20
|
+
}
|
|
3
21
|
export declare enum AtomsTypeEnum {
|
|
4
22
|
JOIN_DEFAULT = "joinDefault",// join默认
|
|
5
23
|
EXISTS = "exists",// notExists
|
package/lib/es/store/types.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
// 修改类型
|
|
2
|
+
export var ChangeType;
|
|
3
|
+
(function (ChangeType) {
|
|
4
|
+
ChangeType["fieldAlias"] = "fieldAlias";
|
|
5
|
+
ChangeType["tableAlias"] = "tableAlias";
|
|
6
|
+
ChangeType["customColumn"] = "customColumn";
|
|
7
|
+
ChangeType["formula"] = "formula";
|
|
8
|
+
ChangeType["field"] = "field";
|
|
9
|
+
ChangeType["expressions"] = "expressions";
|
|
10
|
+
ChangeType["table1"] = "table1";
|
|
11
|
+
ChangeType["table2"] = "table2";
|
|
12
|
+
ChangeType["joinType"] = "joinType";
|
|
13
|
+
ChangeType["lhs"] = "lhs";
|
|
14
|
+
ChangeType["rhs"] = "rhs";
|
|
15
|
+
ChangeType["subQuery"] = "subQuery";
|
|
16
|
+
ChangeType["datasource"] = "datasource";
|
|
17
|
+
ChangeType["columns"] = "columns";
|
|
18
|
+
ChangeType["by"] = "by";
|
|
19
|
+
ChangeType["group"] = "group";
|
|
20
|
+
})(ChangeType || (ChangeType = {}));
|
|
1
21
|
// 表达式类型
|
|
2
22
|
export var AtomsTypeEnum;
|
|
3
23
|
(function (AtomsTypeEnum) {
|
package/lib/es/types.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export interface MetabaseProps {
|
|
|
25
25
|
onOk?: (params: any) => void;
|
|
26
26
|
value?: MetaListType[];
|
|
27
27
|
sourceList?: DatasourceType[];
|
|
28
|
+
exitSourceList?: DatasourceType[];
|
|
28
29
|
showSubquery?: boolean;
|
|
29
30
|
subShowSubquery?: boolean;
|
|
30
31
|
constantList?: OptionItem[];
|
|
@@ -34,6 +35,10 @@ export interface MetabaseProps {
|
|
|
34
35
|
notExistsColumns?: DataType[];
|
|
35
36
|
formulaTemplates?: FormulaTemplatesItem[];
|
|
36
37
|
isExit?: boolean;
|
|
38
|
+
tableEnableAlias?: boolean;
|
|
39
|
+
fieldEnableAlias?: boolean;
|
|
40
|
+
isSelectFields?: boolean;
|
|
41
|
+
onChange?: (newData: MetaListType[], curData: any) => Promise<void | Boolean>;
|
|
37
42
|
}
|
|
38
43
|
export interface OptionItem {
|
|
39
44
|
value?: string;
|