@gingkoo/pandora-metabase 1.0.27 → 1.0.29

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.
Files changed (66) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  4. package/lib/cjs/components/dialog/expression/index.js +11 -12
  5. package/lib/cjs/components/dialog/formula-list/index.js +53 -43
  6. package/lib/cjs/components/dialog/index.js +2 -2
  7. package/lib/cjs/components/dialog/select-column/index.js +4 -4
  8. package/lib/cjs/components/dialog/select-column-multiple/index.js +21 -10
  9. package/lib/cjs/components/dialog/select-join-column/index.js +13 -2
  10. package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
  11. package/lib/cjs/components/dialog/select-table/index.js +7 -7
  12. package/lib/cjs/components/icons.js +36 -36
  13. package/lib/cjs/components/metabase/index.js +41 -12
  14. package/lib/cjs/components/metabase/index.less +3 -0
  15. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  16. package/lib/cjs/components/modules/components/item-name.d.ts +7 -0
  17. package/lib/cjs/components/modules/components/item-name.js +34 -0
  18. package/lib/cjs/components/modules/components/meta-icon.js +6 -0
  19. package/lib/cjs/components/modules/custom-column.js +25 -25
  20. package/lib/cjs/components/modules/filter.js +2 -2
  21. package/lib/cjs/components/modules/join-data.js +215 -81
  22. package/lib/cjs/components/modules/permission-table.js +24 -10
  23. package/lib/cjs/components/modules/sort.js +17 -13
  24. package/lib/cjs/components/modules/summarize/group-by.js +90 -38
  25. package/lib/cjs/components/modules/summarize/select-index.js +84 -38
  26. package/lib/cjs/components/modules/table-data.js +14 -6
  27. package/lib/cjs/components/popup.js +1 -2
  28. package/lib/cjs/hooks/use-state.js +58 -65
  29. package/lib/cjs/index.js +1 -2
  30. package/lib/cjs/locale/en.js +5 -2
  31. package/lib/cjs/locale/zh.js +5 -2
  32. package/lib/cjs/utils/transformSql.d.ts +6 -0
  33. package/lib/cjs/utils/transformSql.js +968 -0
  34. package/lib/cjs/utils.d.ts +7 -1
  35. package/lib/cjs/utils.js +112 -15
  36. package/lib/es/common/SplitView/index.js +10 -10
  37. package/lib/es/components/dialog/expression/index.js +10 -10
  38. package/lib/es/components/dialog/formula-list/index.js +54 -44
  39. package/lib/es/components/dialog/select-column/index.js +4 -4
  40. package/lib/es/components/dialog/select-column-multiple/index.js +21 -10
  41. package/lib/es/components/dialog/select-join-column/index.js +13 -2
  42. package/lib/es/components/dialog/select-permission-table/index.js +2 -2
  43. package/lib/es/components/dialog/select-table/index.js +7 -7
  44. package/lib/es/components/icons.js +36 -36
  45. package/lib/es/components/metabase/index.js +42 -13
  46. package/lib/es/components/metabase/index.less +3 -0
  47. package/lib/es/components/modules/components/Wrapper.js +6 -6
  48. package/lib/es/components/modules/components/item-name.d.ts +7 -0
  49. package/lib/es/components/modules/components/item-name.js +28 -0
  50. package/lib/es/components/modules/components/meta-icon.js +6 -0
  51. package/lib/es/components/modules/custom-column.js +26 -26
  52. package/lib/es/components/modules/filter.js +2 -2
  53. package/lib/es/components/modules/join-data.js +216 -82
  54. package/lib/es/components/modules/permission-table.js +24 -10
  55. package/lib/es/components/modules/sort.js +18 -14
  56. package/lib/es/components/modules/summarize/group-by.js +92 -40
  57. package/lib/es/components/modules/summarize/select-index.js +86 -40
  58. package/lib/es/components/modules/table-data.js +14 -6
  59. package/lib/es/hooks/use-state.js +58 -65
  60. package/lib/es/locale/en.js +5 -2
  61. package/lib/es/locale/zh.js +5 -2
  62. package/lib/es/utils/transformSql.d.ts +6 -0
  63. package/lib/es/utils/transformSql.js +961 -0
  64. package/lib/es/utils.d.ts +7 -1
  65. package/lib/es/utils.js +102 -4
  66. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
1
  import { TypeEnum } from './store/enum';
2
- import { MetaListType, MetaSummarize, MetaData_TableType, MetaData_ColumnsType } from './store/types';
2
+ import { MetaListType, MetaSummarize, MetaData_TableType, MetaData_ColumnsType, AtomsItem } from './store/types';
3
3
  import { DataType } from './components/dialog/select-column-multiple';
