@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.
@@ -15,6 +15,7 @@ var _jsxRuntime = require("react/jsx-runtime");
15
15
  var _react = require("react");
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
17
  var _locale = require("../../locale");
18
+ var _types = require("../../store/types");
18
19
  var _pandora = require("@gingkoo/pandora");
19
20
  var _index = _interopRequireDefault(require("../../index"));
20
21
  var _helper = require("../../utils/helper");
@@ -89,6 +90,7 @@ var TableData = function TableData(props) {
89
90
  data: store.sourceList,
90
91
  value: meta.table,
91
92
  onChange: function onChange(data) {
93
+ console.log('🚀 ~ selectTable ~ data:', data);
92
94
  if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
93
95
  var _store$preProps;
94
96
  var newMetaList = store.metaList[groupIndex].list.slice()[0];
@@ -101,7 +103,10 @@ var TableData = function TableData(props) {
101
103
  // ① 主表动了 其他都得重新选
102
104
  var newMetas = store.metaList[groupIndex].list.slice();
103
105
  newMetas[0] = newMetaList;
104
- store.setMeta(newMetas, groupIndex);
106
+ store.setMeta(newMetas, groupIndex, {
107
+ obj: data,
108
+ type: _types.ChangeType.datasource
109
+ });
105
110
  // store.setMeta([newMetaList], groupIndex);
106
111
  });
107
112
  }
@@ -125,7 +130,10 @@ var TableData = function TableData(props) {
125
130
  var newMetaList = store.metaList[groupIndex].list.slice();
126
131
  // @ts-ignore
127
132
  newMetaList[0].columns = data;
128
- store.setMeta(newMetaList, groupIndex);
133
+ store.setMeta(newMetaList, groupIndex, {
134
+ obj: data,
135
+ type: _types.ChangeType.columns
136
+ });
129
137
  }
130
138
  })
131
139
  });
@@ -157,7 +165,10 @@ var TableData = function TableData(props) {
157
165
  newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
158
166
  newMetaList[0].table.alias = alias;
159
167
  newMetaList = (0, _utils.changeTableAlias)(newMetaList, newMetaList[0].table);
160
- store.setMeta(newMetaList, groupIndex);
168
+ store.setMeta(newMetaList, groupIndex, {
169
+ obj: newMetaList[0].table,
170
+ type: _types.ChangeType.tableAlias
171
+ });
161
172
  case 2:
162
173
  case "end":
163
174
  return _context2.stop();
@@ -221,13 +232,18 @@ var TableData = function TableData(props) {
221
232
  var existingCol = newMetaList.columns.find(function (oldCol) {
222
233
  return oldCol.name === newCol.name;
223
234
  });
235
+ var _column = existingCol ? existingCol : newCol;
236
+ _column.select = store.isSelectFields || _column.select;
224
237
  // 如果存在,返回旧列;否则返回新列
225
- return existingCol ? existingCol : newCol;
238
+ return _column;
226
239
  });
227
240
  // (newMeta[index] as MetaJoin).expressions = [];
228
241
  var newMetas = store.metaList[groupIndex].list.slice();
229
242
  newMetas[0] = newMetaList;
230
- store.setMeta(newMetas, groupIndex);
243
+ store.setMeta(newMetas, groupIndex, {
244
+ obj: newList,
245
+ type: _types.ChangeType.subQuery
246
+ });
231
247
  o.close();
