@gingkoo/pandora-metabase 1.0.32 → 1.0.34

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.
@@ -9,6 +9,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
9
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
11
  var _excluded = ["children"];
12
+ // @ts-nocheck
12
13
  var procEnum = {
13
14
  mysql: 'mysql',
14
15
  oracle: 'oracle',
@@ -83,7 +84,7 @@ var _recursionArr2 = function _recursionArr(arr) {
83
84
  }
84
85
  return obj;
85
86
  };
86
- var _handleBaseType2Sql9 = function _handleBaseType2Sql(list) {
87
+ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
87
88
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
88
89
  var sql = '';
89
90
  var constants = [];
@@ -150,11 +151,11 @@ var _handleBaseType2Sql9 = function _handleBaseType2Sql(list) {
150
151
  var lhs = item.lhs,
151
152
  rhs = item.rhs;
152
153
  // 他很特殊 左边里面只有一种类型 右边面只有一种类型
153
- var _handleBaseType2Sql2 = _handleBaseType2Sql9(lhs, db),
154
+ var _handleBaseType2Sql2 = _handleBaseType2Sql8(lhs, db),
154
155
  leftSql = _handleBaseType2Sql2.sql,
155
156
  leftSqlItems = _handleBaseType2Sql2.sql_items,
156
157
  joinDefaultLeftConstants = _handleBaseType2Sql2.constants;
157
- var _handleBaseType2Sql3 = _handleBaseType2Sql9(rhs, db),
158
+ var _handleBaseType2Sql3 = _handleBaseType2Sql8(rhs, db),
158
159
  rightSql = _handleBaseType2Sql3.sql,
159
160
  rightSqlItems = _handleBaseType2Sql3.sql_items,
160
161
  joinDefaultRightConstants = _handleBaseType2Sql3.constants;
@@ -194,11 +195,11 @@ var _handleBaseType2Sql9 = function _handleBaseType2Sql(list) {
194
195
  condition = item.condition,
195
196
  database_type = item.database_type,
196
197
  formula = item.formula;
197
- var _handleBaseType2Sql4 = _handleBaseType2Sql9(_lhs, db),
198
+ var _handleBaseType2Sql4 = _handleBaseType2Sql8(_lhs, db),
198
199
  _leftSql = _handleBaseType2Sql4.sql,
199
200
  _leftSqlItems = _handleBaseType2Sql4.sql_items,
200
201
  _joinDefaultLeftConstants = _handleBaseType2Sql4.constants;
201
- var _handleBaseType2Sql5 = _handleBaseType2Sql9(_rhs, db),
202
+ var _handleBaseType2Sql5 = _handleBaseType2Sql8(_rhs, db),
202
203
  _rightSql = _handleBaseType2Sql5.sql,
203
204
  _rightSqlItems = _handleBaseType2Sql5.sql_items,
204
205
  _joinDefaultRightConstants = _handleBaseType2Sql5.constants;
@@ -469,40 +470,25 @@ var _handleBaseType2Sql9 = function _handleBaseType2Sql(list) {
469
470
  if ([BlockTypeEnum.notExists, BlockTypeEnum.exists].includes(type)) {
470
471
  var notExists = item.notExists;
471
472
  if (notExists && notExists !== null && notExists !== void 0 && notExists.length) {
472
- var _mainTable$table, _mainTable$table2;
473
- var mainTable = notExists.find(function (v) {
474
- return v.type === MetabaseTypeEnum.data;
475
- });
476
- var filterMeta = notExists.find(function (v) {
477
- return v.type === MetabaseTypeEnum.filter;
478
- });
479
- var where = '';
480
- if (filterMeta && filterMeta.filter && Array.isArray(filterMeta.filter) && filterMeta.filter.length) {
481
- var _handleBaseType2Sql6 = _handleBaseType2Sql9(filterMeta.filter, db),
482
- notExistsSql = _handleBaseType2Sql6.sql,
483
- constInNotExistsFilter = _handleBaseType2Sql6.constants;
484
- constants.push.apply(constants, (0, _toConsumableArray2["default"])(constInNotExistsFilter));
485
- where = "WHERE ".concat(notExistsSql);
486
- }
487
473
  if (type === BlockTypeEnum.notExists) {
488
474
  sql += ' NOT EXISTS';
489
475
  } else {
490
476
  sql += ' EXISTS';
491
477
  }
492
- sql += " (SELECT 1 FROM ".concat(mainTable === null || mainTable === void 0 || (_mainTable$table = mainTable.table) === null || _mainTable$table === void 0 ? void 0 : _mainTable$table.name, " AS ").concat(mainTable === null || mainTable === void 0 || (_mainTable$table2 = mainTable.table) === null || _mainTable$table2 === void 0 ? void 0 : _mainTable$table2.alias, " ").concat(where, ")");
478
+ sql += " (".concat(handleSqlUnion(notExists, db, true).sql, ")");
493
479
  }
494
480
  }
495
481
  if (type === BlockTypeEnum.FORMULA) {
496
- var _handleBaseType2Sql7 = _handleBaseType2Sql9(item.args, db),
497
- argSql = _handleBaseType2Sql7.sql,
498
- formulaConstants = _handleBaseType2Sql7.constants;
482
+ var _handleBaseType2Sql6 = _handleBaseType2Sql8(item.args, db),
483
+ argSql = _handleBaseType2Sql6.sql,
484
+ formulaConstants = _handleBaseType2Sql6.constants;
499
485
  sql += " ".concat(item.name, "(").concat(argSql, ")");
500
486
  constants.push.apply(constants, (0, _toConsumableArray2["default"])(formulaConstants));
501
487
  }
502
488
  if (type === BlockTypeEnum.collection) {
503
- var _handleBaseType2Sql8 = _handleBaseType2Sql9(item.list, db),
504
- collectionSql = _handleBaseType2Sql8.sql,
505
- collectionConstants = _handleBaseType2Sql8.constants;
489
+ var _handleBaseType2Sql7 = _handleBaseType2Sql8(item.list, db),
490
+ collectionSql = _handleBaseType2Sql7.sql,
491
+ collectionConstants = _handleBaseType2Sql7.constants;
506
492
  sql += " ".concat(collectionSql);
507
493
  constants.push.apply(constants, (0, _toConsumableArray2["default"])(collectionConstants));
508
494
  }
@@ -526,9 +512,9 @@ var _handleJoinData = function _handleJoinData(joinData) {
526
512
  if (isSubquery) {
527
513
  subQuery = subquery;
528
514
  }
529
- var _handleBaseType2Sql0 = _handleBaseType2Sql9(expressions, db),
530
- sql = _handleBaseType2Sql0.sql,
531
- joinConstants = _handleBaseType2Sql0.constants;
515
+ var _handleBaseType2Sql9 = _handleBaseType2Sql8(expressions, db),
516
+ sql = _handleBaseType2Sql9.sql,
517
+ joinConstants = _handleBaseType2Sql9.constants;
532
518
  var joinCondition = "on ".concat(sql);
533
519
  constants = joinConstants;
534
520
  return {
@@ -618,9 +604,9 @@ var _handleNesting = function handleNesting(data) {
618
604
  var customColumnsConstants = [];
619
605
  var handleCustomColumn = function handleCustomColumn(data) {
620
606
  return data.map(function (it) {
621
- var _handleBaseType2Sql1 = _handleBaseType2Sql9(it.formulaList, db),
622
- field_sql = _handleBaseType2Sql1.sql,
623
- constants = _handleBaseType2Sql1.constants;
607
+ var _handleBaseType2Sql0 = _handleBaseType2Sql8(it.formulaList, db),
608
+ field_sql = _handleBaseType2Sql0.sql,
609
+ constants = _handleBaseType2Sql0.constants;
624
610
  customColumnsConstants.push.apply(customColumnsConstants, (0, _toConsumableArray2["default"])(constants));
625
611
  return {
626
612
  field_sql: "".concat(field_sql, " as ").concat(it.name),
@@ -635,9 +621,9 @@ var _handleNesting = function handleNesting(data) {
635
621
  obj.customColumnsConstants = customColumnsConstants;
636
622
  }
637
623
  if (filterData && filterData.filter.length) {
638
- var _handleBaseType2Sql10 = _handleBaseType2Sql9(filterData.filter, db),
639
- sql = _handleBaseType2Sql10.sql,
640
- constants = _handleBaseType2Sql10.constants;
624
+ var _handleBaseType2Sql1 = _handleBaseType2Sql8(filterData.filter, db),
625
+ sql = _handleBaseType2Sql1.sql,
626
+ constants = _handleBaseType2Sql1.constants;
641
627
  obj.filters = 'WHERE ' + sql;
642
628
  obj.filtersConstants = constants;
643
629
  }
@@ -682,8 +668,8 @@ var _handleNesting = function handleNesting(data) {
682
668
  }
683
669
  if (sortData && sortData.sort.length) {
684
670
  obj.orderInfos = "ORDER BY ".concat(sortData.sort.map(function (v) {
685
- var _handleBaseType2Sql11 = _handleBaseType2Sql9(v.expression, db),
686
- sql = _handleBaseType2Sql11.sql;
671
+ var _handleBaseType2Sql10 = _handleBaseType2Sql8(v.expression, db),
672
+ sql = _handleBaseType2Sql10.sql;
687
673
  return "".concat(sql, " ").concat(v.sort);
688
674
  }).join(', '));
689
675
  }
@@ -754,6 +740,7 @@ var handleSqlStruct = function handleSqlStruct(list) {
754
740
  // 处理 union
755
741
  var handleSqlUnion = function handleSqlUnion(metas) {
756
742
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
743
+ var noFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
757
744
  var unionMetas = metas.filter(function (it) {
758
745
  return it.type === MetabaseTypeEnum.union;
759
746
  });
@@ -761,7 +748,7 @@ var handleSqlUnion = function handleSqlUnion(metas) {
761
748
  return it.type !== MetabaseTypeEnum.union;
762
749
  });
763
750
  var data = handleSqlStruct(baseMetas, db);
764
- var _sqlStruct2text = _sqlStruct2text3(data, 0, db),
751
+ var _sqlStruct2text = _sqlStruct2text3(data, 0, db, noFields),
765
752
  sql = _sqlStruct2text.sql,
766
753
  fields = _sqlStruct2text.fields;
767
754
  var union_fields = [fields];
@@ -792,6 +779,7 @@ var handleSqlUnion = function handleSqlUnion(metas) {
792
779
  var _sqlStruct2text3 = function sqlStruct2text(data) {
793
780
  var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
794
781
  var db = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : procEnum.mysql;
782
+ var noFields = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
795
783
  var sql = '';
796
784
  var hasInnerSql = data.hasInnerSql,
797
785
  innerSqlStruct = data.innerSqlStruct,
@@ -811,51 +799,55 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
811
799
  // 情况一、一层 带聚合 字段是 聚合字段
812
800
  // 情况二、一层 不带聚合 字段是 主表和关联表的字段
813
801
  // 情况三、二层 带聚合 第一层 聚合字段 + 关联表字段 第二层 聚合字段 第三层 聚合字段
814
- var flag = false; // 是否加逗号
815
- if (limit && db === procEnum.sqlserver) {
816
- sql += "TOP(".concat(limit, ") ");
817
- }
818
- if (hasInnerSql) {
819
- // 情况三 innerSqlStruct.queryColumns 是内层 聚合输出的字段,这种字段虽说是内层的,但是其实外层也需要
820
- if (innerSqlStruct.queryColumns && innerSqlStruct.queryColumns.length) {
821
- sql += innerSqlStruct.queryColumns.map(function (v) {
822
- return "".concat(alias, ".").concat(v.name, " as ").concat(v.name);
823
- }).join(', ') + ' ';
824
- flag = true;
825
- }
802
+ if (noFields) {
803
+ sql += '1 ';
826
804
  } else {
827
- if (Array.isArray(queryColumns) && queryColumns.length) {
828
- // 情况一 queryColumns 是聚合字段
829
- // 情况二 queryColumns 是主表字段
830
- // 情况三 queryColumns 是聚合字段
831
- flag = true;
832
- sql += queryColumns.map(function (v) {
833
- return v.field_sql;
834
- }).join(', ') + ' ';
805
+ var flag = false; // 是否加逗号
806
+ if (limit && db === procEnum.sqlserver) {
807
+ sql += "TOP(".concat(limit, ") ");
835
808
  }
836
- }
837
- if (firstEntry && joinTables && !groupBy) {
838
- // 情况二 joinTables 是关联表字段
839
- // 情况三 joinTables 是关联表字段
840
- joinTables.forEach(function (it) {
841
- if (Array.isArray(it.queryColumns) && it.queryColumns.length) {
842
- if (flag) {
843
- sql += ', ';
844
- }
845
- sql += it.queryColumns.map(function (v) {
846
- return v.field_sql;
809
+ if (hasInnerSql) {
810
+ // 情况三 innerSqlStruct.queryColumns 是内层 聚合输出的字段,这种字段虽说是内层的,但是其实外层也需要
811
+ if (innerSqlStruct.queryColumns && innerSqlStruct.queryColumns.length) {
812
+ sql += innerSqlStruct.queryColumns.map(function (v) {
813
+ return "".concat(alias, ".").concat(v.name, " as ").concat(v.name);
847
814
  }).join(', ') + ' ';
848
815
  flag = true;
849
816
  }
850
- });
851
- }
852
- if (customColumns && customColumns.length) {
853
- if (flag) {
854
- sql += ', ';
817
+ } else {
818
+ if (Array.isArray(queryColumns) && queryColumns.length) {
819
+ // 情况一 queryColumns 是聚合字段
820
+ // 情况二 queryColumns 是主表字段
821
+ // 情况三 queryColumns 是聚合字段
822
+ flag = true;
823
+ sql += queryColumns.map(function (v) {
824
+ return v.field_sql;
825
+ }).join(', ') + ' ';
826
+ }
827
+ }
828
+ if (firstEntry && joinTables && !groupBy) {
829
+ // 情况二 joinTables 是关联表字段
830
+ // 情况三 joinTables 是关联表字段
831
+ joinTables.forEach(function (it) {
832
+ if (Array.isArray(it.queryColumns) && it.queryColumns.length) {
833
+ if (flag) {
834
+ sql += ', ';
835
+ }
836
+ sql += it.queryColumns.map(function (v) {
837
+ return v.field_sql;
838
+ }).join(', ') + ' ';
839
+ flag = true;
840
+ }
841
+ });
842
+ }
843
+ if (customColumns && customColumns.length) {
844
+ if (flag) {
845
+ sql += ', ';
846
+ }
847
+ sql += customColumns.map(function (v) {
848
+ return v.field_sql;
849
+ }).join(', ') + ' ';
855
850
  }
856
- sql += customColumns.map(function (v) {
857
- return v.field_sql;
858
- }).join(', ') + ' ';
859
851
  }
860
852
  // -------- 处理 main table --------
861
853
  sql += 'FROM ';
@@ -908,7 +900,7 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
908
900
  }
909
901
  // -------- 获取 字段列表 --------
910
902
  var fields = [];
911
- if (firstEntry) {
903
+ if (firstEntry && !noFields) {
912
904
  function addFields(data) {
913
905
  var name = data.name,
914
906
  name_zh = data.name_zh,
@@ -157,6 +157,14 @@ export var customTypes = [
157
157
  value: AtomsTypeEnum.FORMULA,
158
158
  label: __('customColumn.formula'),
159
159
  children: operatorList
160
+ },
161
+ // EXISTS
162
+ {
163
+ value: AtomsTypeEnum.NOT_EXISTS,
164
+ label: 'NOT_EXISTS'
165
+ }, {
166
+ value: AtomsTypeEnum.EXISTS,
167
+ label: 'EXISTS'
160
168
  }];
161
169
  export var getTemplateItem = function getTemplateItem(type) {
162
170
  var temItem;
@@ -65,7 +65,8 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
65
65
  var _useState3 = useState((_value === null || _value === void 0 || (_value$ = _value[0]) === null || _value$ === void 0 ? void 0 : _value$.tableId) === SummarizeAlias ? '' : _value === null || _value === void 0 || (_value$2 = _value[0]) === null || _value$2 === void 0 ? void 0 : _value$2.tableUuid),
66
66
  _useState4 = _slicedToArray(_useState3, 2),
67
67
  curTable = _useState4[0],
68
- setCurTable = _useState4[1]; // 当前选择的表
68
+ setCurTable = _useState4[1];
69
+ // 当前选择的表
69
70
  // const [curColumn, setCurColumn] = useState(_value); // 当前选择的字段
70
71
  var _useState5 = useState(data.map(function (v, i) {
71
72
  var open = !i && !curTable ? true : v.tableUuid === curTable; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
@@ -93,9 +94,10 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
93
94
  return v.tableUuid === tableUuid;
94
95
  });
95
96
  if (isHas.length < 1 && tableUuid !== SummarizeAlias) {
96
- tableUuid = data[0].tableUuid;
97
+ var _data$;
98
+ tableUuid = (data === null || data === void 0 || (_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.tableUuid) || '';
97
99
  }
98
- setTableList(data.map(function (v, i) {
100
+ setTableList(data === null || data === void 0 ? void 0 : data.map(function (v, i) {
99
101
  var open = !i && !tableUuid ? true : v.tableUuid === tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧
100
102
  return _objectSpread(_objectSpread({}, v), {}, {
101
103
  open: open,
@@ -162,7 +164,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
162
164
  style: {
163
165
  width: 300
164
166
  },
165
- children: tableList.map(function (tableItem) {
167
+ children: tableList.map(function (tableItem, i) {
166
168
  var tableAlias = tableItem.alias,
167
169
  tableName = tableItem.name,
168
170
  columns = tableItem.columns,
@@ -267,7 +269,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
267
269
  className: cx("Sqb-List-section"),
268
270
  children: _jsx("div", {
269
271
  className: cx("Sqb-List-item mx-2", {
270
- active: isActive(v.id)
272
+ active: isActive(v.id || v.name)
271
273
  }),
272
274
  onClick: function onClick() {
273
275
  if (isSummarize) {
@@ -282,7 +284,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
282
284
  datasourceName: tableItem.datasourceName || '',
283
285
  datasourceId: tableItem.datasourceId || '',
284
286
  fieldName: v.name,
285
- fieldId: v.id,
287
+ fieldId: v.id || v.name,
286
288
  fieldNameZh: v.name_zh || '',
287
289
  fieldAlias: v.fieldAlias,
288
290
  fieldUuid: v.fieldUuid,
@@ -310,9 +312,9 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
310
312
  className: 'List-item-icon',
311
313
  children: IconMap[special_type || database_type] || _jsx(LetterAaIcon, {})
312
314
  }), _jsx("div", {
313
- children: _jsx("h4", {
315
+ children: _jsxs("h4", {
314
316
  className: 'List-item-title ml-2',
315
- children: replaceTpl(store.fieldNameTpl, v)
317
+ children: [replaceTpl(store.fieldNameTpl, v), v.fieldAlias ? " as ".concat(v.fieldAlias) : '']
316
318
  })
317
319
  })]
318
320
  })
@@ -320,7 +322,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
320
322
  }, i);
321
323
  })]
322
324
  })]
323
- }, tableUuid || tableAlias);
325
+ }, (tableUuid || tableAlias) + '' + i);
324
326
  })
325
327
  })
326
328
  }), showNextBtn && multiple && _jsx(Button, {
@@ -34,7 +34,6 @@ var SelectPermissionTable = function SelectPermissionTable(_ref) {
34
34
  width: '100%'
35
35
  },
36
36
  children: Array.isArray(datasource) && datasource.map(function (v) {
37
- console.log('🚀 ~ SelectPermissionTable ~ v:', v);
38
37
  return _jsx("div", {
39
38
  className: cx("Sqb-List-section"),
40
39
  children: _jsx("div", {
@@ -142,6 +142,19 @@ var Filter = function Filter(props) {
142
142
  newMeta[index].filter = val;
143
143
  store.setMeta(newMeta, groupIndex);
144
144
  };
145
+ var getPreColumns = function getPreColumns() {
146
+ var data = [].concat(_toConsumableArray(getColumns()), _toConsumableArray(cloneDeep(notExistsColumns || [])));
147
+ // 将source 拍到最前面
148
+ var priorityNames = ['source'];
149
+ var sorted = data.sort(function (a, b) {
150
+ var aPriority = priorityNames.includes(a.name);
151
+ var bPriority = priorityNames.includes(b.name);
152
+ if (aPriority && !bPriority) return -1;
153
+ if (!aPriority && bPriority) return 1;
154
+ return 0;
155
+ });
156
+ return sorted;
157
+ };
145
158
  return _jsx(Wrapper, {
146
159
  className: "Sqb-item",
147
160
  children: _jsxs("div", {
@@ -159,7 +172,7 @@ var Filter = function Filter(props) {
159
172
  customTypes: customTypes,
160
173
  operatorList: operatorList,
161
174
  value: filter,
162
- data: [].concat(_toConsumableArray(getColumns()), _toConsumableArray(cloneDeep(notExistsColumns || []))),
175
+ data: getPreColumns(),
163
176
  exitData: getColumns(),
164
177
  onChange: function onChange(val) {
165
178
  selectFilter(val);
@@ -61,7 +61,7 @@ var menuOperator = operators.map(function (v) {
61
61
  };
62
62
  });
63
63
  var JoinData = function JoinData(props) {
64
- var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table2, _meta$table3, _meta$table5, _meta$table6, _meta$table7, _meta$table8, _meta$expressions, _meta$table9, _meta$table0, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
64
+ 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;
65
65
  var meta = props.meta,
66
66
  groupIndex = props.groupIndex;
67
67
  var store = useStore();
@@ -73,7 +73,8 @@ var JoinData = function JoinData(props) {
73
73
  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);
74
74
  var columnsSelected = meta.table1.name && meta.table2.name;
75
75
  var _getHelper = getHelper(store.metaList[groupIndex].list, meta),
76
- prevTables = _getHelper.prevTables;
76
+ prevTables = _getHelper.prevTables,
77
+ prevGroupBy = _getHelper.prevGroupBy;
77
78
  // const ref = useRef(null);
78
79
  // useEffect(() => {
79
80
  // let newMetaList = store.metaList[groupIndex].list.slice();
@@ -365,8 +366,9 @@ var JoinData = function JoinData(props) {
365
366
  onChange: function onChange(data) {
366
367
  var tableName = data.name;
367
368
  if (meta.table2.name !== tableName || meta.table2.datasourceId !== data.datasourceId) {
369
+ var _store$preProps;
368
370
  var newMeta = store.metaList[groupIndex].list.slice();
369
- var alias = getAlias(tableName, newMeta);
371
+ var alias = getAlias(tableName, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []);
370
372
  var _table2 = _objectSpread(_objectSpread({}, data), {}, {
371
373
  name: tableName,
372
374
  tableUuid: data.tableUuid || uuidv4('table'),
@@ -600,6 +602,7 @@ var JoinData = function JoinData(props) {
600
602
  return data;
601
603
  }
602
604
  function selectMoreJoinColumn(e) {
605
+ var _data2, _data3, _data4;
603
606
  var node = e.currentTarget;
604
607
  var _position = node.getAttribute('v-position');
605
608
  var _ind = Number(node.getAttribute('v-index'));
@@ -716,6 +719,10 @@ var JoinData = function JoinData(props) {
716
719
  columns: meta.columns
717
720
  }];
718
721
  }
722
+ // 字段为空,或只存在聚合且聚合为空时
723
+ 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) === 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) {
724
+ Toast.warning(__('SqlQueryBuilder.pleaseSelectTable'));
725
+ }
719
726
  !meta.readonly && store.setPopup({
720
727
  visible: true,
721
728
  node: node,
@@ -883,10 +890,10 @@ var JoinData = function JoinData(props) {
883
890
  // 子查询弹窗
884
891
  var showSubQuery = function showSubQuery() {
885
892
  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
886
- var _store$preProps = store.preProps,
887
- subToolbar = _store$preProps.subToolbar,
888
- toolbar = _store$preProps.toolbar,
889
- other = _objectWithoutProperties(_store$preProps, _excluded);
893
+ var _store$preProps2 = store.preProps,
894
+ subToolbar = _store$preProps2.subToolbar,
895
+ toolbar = _store$preProps2.toolbar,
896
+ other = _objectWithoutProperties(_store$preProps2, _excluded);
890
897
  var newMeta = store.metaList[groupIndex].list.slice();
891
898
  var index = findIndex(store.metaList[groupIndex].list, meta);
892
899
  var oldList = cloneDeep(newMeta[index].subquery);
@@ -905,6 +912,7 @@ var JoinData = function JoinData(props) {
905
912
  value: cloneDeep(val),
906
913
  onOk: function onOk(newList) {
907
914
  try {
915
+ var _store$preProps3;
908
916
  // 子查询未改变不做操作
909
917
  if (isEqual(newList, oldList)) {
910
918
  o.close();
@@ -912,7 +920,7 @@ var JoinData = function JoinData(props) {
912
920
  }
913
921
  newMeta[index].subquery = newList;
914
922
  newMeta[index].table2 = _objectSpread(_objectSpread({}, newList[0].table), {}, {
915
- alias: newMeta[index].table2.alias || getAlias(newList[0].table.name, newMeta)
923
+ alias: newMeta[index].table2.alias || getAlias(newList[0].table.name, newMeta, ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.notExistsColumns) || [])
916
924
  // fields: [],
917
925
  });
918
926
  var items = getSubColumns(newList);
@@ -1137,6 +1145,9 @@ var JoinData = function JoinData(props) {
1137
1145
  var leftTableIsError = function leftTableIsError() {
1138
1146
  var _prevTables$meta$tabl;
1139
1147
  if (!meta.table1.datasourceId || !meta.table1.id || meta.table1.datasourceId === SummarizeAlias) {
1148
+ if (!prevGroupBy && meta.table1.id === SummarizeAlias) {
1149
+ return true;
1150
+ }
1140
1151
  return false;
1141
1152
  }
1142
1153
  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]);
@@ -1216,6 +1227,17 @@ var JoinData = function JoinData(props) {
1216
1227
  });
1217
1228
  }
1218
1229
  };
1230
+ var tableIsError = function tableIsError() {
1231
+ var _store$preProps4, _meta$table;
1232
+ 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) {
1233
+ return v.alias;
1234
+ })) || [];
1235
+ var tableAlias = (_meta$table = meta.table2) === null || _meta$table === void 0 ? void 0 : _meta$table.alias;
1236
+ if (tableAlias && aliass.includes(tableAlias)) {
1237
+ return true;
1238
+ }
1239
+ return false;
1240
+ };
1219
1241
  return _jsx(Wrapper, {
1220
1242
  className: cx("Sqb-item"),
1221
1243
  children: _jsxs("div", {
@@ -1265,42 +1287,48 @@ var JoinData = function JoinData(props) {
1265
1287
  showSubQuery(meta.subquery);
1266
1288
  },
1267
1289
  children: [subQuerySelected && _jsx(Tooltip, {
1268
- title: __('SqlQueryBuilder.alias'),
1290
+ title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
1269
1291
  children: _jsx(Button, {
1270
- className: ':Sqb-TableName-as',
1292
+ danger: tableIsError(),
1293
+ className: cx(':Sqb-TableName-as', {
1294
+ isError: tableIsError()
1295
+ }),
1271
1296
  shape: 'circle',
1272
1297
  iconOnly: true,
1273
1298
  primary: true,
1274
1299
  icon: 'As',
1275
1300
  size: 'small',
1276
1301
  onClick: function onClick(e) {
1277
- var _meta$table;
1302
+ var _meta$table2;
1278
1303
  e.stopPropagation();
1279
- onChangeTableAlias(((_meta$table = meta.table2) === null || _meta$table === void 0 ? void 0 : _meta$table.alias) || '');
1304
+ onChangeTableAlias(((_meta$table2 = meta.table2) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias) || '');
1280
1305
  }
1281
1306
  })
1282
- }), 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$table2 = meta.table2) !== null && _meta$table2 !== void 0 && _meta$table2.alias ? "as ".concat((_meta$table3 = meta.table2) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
1307
+ }), 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) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
1283
1308
  }) : _jsxs("div", {
1284
1309
  className: cx("Sqb-TableName", {
1285
1310
  notSelected: !table2Selected
1286
1311
  }),
1287
1312
  onClick: selectTable,
1288
1313
  children: [table2Selected && _jsx(Tooltip, {
1289
- title: __('SqlQueryBuilder.alias'),
1314
+ title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
1290
1315
  children: _jsx(Button, {
1291
- className: ':Sqb-TableName-as',
1316
+ danger: tableIsError(),
1317
+ className: cx(':Sqb-TableName-as', {
1318
+ isError: tableIsError()
1319
+ }),
1292
1320
  shape: 'circle',
1293
1321
  iconOnly: true,
1294
1322
  primary: true,
1295
1323
  icon: 'As',
1296
1324
  size: 'small',
1297
1325
  onClick: function onClick(e) {
1298
- var _meta$table4;
1326
+ var _meta$table5;
1299
1327
  e.stopPropagation();
1300
- onChangeTableAlias(((_meta$table4 = meta.table2) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
1328
+ onChangeTableAlias(((_meta$table5 = meta.table2) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) || '');
1301
1329
  }
1302
1330
  })
1303
- }), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table5 = meta.table2) !== null && _meta$table5 !== void 0 && _meta$table5.alias ? "as ".concat((_meta$table6 = meta.table2) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '') : __('SqlQueryBuilder.pickTable')]
1331
+ }), 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) : '') : __('SqlQueryBuilder.pickTable')]
1304
1332
  }), store.showSubquery && _jsx(Tooltip, {
1305
1333
  title: __('SqlQueryBuilder.switchSubQuery'),
1306
1334
  children: _jsx(Button, {
@@ -1311,7 +1339,7 @@ var JoinData = function JoinData(props) {
1311
1339
  icon: _jsx(RelatedWork, {}),
1312
1340
  onClick: switchSubQuery
1313
1341
  })
1314
- }), ((_meta$table7 = meta.table2) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.name) && ((_meta$table8 = meta.table1) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.name) && ((_meta$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
1342
+ }), ((_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) {
1315
1343
  if (v.type === AtomsTypeEnum.JOIN_DEFAULT) {
1316
1344
  return _jsxs("div", {
1317
1345
  className: cx("Sqb-where block"),
@@ -1538,7 +1566,7 @@ var JoinData = function JoinData(props) {
1538
1566
  })]
1539
1567
  }, i);
1540
1568
  }
1541
- })), ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$table0 = meta.table1) === null || _meta$table0 === void 0 ? void 0 : _meta$table0.name) && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && _jsx(Tooltip, {
1569
+ })), ((_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 && _jsx(Tooltip, {
1542
1570
  title: __('SqlQueryBuilder.add'),
1543
1571
  children: _jsx(Dropdown, {
1544
1572
  trigger: ['click'],
@@ -9,7 +9,7 @@ import { TypeEnum, ColumnsPopupThemeEnum, SQL_COLUMN_TYPE } from '../../../store
9
9
  import { MetaSummarize_Enum, AtomsTypeEnum } from '../../../store/types';
10
10
  import SelectJoinColumn from '../../dialog/select-join-column';
11
11
  import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
12
- import { uuidv4 } from '../../../utils/helper';
12
+ import { uuidv4, getAlias } from '../../../utils/helper';
13
13
  import { changeFieldAlias, isValidSQLAlias, isError } from '../../../utils';
14
14
  import ItemName from '../components/item-name';
15
15
  import { AddIcon, CloseIcon } from '../../icons';
@@ -194,7 +194,8 @@ var GroupBy = function GroupBy(props) {
194
194
  newMeta[index].by.push(data);
195
195
  // @ts-ignore
196
196
  newMeta[index].by = newMeta[index].by.map(function (v) {
197
- var fieldAlias = "".concat(v.alias, "__").concat(v.name);
197
+ var _store$preProps;
198
+ var fieldAlias = "".concat(getAlias(v.alias, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []), "__").concat(v.name);
198
199
  return _objectSpread(_objectSpread({}, v), {}, {
199
200
  sql: "".concat(v.alias, ".").concat(v.realName || v.name),
200
201
  fieldAlias: fieldAlias,