4
4
  export declare const findIndex: <T>(arr: T[], item: T) => number;
5
+ export declare const getMetaTabels: (data: MetaListType[]) => any;
6
+ export declare const getColumnsTables: (data: DataType[]) => any;
5
7
  interface HelperResultType {
6
8
  ExistAboveGroupBy: boolean;
7
9
  ExistBelowGroupBy: boolean;
@@ -11,6 +13,9 @@ interface HelperResultType {
11
13
  nextList: MetaListType[];
12
14
  prevGroupBy: MetaSummarize | undefined;
13
15
  nextGroupBy: MetaSummarize | undefined;
16
+ prevTables: {
17
+ [params: string]: any;
18
+ };
14
19
  }
15
20
  export declare const getHelper: (list: MetaListType[], item: MetaListType) => HelperResultType;
16
21
  export declare const getSubColumns: (metaList: any) => DataType[];
@@ -21,4 +26,5 @@ export declare function splitByUnion(data: any): any[];
21
26
  export declare const patchData: (metas: MetaListType[]) => MetaListType[];
22
27
  export declare function reassembleByUnion(target?: any[]): any[];
23
28
  export declare const buildSqlQuery: (data: MetaListType[] | undefined, type: string) => string;
29
+ export declare const isError: (item: AtomsItem | AtomsItem[], data: DataType[]) => boolean;
24
30
  export {};
package/lib/cjs/utils.js CHANGED
@@ -4,19 +4,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getSubColumns = exports.getHelper = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.buildSqlQuery = void 0;
7
+ exports.isError = exports.getSubColumns = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.buildSqlQuery = void 0;
8
8
  exports.isValidSQLAlias = isValidSQLAlias;
9
9
  exports.patchData = void 0;
10
10
  exports.reassembleByUnion = reassembleByUnion;
11
11
  exports.splitByUnion = splitByUnion;
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
13
13
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
14
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
15
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
16
+ var _objectSpread6 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
16
17
  var _locale = require("./locale");
17
18
  var _enum = require("./store/enum");
18
19
  var _types = require("./store/types");
19
20
  var _helper = require("./store/helper");
21
+ var _transformSql2 = require("./utils/transformSql");
20
22
  var _helper2 = require("./utils/helper");
21
23
  var _cloneDeep3 = _interopRequireDefault(require("lodash/cloneDeep"));
22
24
  var _patch = require("./hooks/patch");
@@ -24,6 +26,36 @@ var _excluded = ["list"];
24
26
  var findIndex = exports.findIndex = function findIndex(arr, item) {
25
27
  return arr.indexOf(item);
26
28
  };
29
+ var getMetaTabels = exports.getMetaTabels = function getMetaTabels(data) {
30
+ var obj = {};
31
+ data.map(function (v) {
32
+ if (v.type === _enum.TypeEnum.data) {
33
+ var _v$table, _v$table2;
34
+ obj[(_v$table = v.table) === null || _v$table === void 0 ? void 0 : _v$table.datasourceId] = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, obj[(_v$table2 = v.table) === null || _v$table2 === void 0 ? void 0 : _v$table2.datasourceId]), {}, (0, _defineProperty2["default"])({}, v.table.id, v.columns));
35
+ }
36
+ if (v.type === _enum.TypeEnum.joinData) {
37
+ var _v$table3, _v$table4, _v$table5, _v$table6;
38
+ obj[((_v$table3 = v.table1) === null || _v$table3 === void 0 ? void 0 : _v$table3.datasourceId) || 'source'] = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, obj[(_v$table4 = v.table1) === null || _v$table4 === void 0 ? void 0 : _v$table4.datasourceId]), {}, (0, _defineProperty2["default"])({}, v.table1.id, v.columns));
39
+ obj[((_v$table5 = v.table2) === null || _v$table5 === void 0 ? void 0 : _v$table5.datasourceId) || 'source'] = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, obj[(_v$table6 = v.table2) === null || _v$table6 === void 0 ? void 0 : _v$table6.datasourceId]), {}, (0, _defineProperty2["default"])({}, v.table2.id, v.columns));
40
+ }
41
+ });
42
+ return obj;
43
+ };
44
+ var getColumnsTables = exports.getColumnsTables = function getColumnsTables(data) {
45
+ var obj = {};
46
+ data.map(function (v) {
47
+ // data也可直接是下拉框
48
+ var _v$datasourceId = v.datasourceId,
49
+ datasourceId = _v$datasourceId === void 0 ? 'source' : _v$datasourceId,
50
+ _v$id = v.id,
51
+ id = _v$id === void 0 ? '' : _v$id,
52
+ _v$columns = v.columns,
53
+ columns = _v$columns === void 0 ? [] : _v$columns;
54
+ var _datasourceId = datasourceId || 'source';
55
+ obj[_datasourceId] = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, obj[_datasourceId]), {}, (0, _defineProperty2["default"])({}, id, columns));
56
+ });
57
+ return obj;
58
+ };
27
59
  var getHelper = exports.getHelper = function getHelper(list, item) {
28
60
  var types = list.map(function (v) {
29
61
  return v.type;
@@ -33,6 +65,7 @@ var getHelper = exports.getHelper = function getHelper(list, item) {
33
65
  var rightTypes = types.slice(curIndex + 1); // 当前元素下面的所有元素 (不包含自己)
34
66
  var leftList = list.slice(0, curIndex);
35
67
  var rightList = list.slice(curIndex + 1);
68
+ var topList = leftList; // 包含自己
36
69
  var ExistAboveGroupBy = false;
37
70
  var ExistBelowGroupBy = false;
38
71
  var prevTypes = [];
@@ -41,12 +74,14 @@ var getHelper = exports.getHelper = function getHelper(list, item) {
41
74
  var nextList = [];
42
75
  var prevGroupBy;
43
76
  var nextGroupBy;
77
+ var prevTables = {};
44
78
  if (~leftTypes.indexOf(_enum.TypeEnum.summarize)) {
45
79
  ExistAboveGroupBy = true;
46
80
  var i = leftTypes.lastIndexOf(_enum.TypeEnum.summarize);
47
81
  prevTypes = leftTypes.slice(i + 1);
48
82
  prevList = leftList.slice(i + 1);
49
83
  prevGroupBy = list[i];
84
+ topList = topList.slice(i + 1);
50
85
  }
51
86
  if (~rightTypes.indexOf(_enum.TypeEnum.summarize)) {
52
87
  ExistBelowGroupBy = true;
@@ -55,6 +90,7 @@ var getHelper = exports.getHelper = function getHelper(list, item) {
55
90
  nextList = rightList.slice(0, _i);
56
91
  nextGroupBy = list[curIndex + _i + 1];
57
92
  }
93
+ prevTables = getMetaTabels(topList);
58
94
  return {
59
95
  ExistAboveGroupBy: ExistAboveGroupBy,
60
96
  ExistBelowGroupBy: ExistBelowGroupBy,
@@ -63,7 +99,8 @@ var getHelper = exports.getHelper = function getHelper(list, item) {
63
99
  prevList: prevList,
64
100
  nextList: nextList,
65
101
  prevGroupBy: prevGroupBy,
66
- nextGroupBy: nextGroupBy
102
+ nextGroupBy: nextGroupBy,
103
+ prevTables: prevTables
67
104
  };
68
105
  };
69
106
  // 获取子查询的字段
@@ -94,7 +131,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
94
131
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
95
132
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
96
133
  var _v$sql;
97
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
134
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
98
135
  name: v.name || v.quotes,
99
136
  name_zh: v.name_zh || v.quotes,
100
137
  id: v.id || v.fieldId,
@@ -110,7 +147,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
110
147
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by = prevGroupBy.by) !== null && _prevGroupBy$by !== void 0 && _prevGroupBy$by.length) {
111
148
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
112
149
  var _v$sql2;
113
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
150
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
114
151
  name: v.name || v.quotes,
115
152
  name_zh: v.name_zh || v.quotes,
116
153
  id: v.id || v.fieldId,
@@ -135,7 +172,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
135
172
  // @ts-ignore
136
173
  joinData.map(function (v) {
137
174
  var columns = v.columns.map(function (column) {
138
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
175
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, column), {}, {
139
176
  name: column.fieldAlias || column.name,
140
177
  fieldAlias: ''
141
178
  // fieldUuid: uuidv4('field'),
@@ -153,7 +190,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
153
190
  data = metaList.slice().map(function (v) {
154
191
  if (v.type === _enum.TypeEnum.data) {
155
192
  var columns = v.columns.map(function (column) {
156
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
193
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, column), {}, {
157
194
  name: column.fieldAlias || column.name,
158
195
  fieldAlias: ''
159
196
  // fieldUuid: uuidv4('field'),
@@ -168,7 +205,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
168
205
  };
169
206
  } else if (v.type === _enum.TypeEnum.joinData) {
170
207
  var _columns = v.columns.map(function (column) {
171
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
208
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, column), {}, {
172
209
  name: column.fieldAlias || column.name,
173
210
  fieldAlias: ''
174
211
  // fieldUuid: uuidv4('field'),
@@ -226,7 +263,7 @@ var AliasType;
226
263
  var _changeAlias = function changeAlias(items, val, type) {
227
264
  return items.map(function (v) {
228
265
  if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT || v.type === _types.AtomsTypeEnum.EXPRESSION) {
229
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
266
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
230
267
  lhs: _changeAlias(v.lhs, val, type),
231
268
  rhs: _changeAlias(v.rhs, val, type)
232
269
  });
@@ -265,7 +302,7 @@ var _changeAlias = function changeAlias(items, val, type) {
265
302
  };
266
303
  function isValidSQLAlias(str) {
267
304
  if (!str) return false;
268
- var regex = /^[A-Za-z_]{0,30}$/;
305
+ var regex = /^[a-zA-Z][a-zA-Z0-9_]{0,30}$/;
269
306
  return regex.test(str);
270
307
  }
271
308
  var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list, curObj) {
@@ -313,7 +350,7 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
313
350
  if (v.type === _enum.TypeEnum.rowLimit) {}
314
351
  if (v.type === _enum.TypeEnum.sort) {
315
352
  v.sort = v.sort.map(function (sort) {
316
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, sort), {}, {
353
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
317
354
  expression: _changeAlias(sort.expression, {
318
355
  uuid: tableUuid,
319
356
  alias: alias
@@ -404,7 +441,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
404
441
  if (v.type === _enum.TypeEnum.sort) {
405
442
  if (v.sort && v.sort.length > 0) {
406
443
  v.sort = v.sort.map(function (sort) {
407
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, sort), {}, {
444
+ return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
408
445
  expression: _changeAlias(sort.expression, {
409
446
  uuid: uuid,
410
447
  alias: alias
@@ -413,7 +450,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
413
450
  });
414
451
  }
415
452
  }
416
- return (0, _objectSpread2["default"])({}, v);
453
+ return (0, _objectSpread6["default"])({}, v);
417
454
  })) || [];
418
455
  };
419
456
  function splitByUnion(data) {
@@ -444,14 +481,14 @@ function splitByUnion(data) {
444
481
  // 查找下一个 group,并将其 list 转成 subquery
445
482
  var nextItem = original[i + 1];
446
483
  if (nextItem && nextItem.type === 'group') {
447
- result.push((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, otehr), {}, {
484
+ result.push((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, otehr), {}, {
448
485
  subquery: nextItem.list.map(function (subItem) {
449
486
  return subItem;
450
487
  })
451
488
  }));
452
489
  i += 2;
453
490
  } else {
454
- result.push((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, otehr), {}, {
491
+ result.push((0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, otehr), {}, {
455
492
  subquery: []
456
493
  }));
457
494
  i++;
@@ -549,6 +586,10 @@ function reassembleByUnion() {
549
586
  var buildSqlQuery = exports.buildSqlQuery = function buildSqlQuery() {
550
587
  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
551
588
  var type = arguments.length > 1 ? arguments[1] : undefined;
589
+ var typeName = type === _types.AtomsTypeEnum.EXISTS ? 'EXISTS' : 'NOT EXISTS';
590
+ var _transformSql = (0, _transformSql2.transformSql)(data),
591
+ sql = _transformSql.sql;
592
+ return "".concat(typeName, " (").concat(sql, ") ");
552
593
  if (!data || data.length === 0) return '';
553
594
  var name = type === _types.AtomsTypeEnum.EXISTS ? 'EXISTS' : 'NOT EXISTS';
554
595
  var sqlClauses = ["".concat(name, " (")];
@@ -634,4 +675,60 @@ var buildSqlQuery = exports.buildSqlQuery = function buildSqlQuery() {
634
675
  }
635
676
  sqlClauses.push(')');
636
677
  return sqlClauses.join(' ');
678
+ };
679
+ var _isError = exports.isError = function isError(item, data) {
680
+ var tables = getColumnsTables(data);
681
+ // 不存在
682
+ if (!item) {
683
+ return false;
684
+ }
685
+ if (Array.isArray(item)) {
686
+ return item.some(function (v) {
687
+ return _isError(v, data);
688
+ }); // item可能为数组关联的时候有多选情况,只要有一个错,整体就错
689
+ }
690
+ // 字段类型
691
+ if (item.type === _types.AtomsTypeEnum.FIELD) {
692
+ var datasourceId = item.datasourceId,
693
+ _item$tableId = item.tableId,
694
+ tableId = _item$tableId === void 0 ? '' : _item$tableId,
695
+ fieldName = item.fieldName;
696
+ var _datasourceId = datasourceId || 'source'; // 默认为source
697
+ if (tableId === 'source') {
698
+ _datasourceId = 'source';
699
+ }
700
+ if (!tableId) {
701
+ return false; // 未选不报错
702
+ }
703
+ if (_datasourceId === 'source') {
704
+ var _tables$_datasourceId;
705
+ // 检查是否所有字段的 name 都不等于 fieldName
706
+ if (!(tables !== null && tables !== void 0 && (_tables$_datasourceId = tables[_datasourceId]) !== null && _tables$_datasourceId !== void 0 && _tables$_datasourceId[tableId])) {
707
+ return true;
708
+ } else {
709
+ var _tables$_datasourceId2;
710
+ 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) {
711
+ return field.name !== fieldName;
712
+ });
713
+ }
714
+ } else {
715
+ var _tables$_datasourceId3;
716
+ return !(tables !== null && tables !== void 0 && (_tables$_datasourceId3 = tables[_datasourceId]) !== null && _tables$_datasourceId3 !== void 0 && _tables$_datasourceId3[tableId]); // 注意:返回 true 表示“有错误”
717
+ }
718
+ }
719
+ // 表达式类型
720
+ if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
721
+ var lhsHasError = _isError(item.lhs, data);
722
+ var rhsHasError = _isError(item.rhs, data);
723
+ return lhsHasError || rhsHasError;
724
+ }
725
+ // 公式
726
+ if (item.type === _types.AtomsTypeEnum.FORMULA) {
727
+ return _isError(item.args, data);
728
+ }
729
+ // 公式
730
+ if (item.type === _types.AtomsTypeEnum.COLLECTION) {
731
+ return _isError(item.list, data);
732
+ }
733
+ return false; // 其他类型默认无错误
637
734
  };
@@ -51,17 +51,17 @@ var SplitView = React.forwardRef(function (props, ref) {
51
51
  hMaximum = _useState8[0],
52
52
  setHMaximum = _useState8[1];
53
53
  var _useState9 = useState(false),
54
- _useState10 = _slicedToArray(_useState9, 2),
55
- vMinimum = _useState10[0],
56
- setVMinimum = _useState10[1];
57
- var _useState11 = useState(false),
54
+ _useState0 = _slicedToArray(_useState9, 2),
55
+ vMinimum = _useState0[0],
56
+ setVMinimum = _useState0[1];
57
+ var _useState1 = useState(false),
58
+ _useState10 = _slicedToArray(_useState1, 2),
59
+ vMaximum = _useState10[0],
60
+ setVMaximum = _useState10[1];
61
+ var _useState11 = useState(0),
58
62
  _useState12 = _slicedToArray(_useState11, 2),
59
- vMaximum = _useState12[0],
60
- setVMaximum = _useState12[1];
61
- var _useState13 = useState(0),
62
- _useState14 = _slicedToArray(_useState13, 2),
63
- bottomHeight = _useState14[0],
64
- setBottomHeight = _useState14[1];
63
+ bottomHeight = _useState12[0],
64
+ setBottomHeight = _useState12[1];
65
65
  React.useImperativeHandle(ref, function () {
66
66
  return {
67
67
  open: function open() {
@@ -79,18 +79,18 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
79
79
  special_type = _useState8[0],
80
80
  setSpecial_type = _useState8[1];
81
81
  var _useState9 = useState(value.formula || {}),
82
- _useState10 = _slicedToArray(_useState9, 2),
83
- formula = _useState10[0],
84
- setFormula = _useState10[1];
82
+ _useState0 = _slicedToArray(_useState9, 2),
83
+ formula = _useState0[0],
84
+ setFormula = _useState0[1];
85
85
  var store = useStore();
86
- var _useState11 = useState(false),
86
+ var _useState1 = useState(false),
87
+ _useState10 = _slicedToArray(_useState1, 2),
88
+ popupVisible = _useState10[0],
89
+ setPopupVisible = _useState10[1];
90
+ var _useState11 = useState((value === null || value === void 0 || (_value$lhs = value.lhs) === null || _value$lhs === void 0 ? void 0 : _value$lhs.length) > 0 || false),
87
91
  _useState12 = _slicedToArray(_useState11, 2),
88
- popupVisible = _useState12[0],
89
- setPopupVisible = _useState12[1];
90
- var _useState13 = useState((value === null || value === void 0 || (_value$lhs = value.lhs) === null || _value$lhs === void 0 ? void 0 : _value$lhs.length) > 0 || false),
91
- _useState14 = _slicedToArray(_useState13, 2),
92
- isNext = _useState14[0],
93
- setIsNext = _useState14[1];
92
+ isNext = _useState12[0],
93
+ setIsNext = _useState12[1];
94
94
  var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
95
95
  var disabled = useMemo(function () {
96
96
  if (!condition) return true;
@@ -14,7 +14,7 @@ import { AtomsTypeEnum } from '../../../store/types';
14
14
  import { ColumnsPopupThemeEnum } from '../../../store/enum';
15
15
  import { Select, Input, Modal2, InputNumber } from '@gingkoo/pandora';
16
16
  import cloneDeep from 'lodash/cloneDeep';
17
- import { buildSqlQuery } from '../../../utils';
17
+ import { buildSqlQuery, isError } from '../../../utils';
18
18
  import Formula from '../formula';
19
19
  import { AddIcon, CloseIcon } from '../../icons';
20
20
  import { Expression, SelectColumnMultiple } from '../../dialog';
@@ -22,6 +22,7 @@ import { customTypes, operatorList, insertTemplateAt, getTemplateItem } from './
22
22
  import SelectList from '../../dialog/select-list';
23
23
  import arrow from './arrow.svg';
24
24
  import { useStore, Provider } from '../../../hooks/use-provider';
25
+ import ItemName from '../../modules/components/item-name';
25
26
  var FormulaList = forwardRef(function (props, ref) {
26
27
  var value = props.value,
27
28
  data = props.data,
@@ -156,7 +157,7 @@ var FormulaList = forwardRef(function (props, ref) {
156
157
  showSubquery: false,
157
158
  toolbar: _toolbar,
158
159
  btnText: __('SqlQueryBuilder.confirm'),
159
- value: _value,
160
+ value: cloneDeep(_value),
160
161
  onOk: function onOk(newList) {
161
162
  try {
162
163
  // 子查询未改变不做操作
@@ -250,23 +251,26 @@ var FormulaList = forwardRef(function (props, ref) {
250
251
  }, index);
251
252
  } else if (type === AtomsTypeEnum.FIELD) {
252
253
  // 字段
253
- return _jsxs("div", {
254
- className: cx("Sqb-TableName ", {
255
- notSelected: !(v !== null && v !== void 0 && v.fieldName)
256
- }),
257
- onClick: function onClick(e) {
258
- return handleField(e, index, v);
259
- },
260
- children: [!(v !== null && v !== void 0 && v.fieldName) && __('customColumn.selectField'), v.fieldName, _jsx("span", {
261
- style: {
262
- fontSize: 0
263
- },
254
+ return _jsx(ItemName, {
255
+ isError: isError(v, data),
256
+ children: _jsxs("div", {
257
+ className: cx("Sqb-TableName ", {
258
+ notSelected: !(v !== null && v !== void 0 && v.fieldName)
259
+ }),
264
260
  onClick: function onClick(e) {
265
- return handleDel(e, index);
261
+ return handleField(e, index, v);
266
262
  },
267
- children: _jsx(CloseIcon, {})
268
- })]
269
- });
263
+ children: [!(v !== null && v !== void 0 && v.fieldName) && __('customColumn.selectField'), v.fieldName, _jsx("span", {
264
+ style: {
265
+ fontSize: 0
266
+ },
267
+ onClick: function onClick(e) {
268
+ return handleDel(e, index);
269
+ },
270
+ children: _jsx(CloseIcon, {})
271
+ })]
272
+ })
273
+ }, index);
270
274
  } else if (type === AtomsTypeEnum.INPUT_STRING) {
271
275
  // 输入框
272
276
  return _jsxs("div", {
@@ -365,39 +369,45 @@ var FormulaList = forwardRef(function (props, ref) {
365
369
  }, index);
366
370
  } else if (type === AtomsTypeEnum.EXPRESSION) {
367
371
  // 表达式
368
- return _jsxs("div", {
369
- className: cx("Sqb-TableName purple-name", {
370
- notSelected: !v.quotes
371
- }),
372
- onClick: function onClick(e) {
373
- return handleExpression(e, index, v);
374
- },
375
- children: [v.quotes ? v.quotes : __('customColumn.selectExpression'), _jsx("span", {
376
- style: {
377
- fontSize: 0
378
- },
372
+ return _jsx(ItemName, {
373
+ isError: isError(v, data),
374
+ children: _jsxs("div", {
375
+ className: cx("Sqb-TableName purple-name", {
376
+ notSelected: !v.quotes
377
+ }),
379
378
  onClick: function onClick(e) {
380
- return handleDel(e, index);
379
+ return handleExpression(e, index, v);
381
380
  },
382
- children: _jsx(CloseIcon, {})
383
- })]
384
- });
381
+ children: [v.quotes ? v.quotes : __('customColumn.selectExpression'), _jsx("span", {
382
+ style: {
383
+ fontSize: 0
384
+ },
385
+ onClick: function onClick(e) {
386
+ return handleDel(e, index);
387
+ },
388
+ children: _jsx(CloseIcon, {})
389
+ })]
390
+ })
391
+ }, index);
385
392
  } else if (type === AtomsTypeEnum.FORMULA) {
386
393
  // 公式
387
- return _jsxs("div", {
388
- className: "Sqb-TableName gray-name",
389
- onClick: function onClick(e) {
390
- return showFunction(e, index);
391
- },
392
- children: [v.quotes ? v.quotes : __('customColumn.selectFormula'), _jsx("span", {
393
- style: {
394
- fontSize: 0
395
- },
394
+ return _jsx(ItemName, {
395
+ isError: isError(v, data),
396
+ children: _jsxs("div", {
397
+ className: cx("Sqb-TableName gray-name"),
396
398
  onClick: function onClick(e) {
397
- return handleDel(e, index);
399
+ return showFunction(e, index);
398
400
  },
399
- children: _jsx(CloseIcon, {})
400
- })]
401
+ children: [v.quotes ? v.quotes : __('customColumn.selectFormula'), _jsx("span", {
402
+ style: {
403
+ fontSize: 0
404
+ },
405
+ onClick: function onClick(e) {
406
+ return handleDel(e, index);
407
+ },
408
+ children: _jsx(CloseIcon, {})
409
+ })]
410
+ })
401
411
  }, index);
402
412
  } else {
403
413
  return _jsx(Select, {
@@ -97,16 +97,16 @@ var SelectColumn = function SelectColumn(_ref) {
97
97
  onOk: function () {
98
98
  var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
99
99
  var newColumns, newMetaList;
100
- return _regeneratorRuntime.wrap(function _callee$(_context) {
100
+ return _regeneratorRuntime.wrap(function (_context) {
101
101
  while (1) switch (_context.prev = _context.next) {
102
102
  case 0:
103
103
  if (isValidSQLAlias(fieldAlias)) {
104
- _context.next = 3;
104
+ _context.next = 1;
105
105
  break;
106
106
  }
107
107
  Toast.warning(__('SqlQueryBuilder.aliasForRules'));
108
108
  return _context.abrupt("return", false);
109
- case 3:
109
+ case 1:
110
110
  newColumns = cloneDeep(columns);
111
111
  newMetaList = store.metaList[groupIndex].list.slice();
112
112
  newColumns[i].fieldAlias = fieldAlias;
@@ -117,7 +117,7 @@ var SelectColumn = function SelectColumn(_ref) {
117
117
  setTimeout(function () {
118
118
  store.setClosable(true);
119
119
  }, 0);
120
- case 11:
120
+ case 2:
121
121
  case "end":
122
122
  return _context.stop();
123
123
  }
@@ -40,7 +40,6 @@ var IconMap = {
40
40
  };
41
41
  var OPEN_GROUP = false; // mr.chen 说不弄这块 弄个开关防止后面要用
42
42
  var SelectJoinColumn = function SelectJoinColumn(_ref) {
43
- var _value$;
44
43
  var _ref$data = _ref.data,
45
44
  data = _ref$data === void 0 ? [] : _ref$data,
46
45
  _value = _ref.value,
@@ -62,7 +61,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
62
61
  _useState2 = _slicedToArray(_useState, 2),
63
62
  value = _useState2[0],
64
63
  setValue = _useState2[1]; // 当前选择的字段
65
- var _useState3 = useState(_value === null || _value === void 0 || (_value$ = _value[0]) === null || _value$ === void 0 ? void 0 : _value$.tableUuid),
64
+ var _useState3 = useState(''),
66
65
  _useState4 = _slicedToArray(_useState3, 2),
67
66
  curTable = _useState4[0],
68
67
  setCurTable = _useState4[1]; // 当前选择的表
@@ -78,16 +77,28 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
78
77
  _useState6 = _slicedToArray(_useState5, 2),
79
78
  tableList = _useState6[0],
80
79
  setTableList = _useState6[1];
81
- // useEffect(() => {
82
- // setCurTable(tableInfo);
83
- // }, [tableInfo]);
80
+ useEffect(function () {
81
+ var _value$, _value$2;
82
+ var tableUuid = _value === null || _value === void 0 || (_value$ = _value[0]) === null || _value$ === void 0 ? void 0 : _value$.tableUuid;
83
+ if ((_value === null || _value === void 0 || (_value$2 = _value[0]) === null || _value$2 === void 0 ? void 0 : _value$2.tableId) === SummarizeAlias) {
84
+ tableUuid = '';
85
+ } else {
86
+ var isHas = data.filter(function (v) {
87
+ return v.tableUuid === tableUuid;
88
+ });
89
+ if (isHas.length < 1) {
90
+ tableUuid = data[0].tableUuid;
91
+ }
92
+ }
93
+ setCurTable(tableUuid);
94
+ }, [data, _value]);
84
95
  useEffect(function () {
85
96
  // setCurColumn(_value);
86
97
  setValue(_value);
87
98
  }, [_value]);
88
- var isActive = function isActive(fieldUuid) {
99
+ var isActive = function isActive(id) {
89
100
  return (value === null || value === void 0 ? void 0 : value.filter(function (v) {
90
- return v.fieldUuid === fieldUuid;
101
+ return v.fieldId === id;
91
102
  }).length) > 0;
92
103
  };
93
104
  useEffect(function () {
@@ -133,7 +144,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
133
144
  return;
134
145
  }
135
146
  var isHas = (value === null || value === void 0 || (_value$filter = value.filter(function (v) {
136
- return v.fieldUuid === (val === null || val === void 0 ? void 0 : val.fieldUuid);
147
+ return v.fieldId === (val === null || val === void 0 ? void 0 : val.fieldId);
137
148
  })) === null || _value$filter === void 0 ? void 0 : _value$filter.length) > 0;
138
149
  var _value = value;
139
150
  if (tableUuid != curTable) {
@@ -143,7 +154,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
143
154
  _value.push(val);
144
155
  } else {
145
156
  _value = _value.filter(function (v) {
146
- return v.fieldUuid != (val === null || val === void 0 ? void 0 : val.fieldUuid);
157
+ return v.fieldId != (val === null || val === void 0 ? void 0 : val.fieldId);
147
158
  });
148
159
  }
149
160
  setValue(_value);
@@ -263,7 +274,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
263
274
  className: cx("Sqb-List-section"),
264
275
  children: _jsx("div", {
265
276
  className: cx("Sqb-List-item mx-2", {
266
- active: isActive(v.fieldUuid)
277
+ active: isActive(v.id)
267
278
  }),
268
279
  onClick: function onClick() {
269
280
  if (isSummarize) {
@@ -74,12 +74,19 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
74
74
  setTableList = _useState8[1];
75
75
  useEffect(function () {
76
76
  setValue(_value);
77
- setCurTable(_value.tableUuid);
78
77
  setCurColumn(_value.name);
79
78
  }, [_value]);
80
79
  useEffect(function () {
80
+ var tableUuid = _value === null || _value === void 0 ? void 0 : _value.tableUuid;
81
+ var isHas = data.filter(function (v) {
82
+ return v.tableUuid === tableUuid;
83
+ });
84
+ if (isHas.length < 1) {
85
+ tableUuid = data[0].tableUuid;
86
+ }
87
+ setCurTable(tableUuid);
81
88
  setTableList(data.map(function (v, i) {
82
- var open = !i && !_value.tableUuid ? true : v.tableUuid === _value.tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
89
+ var open = !i && !tableUuid ? true : v.tableUuid === tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
83
90
  return _objectSpread(_objectSpread({}, v), {}, {
84
91
  open: open,
85
92
  searchText: '',
@@ -232,6 +239,8 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
232
239
  return onGroup(_objectSpread(_objectSpread(_objectSpread({}, _value), {}, {
233
240
  tableUuid: tableUuid || _value.tableUuid
234
241
  }, v), {}, {
242
+ datasourceId: datasourceId,
243
+ datasourceName: datasourceName,
235
244
  table: table,
236
245
  tableId: tableId,
237
246
  alias: tableAlias,
@@ -303,6 +312,8 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
303
312
  return onGroup(_objectSpread(_objectSpread(_objectSpread({}, _value), {}, {
304
313
  tableUuid: tableUuid || _value.tableUuid
305
314
  }, v), {}, {
315
+ datasourceId: datasourceId,
316
+ datasourceName: datasourceName,
306
317
  table: table,
307
318
  tableId: tableId,
308
319
  alias: tableAlias,
@@ -51,12 +51,12 @@ var SelectPermissionTable = function SelectPermissionTable(_ref) {
51
51
  }), _jsx("div", {
52
52
  children: _jsxs("h4", {
53
53
  className: 'List-item-title ml-2',
54
- children: [v.datasourceName ? "".concat(v.datasourceName, ".") : '', v.name === 'source' ? PrevResult : v.name]
54
+ children: [v.datasourceName ? "".concat(v.datasourceName, ".") : '', v.name === 'source' ? PrevResult : v.alias || v.name]
55
55
  })
56
56
  })]
57
57
  })
58
58
  })
59
- }, v.name);
59
+ }, v.alias || v.name);
60
60
  })
61
61
  })
62
62
  })