232
248
  } catch (e) {
233
249
  console.warn(e);
@@ -290,61 +306,113 @@ var TableData = function TableData(props) {
290
306
  onClick: function onClick() {
291
307
  showSubQuery(meta.subquery);
292
308
  },
293
- children: [subQuerySelected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
294
- title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
295
- children: (0, _jsxRuntime.jsx)(_pandora.Button, {
296
- danger: tableIsError(),
297
- className: (0, _classnames["default"])(':Sqb-TableName-as', {
298
- isError: tableIsError()
299
- }),
300
- shape: 'circle',
301
- style: isDel ? {
302
- fontSize: 18,
303
- backgroundColor: '#fff',
304
- width: 'auto',
305
- height: 'auto'
306
- } : {},
307
- iconOnly: true,
308
- primary: !isDel,
309
- icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
310
- size: 'small',
311
- onClick: function onClick(e) {
312
- var _meta$table4;
313
- e.stopPropagation();
314
- onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
315
- }
316
- })
317
- }), 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 ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
309
+ children: [subQuerySelected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
310
+ children: function () {
311
+ var showButton = store.tableEnableAlias || tableIsError() && isDel;
312
+ var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
313
+ return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
314
+ title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
315
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
316
+ danger: tableIsError(),
317
+ className: (0, _classnames["default"])(':Sqb-TableName-as', {
318
+ isError: tableIsError()
319
+ }),
320
+ shape: 'circle',
321
+ style: isDel ? {
322
+ fontSize: 18,
323
+ backgroundColor: '#fff',
324
+ width: 'auto',
325
+ height: 'auto'
326
+ } : {},
327
+ iconOnly: true,
328
+ primary: !isDel,
329
+ icon: icon,
330
+ size: 'small',
331
+ onClick: function onClick(e) {
332
+ if (store.tableEnableAlias) {
333
+ var _meta$table4;
334
+ e.stopPropagation();
335
+ onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
336
+ }
337
+ }
338
+ })
339
+ }) : null;
340
+ }()
341
+ }), 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')]
318
342
  }) : (0, _jsxRuntime.jsxs)("div", {
319
343
  className: (0, _classnames["default"])("Sqb-TableName", {
320
344
  notSelected: !selected
321
345
  }),
322
346
  onClick: selectTable,
323
- children: [selected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
324
- title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
325
- children: (0, _jsxRuntime.jsx)(_pandora.Button, {
326
- danger: tableIsError(),
327
- className: (0, _classnames["default"])(':Sqb-TableName-as', {
328
- isError: tableIsError()
329
- }),
330
- shape: 'circle',
331
- style: isDel ? {
332
- fontSize: 18,
333
- backgroundColor: '#fff',
334
- width: 'auto',
335
- height: 'auto'
336
- } : {},
337
- iconOnly: true,
338
- primary: !isDel,
339
- icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
340
- size: 'small',
341
- onClick: function onClick(e) {
342
- var _meta$table7;
343
- e.stopPropagation();
344
- onChangeTableAlias(((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) || '');
345
- }
346
- })
347
- }), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
347
+ children: [selected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
348
+ children: function () {
349
+ var showButton = store.tableEnableAlias || tableIsError() && isDel;
350
+ var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
351
+ return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
352
+ title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
353
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
354
+ danger: tableIsError(),
355
+ className: (0, _classnames["default"])(':Sqb-TableName-as', {
356
+ isError: tableIsError()
357
+ }),
358
+ shape: 'circle',
359
+ style: isDel ? {
360
+ fontSize: 18,
361
+ backgroundColor: '#fff',
362
+ width: 'auto',
363
+ height: 'auto'
364
+ } : {},
365
+ iconOnly: true,
366
+ primary: !isDel,
367
+ icon: icon,
368
+ size: 'small',
369
+ onClick: function onClick(e) {
370
+ if (store.tableEnableAlias) {
371
+ var _meta$table7;
372
+ e.stopPropagation();
373
+ onChangeTableAlias(((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) || '');
374
+ }
375
+ }
376
+ })
377
+ }) : null;
378
+ }()
379
+ })
380
+ // <Tooltip
381
+ // title={__(
382
+ // tableIsError()
383
+ // ? isDel
384
+ // ? 'metabase.verify'
385
+ // : 'SqlQueryBuilder.repeatAlias'
386
+ // : 'SqlQueryBuilder.alias',
387
+ // )}
388
+ // >
389
+ // <Button
390
+ // danger={tableIsError()}
391
+ // className={cx(':Sqb-TableName-as', {
392
+ // isError: tableIsError(),
393
+ // })}
394
+ // shape='circle'
395
+ // style={
396
+ // isDel
397
+ // ? {
398
+ // fontSize: 18,
399
+ // backgroundColor: '#fff',
400
+ // width: 'auto',
401
+ // height: 'auto',
402
+ // }
403
+ // : {}
404
+ // }
405
+ // iconOnly
406
+ // primary={!isDel}
407
+ // icon={isDel ? <ExclamationCircleFill /> : 'As'}
408
+ // size='small'
409
+ // onClick={(e) => {
410
+ // e.stopPropagation();
411
+ // onChangeTableAlias(meta.table?.alias || '');
412
+ // }}
413
+ // ></Button>
414
+ // </Tooltip>
415
+ , 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) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
348
416
  }), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
