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