@gingkoo/pandora-metabase 1.0.21 → 1.0.22

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.
@@ -60,6 +60,7 @@ var Metabase = function Metabase(props) {
60
60
  case 0:
61
61
  intercept = false; // 是否返回
62
62
  _metaList = (0, _utils.splitByUnion)(store.metaList);
63
+ _metaList[0].patchVersion = '1.0.0';
63
64
  store.metaList.map(function (v) {
64
65
  var _v$list;
65
66
  if (v.type !== 'union' && !((_v$list = v.list) === null || _v$list === void 0 ? void 0 : _v$list[0]).table.name) {
@@ -73,7 +73,7 @@ var JoinData = function JoinData(props) {
73
73
  var table1Selected = Boolean(meta.table1.name);
74
74
  var table2Selected = Boolean(meta.table2.name);
75
75
  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);
76
- var columnsSelected = meta.table1.id && meta.table2.id;
76
+ var columnsSelected = meta.table1.name && meta.table2.name;
77
77
  // useEffect(() => {
78
78
  // let newMetaList = store.metaList[groupIndex].list.slice();
79
79
  // newMetaList[index] = setQuotes(meta);
@@ -114,7 +114,7 @@ var Sort = function Sort(props) {
114
114
  newMeta[index].sort.forEach(function (v) {
115
115
  v.expression.forEach(function (vv) {
116
116
  if (vv.type === _types.AtomsTypeEnum.FIELD) {
117
- if (selectedSort[vv.fieldName]) {
117
+ if (selectedSort[vv.tableName]) {
118
118
  selectedSort[vv.tableAlias].push(vv.fieldName);
119
119
  } else {
120
120
  selectedSort[vv.tableAlias] = [vv.fieldName];
@@ -1,5 +1,7 @@
1
+ import { MetaListType } from '../store/types';
1
2
  export declare const dataPatch: (newMeta: any) => any;
2
3
  export declare const joinDataPatch: (newMeta: any) => any;
3
4
  export declare const filterPatch: (newMeta: any) => any;
4
5
  export declare const customColumnPatch: (newMeta: any) => any;
5
6
  export declare const sortPatch: (newMeta: any) => any;
7
+ export declare const patchMetas: (items: MetaListType[]) => MetaListType[];
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.sortPatch = exports.joinDataPatch = exports.filterPatch = exports.dataPatch = exports.customColumnPatch = void 0;
7
+ exports.sortPatch = exports.patchMetas = exports.joinDataPatch = exports.filterPatch = exports.dataPatch = exports.customColumnPatch = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
9
  var _helper = require("../utils/helper");
10
10
  var _utils = require("../utils");
@@ -18,11 +18,11 @@ var dataPatch = exports.dataPatch = function dataPatch(newMeta) {
18
18
  return newMeta;
19
19
  }
20
20
  }
21
- newMeta.subquery = renderExists(newMeta.subquery);
21
+ newMeta.subquery = _patchMetas(newMeta.subquery);
22
22
  return newMeta;
23
23
  };
24
24
  var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
25
- var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3, _expressions2;
25
+ var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3;
26
26
  var item = ((_newMeta$expressions2 = newMeta.expressions) === null || _newMeta$expressions2 === void 0 ? void 0 : _newMeta$expressions2[0]) || {};
27
27
  if (item !== null && item !== void 0 && item.type && Object.values(_types.AtomsTypeEnum).includes(item.type)) {
28
28
  if ((item.type === _types.AtomsTypeEnum.EXPRESSION || item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) && item.lhs) {
@@ -127,7 +127,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
127
127
  type: 'default' // 默认是字段模式
128
128
  }];
129
129
  }
130
- var expressions = (_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
130
+ var expressions = ((_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
131
131
  var _left_fields, _right_fields;
132
132
  var left_fields = v.left_fields || [];
133
133
  var right_fields = v.right_fields || [];
@@ -178,9 +178,10 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
178
178
  right_type: v.right_type || '',
179
179
  type: v.type || 'default' // 默认是字段模式
180
180
  };
181
- });
181
+ })) || [];
182
182
  var _expressions = beforeExpressions.concat(expressions);
183
- _expressions = (_expressions2 = _expressions) === null || _expressions2 === void 0 ? void 0 : _expressions2.map(function (v) {
183
+ var newExpressions = [];
184
+ _expressions === null || _expressions === void 0 || _expressions.map(function (v, i) {
184
185
  var lhs = [];
185
186
  var rhs = [];
186
187
  if (v.left_type === 'string') {
@@ -196,9 +197,9 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
196
197
  } else {
197
198
  var _v$left_fields;
198
199
  lhs = (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.map(function (vv) {
199
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, vv), {}, {
200
+ return (0, _objectSpread2["default"])({
200
201
  fieldNameZh: newMeta.table1.name_zh,
201
- fieldName: newMeta.table1.fieldName || newMeta.table1.name,
202
+ fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table1.fieldName || newMeta.table1.name,
202
203
  tableAlias: newMeta.table1.alias,
203
204
  tableId: newMeta.table1.id,
204
205
  tableName: newMeta.table1.name,
@@ -209,7 +210,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
209
210
  datasourceId: newMeta.table1.datasourceId,
210
211
  // 数据源id
211
212
  type: _types.AtomsTypeEnum.FIELD
212
- });
213
+ }, vv);
213
214
  });
214
215
  }
215
216
  if (v.right_type === 'string') {
@@ -225,9 +226,9 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
225
226
  } else {
226
227
  var _v$right_fields;
227
228
  rhs = (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.map(function (vv) {
228
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, vv), {}, {
229
+ return (0, _objectSpread2["default"])({
229
230
  fieldNameZh: newMeta.table2.name_zh,
230
- fieldName: newMeta.table2.fieldName || newMeta.table2.name,
231
+ fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table2.fieldName || newMeta.table2.name,
231
232
  tableAlias: newMeta.table2.alias,
232
233
  tableId: newMeta.table2.id,
233
234
  tableName: newMeta.table2.name,
@@ -238,7 +239,7 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
238
239
  datasourceId: newMeta.table2.datasourceId,
239
240
  // 数据源id
240
241
  type: _types.AtomsTypeEnum.FIELD
241
- });
242
+ }, vv);
242
243
  });
243
244
  }
244
245
  var item = {
@@ -249,14 +250,21 @@ var joinDataPatch = exports.joinDataPatch = function joinDataPatch(newMeta) {
249
250
  // quotes: '',
250
251
  type: _types.AtomsTypeEnum.JOIN_DEFAULT
251
252
  };
253
+ newExpressions.push(item);
254
+ if (_expressions.length - 1 > i) {
255
+ newExpressions.push({
256
+ val: 'AND',
257
+ type: _types.AtomsTypeEnum.OPERATOR
258
+ });
259
+ }
252
260
  return item;
253
261
  });
254
262
  // 清除table1中不用字段
255
263
  delete newMeta.table1.fields;
256
264
  // 清除table2中不用字段
257
265
  delete newMeta.table2.fields;
258
- newMeta.subquery = renderExists(newMeta.subquery);
259
- newMeta.expressions = _expressions;
266
+ newMeta.subquery = _patchMetas(newMeta.subquery);
267
+ newMeta.expressions = newExpressions;
260
268
  return newMeta;
261
269
  };
262
270
  var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
@@ -282,7 +290,7 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
282
290
  if (typeof v === 'string') {
283
291
  return {
284
292
  val: v,
285
- type: _types.AtomsTypeEnum.INPUT_STRING
293
+ type: _types.AtomsTypeEnum.OPERATOR
286
294
  };
287
295
  } else if (v.type === 'expression') {
288
296
  var rhs;
@@ -348,14 +356,14 @@ var filterPatch = exports.filterPatch = function filterPatch(newMeta) {
348
356
  };
349
357
  return tem;
350
358
  } else if (v.type === 'notExists') {
351
- var notExists = renderExists(v.notExists);
359
+ var notExists = _patchMetas(v.notExists);
352
360
  return {
353
361
  notExists: notExists,
354
362
  quotes: (0, _utils.buildSqlQuery)(notExists, v.type),
355
363
  type: _types.AtomsTypeEnum.NOT_EXISTS
356
364
  };
357
365
  } else if (v.type === 'exists') {
358
- var _notExists = renderExists(v.notExists);
366
+ var _notExists = _patchMetas(v.notExists);
359
367
  return {
360
368
  notExists: _notExists,
361
369
  quotes: (0, _utils.buildSqlQuery)(_notExists, v.type),
@@ -540,7 +548,7 @@ var sortPatch = exports.sortPatch = function sortPatch(newMeta) {
540
548
  newMeta.sort = _sort;
541
549
  return newMeta;
542
550
  };
543
- var renderExists = function renderExists(items) {
551
+ var _patchMetas = exports.patchMetas = function patchMetas(items) {
544
552
  return (items === null || items === void 0 ? void 0 : items.map(function (v) {
545
553
  if (v.type === _enum.TypeEnum.joinData) {
546
554
  v = joinDataPatch(v);
@@ -554,6 +562,9 @@ var renderExists = function renderExists(items) {
554
562
  if (v.type === _enum.TypeEnum.customColumn) {
555
563
  v = customColumnPatch(v);
556
564
  }
565
+ if (v.type === _enum.TypeEnum.union) {
566
+ v.subquery = _patchMetas(v.subquery || []);
567
+ }
557
568
  return v;
558
569
  })) || [];
559
570
  };
@@ -15,7 +15,6 @@ var _react = require("react");
15
15
  var _helper = require("../utils/helper");
16
16
  var _enum = require("../store/enum");
17
17
  var _utils = require("../utils");
18
- var _patch = require("./patch");
19
18
  var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
20
19
  var metaKey = 1;
21
20
  var SummarizeAlias = exports.SummarizeAlias = 'source';
@@ -259,6 +258,7 @@ var useStore = function useStore() {
259
258
  return newMeta;
260
259
  };
261
260
  var setPreData = function setPreData(data) {
261
+ // let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
262
262
  if (data.length) {
263
263
  var _metaList = data === null || data === void 0 ? void 0 : data.map(function (item, groupIndex) {
264
264
  var _item$list;
@@ -268,21 +268,24 @@ var useStore = function useStore() {
268
268
  if (v.table) {
269
269
  v.table.tableUuid = v.table.tableUuid || (0, _helper.uuidv4)('table');
270
270
  }
271
- if (v.type === _enum.TypeEnum.joinData) {
272
- newMeta[i] = (0, _patch.joinDataPatch)(newMeta[i]);
273
- }
274
- if (v.type === _enum.TypeEnum.filter) {
275
- v = (0, _patch.filterPatch)(v);
276
- }
277
- if (v.type === _enum.TypeEnum.sort) {
278
- newMeta[i] = (0, _patch.sortPatch)(newMeta[i]);
279
- }
280
- if (v.type === _enum.TypeEnum.customColumn) {
281
- newMeta[i] = (0, _patch.customColumnPatch)(newMeta[i]);
282
- }
283
- if (v.type === _enum.TypeEnum.data) {
284
- v = (0, _patch.dataPatch)(v);
285
- }
271
+ // // 兼容
272
+ // if (patchVersion != '1.0.0') {
273
+ // if (v.type === TypeEnum.joinData) {
274
+ // v = joinDataPatch(v);
275
+ // }
276
+ // if (v.type === TypeEnum.filter) {
277
+ // v = filterPatch(v);
278
+ // }
279
+ // if (v.type === TypeEnum.sort) {
280
+ // v = sortPatch(v);
281
+ // }
282
+ // if (v.type === TypeEnum.customColumn) {
283
+ // v = customColumnPatch(v);
284
+ // }
285
+ // if (v.type === TypeEnum.data) {
286
+ // v = dataPatch(v);
287
+ // }
288
+ // }
286
289
  // if (v.type === TypeEnum.filter) {
287
290
  // newMeta[i] = setFilterQuotes(newMeta[i]);
288
291
  // }
package/lib/cjs/index.js CHANGED
@@ -61,7 +61,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
61
61
  store.setProps(props);
62
62
  }, [props]);
63
63
  (0, _react.useEffect)(function () {
64
- var _value = (0, _utils.reassembleByUnion)(value);
64
+ var _value = (0, _utils.reassembleByUnion)((0, _utils.patchData)(value));
65
65
  store.setPreData(_value);
66
66
  }, [value]);
67
67
  (0, _react.useEffect)(function () {
@@ -84,7 +84,7 @@ export interface AtomsUnknown {
84
84
  }
85
85
  export type AtomsItem = AtomsNotExists | AtomsExists | AtomsJoinDefault | AtomsExpression | AtomsField | AtomsInputString | AtomsInputStringList | AtomsInputNumberList | AtomsInputNumber | AtomsOprator | AtomsConstant | AtomsUnknown;
86
86
  export type ToolbarType = TypeEnum | 'filter' | 'summarize' | 'joinData' | 'permissionTable' | 'customColumn' | 'sort' | 'rowLimit' | 'union';
87
- export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable;
87
+ export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable | MetaUnion;
88
88
  export type initColumnsType = MetaData_ColumnsType;
89
89
  export interface TableColumnsMapType {
90
90
  [tableName: string]: initColumnsType[];
@@ -243,6 +243,11 @@ export interface MetaPermissionTable {
243
243
  type: TypeEnum.permissionTable;
244
244
  table: MetaData_TableType;
245
245
  }
246
+ export interface MetaUnion {
247
+ metaKey: number;
248
+ type: TypeEnum.union;
249
+ subquery: MetaListType[];
250
+ }
246
251
  export interface LooseObject {
247
252
  [TypeEnum.data]?: MetaData;
248
253
  [TypeEnum.joinData]?: MetaJoin[];
@@ -17,6 +17,7 @@ export declare const getSubColumns: (metaList: any) => DataType[];
17
17
  export declare const changeTableAlias: (list: MetaListType[] | [], curObj: Pick<MetaData_TableType, "tableUuid" | "alias">) => MetaListType[];
18
18
  export declare const changeFieldAlias: (list: MetaListType[], curObj: Pick<MetaData_ColumnsType, "fieldUuid" | "fieldAlias">) => MetaListType[];
19
19
  export declare function splitByUnion(data: any): any[];
20
+ export declare const patchData: (metas: MetaListType[]) => MetaListType[];
20
21
  export declare function reassembleByUnion(target?: any[]): any[];
21
22
  export declare const buildSqlQuery: (data: MetaListType[] | undefined, type: string) => string;
22
23
  export {};
package/lib/cjs/utils.js CHANGED
@@ -4,7 +4,7 @@ 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.patchData = exports.getSubColumns = exports.getHelper = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.buildSqlQuery = void 0;
8
8
  exports.reassembleByUnion = reassembleByUnion;
9
9
  exports.splitByUnion = splitByUnion;
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
@@ -17,6 +17,7 @@ var _types = require("./store/types");
17
17
  var _helper = require("./store/helper");
18
18
  var _helper2 = require("./utils/helper");
19
19
  var _cloneDeep3 = _interopRequireDefault(require("lodash/cloneDeep"));
20
+ var _patch = require("./hooks/patch");
20
21
  var _excluded = ["list"];
21
22
  var findIndex = exports.findIndex = function findIndex(arr, item) {
22
23
  return arr.indexOf(item);
@@ -446,6 +447,14 @@ function splitByUnion(data) {
446
447
  }
447
448
  return result;
448
449
  }
450
+ var patchData = exports.patchData = function patchData(metas) {
451
+ var mainTable = metas[0] || {};
452
+ var version = (mainTable === null || mainTable === void 0 ? void 0 : mainTable.patchVersion) || '';
453
+ if (version != '1.0.0') {
454
+ return (0, _patch.patchMetas)(metas);
455
+ }
456
+ return metas;
457
+ };
449
458
  function reassembleByUnion() {
450
459
  var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
451
460
  if (!target) return [];
@@ -54,6 +54,7 @@ var Metabase = function Metabase(props) {
54
54
  case 0:
55
55
  intercept = false; // 是否返回
56
56
  _metaList = splitByUnion(store.metaList);
57
+ _metaList[0].patchVersion = '1.0.0';
57
58
  store.metaList.map(function (v) {
58
59
  var _v$list;
59
60
  if (v.type !== 'union' && !((_v$list = v.list) === null || _v$list === void 0 ? void 0 : _v$list[0]).table.name) {
@@ -67,7 +67,7 @@ var JoinData = function JoinData(props) {
67
67
  var table1Selected = Boolean(meta.table1.name);
68
68
  var table2Selected = Boolean(meta.table2.name);
69
69
  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);
70
- var columnsSelected = meta.table1.id && meta.table2.id;
70
+ var columnsSelected = meta.table1.name && meta.table2.name;
71
71
  // useEffect(() => {
72
72
  // let newMetaList = store.metaList[groupIndex].list.slice();
73
73
  // newMetaList[index] = setQuotes(meta);
@@ -107,7 +107,7 @@ var Sort = function Sort(props) {
107
107
  newMeta[index].sort.forEach(function (v) {
108
108
  v.expression.forEach(function (vv) {
109
109
  if (vv.type === AtomsTypeEnum.FIELD) {
110
- if (selectedSort[vv.fieldName]) {
110
+ if (selectedSort[vv.tableName]) {
111
111
  selectedSort[vv.tableAlias].push(vv.fieldName);
112
112
  } else {
113
113
  selectedSort[vv.tableAlias] = [vv.fieldName];
@@ -1,5 +1,7 @@
1
+ import { MetaListType } from '../store/types';
1
2
  export declare const dataPatch: (newMeta: any) => any;
2
3
  export declare const joinDataPatch: (newMeta: any) => any;
3
4
  export declare const filterPatch: (newMeta: any) => any;
4
5
  export declare const customColumnPatch: (newMeta: any) => any;
5
6
  export declare const sortPatch: (newMeta: any) => any;
7
+ export declare const patchMetas: (items: MetaListType[]) => MetaListType[];
@@ -11,11 +11,11 @@ export var dataPatch = function dataPatch(newMeta) {
11
11
  return newMeta;
12
12
  }
13
13
  }
14
- newMeta.subquery = renderExists(newMeta.subquery);
14
+ newMeta.subquery = _patchMetas(newMeta.subquery);
15
15
  return newMeta;
16
16
  };
17
17
  export var joinDataPatch = function joinDataPatch(newMeta) {
18
- var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3, _expressions2;
18
+ var _newMeta$expressions2, _fields, _fields2, _fields3, _fields4, _newMeta$expressions3;
19
19
  var item = ((_newMeta$expressions2 = newMeta.expressions) === null || _newMeta$expressions2 === void 0 ? void 0 : _newMeta$expressions2[0]) || {};
20
20
  if (item !== null && item !== void 0 && item.type && Object.values(AtomsTypeEnum).includes(item.type)) {
21
21
  if ((item.type === AtomsTypeEnum.EXPRESSION || item.type === AtomsTypeEnum.JOIN_DEFAULT) && item.lhs) {
@@ -120,7 +120,7 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
120
120
  type: 'default' // 默认是字段模式
121
121
  }];
122
122
  }
123
- var expressions = (_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
123
+ var expressions = ((_newMeta$expressions3 = newMeta.expressions) === null || _newMeta$expressions3 === void 0 ? void 0 : _newMeta$expressions3.map(function (v) {
124
124
  var _left_fields, _right_fields;
125
125
  var left_fields = v.left_fields || [];
126
126
  var right_fields = v.right_fields || [];
@@ -171,9 +171,10 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
171
171
  right_type: v.right_type || '',
172
172
  type: v.type || 'default' // 默认是字段模式
173
173
  };
174
- });
174
+ })) || [];
175
175
  var _expressions = beforeExpressions.concat(expressions);
176
- _expressions = (_expressions2 = _expressions) === null || _expressions2 === void 0 ? void 0 : _expressions2.map(function (v) {
176
+ var newExpressions = [];
177
+ _expressions === null || _expressions === void 0 || _expressions.map(function (v, i) {
177
178
  var lhs = [];
178
179
  var rhs = [];
179
180
  if (v.left_type === 'string') {
@@ -189,9 +190,9 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
189
190
  } else {
190
191
  var _v$left_fields;
191
192
  lhs = (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.map(function (vv) {
192
- return _objectSpread(_objectSpread({}, vv), {}, {
193
+ return _objectSpread({
193
194
  fieldNameZh: newMeta.table1.name_zh,
194
- fieldName: newMeta.table1.fieldName || newMeta.table1.name,
195
+ fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table1.fieldName || newMeta.table1.name,
195
196
  tableAlias: newMeta.table1.alias,
196
197
  tableId: newMeta.table1.id,
197
198
  tableName: newMeta.table1.name,
@@ -202,7 +203,7 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
202
203
  datasourceId: newMeta.table1.datasourceId,
203
204
  // 数据源id
204
205
  type: AtomsTypeEnum.FIELD
205
- });
206
+ }, vv);
206
207
  });
207
208
  }
208
209
  if (v.right_type === 'string') {
@@ -218,9 +219,9 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
218
219
  } else {
219
220
  var _v$right_fields;
220
221
  rhs = (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.map(function (vv) {
221
- return _objectSpread(_objectSpread({}, vv), {}, {
222
+ return _objectSpread({
222
223
  fieldNameZh: newMeta.table2.name_zh,
223
- fieldName: newMeta.table2.fieldName || newMeta.table2.name,
224
+ fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table2.fieldName || newMeta.table2.name,
224
225
  tableAlias: newMeta.table2.alias,
225
226
  tableId: newMeta.table2.id,
226
227
  tableName: newMeta.table2.name,
@@ -231,7 +232,7 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
231
232
  datasourceId: newMeta.table2.datasourceId,
232
233
  // 数据源id
233
234
  type: AtomsTypeEnum.FIELD
234
- });
235
+ }, vv);
235
236
  });
236
237
  }
237
238
  var item = {
@@ -242,14 +243,21 @@ export var joinDataPatch = function joinDataPatch(newMeta) {
242
243
  // quotes: '',
243
244
  type: AtomsTypeEnum.JOIN_DEFAULT
244
245
  };
246
+ newExpressions.push(item);
247
+ if (_expressions.length - 1 > i) {
248
+ newExpressions.push({
249
+ val: 'AND',
250
+ type: AtomsTypeEnum.OPERATOR
251
+ });
252
+ }
245
253
  return item;
246
254
  });
247
255
  // 清除table1中不用字段
248
256
  delete newMeta.table1.fields;
249
257
  // 清除table2中不用字段
250
258
  delete newMeta.table2.fields;
251
- newMeta.subquery = renderExists(newMeta.subquery);
252
- newMeta.expressions = _expressions;
259
+ newMeta.subquery = _patchMetas(newMeta.subquery);
260
+ newMeta.expressions = newExpressions;
253
261
  return newMeta;
254
262
  };
255
263
  export var filterPatch = function filterPatch(newMeta) {
@@ -275,7 +283,7 @@ export var filterPatch = function filterPatch(newMeta) {
275
283
  if (typeof v === 'string') {
276
284
  return {
277
285
  val: v,
278
- type: AtomsTypeEnum.INPUT_STRING
286
+ type: AtomsTypeEnum.OPERATOR
279
287
  };
280
288
  } else if (v.type === 'expression') {
281
289
  var rhs;
@@ -341,14 +349,14 @@ export var filterPatch = function filterPatch(newMeta) {
341
349
  };
342
350
  return tem;
343
351
  } else if (v.type === 'notExists') {
344
- var notExists = renderExists(v.notExists);
352
+ var notExists = _patchMetas(v.notExists);
345
353
  return {
346
354
  notExists: notExists,
347
355
  quotes: buildSqlQuery(notExists, v.type),
348
356
  type: AtomsTypeEnum.NOT_EXISTS
349
357
  };
350
358
  } else if (v.type === 'exists') {
351
- var _notExists = renderExists(v.notExists);
359
+ var _notExists = _patchMetas(v.notExists);
352
360
  return {
353
361
  notExists: _notExists,
354
362
  quotes: buildSqlQuery(_notExists, v.type),
@@ -533,7 +541,7 @@ export var sortPatch = function sortPatch(newMeta) {
533
541
  newMeta.sort = _sort;
534
542
  return newMeta;
535
543
  };
536
- var renderExists = function renderExists(items) {
544
+ var _patchMetas = function patchMetas(items) {
537
545
  return (items === null || items === void 0 ? void 0 : items.map(function (v) {
538
546
  if (v.type === TypeEnum.joinData) {
539
547
  v = joinDataPatch(v);
@@ -547,6 +555,10 @@ var renderExists = function renderExists(items) {
547
555
  if (v.type === TypeEnum.customColumn) {
548
556
  v = customColumnPatch(v);
549
557
  }
558
+ if (v.type === TypeEnum.union) {
559
+ v.subquery = _patchMetas(v.subquery || []);
560
+ }
550
561
  return v;
551
562
  })) || [];
552
- };
563
+ };
564
+ export { _patchMetas as patchMetas };
@@ -9,7 +9,6 @@ import { useState, useRef, useMemo } from 'react';
9
9
  import { uuidv4 } from '../utils/helper';
10
10
  import { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';
11
11
  import { getSubColumns } from '../utils';
12
- import { joinDataPatch, filterPatch, sortPatch, customColumnPatch, dataPatch } from './patch';
13
12
  var metaKey = 1;
14
13
  export var SummarizeAlias = 'source';
15
14
  var useStore = function useStore() {
@@ -252,6 +251,7 @@ var useStore = function useStore() {
252
251
  return newMeta;
253
252
  };
254
253
  var setPreData = function setPreData(data) {
254
+ // let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
255
255
  if (data.length) {
256
256
  var _metaList = data === null || data === void 0 ? void 0 : data.map(function (item, groupIndex) {
257
257
  var _item$list;
@@ -261,21 +261,24 @@ var useStore = function useStore() {
261
261
  if (v.table) {
262
262
  v.table.tableUuid = v.table.tableUuid || uuidv4('table');
263
263
  }
264
- if (v.type === TypeEnum.joinData) {
265
- newMeta[i] = joinDataPatch(newMeta[i]);
266
- }
267
- if (v.type === TypeEnum.filter) {
268
- v = filterPatch(v);
269
- }
270
- if (v.type === TypeEnum.sort) {
271
- newMeta[i] = sortPatch(newMeta[i]);
272
- }
273
- if (v.type === TypeEnum.customColumn) {
274
- newMeta[i] = customColumnPatch(newMeta[i]);
275
- }
276
- if (v.type === TypeEnum.data) {
277
- v = dataPatch(v);
278
- }
264
+ // // 兼容
265
+ // if (patchVersion != '1.0.0') {
266
+ // if (v.type === TypeEnum.joinData) {
267
+ // v = joinDataPatch(v);
268
+ // }
269
+ // if (v.type === TypeEnum.filter) {
270
+ // v = filterPatch(v);
271
+ // }
272
+ // if (v.type === TypeEnum.sort) {
273
+ // v = sortPatch(v);
274
+ // }
275
+ // if (v.type === TypeEnum.customColumn) {
276
+ // v = customColumnPatch(v);
277
+ // }
278
+ // if (v.type === TypeEnum.data) {
279
+ // v = dataPatch(v);
280
+ // }
281
+ // }
279
282
  // if (v.type === TypeEnum.filter) {
280
283
  // newMeta[i] = setFilterQuotes(newMeta[i]);
281
284
  // }
package/lib/es/index.js CHANGED
@@ -9,7 +9,7 @@ import './locale/zh';
9
9
  import { __ } from './locale';
10
10
  import Loading from './common/Loading';
11
11
  import Metabase from './components/metabase';
12
- import { reassembleByUnion } from './utils';
12
+ import { reassembleByUnion, patchData } from './utils';
13
13
  /**
14
14
  * 规则
15
15
  * 1、主表一换 下面全部删除
@@ -51,7 +51,7 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
51
51
  store.setProps(props);
52
52
  }, [props]);
53
53
  useEffect(function () {
54
- var _value = reassembleByUnion(value);
54
+ var _value = reassembleByUnion(patchData(value));
55
55
  store.setPreData(_value);
56
56
  }, [value]);
57
57
  useEffect(function () {
@@ -84,7 +84,7 @@ export interface AtomsUnknown {
84
84
  }
85
85
  export type AtomsItem = AtomsNotExists | AtomsExists | AtomsJoinDefault | AtomsExpression | AtomsField | AtomsInputString | AtomsInputStringList | AtomsInputNumberList | AtomsInputNumber | AtomsOprator | AtomsConstant | AtomsUnknown;
86
86
  export type ToolbarType = TypeEnum | 'filter' | 'summarize' | 'joinData' | 'permissionTable' | 'customColumn' | 'sort' | 'rowLimit' | 'union';
87
- export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable;
87
+ export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable | MetaUnion;
88
88
  export type initColumnsType = MetaData_ColumnsType;
89
89
  export interface TableColumnsMapType {
90
90
  [tableName: string]: initColumnsType[];
@@ -243,6 +243,11 @@ export interface MetaPermissionTable {
243
243
  type: TypeEnum.permissionTable;
244
244
  table: MetaData_TableType;
245
245
  }
246
+ export interface MetaUnion {
247
+ metaKey: number;
248
+ type: TypeEnum.union;
249
+ subquery: MetaListType[];
250
+ }
246
251
  export interface LooseObject {
247
252
  [TypeEnum.data]?: MetaData;
248
253
  [TypeEnum.joinData]?: MetaJoin[];
package/lib/es/utils.d.ts CHANGED
@@ -17,6 +17,7 @@ export declare const getSubColumns: (metaList: any) => DataType[];
17
17
  export declare const changeTableAlias: (list: MetaListType[] | [], curObj: Pick<MetaData_TableType, "tableUuid" | "alias">) => MetaListType[];
18
18
  export declare const changeFieldAlias: (list: MetaListType[], curObj: Pick<MetaData_ColumnsType, "fieldUuid" | "fieldAlias">) => MetaListType[];
19
19
  export declare function splitByUnion(data: any): any[];
20
+ export declare const patchData: (metas: MetaListType[]) => MetaListType[];
20
21
  export declare function reassembleByUnion(target?: any[]): any[];
21
22
  export declare const buildSqlQuery: (data: MetaListType[] | undefined, type: string) => string;
22
23
  export {};
package/lib/es/utils.js CHANGED
@@ -9,6 +9,7 @@ import { AtomsTypeEnum } from './store/types';
9
9
  import { summarizeToSql } from './store/helper';
10
10
  import { uuidv4 } from './utils/helper';
11
11
  import cloneDeep from 'lodash/cloneDeep';
12
+ import { patchMetas } from './hooks/patch';
12
13
  export var findIndex = function findIndex(arr, item) {
13
14
  return arr.indexOf(item);
14
15
  };
@@ -437,6 +438,14 @@ export function splitByUnion(data) {
437
438
  }
438
439
  return result;
439
440
  }
441
+ export var patchData = function patchData(metas) {
442
+ var mainTable = metas[0] || {};
443
+ var version = (mainTable === null || mainTable === void 0 ? void 0 : mainTable.patchVersion) || '';
444
+ if (version != '1.0.0') {
445
+ return patchMetas(metas);
446
+ }
447
+ return metas;
448
+ };
440
449
  export function reassembleByUnion() {
441
450
  var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
442
451
  if (!target) return [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",