349
417
  title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
350
418
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {
@@ -15,6 +15,7 @@ var _react = require("react");
15
15
  var _helper = require("../utils/helper");
16
16
  var _enum = require("../store/enum");
17
17
  var _utils = require("../utils");
18
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
18
19
  var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
19
20
  var metaKey = 1;
20
21
  var SummarizeAlias = exports.SummarizeAlias = 'source';
@@ -133,6 +134,18 @@ var useStore = function useStore() {
133
134
  _useState38 = (0, _slicedToArray2["default"])(_useState37, 2),
134
135
  isExit = _useState38[0],
135
136
  setIsExit = _useState38[1]; // 是否是notExit
137
+ var _useState39 = (0, _react.useState)(true),
138
+ _useState40 = (0, _slicedToArray2["default"])(_useState39, 2),
139
+ tableEnableAlias = _useState40[0],
140
+ setTableEnableAlias = _useState40[1]; // 表名是否开启别名
141
+ var _useState41 = (0, _react.useState)(true),
142
+ _useState42 = (0, _slicedToArray2["default"])(_useState41, 2),
143
+ fieldEnableAlias = _useState42[0],
144
+ setFieldEnableAlias = _useState42[1]; // 字段名是否开启别名
145
+ var _useState43 = (0, _react.useState)(true),
146
+ _useState44 = (0, _slicedToArray2["default"])(_useState43, 2),
147
+ isSelectFields = _useState44[0],
148
+ setIsSelectFields = _useState44[1]; // 是否默认勾选字段
136
149
  // 外层ref
137
150
  var popupContainer = (0, _react.useRef)();
138
151
  // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
@@ -143,6 +156,10 @@ var useStore = function useStore() {
143
156
  fetchDatasetFn.current = fn;
144
157
  };
145
158
  var fetchColumnsFn = (0, _react.useRef)();
159
+ var fetchChangeFn = (0, _react.useRef)();
160
+ var setFetchChangeFn = function setFetchChangeFn(fn) {
161
+ fetchChangeFn.current = fn;
162
+ };
146
163
  var setFetchColumnsFn = function setFetchColumnsFn(fn) {
147
164
  fetchColumnsFn.current = fn;
148
165
  };
@@ -226,6 +243,7 @@ var useStore = function useStore() {
226
243
  var _columns2;
227
244
  var oldColumns,
228
245
  callback,
246
+ isSelect,
229
247
  oldObj,
230
248
  selectId,
231
249
  _table$alias,
@@ -243,6 +261,7 @@ var useStore = function useStore() {
243
261
  case 0:
244
262
  oldColumns = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
245
263
  callback = _args2.length > 3 ? _args2[3] : undefined;
264
+ isSelect = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : isSelectFields;
246
265
  // 获取之前选中的数据
247
266
  oldObj = {};
248
267
  selectId = oldColumns.filter(function (v) {
@@ -271,7 +290,7 @@ var useStore = function useStore() {
271
290
  var obj = {};
272
291
  obj = oldObj[v.id] || {};
273
292
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, obj), v), {}, {
274
- select: select,
293
+ select: isSelect || select,
275
294
  fieldUuid: obj.fieldUuid || v.fieldUuid || (0, _helper.uuidv4)('field')
276
295
  });
277
296
  });
@@ -286,14 +305,47 @@ var useStore = function useStore() {
286
305
  return _ref2.apply(this, arguments);
287
306
  };
288
307
  }();
289
- var setMeta = function setMeta(curData, groupInd) {
290
- var _metaList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : metaList;
291
- var newMeta = _metaList.slice();
292
- if (newMeta[groupInd]) {
293
- newMeta[groupInd].list = curData;
294
- _setMeta(newMeta);
295
- }
296
- };
308
+ var setMeta = /*#__PURE__*/function () {
309
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(curData, groupInd) {
310
+ var changeObj,
311
+ _metaList,
312
+ newMeta,
313
+ isChange,
314
+ _args3 = arguments;
315
+ return _regenerator["default"].wrap(function (_context3) {
316
+ while (1) switch (_context3.prev = _context3.next) {
317
+ case 0:
318
+ changeObj = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
319
+ _metaList = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : metaList;
320
+ newMeta = (0, _cloneDeep["default"])(_metaList);
321
+ if (newMeta[groupInd]) {
322
+ newMeta[groupInd].list = curData;
323
+ _setMeta(newMeta);
324
+ }
325
+ // 过滤掉初始化
326
+ if (!(changeObj === 'init')) {
327
+ _context3.next = 1;
328
+ break;
329
+ }
330
+ return _context3.abrupt("return");
331
+ case 1:
332
+ _context3.next = 2;
333
+ return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj);
334
+ case 2:
335
+ isChange = _context3.sent;
336
+ if (isChange === false) {
337
+ _setMeta(_metaList);
338
+ }
339
+ case 3:
340
+ case "end":
341
+ return _context3.stop();
342
+ }
343
+ }, _callee3);
344
+ }));
345
+ return function setMeta(_x4, _x5) {
346
+ return _ref3.apply(this, arguments);
347
+ };
348
+ }();
297
349
  // 回显
