@gingkoo/pandora-metabase 1.0.14 → 1.0.16

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.
Files changed (96) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +1 -1
  4. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  5. package/lib/cjs/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  6. package/lib/cjs/components/dialog/{select-filter → expression}/index.js +345 -206
  7. package/lib/cjs/components/dialog/formula-list/enum.d.ts +9 -13
  8. package/lib/cjs/components/dialog/formula-list/enum.js +83 -39
  9. package/lib/cjs/components/dialog/formula-list/index.d.ts +4 -1
  10. package/lib/cjs/components/dialog/formula-list/index.js +110 -126
  11. package/lib/cjs/components/dialog/formula-list/utils.js +77 -46
  12. package/lib/cjs/components/dialog/index.d.ts +2 -2
  13. package/lib/cjs/components/dialog/index.js +20 -20
  14. package/lib/cjs/components/dialog/select-column/index.js +43 -12
  15. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +54 -0
  16. package/lib/cjs/components/dialog/select-column-multiple/index.js +341 -0
  17. package/lib/cjs/components/dialog/select-column-multiple/index.less +246 -0
  18. package/lib/cjs/components/dialog/select-table/index.js +9 -7
  19. package/lib/cjs/components/icons.js +36 -36
  20. package/lib/cjs/components/metabase/index.js +6 -6
  21. package/lib/cjs/components/metabase/index.less +12 -1
  22. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  23. package/lib/cjs/components/modules/custom-column.js +12 -14
  24. package/lib/cjs/components/modules/enum/filter-enum.d.ts +34 -0
  25. package/lib/cjs/components/modules/enum/filter-enum.js +137 -0
  26. package/lib/cjs/components/modules/filter.js +43 -460
  27. package/lib/cjs/components/modules/join-data.js +863 -525
  28. package/lib/cjs/components/modules/permission-table.js +4 -0
  29. package/lib/cjs/components/modules/sort.js +102 -91
  30. package/lib/cjs/components/modules/summarize/group-by.js +47 -16
  31. package/lib/cjs/components/modules/summarize/select-index.js +48 -17
  32. package/lib/cjs/components/modules/table-data.js +13 -4
  33. package/lib/cjs/components/popup.js +1 -2
  34. package/lib/cjs/hooks/patch.d.ts +4 -0
  35. package/lib/cjs/hooks/patch.js +464 -0
  36. package/lib/cjs/hooks/use-state.js +73 -138
  37. package/lib/cjs/index.d.ts +0 -1
  38. package/lib/cjs/index.js +3 -21
  39. package/lib/cjs/locale/en.js +9 -2
  40. package/lib/cjs/locale/zh.js +11 -4
  41. package/lib/cjs/store/helper.d.ts +2 -3
  42. package/lib/cjs/store/helper.js +288 -233
  43. package/lib/cjs/store/types.d.ts +94 -71
  44. package/lib/cjs/store/types.js +17 -12
  45. package/lib/cjs/utils.d.ts +3 -3
  46. package/lib/cjs/utils.js +152 -187
  47. package/lib/es/common/SplitView/index.js +10 -10
  48. package/lib/es/components/dialog/custom-column/expressions/suggest.js +1 -1
  49. package/lib/es/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  50. package/lib/es/components/dialog/{select-filter → expression}/index.js +343 -206
  51. package/lib/es/components/dialog/formula-list/enum.d.ts +9 -13
  52. package/lib/es/components/dialog/formula-list/enum.js +82 -38
  53. package/lib/es/components/dialog/formula-list/index.d.ts +4 -1
  54. package/lib/es/components/dialog/formula-list/index.js +115 -131
  55. package/lib/es/components/dialog/formula-list/utils.js +77 -46
  56. package/lib/es/components/dialog/index.d.ts +2 -2
  57. package/lib/es/components/dialog/index.js +3 -3
  58. package/lib/es/components/dialog/select-column/index.js +44 -13
  59. package/lib/es/components/dialog/select-column-multiple/index.d.ts +54 -0
  60. package/lib/es/components/dialog/select-column-multiple/index.js +335 -0
  61. package/lib/es/components/dialog/select-column-multiple/index.less +246 -0
  62. package/lib/es/components/dialog/select-table/index.js +9 -7
  63. package/lib/es/components/icons.js +36 -36
  64. package/lib/es/components/metabase/index.js +6 -6
  65. package/lib/es/components/metabase/index.less +12 -1
  66. package/lib/es/components/modules/components/Wrapper.js +6 -6
  67. package/lib/es/components/modules/custom-column.js +12 -14
  68. package/lib/es/components/modules/enum/filter-enum.d.ts +34 -0
  69. package/lib/es/components/modules/enum/filter-enum.js +131 -0
  70. package/lib/es/components/modules/filter.js +45 -463
  71. package/lib/es/components/modules/join-data.js +865 -527
  72. package/lib/es/components/modules/permission-table.js +4 -0
  73. package/lib/es/components/modules/sort.js +102 -91
  74. package/lib/es/components/modules/summarize/group-by.js +48 -17
  75. package/lib/es/components/modules/summarize/select-index.js +49 -18
  76. package/lib/es/components/modules/table-data.js +13 -4
  77. package/lib/es/hooks/patch.d.ts +4 -0
  78. package/lib/es/hooks/patch.js +457 -0
  79. package/lib/es/hooks/use-state.js +73 -138
  80. package/lib/es/index.d.ts +0 -1
  81. package/lib/es/index.js +1 -1
  82. package/lib/es/locale/en.js +9 -2
  83. package/lib/es/locale/zh.js +11 -4
  84. package/lib/es/store/helper.d.ts +2 -3
  85. package/lib/es/store/helper.js +288 -233
  86. package/lib/es/store/types.d.ts +94 -71
  87. package/lib/es/store/types.js +16 -11
  88. package/lib/es/utils.d.ts +3 -3
  89. package/lib/es/utils.js +154 -190
  90. package/package.json +1 -1
  91. package/lib/cjs/components/modules/filter copy.d.ts +0 -7
  92. package/lib/cjs/components/modules/filter copy.js +0 -178
  93. package/lib/es/components/modules/filter copy.d.ts +0 -7
  94. package/lib/es/components/modules/filter copy.js +0 -171
  95. /package/lib/cjs/components/dialog/{select-filter → expression}/index.less +0 -0
  96. /package/lib/es/components/dialog/{select-filter → expression}/index.less +0 -0
