@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.
- package/lib/cjs/components/metabase/index.js +1 -0
- package/lib/cjs/components/modules/join-data.js +1 -1
- package/lib/cjs/components/modules/sort.js +1 -1
- package/lib/cjs/hooks/patch.d.ts +2 -0
- package/lib/cjs/hooks/patch.js +29 -18
- package/lib/cjs/hooks/use-state.js +19 -16
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/store/types.d.ts +6 -1
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +10 -1
- package/lib/es/components/metabase/index.js +1 -0
- package/lib/es/components/modules/join-data.js +1 -1
- package/lib/es/components/modules/sort.js +1 -1
- package/lib/es/hooks/patch.d.ts +2 -0
- package/lib/es/hooks/patch.js +30 -18
- package/lib/es/hooks/use-state.js +19 -16
- package/lib/es/index.js +2 -2
- package/lib/es/store/types.d.ts +6 -1
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +9 -0
- package/package.json +1 -1
|
@@ -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.
|
|
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.
|
|
117
|
+
if (selectedSort[vv.tableName]) {
|
|
118
118
|
selectedSort[vv.tableAlias].push(vv.fieldName);
|
|
119
119
|
} else {
|
|
120
120
|
selectedSort[vv.tableAlias] = [vv.fieldName];
|
package/lib/cjs/hooks/patch.d.ts
CHANGED
|
@@ -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[];
|
package/lib/cjs/hooks/patch.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.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 =
|
|
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
|
|
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
|
-
|
|
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"])(
|
|
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"])(
|
|
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 =
|
|
259
|
-
newMeta.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.
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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 () {
|
package/lib/cjs/store/types.d.ts
CHANGED
|
@@ -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/cjs/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/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.
|
|
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.
|
|
110
|
+
if (selectedSort[vv.tableName]) {
|
|
111
111
|
selectedSort[vv.tableAlias].push(vv.fieldName);
|
|
112
112
|
} else {
|
|
113
113
|
selectedSort[vv.tableAlias] = [vv.fieldName];
|
package/lib/es/hooks/patch.d.ts
CHANGED
|
@@ -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[];
|
package/lib/es/hooks/patch.js
CHANGED
|
@@ -11,11 +11,11 @@ export var dataPatch = function dataPatch(newMeta) {
|
|
|
11
11
|
return newMeta;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
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
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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 =
|
|
252
|
-
newMeta.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.
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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 () {
|
package/lib/es/store/types.d.ts
CHANGED
|
@@ -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 [];
|