298
350
  var setPreData = function setPreData(data) {
299
351
  // let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
@@ -318,8 +370,8 @@ var useStore = function useStore() {
318
370
  } else {
319
371
  newMeta[i].columns = columns || [];
320
372
  }
321
- setMeta(newMeta, groupIndex, data);
322
- });
373
+ setMeta(newMeta, groupIndex, 'init', data);
374
+ }, false);
323
375
  return (0, _objectSpread2["default"])({}, v);
324
376
  }
325
377
  // 设置column
@@ -337,8 +389,8 @@ var useStore = function useStore() {
337
389
  // if (v.type === TypeEnum.joinData) {
338
390
  // newMeta[i] = setQuotes(newMeta[i]);
339
391
  // }
340
- setMeta(newMeta, groupIndex, data);
341
- });
392
+ setMeta(newMeta, groupIndex, 'init', data);
393
+ }, false);
342
394
  return (0, _objectSpread2["default"])({}, v);
343
395
  }
344
396
  return (0, _objectSpread2["default"])({}, v);
@@ -580,6 +632,8 @@ var useStore = function useStore() {
580
632
  fetchDatasetFn: fetchDatasetFn.current,
581
633
  setFetchDatasetFn: setFetchDatasetFn,
582
634
  fetchColumnsFn: fetchColumnsFn.current,
635
+ setFetchChangeFn: setFetchChangeFn,
636
+ fetchChangeFn: fetchChangeFn.current,
583
637
  setFetchColumnsFn: setFetchColumnsFn,
584
638
  showMainColumn: showMainColumn,
585
639
  showToolbar: showToolbar,
@@ -609,7 +663,13 @@ var useStore = function useStore() {
609
663
  formulaTemplates: formulaTemplates,
610
664
  setFormulaTemplates: setFormulaTemplates,
611
665
  isExit: isExit,
612
- setIsExit: setIsExit
666
+ setIsExit: setIsExit,
667
+ tableEnableAlias: tableEnableAlias,
668
+ setTableEnableAlias: setTableEnableAlias,
669
+ fieldEnableAlias: fieldEnableAlias,
670
+ setFieldEnableAlias: setFieldEnableAlias,
671
+ isSelectFields: isSelectFields,
672
+ setIsSelectFields: setIsSelectFields
613
673
  };
614
674
  };
615
675
  var _default = exports["default"] = useStore;
package/lib/cjs/index.js CHANGED
@@ -33,6 +33,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
33
33
  showFields = _props$showFields === void 0 ? true : _props$showFields,
34
34
  getTables = props.getTables,
35
35
  getColumns = props.getColumns,
36
+ onChange = props.onChange,
36
37
  _props$tableNameTpl = props.tableNameTpl,
37
38
  tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
38
39
  _props$fieldNameTpl = props.fieldNameTpl,
@@ -43,6 +44,8 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
43
44
  value = _props$value === void 0 ? [] : _props$value,
44
45
  _props$sourceList = props.sourceList,
45
46
  sourceList = _props$sourceList === void 0 ? [] : _props$sourceList,
47
+ _props$exitSourceList = props.exitSourceList,
48
+ exitSourceList = _props$exitSourceList === void 0 ? [] : _props$exitSourceList,
46
49
  _props$showSubquery = props.showSubquery,
47
50
  showSubquery = _props$showSubquery === void 0 ? true : _props$showSubquery,
48
51
  _props$subShowSubquer = props.subShowSubquery,
