@gingkoo/pandora-metabase 1.0.27 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/common/SplitView/index.js +11 -12
- package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
- package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
- package/lib/cjs/components/dialog/expression/index.js +11 -12
- package/lib/cjs/components/dialog/formula-list/index.js +53 -43
- package/lib/cjs/components/dialog/index.js +2 -2
- package/lib/cjs/components/dialog/select-column/index.js +4 -4
- package/lib/cjs/components/dialog/select-column-multiple/index.js +21 -10
- package/lib/cjs/components/dialog/select-join-column/index.js +13 -2
- package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
- package/lib/cjs/components/dialog/select-table/index.js +7 -7
- package/lib/cjs/components/icons.js +36 -36
- package/lib/cjs/components/metabase/index.js +41 -12
- package/lib/cjs/components/metabase/index.less +3 -0
- package/lib/cjs/components/modules/components/Wrapper.js +6 -6
- package/lib/cjs/components/modules/components/item-name.d.ts +7 -0
- package/lib/cjs/components/modules/components/item-name.js +34 -0
- package/lib/cjs/components/modules/components/meta-icon.js +6 -0
- package/lib/cjs/components/modules/custom-column.js +25 -25
- package/lib/cjs/components/modules/filter.js +2 -2
- package/lib/cjs/components/modules/join-data.js +215 -81
- package/lib/cjs/components/modules/permission-table.js +24 -10
- package/lib/cjs/components/modules/sort.js +17 -13
- package/lib/cjs/components/modules/summarize/group-by.js +90 -38
- package/lib/cjs/components/modules/summarize/select-index.js +84 -38
- package/lib/cjs/components/modules/table-data.js +14 -6
- package/lib/cjs/components/popup.js +1 -2
- package/lib/cjs/hooks/use-state.js +58 -65
- package/lib/cjs/index.js +1 -2
- package/lib/cjs/locale/en.js +5 -2
- package/lib/cjs/locale/zh.js +5 -2
- package/lib/cjs/utils/transformSql.d.ts +6 -0
- package/lib/cjs/utils/transformSql.js +968 -0
- package/lib/cjs/utils.d.ts +7 -1
- package/lib/cjs/utils.js +112 -15
- package/lib/es/common/SplitView/index.js +10 -10
- package/lib/es/components/dialog/expression/index.js +10 -10
- package/lib/es/components/dialog/formula-list/index.js +54 -44
- package/lib/es/components/dialog/select-column/index.js +4 -4
- package/lib/es/components/dialog/select-column-multiple/index.js +21 -10
- package/lib/es/components/dialog/select-join-column/index.js +13 -2
- package/lib/es/components/dialog/select-permission-table/index.js +2 -2
- package/lib/es/components/dialog/select-table/index.js +7 -7
- package/lib/es/components/icons.js +36 -36
- package/lib/es/components/metabase/index.js +42 -13
- package/lib/es/components/metabase/index.less +3 -0
- package/lib/es/components/modules/components/Wrapper.js +6 -6
- package/lib/es/components/modules/components/item-name.d.ts +7 -0
- package/lib/es/components/modules/components/item-name.js +28 -0
- package/lib/es/components/modules/components/meta-icon.js +6 -0
- package/lib/es/components/modules/custom-column.js +26 -26
- package/lib/es/components/modules/filter.js +2 -2
- package/lib/es/components/modules/join-data.js +216 -82
- package/lib/es/components/modules/permission-table.js +24 -10
- package/lib/es/components/modules/sort.js +18 -14
- package/lib/es/components/modules/summarize/group-by.js +92 -40
- package/lib/es/components/modules/summarize/select-index.js +86 -40
- package/lib/es/components/modules/table-data.js +14 -6
- package/lib/es/hooks/use-state.js +58 -65
- package/lib/es/locale/en.js +5 -2
- package/lib/es/locale/zh.js +5 -2
- package/lib/es/utils/transformSql.d.ts +6 -0
- package/lib/es/utils/transformSql.js +961 -0
- package/lib/es/utils.d.ts +7 -1
- package/lib/es/utils.js +102 -4
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ var _utils = require("../../utils");
|
|
|
23
23
|
var _enum = require("../../store/enum");
|
|
24
24
|
var _types = require("../../store/types");
|
|
25
25
|
var _helper2 = require("../../store/helper");
|
|
26
|
+
var _itemName = _interopRequireDefault(require("./components/item-name"));
|
|
26
27
|
var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
|
|
27
28
|
var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
|
|
28
29
|
var _header = _interopRequireDefault(require("./components/header"));
|
|
@@ -66,7 +67,7 @@ var menuOperator = operators.map(function (v) {
|
|
|
66
67
|
};
|
|
67
68
|
});
|
|
68
69
|
var JoinData = function JoinData(props) {
|
|
69
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table2, _meta$table3, _meta$table5, _meta$table6, _meta$table7, _meta$table8, _meta$expressions, _meta$table9, _meta$
|
|
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
71
|
var meta = props.meta,
|
|
71
72
|
groupIndex = props.groupIndex;
|
|
72
73
|
var store = (0, _useProvider.useStore)();
|
|
@@ -77,6 +78,8 @@ var JoinData = function JoinData(props) {
|
|
|
77
78
|
var table2Selected = Boolean(meta.table2.name);
|
|
78
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);
|
|
79
80
|
var columnsSelected = meta.table1.name && meta.table2.name;
|
|
81
|
+
var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
82
|
+
prevTables = _getHelper.prevTables;
|
|
80
83
|
// const ref = useRef(null);
|
|
81
84
|
// useEffect(() => {
|
|
82
85
|
// let newMetaList = store.metaList[groupIndex].list.slice();
|
|
@@ -86,10 +89,10 @@ var JoinData = function JoinData(props) {
|
|
|
86
89
|
// 获取表格列
|
|
87
90
|
var getTableColumns = function getTableColumns() {
|
|
88
91
|
var data = [];
|
|
89
|
-
var
|
|
90
|
-
ExistAboveGroupBy =
|
|
91
|
-
prevList =
|
|
92
|
-
prevGroupBy =
|
|
92
|
+
var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
93
|
+
ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
|
|
94
|
+
prevList = _getHelper2.prevList,
|
|
95
|
+
prevGroupBy = _getHelper2.prevGroupBy;
|
|
93
96
|
// 获取左侧表
|
|
94
97
|
if (ExistAboveGroupBy) {
|
|
95
98
|
var _prevGroupBy$group, _prevGroupBy$by;
|
|
@@ -222,10 +225,10 @@ var JoinData = function JoinData(props) {
|
|
|
222
225
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
223
226
|
var table_type = FlagLocation.TABLE_1;
|
|
224
227
|
var data = [];
|
|
225
|
-
var
|
|
226
|
-
ExistAboveGroupBy =
|
|
227
|
-
prevList =
|
|
228
|
-
prevGroupBy =
|
|
228
|
+
var _getHelper3 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
229
|
+
ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
|
|
230
|
+
prevList = _getHelper3.prevList,
|
|
231
|
+
prevGroupBy = _getHelper3.prevGroupBy;
|
|
229
232
|
if (ExistAboveGroupBy) {
|
|
230
233
|
var _prevGroupBy$group2, _prevGroupBy$by2;
|
|
231
234
|
var _data = {
|
|
@@ -334,12 +337,12 @@ var JoinData = function JoinData(props) {
|
|
|
334
337
|
data: data,
|
|
335
338
|
value: newMeta[index][table_type],
|
|
336
339
|
onChange: function onChange(data) {
|
|
337
|
-
if (table_type === FlagLocation.TABLE_1) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
340
|
+
// if (table_type === FlagLocation.TABLE_1) {
|
|
341
|
+
if (newMeta[index][table_type].datasourceId !== data.datasourceId || newMeta[index][table_type].name !== data.name) {
|
|
342
|
+
newMeta[index][table_type] = data;
|
|
343
|
+
initExpressions();
|
|
342
344
|
}
|
|
345
|
+
// }
|
|
343
346
|
store.setMeta(newMeta, groupIndex);
|
|
344
347
|
store.setPopup({
|
|
345
348
|
visible: false
|
|
@@ -384,10 +387,8 @@ var JoinData = function JoinData(props) {
|
|
|
384
387
|
store.fetchColumns(_table2, data.datasourceId, [], function (columns) {
|
|
385
388
|
newMeta[index].columns = columns;
|
|
386
389
|
// 关联表变了 下面模块全部删除
|
|
387
|
-
newMeta = newMeta.filter(
|
|
388
|
-
|
|
389
|
-
});
|
|
390
|
-
store.setMeta(newMeta, groupIndex);
|
|
390
|
+
// newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
|
|
391
|
+
// store.setMeta(newMeta, groupIndex);
|
|
391
392
|
});
|
|
392
393
|
}
|
|
393
394
|
store.setPopup({
|
|
@@ -399,8 +400,10 @@ var JoinData = function JoinData(props) {
|
|
|
399
400
|
}
|
|
400
401
|
// 切换表后重置数据
|
|
401
402
|
function initExpressions() {
|
|
402
|
-
console.log(11);
|
|
403
403
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
404
|
+
if (newMeta[index].expressions && newMeta[index].expressions.length > 0) {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
404
407
|
newMeta[index].expressions = [{
|
|
405
408
|
lhs: [{
|
|
406
409
|
fieldName: '',
|
|
@@ -487,6 +490,120 @@ var JoinData = function JoinData(props) {
|
|
|
487
490
|
})
|
|
488
491
|
});
|
|
489
492
|
}
|
|
493
|
+
function getColumns(_position) {
|
|
494
|
+
var data = [];
|
|
495
|
+
var _getHelper4 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
496
|
+
ExistAboveGroupBy = _getHelper4.ExistAboveGroupBy,
|
|
497
|
+
prevList = _getHelper4.prevList,
|
|
498
|
+
prevGroupBy = _getHelper4.prevGroupBy;
|
|
499
|
+
if (_position === ExpressionsEnum.LEFT) {
|
|
500
|
+
if (ExistAboveGroupBy) {
|
|
501
|
+
var _prevGroupBy$group3, _prevGroupBy$by3;
|
|
502
|
+
var _data = {
|
|
503
|
+
name: prevGroupBy.alias,
|
|
504
|
+
name_zh: prevGroupBy.alias,
|
|
505
|
+
id: prevGroupBy.alias,
|
|
506
|
+
tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
|
|
507
|
+
alias: prevGroupBy.alias,
|
|
508
|
+
datasourceId: '',
|
|
509
|
+
datasourceName: '',
|
|
510
|
+
columns: []
|
|
511
|
+
};
|
|
512
|
+
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
|
|
513
|
+
_data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
|
|
514
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
515
|
+
name: v.name || v.quotes,
|
|
516
|
+
name_zh: v.name_zh || v.quotes,
|
|
517
|
+
id: v.id || v.fieldId,
|
|
518
|
+
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
|
|
519
|
+
special_type: '',
|
|
520
|
+
sql: v.sql,
|
|
521
|
+
select: true
|
|
522
|
+
});
|
|
523
|
+
}));
|
|
524
|
+
}
|
|
525
|
+
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
|
|
526
|
+
_data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
|
|
527
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
528
|
+
name: v.name || v.quotes,
|
|
529
|
+
name_zh: v.name_zh || v.quotes,
|
|
530
|
+
id: v.id || v.fieldId,
|
|
531
|
+
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
|
|
532
|
+
special_type: '',
|
|
533
|
+
sql: v.sql,
|
|
534
|
+
select: true
|
|
535
|
+
});
|
|
536
|
+
}));
|
|
537
|
+
}
|
|
538
|
+
data = [_data];
|
|
539
|
+
var joinData = prevList.filter(function (v) {
|
|
540
|
+
return v.type === _enum.TypeEnum.joinData;
|
|
541
|
+
}).filter(function (v) {
|
|
542
|
+
return v && v.table2.name;
|
|
543
|
+
});
|
|
544
|
+
if (joinData !== null && joinData !== void 0 && joinData.length) {
|
|
545
|
+
data = data.concat(joinData.map(function (v) {
|
|
546
|
+
return {
|
|
547
|
+
alias: v.table2.alias,
|
|
548
|
+
name: v.table2.name,
|
|
549
|
+
name_zh: v.table2.name_zh,
|
|
550
|
+
id: v.table2.id,
|
|
551
|
+
tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
|
|
552
|
+
datasourceId: v.table2.datasourceId,
|
|
553
|
+
datasourceName: v.table2.datasourceName,
|
|
554
|
+
columns: v.columns
|
|
555
|
+
};
|
|
556
|
+
}));
|
|
557
|
+
}
|
|
558
|
+
} else {
|
|
559
|
+
data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
|
|
560
|
+
if (v.type === _enum.TypeEnum.data) {
|
|
561
|
+
mo.push({
|
|
562
|
+
alias: v.table.alias,
|
|
563
|
+
name: v.table.name,
|
|
564
|
+
name_zh: v.table.name_zh,
|
|
565
|
+
id: v.table.id,
|
|
566
|
+
tableUuid: v.table.tableUuid || (0, _helper.uuidv4)('table'),
|
|
567
|
+
columns: v.columns,
|
|
568
|
+
datasourceId: v.table.datasourceId,
|
|
569
|
+
datasourceName: v.table.datasourceName
|
|
570
|
+
});
|
|
571
|
+
} else if (v.type === _enum.TypeEnum.joinData) {
|
|
572
|
+
mo.push({
|
|
573
|
+
alias: v.table2.alias,
|
|
574
|
+
name: v.table2.name,
|
|
575
|
+
name_zh: v.table2.name_zh,
|
|
576
|
+
id: v.table2.id,
|
|
577
|
+
tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
|
|
578
|
+
columns: v.columns,
|
|
579
|
+
datasourceId: v.table2.datasourceId,
|
|
580
|
+
datasourceName: v.table2.datasourceName
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
return mo;
|
|
584
|
+
}, []);
|
|
585
|
+
}
|
|
586
|
+
// 过滤为table1选中的表
|
|
587
|
+
var newMeta = store.metaList[groupIndex].list.slice();
|
|
588
|
+
if (newMeta[index][FlagLocation.TABLE_1].name) {
|
|
589
|
+
data = data.filter(function (v) {
|
|
590
|
+
return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias && newMeta[index][FlagLocation.TABLE_1].id == v.id;
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
} else {
|
|
594
|
+
data = [{
|
|
595
|
+
alias: meta.table2.alias,
|
|
596
|
+
name: meta.table2.name,
|
|
597
|
+
name_zh: meta.table2.name_zh,
|
|
598
|
+
id: meta.table2.id,
|
|
599
|
+
tableUuid: meta.table2.tableUuid || (0, _helper.uuidv4)('table'),
|
|
600
|
+
datasourceId: meta.table2.datasourceId,
|
|
601
|
+
datasourceName: meta.table2.datasourceName,
|
|
602
|
+
columns: meta.columns
|
|
603
|
+
}];
|
|
604
|
+
}
|
|
605
|
+
return data;
|
|
606
|
+
}
|
|
490
607
|
function selectMoreJoinColumn(e) {
|
|
491
608
|
var node = e.currentTarget;
|
|
492
609
|
var _position = node.getAttribute('v-position');
|
|
@@ -494,13 +611,13 @@ var JoinData = function JoinData(props) {
|
|
|
494
611
|
var _ind2 = Number(node.getAttribute('v-index2'));
|
|
495
612
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
496
613
|
var data = [];
|
|
497
|
-
var
|
|
498
|
-
ExistAboveGroupBy =
|
|
499
|
-
prevList =
|
|
500
|
-
prevGroupBy =
|
|
614
|
+
var _getHelper5 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
615
|
+
ExistAboveGroupBy = _getHelper5.ExistAboveGroupBy,
|
|
616
|
+
prevList = _getHelper5.prevList,
|
|
617
|
+
prevGroupBy = _getHelper5.prevGroupBy;
|
|
501
618
|
if (_position === ExpressionsEnum.LEFT) {
|
|
502
619
|
if (ExistAboveGroupBy) {
|
|
503
|
-
var _prevGroupBy$
|
|
620
|
+
var _prevGroupBy$group4, _prevGroupBy$by4;
|
|
504
621
|
var _data = {
|
|
505
622
|
name: prevGroupBy.alias,
|
|
506
623
|
name_zh: prevGroupBy.alias,
|
|
@@ -511,7 +628,7 @@ var JoinData = function JoinData(props) {
|
|
|
511
628
|
datasourceName: '',
|
|
512
629
|
columns: []
|
|
513
630
|
};
|
|
514
|
-
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$
|
|
631
|
+
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group4 = prevGroupBy.group) !== null && _prevGroupBy$group4 !== void 0 && _prevGroupBy$group4.length) {
|
|
515
632
|
_data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
|
|
516
633
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
517
634
|
name: v.name || v.quotes,
|
|
@@ -524,7 +641,7 @@ var JoinData = function JoinData(props) {
|
|
|
524
641
|
});
|
|
525
642
|
}));
|
|
526
643
|
}
|
|
527
|
-
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$
|
|
644
|
+
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by4 = prevGroupBy.by) !== null && _prevGroupBy$by4 !== void 0 && _prevGroupBy$by4.length) {
|
|
528
645
|
_data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
|
|
529
646
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
530
647
|
name: v.name || v.quotes,
|
|
@@ -589,7 +706,7 @@ var JoinData = function JoinData(props) {
|
|
|
589
706
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
590
707
|
if (newMeta[index][FlagLocation.TABLE_1].name) {
|
|
591
708
|
data = data.filter(function (v) {
|
|
592
|
-
return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias;
|
|
709
|
+
return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias && newMeta[index][FlagLocation.TABLE_1].id == v.id;
|
|
593
710
|
});
|
|
594
711
|
}
|
|
595
712
|
} else {
|
|
@@ -790,7 +907,7 @@ var JoinData = function JoinData(props) {
|
|
|
790
907
|
showSubquery: store._showSubquery,
|
|
791
908
|
toolbar: _toolbar,
|
|
792
909
|
btnText: (0, _locale.__)('SqlQueryBuilder.confirm'),
|
|
793
|
-
value: val,
|
|
910
|
+
value: (0, _cloneDeep["default"])(val),
|
|
794
911
|
onOk: function onOk(newList) {
|
|
795
912
|
try {
|
|
796
913
|
// 子查询未改变不做操作
|
|
@@ -807,12 +924,18 @@ var JoinData = function JoinData(props) {
|
|
|
807
924
|
var newColumns = items.flatMap(function (item) {
|
|
808
925
|
return item.columns;
|
|
809
926
|
});
|
|
810
|
-
newMeta[index].columns = newColumns
|
|
927
|
+
newMeta[index].columns = newColumns.map(function (newCol) {
|
|
928
|
+
// 查找旧列中是否有相同 name 的列
|
|
929
|
+
var existingCol = newMeta[index].columns.find(function (oldCol) {
|
|
930
|
+
return oldCol.name === newCol.name;
|
|
931
|
+
});
|
|
932
|
+
// 如果存在,返回旧列;否则返回新列
|
|
933
|
+
return existingCol ? existingCol : newCol;
|
|
934
|
+
});
|
|
935
|
+
// (newMeta[index] as MetaJoin).columns = newColumns;
|
|
811
936
|
initExpressions();
|
|
812
937
|
// 关联表变了 下面模块全部删除
|
|
813
|
-
newMeta = newMeta.filter(
|
|
814
|
-
return i <= index;
|
|
815
|
-
});
|
|
938
|
+
// newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
|
|
816
939
|
store.setMeta(newMeta, groupIndex);
|
|
817
940
|
o.close();
|
|
818
941
|
} catch (e) {
|
|
@@ -831,24 +954,19 @@ var JoinData = function JoinData(props) {
|
|
|
831
954
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
832
955
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
833
956
|
newMeta[index].isSubquery = !newMeta[index].isSubquery;
|
|
834
|
-
newMeta[index].table2 = {
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
datasourceId: '' // 数据源id
|
|
848
|
-
// groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
|
|
849
|
-
};
|
|
850
|
-
newMeta[index].expressions = [];
|
|
851
|
-
newMeta[index].subquery = [];
|
|
957
|
+
// (newMeta[index] as MetaJoin).table2 = {
|
|
958
|
+
// quotes: '',
|
|
959
|
+
// name: '', // 表名
|
|
960
|
+
// name_zh: '', // 表名
|
|
961
|
+
// tableUuid: '',
|
|
962
|
+
// id: '', // 表名
|
|
963
|
+
// alias: '', // 表别名
|
|
964
|
+
// datasourceName: '', // 数据源名
|
|
965
|
+
// datasourceId: '', // 数据源id
|
|
966
|
+
// // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
|
|
967
|
+
// };
|
|
968
|
+
// (newMeta[index] as MetaJoin).expressions = [];
|
|
969
|
+
// (newMeta[index] as MetaJoin).subquery = [];
|
|
852
970
|
store.setMeta(newMeta, groupIndex);
|
|
853
971
|
};
|
|
854
972
|
var onChangeTableAlias = function onChangeTableAlias(val) {
|
|
@@ -865,22 +983,22 @@ var JoinData = function JoinData(props) {
|
|
|
865
983
|
onOk: function () {
|
|
866
984
|
var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
867
985
|
var index, newMeta;
|
|
868
|
-
return _regenerator["default"].wrap(function
|
|
986
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
869
987
|
while (1) switch (_context.prev = _context.next) {
|
|
870
988
|
case 0:
|
|
871
989
|
if ((0, _utils.isValidSQLAlias)(alias)) {
|
|
872
|
-
_context.next =
|
|
990
|
+
_context.next = 1;
|
|
873
991
|
break;
|
|
874
992
|
}
|
|
875
993
|
_pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
|
|
876
994
|
return _context.abrupt("return", false);
|
|
877
|
-
case
|
|
995
|
+
case 1:
|
|
878
996
|
index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
879
997
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
880
998
|
newMeta[index].table2.alias = alias;
|
|
881
999
|
newMeta = (0, _utils.changeTableAlias)(newMeta, newMeta[index].table2);
|
|
882
1000
|
store.setMeta(newMeta, groupIndex);
|
|
883
|
-
case
|
|
1001
|
+
case 2:
|
|
884
1002
|
case "end":
|
|
885
1003
|
return _context.stop();
|
|
886
1004
|
}
|
|
@@ -1017,21 +1135,31 @@ var JoinData = function JoinData(props) {
|
|
|
1017
1135
|
return '';
|
|
1018
1136
|
}
|
|
1019
1137
|
};
|
|
1138
|
+
var leftTableIsError = function leftTableIsError() {
|
|
1139
|
+
var _prevTables$meta$tabl;
|
|
1140
|
+
if (!meta.table1.datasourceId || !meta.table1.id || meta.table1.datasourceId === _helper2.SummarizeAlias) {
|
|
1141
|
+
return false;
|
|
1142
|
+
}
|
|
1143
|
+
return !(prevTables !== null && prevTables !== void 0 && (_prevTables$meta$tabl = prevTables[meta.table1.datasourceId]) !== null && _prevTables$meta$tabl !== void 0 && _prevTables$meta$tabl[meta.table1.id]);
|
|
1144
|
+
};
|
|
1020
1145
|
var renderItem = function renderItem(items, type, i) {
|
|
1021
1146
|
var _items$;
|
|
1022
1147
|
if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === _types.AtomsTypeEnum.FIELD) {
|
|
1023
1148
|
var _items$2, _items$3;
|
|
1024
|
-
return (0, _jsxRuntime.jsx)("
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1149
|
+
return (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
1150
|
+
isError: (0, _utils.isError)(items, getColumns(type)),
|
|
1151
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
1152
|
+
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
1153
|
+
notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
|
|
1154
|
+
}),
|
|
1155
|
+
"v-position": type,
|
|
1156
|
+
"v-index": i,
|
|
1157
|
+
"v-index2": index,
|
|
1158
|
+
onClick: selectMoreJoinColumn,
|
|
1159
|
+
children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
|
|
1160
|
+
return field.fieldName;
|
|
1161
|
+
}).join(' || ') : (0, _locale.__)('SqlQueryBuilder.pickTable')
|
|
1162
|
+
})
|
|
1035
1163
|
}, type + i);
|
|
1036
1164
|
} else {
|
|
1037
1165
|
return items === null || items === void 0 ? void 0 : items.map(function (item, index) {
|
|
@@ -1102,12 +1230,15 @@ var JoinData = function JoinData(props) {
|
|
|
1102
1230
|
className: (0, _classnames["default"])("Sqb-item--content"),
|
|
1103
1231
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
1104
1232
|
className: (0, _classnames["default"])("Sqb-NotebookCell"),
|
|
1105
|
-
children: [(0, _jsxRuntime.jsx)("
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1233
|
+
children: [(0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
1234
|
+
isError: leftTableIsError(),
|
|
1235
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
1236
|
+
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
1237
|
+
notSelected: !table1Selected
|
|
1238
|
+
}),
|
|
1239
|
+
onClick: selectLeftTable,
|
|
1240
|
+
children: getTable1Name() || (0, _locale.__)('SqlQueryBuilder.pickTable')
|
|
1241
|
+
})
|
|
1111
1242
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
1112
1243
|
onClick: selectJoin,
|
|
1113
1244
|
children: meta.joinType === _enum.JoinEnum.left ? (0, _jsxRuntime.jsx)(_icons.LeftJoinIcon, {
|
|
@@ -1310,15 +1441,18 @@ var JoinData = function JoinData(props) {
|
|
|
1310
1441
|
children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
|
|
1311
1442
|
className: 'ml-2 mr-4 text-gray-500',
|
|
1312
1443
|
children: "on"
|
|
1313
|
-
}), (0, _jsxRuntime.jsx)("
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1444
|
+
}), (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
1445
|
+
isError: (0, _utils.isError)(v, getTableColumns()),
|
|
1446
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
1447
|
+
className: (0, _classnames["default"])("Sqb-TableName purple-name", {
|
|
1448
|
+
notSelected: !v.quotes
|
|
1449
|
+
}),
|
|
1450
|
+
onClick: function onClick(e) {
|
|
1451
|
+
return changeExpression(e, i);
|
|
1452
|
+
},
|
|
1453
|
+
children: v.quotes || (0, _locale.__)('joinData.selectExpression')
|
|
1454
|
+
}, i)
|
|
1455
|
+
}), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1322
1456
|
title: (0, _locale.__)('SqlQueryBuilder.add'),
|
|
1323
1457
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
1324
1458
|
trigger: ['click'],
|
|
@@ -1404,7 +1538,7 @@ var JoinData = function JoinData(props) {
|
|
|
1404
1538
|
})]
|
|
1405
1539
|
}, i);
|
|
1406
1540
|
}
|
|
1407
|
-
})), ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$
|
|
1541
|
+
})), ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$table0 = meta.table1) === null || _meta$table0 === void 0 ? void 0 : _meta$table0.name) && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1408
1542
|
title: (0, _locale.__)('SqlQueryBuilder.add'),
|
|
1409
1543
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
1410
1544
|
trigger: ['click'],
|
|
@@ -16,17 +16,21 @@ var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
|
|
|
16
16
|
var _header = _interopRequireDefault(require("./components/header"));
|
|
17
17
|
var _useProvider = require("../../hooks/use-provider");
|
|
18
18
|
var _helper = require("../../utils/helper");
|
|
19
|
+
var _itemName = _interopRequireDefault(require("./components/item-name"));
|
|
20
|
+
var _helper2 = require("../../store/helper");
|
|
19
21
|
var PrevResult = 'Previous results';
|
|
20
22
|
var PermissionTable = function PermissionTable(props) {
|
|
21
23
|
var meta = props.meta,
|
|
22
24
|
groupIndex = props.groupIndex;
|
|
23
25
|
var store = (0, _useProvider.useStore)();
|
|
24
26
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
27
|
+
var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
28
|
+
prevTables = _getHelper.prevTables;
|
|
25
29
|
function selectTable(e) {
|
|
26
|
-
var
|
|
27
|
-
ExistAboveGroupBy =
|
|
28
|
-
prevList =
|
|
29
|
-
prevGroupBy =
|
|
30
|
+
var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
31
|
+
ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
|
|
32
|
+
prevList = _getHelper2.prevList,
|
|
33
|
+
prevGroupBy = _getHelper2.prevGroupBy;
|
|
30
34
|
var data = [];
|
|
31
35
|
if (ExistAboveGroupBy) {
|
|
32
36
|
var _data = {
|
|
@@ -101,6 +105,13 @@ var PermissionTable = function PermissionTable(props) {
|
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
var selected = Boolean(meta.table.name);
|
|
108
|
+
var tableIsError = function tableIsError() {
|
|
109
|
+
var _prevTables$meta$tabl;
|
|
110
|
+
if (!meta.table.datasourceId && !meta.table.id) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return !(prevTables !== null && prevTables !== void 0 && (_prevTables$meta$tabl = prevTables[meta.table.datasourceId]) !== null && _prevTables$meta$tabl !== void 0 && _prevTables$meta$tabl[meta.table.id]);
|
|
114
|
+
};
|
|
104
115
|
return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
|
|
105
116
|
className: "Sqb-item",
|
|
106
117
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -115,12 +126,15 @@ var PermissionTable = function PermissionTable(props) {
|
|
|
115
126
|
className: "Sqb-item--content",
|
|
116
127
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
117
128
|
className: "Sqb-NotebookCell gray-bg",
|
|
118
|
-
children: (0, _jsxRuntime.jsx)("
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
129
|
+
children: (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
130
|
+
isError: tableIsError(),
|
|
131
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
132
|
+
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
133
|
+
notSelected: !selected
|
|
134
|
+
}),
|
|
135
|
+
onClick: selectTable,
|
|
136
|
+
children: selected ? "".concat(meta.table.datasourceName ? "".concat(meta.table.datasourceName, ".") : '').concat(meta.table.name === _helper2.SummarizeAlias ? PrevResult : meta.table.name) : (0, _locale.__)('SqlQueryBuilder.pickPermissionTable')
|
|
137
|
+
})
|
|
124
138
|
})
|
|
125
139
|
})
|
|
126
140
|
}), (0, _jsxRuntime.jsx)(_metaIcon["default"], {
|
|
@@ -20,6 +20,7 @@ var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
|
|
|
20
20
|
var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
|
|
21
21
|
var _header = _interopRequireDefault(require("./components/header"));
|
|
22
22
|
var _useProvider = require("../../hooks/use-provider");
|
|
23
|
+
var _itemName = _interopRequireDefault(require("./components/item-name"));
|
|
23
24
|
var Sort = function Sort(props) {
|
|
24
25
|
var meta = props.meta,
|
|
25
26
|
groupIndex = props.groupIndex;
|
|
@@ -250,20 +251,23 @@ var Sort = function Sort(props) {
|
|
|
250
251
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
251
252
|
className: (0, _classnames["default"])("Sqb-NotebookCell gray-bg"),
|
|
252
253
|
children: [sort.map(function (v, i) {
|
|
253
|
-
return (0, _jsxRuntime.
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
style: {
|
|
260
|
-
fontSize: 0
|
|
254
|
+
return (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
255
|
+
isError: (0, _utils.isError)(v.expression, getColumns()),
|
|
256
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
257
|
+
className: "Sqb-TableName gray-name",
|
|
258
|
+
onClick: function onClick() {
|
|
259
|
+
return handleSort(i);
|
|
261
260
|
},
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
261
|
+
children: [v.sort === _enum.SortEnum.asc ? (0, _jsxRuntime.jsx)(_icons.UpArrowIcon, {}) : (0, _jsxRuntime.jsx)(_icons.DownArrowIcon, {}), getName(v.expression), (0, _jsxRuntime.jsx)("span", {
|
|
262
|
+
style: {
|
|
263
|
+
fontSize: 0
|
|
264
|
+
},
|
|
265
|
+
onClick: function onClick(e) {
|
|
266
|
+
return delSortColumn(e, i);
|
|
267
|
+
},
|
|
268
|
+
children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
|
|
269
|
+
})]
|
|
270
|
+
}, i)
|
|
267
271
|
}, i);
|
|
268
272
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
269
273
|
className: "Sqb-TableName gray-name",
|