@@ -4,11 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.summarizeToSql = exports.restoreStructure = exports.handleSqlStruct = exports.filterToSql = exports.compressionStructure = exports.SummarizeAlias = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
7
+ exports.summarizeToSql = exports.restoreStructure = exports.getTemItem = exports.compressionStructure = exports.SummarizeAlias = void 0;
9
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ var _types = require("./types");
12
11
  var _enum = require("./enum");
13
12
  var _excluded = ["children"],
14
13
  _excluded2 = ["metaKey"]; // import { SummarizeAlias } from './index';
@@ -17,119 +16,111 @@ var NUMBER_GROUP = [_enum.SQL_COLUMN_TYPE.FLOAT, _enum.SQL_COLUMN_TYPE.LONG, _en
17
16
  var STRING_GROUP = [_enum.SQL_COLUMN_TYPE.STRING];
18
17
  var DATE_GROUP = [_enum.SQL_COLUMN_TYPE.DATE];
19
18
  // 过滤器对象转sql语句
20
- var filterToSql = exports.filterToSql = function filterToSql(record) {
21
- var alias = record.alias,
22
- name = record.name,
23
- condition = record.condition,
24
- val = record.val,
25
- groupSql = record.groupSql,
26
- database_type = record.database_type;
27
- var _val = (0, _slicedToArray2["default"])(val, 2),
28
- condition_1 = _val[0],
29
- condition_2 = _val[1];
30
- var columnName;
31
- if (alias === SummarizeAlias) {
32
- var _groupSql$split;
33
- columnName = "".concat(alias, ".").concat((groupSql === null || groupSql === void 0 || (_groupSql$split = groupSql.split(' AS ')) === null || _groupSql$split === void 0 ? void 0 : _groupSql$split[1]) || '');
34
- } else {
35
- columnName = "".concat(alias, ".").concat(name);
36
- }
37
- var sql = '';
38
- var group = _enum.SQL_GROUP_TYPE.STRING;
39
- if (~NUMBER_GROUP.indexOf(database_type)) {
40
- group = _enum.SQL_GROUP_TYPE.NUMBER;
41
- }
42
- if (~DATE_GROUP.indexOf(database_type)) {
43
- group = _enum.SQL_GROUP_TYPE.DATE;
44
- }
45
- if (group === _enum.SQL_GROUP_TYPE.STRING) {
46
- switch (condition) {
47
- // string
48
- case '是':
49
- sql = "".concat(columnName, " = '").concat(condition_1, "'");
50
- break;
51
- case '不是':
52
- sql = "".concat(columnName, " <> '").concat(condition_1, "'");
53
- break;
54
- case '包含':
55
- sql = "(".concat(columnName, " like '%").concat(condition_1, "%')");
56
- break;
57
- case '不包含':
58
- sql = "(NOT ".concat(columnName, " like '%").concat(condition_1, "%')");
59
- break;
60
- case '为空':
61
- sql = "".concat(columnName, " IS NULL");
62
- break;
63
- case '不为空':
64
- sql = "".concat(columnName, " IS NOT NULL");
65
- break;
66
- case '以...开始':
67
- sql = "(".concat(columnName, " like '").concat(condition_1, "%')");
68
- break;
69
- case '以...结束':
70
- sql = "(".concat(columnName, " like '%").concat(condition_1, "')");
71
- break;
72
- }
73
- }
74
- if (group === _enum.SQL_GROUP_TYPE.NUMBER) {
75
- switch (condition) {
76
- // number
77
- case '等于':
78
- sql = "".concat(columnName, " = ").concat(condition_1);
79
- break;
80
- case '不等于':
81
- sql = "".concat(columnName, " <> ").concat(condition_1);
82
- break;
83
- case '大于':
84
- sql = "".concat(columnName, " > ").concat(condition_1);
85
- break;
86
- case '小于':
87
- sql = "".concat(columnName, " < ").concat(condition_1);
88
- break;
89
- case '介于之间':
90
- sql = "".concat(columnName, " BETWEEN ").concat(condition_1, " AND ").concat(condition_2);
91
- break;
92
- case '大于或等于':
93
- sql = "".concat(columnName, " >= ").concat(condition_1);
94
- break;
95
- case '小于或等于':
96
- sql = "".concat(columnName, " <= ").concat(condition_1);
97
- break;
98
- case '为空':
99
- sql = "".concat(columnName, " IS NULL");
100
- break;
101
- case '不为空':
102
- sql = "".concat(columnName, " IS NOT NULL");
103
- break;
104
- }
105
- }
106
- if (group === _enum.SQL_GROUP_TYPE.DATE) {
107
- function transformDate(dataStr) {
108
- return dataStr.replace(/-/g, '').replace(/:/g, '').replace(' ', '') + '00';
109
- }
110
- var c_1 = transformDate(condition_1 || '');
111
- var c_2 = transformDate(condition_2 || '');
112
- switch (condition) {
113
- // date
114
- case '早于':
115
- sql = "".concat(columnName, " < '").concat(c_1, "'");
116
- break;
117
- case '晚于':
118
- sql = "".concat(columnName, " >= '").concat(c_1, "'");
119
- break;
120
- case '介于之间':
121
- sql = "(".concat(columnName, " >= '").concat(c_1, "' AND ").concat(columnName, " < '").concat(c_2, "')");
122
- break;
123
- case '是空的':
124
- sql = "".concat(columnName, " IS NULL");
125
- break;
126
- case '不是空的':
127
- sql = "".concat(columnName, " IS NOT NULL");
128
- break;
129
- }
130
- }
131
- return sql;
132
- };
19
+ // export const filterToSql = (record: AtomsItem): string => {
20
+ // let { alias, name, condition, val, groupSql, database_type } = record;
21
+ // let [condition_1, condition_2] = val;
22
+ // let columnName: string;
23
+ // if (alias === SummarizeAlias) {
24
+ // columnName = `${alias}.${groupSql?.split(' AS ')?.[1] || ''}`;
25
+ // } else {
26
+ // columnName = `${alias}.${name}`;
27
+ // }
28
+ // let sql: string = '';
29
+ // let group: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;
30
+ // if (~NUMBER_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {
31
+ // group = SQL_GROUP_TYPE.NUMBER;
32
+ // }
33
+ // if (~DATE_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {
34
+ // group = SQL_GROUP_TYPE.DATE;
35
+ // }
36
+ // if (group === SQL_GROUP_TYPE.STRING) {
37
+ // switch (condition) {
38
+ // // string
39
+ // case '是':
40
+ // sql = `${columnName} = '${condition_1}'`;
41
+ // break;
42
+ // case '不是':
43
+ // sql = `${columnName} <> '${condition_1}'`;
44
+ // break;
45
+ // case '包含':
46
+ // sql = `(${columnName} like '%${condition_1}%')`;
47
+ // break;
48
+ // case '不包含':
49
+ // sql = `(NOT ${columnName} like '%${condition_1}%')`;
50
+ // break;
51
+ // case '为空':
52
+ // sql = `${columnName} IS NULL`;
53
+ // break;
54
+ // case '不为空':
55
+ // sql = `${columnName} IS NOT NULL`;
56
+ // break;
57
+ // case '以...开始':
58
+ // sql = `(${columnName} like '${condition_1}%')`;
59
+ // break;
60
+ // case '以...结束':
61
+ // sql = `(${columnName} like '%${condition_1}')`;
62
+ // break;
63
+ // }
64
+ // }
65
+ // if (group === SQL_GROUP_TYPE.NUMBER) {
66
+ // switch (condition) {
67
+ // // number
68
+ // case '等于':
69
+ // sql = `${columnName} = ${condition_1}`;
70
+ // break;
71
+ // case '不等于':
72
+ // sql = `${columnName} <> ${condition_1}`;
73
+ // break;
74
+ // case '大于':
75
+ // sql = `${columnName} > ${condition_1}`;
76
+ // break;
77
+ // case '小于':
78
+ // sql = `${columnName} < ${condition_1}`;
79
+ // break;
80
+ // case '介于之间':
81
+ // sql = `${columnName} BETWEEN ${condition_1} AND ${condition_2}`;
82
+ // break;
83
+ // case '大于或等于':
84
+ // sql = `${columnName} >= ${condition_1}`;
85
+ // break;
86
+ // case '小于或等于':
87
+ // sql = `${columnName} <= ${condition_1}`;
88
+ // break;
89
+ // case '为空':
90
+ // sql = `${columnName} IS NULL`;
91
+ // break;
92
+ // case '不为空':
93
+ // sql = `${columnName} IS NOT NULL`;
94
+ // break;
95
+ // }
96
+ // }
97
+ // if (group === SQL_GROUP_TYPE.DATE) {
98
+ // function transformDate(dataStr: string) {
99
+ // return dataStr.replace(/-/g, '').replace(/:/g, '').replace(' ', '') + '00';
100
+ // }
101
+ // let c_1 = transformDate(condition_1 || '');
102
+ // let c_2 = transformDate(condition_2 || '');
103
+ // switch (condition) {
104
+ // // date
105
+ // case '早于':
106
+ // sql = `${columnName} < '${c_1}'`;
107
+ // break;
108
+ // case '晚于':
109
+ // sql = `${columnName} >= '${c_1}'`;
110
+ // break;
111
+ // case '介于之间':
112
+ // sql = `(${columnName} >= '${c_1}' AND ${columnName} < '${c_2}')`;
113
+ // break;
114
+ // case '是空的':
115
+ // sql = `${columnName} IS NULL`;
116
+ // break;
117
+ // case '不是空的':
118
+ // sql = `${columnName} IS NOT NULL`;
119
+ // break;
120
+ // }
121
+ // }
122
+ // return sql;
123
+ // };
133
124
  // 聚合转sql语句
134
125
  var summarizeToSql = exports.summarizeToSql = function summarizeToSql(arr, record) {
135
126
  var condition = record.condition,
@@ -273,123 +264,113 @@ var _layeredData = function layeredData(list) {
273
264
  return res;
274
265
  };
275
266
  // 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)
276
- var _handleNesting = function handleNesting(data) {
277
- var hasInnerSql = Boolean(data.children);
278
- var obj = {
279
- hasInnerSql: hasInnerSql,
280
- innerSqlStruct: hasInnerSql ? _handleNesting(data.children) : null
281
- };
282
- var tableData = data[_enum.TypeEnum.data];
283
- var joinData = data[_enum.TypeEnum.joinData] || [];
284
- var permissionTable = data[_enum.TypeEnum.permissionTable];
285
- var customColumn = data[_enum.TypeEnum.customColumn];
286
- var filterData = data[_enum.TypeEnum.filter];
287
- var summarize = data[_enum.TypeEnum.summarize];
288
- var sortData = data[_enum.TypeEnum.sort];
289
- var rowLimit = data[_enum.TypeEnum.rowLimit];
290
- if (tableData) {
291
- obj.alias = tableData.table.alias;
292
- obj.tableName = tableData.table.name;
293
- obj.datasourceId = tableData.table.datasourceId;
294
- if (!summarize || !summarize.group.length && !summarize.by.length) {
295
- obj.queryColumns = tableData.columns.filter(function (v) {
296
- return v.select;
297
- }).map(function (v) {
298
- var _tableData$table;
299
- return "".concat(tableData === null || tableData === void 0 || (_tableData$table = tableData.table) === null || _tableData$table === void 0 ? void 0 : _tableData$table.alias, ".").concat(v.name);
300
- });
301
- }
302
- } else {
303
- if (!summarize || !summarize.group.length && !summarize.by.length) {
304
- obj.alias = SummarizeAlias;
305
- }
306
- }
307
- if (joinData.length) {
308
- obj.joinTables = joinData.filter(function (v) {
309
- return v.table2.name;
310
- }).map(function (v) {
311
- var joinCondition;
312
- if (v.table1.alias === SummarizeAlias) {
313
- joinCondition = "ON ".concat(SummarizeAlias, ".").concat(v.table1.groupSql, " = ").concat(v.table2.alias, ".").concat(v.table2.column);
314
- } else {
315
- joinCondition = "ON ".concat(v.table1.alias, ".").concat(v.table1.column, " = ").concat(v.table2.alias, ".").concat(v.table2.column);
316
- }
317
- return {
318
- alias: v.table2.alias,
319
- tableName: v.table2.name,
320
- datasourceId: v.table2.datasourceId || '',
321
- joinCondition: joinCondition,
322
- joinType: v.joinType,
323
- queryColumns: v.columns.filter(function (o) {
324
- return o.select;
325
- }).map(function (o) {
326
- return "".concat(v.table2.alias, ".").concat(o.name);
327
- })
328
- };
329
- });
330
- }
331
- if (customColumn && customColumn.customColumn.length) {
332
- obj.customColumns = customColumn.customColumn.map(function (v) {
333
- return {
334
- alias: v.name
335
- // formula: v.formula.replace(/\[.*?\]/g, (column: string): string => {
336
- // let str = column.substr(1, column.length - 2);
337
- // if (~str.indexOf('->')) {
338
- // let _str = str.replace(/ /g, '').split('->');
339
- // return `${_str[0]}.${_str[1]}`;
340
- // }
341
- // return str;
342
- // }),
343
- };
344
- });
345
- }
346
- if (filterData && filterData.filter.length) {
347
- obj.filters = 'WHERE ' + filterData.filter.map(function (v) {
348
- return filterToSql(v);
349
- }).join(' AND ');
350
- if (permissionTable) {
351
- obj.filters += " @{_DATA_I_PRIV_COND:".concat(permissionTable.table.alias, "}");
352
- }
353
- }
354
- if (summarize && (summarize.group.length || summarize.by.length)) {
355
- obj.groupBy = {
356
- calcColumns: [],
357
- groupColumns: []
358
- };
359
- var queryColumns = [];
360
- if (summarize.group.length) {
361
- obj.groupBy.calcColumns = summarize.group.map(function (v) {
362
- return v.sql;
363
- });
364
- queryColumns = (0, _toConsumableArray2["default"])(obj.groupBy.calcColumns);
365
- }
366
- if (summarize.by.length) {
367
- obj.groupBy.groupColumns = summarize.by.map(function (v) {
368
- queryColumns.push("".concat(v.sql));
369
- return "".concat(v.alias, ".").concat(v.realName || v.name);
370
- });
371
- }
372
- obj.queryColumns = queryColumns;
373
- if (!tableData) {
374
- obj.alias = summarize.alias;
375
- }
376
- }
377
- if (sortData && sortData.sort.length) {
378
- obj.orderInfos = "ORDER BY ".concat(sortData.sort.map(function (v) {
379
- return "".concat(v.sql, " ").concat(v.sort);
380
- }).join(', '));
381
- }
382
- if (rowLimit) {
383
- obj.limit = Number(rowLimit.limit);
384
- }
385
- if (permissionTable) {
386
- obj.privilegeTable = "@{_DATA_I_PRIV_COND:".concat(permissionTable.table.alias, "}");
387
- }
388
- return obj;
389
- };
390
- var handleSqlStruct = exports.handleSqlStruct = function handleSqlStruct(list) {
391
- return _handleNesting(reverseData(_layeredData(list)));
392
- };
267
+ // const handleNesting = (data: LooseObject): ParamsStruct => {
268
+ // let hasInnerSql = Boolean(data.children);
269
+ // let obj: ParamsStruct = {
270
+ // hasInnerSql,
271
+ // innerSqlStruct: hasInnerSql ? handleNesting(data.children as LooseObject) : null,
272
+ // };
273
+ // let tableData: MetaData | undefined = data[TypeEnum.data];
274
+ // let joinData: MetaJoin[] = data[TypeEnum.joinData] || [];
275
+ // let permissionTable: MetaPermissionTable | undefined = data[TypeEnum.permissionTable];
276
+ // let customColumn: MetaCustom | undefined = data[TypeEnum.customColumn];
277
+ // let filterData: MetaFilter | undefined = data[TypeEnum.filter];
278
+ // let summarize: MetaSummarize | undefined = data[TypeEnum.summarize];
279
+ // let sortData: MetaSort | undefined = data[TypeEnum.sort];
280
+ // let rowLimit: MetaLimit | undefined = data[TypeEnum.rowLimit];
281
+ // if (tableData) {
282
+ // obj.alias = tableData.table.alias;
283
+ // obj.tableName = tableData.table.name;
284
+ // obj.datasourceId = tableData.table.datasourceId;
285
+ // if (!summarize || (!summarize.group.length && !summarize.by.length)) {
286
+ // obj.queryColumns = tableData.columns
287
+ // .filter((v) => v.select)
288
+ // .map((v) => `${tableData?.table?.alias}.${v.name}`);
289
+ // }
290
+ // } else {
291
+ // if (!summarize || (!summarize.group.length && !summarize.by.length)) {
292
+ // obj.alias = SummarizeAlias;
293
+ // }
294
+ // }
295
+ // if (joinData.length) {
296
+ // obj.joinTables = joinData
297
+ // .filter((v) => v.table2.name)
298
+ // .map((v) => {
299
+ // let joinCondition: string;
300
+ // if (v.table1.alias === SummarizeAlias) {
301
+ // joinCondition = `ON ${SummarizeAlias}.${v.table1.groupSql} = ${v.table2.alias}.${v.table2.column}`;
302
+ // } else {
303
+ // joinCondition = `ON ${v.table1.alias}.${v.table1.column} = ${v.table2.alias}.${v.table2.column}`;
304
+ // }
305
+ // return {
306
+ // alias: v.table2.alias,
307
+ // tableName: v.table2.name,
308
+ // datasourceId: v.table2.datasourceId || '',
309
+ // joinCondition,
310
+ // joinType: v.joinType,
311
+ // queryColumns: v.columns.filter((o) => o.select).map((o) => `${v.table2.alias}.${o.name}`),
312
+ // };
313
+ // });
314
+ // }
315
+ // if (customColumn && customColumn.customColumn.length) {
316
+ // obj.customColumns = customColumn.customColumn.map((v) => {
317
+ // return {
318
+ // alias: v.name,
319
+ // // formula: v.formula.replace(/\[.*?\]/g, (column: string): string => {
320
+ // // let str = column.substr(1, column.length - 2);
321
+ // // if (~str.indexOf('->')) {
322
+ // // let _str = str.replace(/ /g, '').split('->');
323
+ // // return `${_str[0]}.${_str[1]}`;
324
+ // // }
325
+ // // return str;
326
+ // // }),
327
+ // };
328
+ // });
329
+ // }
330
+ // if (filterData && filterData.filter.length) {
331
+ // obj.filters = 'WHERE ' + filterData.filter.map((v) => filterToSql(v)).join(' AND ');
332
+ // if (permissionTable) {
333
+ // obj.filters += ` @{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;
334
+ // }
335
+ // }
336
+ // if (summarize && (summarize.group.length || summarize.by.length)) {
337
+ // obj.groupBy = {
338
+ // calcColumns: [],
339
+ // groupColumns: [],
340
+ // };
341
+ // let queryColumns: string[] = [];
342
+ // if (summarize.group.length) {
343
+ // obj.groupBy.calcColumns = summarize.group.map((v) => {
344
+ // return v.sql;
345
+ // });
346
+ // queryColumns = [...obj.groupBy.calcColumns];
347
+ // }
348
+ // if (summarize.by.length) {
349
+ // obj.groupBy.groupColumns = summarize.by.map((v) => {
350
+ // queryColumns.push(`${v.sql}`);
351
+ // return `${v.alias}.${v.realName || v.name}`;
352
+ // });
353
+ // }
354
+ // obj.queryColumns = queryColumns;
355
+ // if (!tableData) {
356
+ // obj.alias = summarize.alias;
357
+ // }
358
+ // }
359
+ // if (sortData && sortData.sort.length) {
360
+ // obj.orderInfos = `ORDER BY ${sortData.sort
361
+ // .map((v: MetaSort_Item) => `${v.sql} ${v.sort}`)
362
+ // .join(', ')}`;
363
+ // }
364
+ // if (rowLimit) {
365
+ // obj.limit = Number(rowLimit.limit);
366
+ // }
367
+ // if (permissionTable) {
368
+ // obj.privilegeTable = `@{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;
369
+ // }
370
+ // return obj;
371
+ // };
372
+ // export const handleSqlStruct = (list: MetaListType[]) =>
373
+ // handleNesting(reverseData(layeredData(list)));
393
374
  // 压缩结构
394
375
  var compressionStructure = exports.compressionStructure = function compressionStructure(data) {
395
376
  var _data = JSON.parse(JSON.stringify(data)).map(function (v) {
@@ -441,4 +422,78 @@ var restoreStructure = exports.restoreStructure = function restoreStructure(data
441
422
  } catch (e) {
442
423
  return [];
443
424
  }
425
+ };
426
+ var getTemItem = exports.getTemItem = function getTemItem(type) {
427
+ var temItem;
428
+ // 字段
429
+ if (type === _types.AtomsTypeEnum.FIELD) {
430
+ temItem = {
431
+ fieldName: '',
432
+ // 字段名
433
+ fieldNameZh: '',
434
+ // 字段中文名
435
+ fieldAlias: '',
436
+ // 别名
437
+ fieldUuid: '',
438
+ // uuid
439
+ fieldId: '',
440
+ // 字段id
441
+ // quotes?: string; // 字段展示的 不知道有没有用
442
+ tableName: '',
443
+ // 表名
444
+ tableNameZh: '',
445
+ tableId: '',
446
+ // 表名
447
+ tableAlias: '',
448
+ // 别名
449
+ tableUuid: '',
450
+ // 表唯一标识
451
+ datasourceName: '',
452
+ // 数据源名
453
+ datasourceId: '',
454
+ // 数据源id
455
+ type: _types.AtomsTypeEnum.FIELD
456
+ };
457
+ }
458
+ // 表达式
459
+ else if (type === _types.AtomsTypeEnum.EXPRESSION || type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
460
+ return {
461
+ lhs: [],
462
+ rhs: [],
463
+ condition: '',
464
+ quotes: '',
465
+ type: type
466
+ };
467
+ } else if (type === _types.AtomsTypeEnum.EXISTS || type === _types.AtomsTypeEnum.NOT_EXISTS) {
468
+ return {
469
+ quotes: '',
470
+ // 展示用户看的 组装的文字
471
+ notExists: [],
472
+ type: type
473
+ };
474
+ } else if (type === _types.AtomsTypeEnum.UNKNOWN) {
475
+ return {
476
+ // quotes: '', // 展示用户看的 组装的文字
477
+ // notExists: [],
478
+ val: '',
479
+ type: type
480
+ };
481
+ } else if (type === _types.AtomsTypeEnum.INPUT_NUMBER) {
482
+ return {
483
+ val: 0,
484
+ type: type
485
+ };
486
+ } else if (type === _types.AtomsTypeEnum.INPUT_NUMBER_LIST || type === _types.AtomsTypeEnum.INPUT_STRING_LIST) {
487
+ temItem = {
488
+ val: [],
489
+ type: type
490
+ };
491
+ } else {
492
+ // 其他
493
+ temItem = {
494
+ val: '',
495
+ type: type
496
+ };
497
+ }
498
+ return temItem;
444
499
  };