@@ -54,11 +57,18 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
54
57
  _props$filterCustomTy = props.filterCustomType,
55
58
  filterCustomType = _props$filterCustomTy === void 0 ? false : _props$filterCustomTy,
56
59
  _props$isExit = props.isExit,
57
- isExit = _props$isExit === void 0 ? false : _props$isExit;
60
+ isExit = _props$isExit === void 0 ? false : _props$isExit,
61
+ _props$tableEnableAli = props.tableEnableAlias,
62
+ tableEnableAlias = _props$tableEnableAli === void 0 ? true : _props$tableEnableAli,
63
+ _props$fieldEnableAli = props.fieldEnableAlias,
64
+ fieldEnableAlias = _props$fieldEnableAli === void 0 ? true : _props$fieldEnableAli,
65
+ _props$isSelectFields = props.isSelectFields,
66
+ isSelectFields = _props$isSelectFields === void 0 ? true : _props$isSelectFields;
58
67
  var store = (0, _useState["default"])();
59
68
  (0, _react.useEffect)(function () {
60
69
  getTables && store.setFetchDatasetFn(getTables);
61
70
  getColumns && store.setFetchColumnsFn(getColumns);
71
+ onChange && store.setFetchChangeFn(onChange);
62
72
  }, []);
63
73
  (0, _react.useEffect)(function () {
64
74
  store.setProps(props);
@@ -68,8 +78,8 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
68
78
  store.setPreData(_value);
69
79
  }, [value]);
70
80
  (0, _react.useEffect)(function () {
71
- store.setSourceList(sourceList);
72
- }, [sourceList]);
81
+ store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
82
+ }, [sourceList, exitSourceList, isExit]);
73
83
  (0, _react.useEffect)(function () {
74
84
  store.setShowFields(showFields);
75
85
  store.setFieldNameTpl(fieldNameTpl || '${name}');
@@ -82,7 +92,10 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
82
92
  store.setIgnoreGroupByType(ignoreGroupByType);
83
93
  store.setfilterCustomType(filterCustomType);
84
94
  store.setIsExit(isExit);
85
- }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit]);
95
+ store.setTableEnableAlias(tableEnableAlias);
96
+ store.setFieldEnableAlias(fieldEnableAlias);
97
+ store.setIsSelectFields(isSelectFields);
98
+ }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, isSelectFields]);
86
99
  _react["default"].useImperativeHandle(ref, function () {
87
100
  return {
88
101
  // setDatasource: (list) => {
@@ -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
@@ -3,7 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.MetaSummarize_Enum = exports.AtomsTypeEnum = void 0;
6
+ exports.MetaSummarize_Enum = exports.ChangeType = exports.AtomsTypeEnum = void 0;
7
+ // 修改类型
8
+ var ChangeType;
9
+ (function (ChangeType) {
10
+ ChangeType["fieldAlias"] = "fieldAlias";
11
+ ChangeType["tableAlias"] = "tableAlias";
12
+ ChangeType["customColumn"] = "customColumn";
13
+ ChangeType["formula"] = "formula";
14
+ ChangeType["field"] = "field";
15
+ ChangeType["expressions"] = "expressions";
16
+ ChangeType["table1"] = "table1";
17
+ ChangeType["table2"] = "table2";
18
+ ChangeType["joinType"] = "joinType";
19
+ ChangeType["lhs"] = "lhs";
20
+ ChangeType["rhs"] = "rhs";
21
+ ChangeType["subQuery"] = "subQuery";
22
+ ChangeType["datasource"] = "datasource";
23
+ ChangeType["columns"] = "columns";
24
+ ChangeType["by"] = "by";
25
+ ChangeType["group"] = "group";
26
+ })(ChangeType || (exports.ChangeType = ChangeType = {}));
7
27
  // 表达式类型
8
28
  var AtomsTypeEnum;
9
29
  (function (AtomsTypeEnum) {
@@ -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;
@@ -14,6 +14,7 @@ import { useEffect, useMemo, useState } from 'react';
14
14
  import cloneDeep from 'lodash/cloneDeep';
15
15
  import cx from 'classnames';
16
16
  import { Button, Modal, Input, Tooltip, Toast } from '@gingkoo/pandora';
17
+ import { ChangeType } from '../../../store/types';
17
18
  import { __ } from '../../../locale';
18
19
  import { NotSelectIcon, SelectIcon } from '../../icons';
19
20
  import { useStore } from '../../../hooks/use-provider';
@@ -116,7 +117,10 @@ var SelectColumn = function SelectColumn(_ref) {
116
117
  newColumns[i].fieldAlias = fieldAlias;
117
118
  newColumns[i].fieldUuid = newColumns[i].fieldUuid || uuidv4('field');
118
119
  newMetaList = changeFieldAlias(newMetaList, newColumns[i]);
119
- store.setMeta(newMetaList, groupIndex);
120
+ store.setMeta(newMetaList, groupIndex, {
121
+ obj: newColumns[i],
122
+ type: ChangeType.fieldAlias
123
+ });
120
124
  onSelect(newColumns);
121
125
  setTimeout(function () {
122
126
  store.setClosable(true);
@@ -185,7 +189,7 @@ var SelectColumn = function SelectColumn(_ref) {
185
189
  children: _jsx(SelectIcon, {})
186
190
  }) : _jsx("div", {
187
191
  className: 'no-select mr-2'
188
- }), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', _jsx(Tooltip, {
192
+ }), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', store.fieldEnableAlias && _jsx(Tooltip, {
189
193
  title: __('SqlQueryBuilder.alias'),
190
194
  children: _jsx(Button, {
191
195
  className: ':Sqb-TableName-as',
@@ -9,6 +9,7 @@ import cx from 'classnames';
9
9
  import { __ } from '../../locale';
10
10
  import { findIndex, isError } from '../../utils';
11
11
  import { sleep, flatArray } from '../../utils/helper';
12
+ import { ChangeType } from '../../store/types';
12
13
  import { getHelper } from '../../utils';
13
14
  import { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';
14
15
  import CustomEditor from '../../components/dialog/custom-editor';
@@ -95,7 +96,10 @@ var CustomColumn = function CustomColumn(props) {
95
96
  // if(data.name !== value.name){
96
97
  // newMeta = newMeta.filter((v: MetaListType, _i: number)=> _i<=index)
97
98
  // }
98
- store.setMeta(newMeta, groupIndex);
99
+ store.setMeta(newMeta, groupIndex, {
100
+ obj: data,
101
+ type: ChangeType.customColumn
102
+ });
99
103
  closePopup();
100
104
  },
101
105
  onClose: closePopup
@@ -246,7 +250,10 @@ var CustomColumn = function CustomColumn(props) {
246
250
  } else {
247
251
  newMeta[index].customColumn[i] = data;
248
252
  }
249
- store.setMeta(newMeta, groupIndex);
253
+ store.setMeta(newMeta, groupIndex, {
254
+ obj: data,
255
+ type: ChangeType.customColumn
256
+ });
250
257
  try {
251
258
  o.close();
252
259
  } catch (e) {
@@ -274,7 +281,10 @@ var CustomColumn = function CustomColumn(props) {
274
281
  meta: meta,
275
282
  onChange: function onChange(data) {
276
283
  newMeta[index].customColumn.push(data);
277
- store.setMeta(newMeta, groupIndex);
284
+ store.setMeta(newMeta, groupIndex, {
285
+ obj: data,
286
+ type: ChangeType.customColumn
287
+ });
278
288
  closePopup();
279
289
  },
280
290
  onClose: closePopup
@@ -7,6 +7,7 @@ import { uuidv4 } from '../../utils/helper';
7
7
  import { findIndex, getHelper } from '../../utils';
8
8
  import { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';
9
9
  import FormulaList from '../dialog/formula-list';
10
+ import { ChangeType } from '../../store/types';
10
11
  import Wrapper from './components/Wrapper';
11
12
  import NextDom from './components/meta-icon';
12
13
  import Header from './components/header';
@@ -140,7 +141,10 @@ var Filter = function Filter(props) {
140
141
  var selectFilter = function selectFilter(val) {
141
142
  var newMeta = store.metaList[groupIndex].list.slice();
142
143
  newMeta[index].filter = val;
143
- store.setMeta(newMeta, groupIndex);
144
+ store.setMeta(newMeta, groupIndex, {
145
+ obj: val,
146
+ type: ChangeType.formula
147
+ });
144
148
  };
145
149
  var getPreColumns = function getPreColumns() {
146
150
  var data = [].concat(_toConsumableArray(getColumns()), _toConsumableArray(cloneDeep(notExistsColumns || [])));