@gingkoo/pandora-metabase 1.0.95 → 1.0.96

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.
@@ -1,594 +1,117 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import { uuidv4 } from '../utils/helper';
3
- import { buildSqlQuery } from '../utils';
4
- import { AtomsTypeEnum } from '../store/types';
5
2
  import { TypeEnum } from '../store/enum';
6
- export var dataPatch = function dataPatch(newMeta) {
7
- // let item = newMeta.expressions?.[0] || {};
8
- // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
9
- // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
10
- // return newMeta;
11
- // }
12
- // }
13
- newMeta.subquery = _patchMetas(newMeta.subquery);
14
- return newMeta;
3
+ var setConstantId = function setConstantId(item, constantList) {
4
+ constantList.map(function (v) {
5
+ if (v.label === item.val) {
6
+ item.id = v.value;
7
+ }
8
+ });
9
+ return item;
15
10
  };
16
- export var joinDataPatch = function joinDataPatch(newMeta) {
17
- var _fields, _fields2, _fields3, _fields4, _newMeta$expressions;
18
- // let item = newMeta.expressions?.[0] || {};
19
- // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
20
- // if (
21
- // (item.type === AtomsTypeEnum.EXPRESSION || item.type === AtomsTypeEnum.JOIN_DEFAULT) &&
22
- // item.lhs
23
- // ) {
24
- // return newMeta;
25
- // }
26
- // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
27
- // return newMeta;
28
- // }
29
- // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
30
- // return newMeta;
31
- // }
32
- // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
33
- // return newMeta;
34
- // }
35
- // }
36
- // if (
37
- // newMeta.expressions?.[0]?.type &&
38
- // Object.values(AtomsTypeEnum).includes(newMeta.expressions[0].type)
39
- // ) {
40
- // return newMeta;
41
- // }
42
- var fields1 = newMeta.table1.fields || [];
43
- var fields2 = newMeta.table2.fields || [];
44
- // 处理老字段
45
- var field1 = {
46
- fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column || newMeta.table1.name,
47
- fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),
48
- fieldId: newMeta.table1.fieldId,
49
- fieldNameZh: newMeta.table1.name_zh,
50
- fieldName: newMeta.table1.fieldName || newMeta.table1.name
51
- // quotes: newMeta.table1.quotes || newMeta.table1.column,
52
- // tableUuid: newMeta.table1.tableUuid,
53
- // tableId: newMeta.table1.datasourceId,
54
- // tableAlias: newMeta.table1.alias,
55
- };
56
- var field2 = {
57
- fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column || newMeta.table2.name,
58
- fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),
59
- fieldId: newMeta.table2.fieldId,
60
- fieldNameZh: newMeta.table2.name_zh,
61
- fieldName: newMeta.table2.fieldName || newMeta.table2.name
62
- };
63
- // 处理多选
64
- if (field1.fieldAlias && ((_fields = fields1) === null || _fields === void 0 ? void 0 : _fields.length) < 1) {
65
- fields1 = [_objectSpread(_objectSpread({}, field1), {}, {
66
- // quotes: field1.quotes,
67
- fieldUuid: field1.fieldUuid,
68
- fieldAlias: field1.fieldAlias,
69
- fieldId: field1.fieldId
70
- // fieldNameZh: newMeta.table1.name_zh,
71
- // fieldName: newMeta.table1.fieldName || newMeta.table1.name,
72
- // tableAlias: newMeta.table1.alias,
73
- // tableId: newMeta.table1.id,
74
- // tableName: newMeta.table1.name,
75
- // tableNameZh: newMeta.table1.name_zh,
76
- // tableUuid: newMeta.table1.tableUuid,
77
- // datasourceName: newMeta.table1.datasourceName, // 数据源名
78
- // datasourceId: newMeta.table1.datasourceId, // 数据源id
79
- })];
80
- }
81
- if (field2.fieldAlias && ((_fields2 = fields2) === null || _fields2 === void 0 ? void 0 : _fields2.length) < 1) {
82
- fields2 = [_objectSpread(_objectSpread({}, field2), {}, {
83
- // quotes: field2.quotes,
84
- fieldUuid: field2.fieldUuid,
85
- fieldAlias: field2.fieldAlias,
86
- fieldId: field2.fieldId
87
- // fieldNameZh: newMeta.table2.name_zh,
88
- // fieldName: newMeta.table2.fieldName || newMeta.table2.name,
89
- // tableAlias: newMeta.table2.alias,
90
- // tableId: newMeta.table2.id,
91
- // tableName: newMeta.table2.name,
92
- // tableNameZh: newMeta.table2.name_zh,
93
- // tableUuid: newMeta.table2.tableUuid,
94
- // datasourceName: newMeta.table2.datasourceName, // 数据源名
95
- // datasourceId: newMeta.table2.datasourceId, // 数据源id
96
- })];
11
+ var setFormulaId = function setFormulaId(item, formulaTemplates) {
12
+ var obj = formulaTemplates === null || formulaTemplates === void 0 ? void 0 : formulaTemplates[item.name];
13
+ if (obj) {
14
+ item.id = obj.id;
97
15
  }
98
- // newMeta.table1 = {
99
- // ...newMeta.table1,
100
- // ...field1,
101
- // tableUuid: newMeta.table1.tableUuid || uuidv4('table'),
102
- // fields: fields1,
103
- // };
104
- // newMeta.table2 = {
105
- // ...newMeta.table2,
106
- // ...field2,
107
- // tableUuid: newMeta.table2.tableUuid || uuidv4('table'),
108
- // fields: fields2,
109
- // };
110
- var beforeExpressions = [];
111
- if (((_fields3 = fields1) === null || _fields3 === void 0 ? void 0 : _fields3.length) > 0 || ((_fields4 = fields2) === null || _fields4 === void 0 ? void 0 : _fields4.length) > 0) {
112
- beforeExpressions = [{
113
- left_constant: '',
114
- left_string: '',
115
- operator: '等于',
116
- left_fields: fields1 || [],
117
- left_type: 'field',
118
- right_constant: '',
119
- right_string: '',
120
- right_fields: fields2 || [],
121
- right_type: 'field',
122
- type: 'default' // 默认是字段模式
123
- }];
124
- }
125
- var expressions = ((_newMeta$expressions = newMeta.expressions) === null || _newMeta$expressions === void 0 ? void 0 : _newMeta$expressions.map(function (v) {
126
- var _left_fields, _right_fields;
127
- var left_fields = v.left_fields || [];
128
- var right_fields = v.right_fields || [];
129
- // if (v.type !== 'default') {
130
- // return v;
131
- // }
132
- // 先处理老数据的字段
133
- var left_field = {
134
- left_fieldAlias: v.left_fieldAlias || v.left_column,
135
- left_fieldUuid: v.left_fieldUuid || uuidv4('field'),
136
- left_quotes: v.left_quotes || v.left_column
137
- };
138
- var right_field = {
139
- right_fieldAlias: v.right_fieldAlias || v.right_column,
140
- right_fieldUuid: v.right_fieldUuid || uuidv4('field'),
141
- right_quotes: v.right_quotes || v.right_column
142
- };
143
- // 再处理多选
144
- if (left_field.left_fieldAlias && ((_left_fields = left_fields) === null || _left_fields === void 0 ? void 0 : _left_fields.length) < 1) {
145
- left_fields = [{
146
- fieldAlias: left_field.left_fieldAlias,
147
- fieldUuid: left_field.left_fieldUuid,
148
- quotes: left_field.left_quotes
149
- // tableUuid: newMeta.table1.tableUuid,
150
- // tableId: newMeta.table1.datasourceId,
151
- // tableAlias: newMeta.table1.alias,
152
- }];
153
- }
154
- if (right_field.right_fieldAlias && ((_right_fields = right_fields) === null || _right_fields === void 0 ? void 0 : _right_fields.length) < 1) {
155
- right_fields = [{
156
- fieldAlias: right_field.right_fieldAlias,
157
- fieldUuid: right_field.right_fieldUuid,
158
- quotes: right_field.right_quotes
159
- // tableUuid: newMeta.table2.tableUuid,
160
- // tableId: newMeta.table2.datasourceId,
161
- // tableAlias: newMeta.table2.alias,
162
- }];
163
- }
164
- return {
165
- left_constant: v.left_constant || '',
166
- left_string: v.left_string || '',
167
- left_fields: left_fields,
168
- left_type: v.left_type || '',
169
- operator: v.operator || '',
170
- right_constant: v.right_constant || '',
171
- right_string: v.right_string || '',
172
- right_fields: right_fields,
173
- right_type: v.right_type || '',
174
- type: v.type || 'default' // 默认是字段模式
175
- };
176
- })) || [];
177
- var _expressions = beforeExpressions.concat(expressions);
178
- var newExpressions = [];
179
- _expressions === null || _expressions === void 0 || _expressions.map(function (v, i) {
180
- var lhs = [];
181
- var rhs = [];
182
- if (v.left_type === 'string') {
183
- lhs = [{
184
- val: v.left_string,
185
- type: AtomsTypeEnum.INPUT_STRING
186
- }];
187
- } else if (v.left_type === 'constant') {
188
- lhs = [{
189
- val: v.left_constant,
190
- type: AtomsTypeEnum.CONSTANT
191
- }];
192
- } else {
193
- var _v$left_fields;
194
- lhs = (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.map(function (vv) {
195
- return _objectSpread({
196
- fieldNameZh: newMeta.table1.name_zh,
197
- fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table1.fieldName || newMeta.table1.name,
198
- tableAlias: newMeta.table1.alias,
199
- tableId: newMeta.table1.id,
200
- tableName: newMeta.table1.name,
201
- tableNameZh: newMeta.table1.name_zh,
202
- tableUuid: newMeta.table1.tableUuid,
203
- datasourceName: newMeta.table1.datasourceName,
204
- // 数据源名
205
- datasourceId: newMeta.table1.datasourceId,
206
- // 数据源id
207
- type: AtomsTypeEnum.FIELD
208
- }, vv);
209
- });
210
- }
211
- if (v.right_type === 'string') {
212
- rhs = [{
213
- val: v.right_string,
214
- type: AtomsTypeEnum.INPUT_STRING
215
- }];
216
- } else if (v.right_type === 'constant') {
217
- rhs = [{
218
- val: v.right_constant,
219
- type: AtomsTypeEnum.CONSTANT
220
- }];
221
- } else {
222
- var _v$right_fields;
223
- rhs = (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.map(function (vv) {
224
- return _objectSpread({
225
- fieldNameZh: newMeta.table2.name_zh,
226
- fieldName: vv.fieldName || vv.quotes || vv.fieldAlias || newMeta.table2.fieldName || newMeta.table2.name,
227
- tableAlias: newMeta.table2.alias,
228
- tableId: newMeta.table2.id,
229
- tableName: newMeta.table2.name,
230
- tableNameZh: newMeta.table2.name_zh,
231
- tableUuid: newMeta.table2.tableUuid,
232
- datasourceName: newMeta.table2.datasourceName,
233
- // 数据源名
234
- datasourceId: newMeta.table2.datasourceId,
235
- // 数据源id
236
- type: AtomsTypeEnum.FIELD
237
- }, vv);
238
- });
239
- }
240
- var item = {
241
- lhs: lhs,
242
- rhs: rhs,
243
- // database_type: '',
244
- condition: '',
245
- // quotes: '',
246
- type: AtomsTypeEnum.JOIN_DEFAULT
247
- };
248
- newExpressions.push(item);
249
- if (_expressions.length - 1 > i) {
250
- newExpressions.push({
251
- val: 'AND',
252
- type: AtomsTypeEnum.OPERATOR
253
- });
254
- }
255
- return item;
16
+ return item;
17
+ };
18
+ // 关联
19
+ export var joinDataPatch = function joinDataPatch(newMeta, constantList, formulaTemplates) {
20
+ var _newMeta$expressions;
21
+ newMeta.expressions = (_newMeta$expressions = newMeta.expressions) === null || _newMeta$expressions === void 0 ? void 0 : _newMeta$expressions.map(function (v, i) {
22
+ v.lhs = v.lhs.map(function (vv) {
23
+ if (vv.type === 'constant' && !vv.id) {
24
+ return setConstantId(vv, constantList);
25
+ }
26
+ return vv;
27
+ });
28
+ v.rhs = v.rhs.map(function (vv) {
29
+ if (vv.type === 'constant' && !vv.id) {
30
+ return setConstantId(vv, constantList);
31
+ }
32
+ return vv;
33
+ });
34
+ return v;
256
35
  });
257
- // 清除table1中不用字段
258
- delete newMeta.table1.fields;
259
- // 清除table2中不用字段
260
- delete newMeta.table2.fields;
261
- newMeta.subquery = _patchMetas(newMeta.subquery);
262
- newMeta.expressions = newExpressions;
263
36
  return newMeta;
264
37
  };
265
- export var filterPatch = function filterPatch(newMeta) {
38
+ // 过滤器
39
+ export var filterPatch = function filterPatch(newMeta, constantList, formulaTemplates) {
266
40
  var _newMeta$filter;
267
- // let item = newMeta.filter?.[0] || {};
268
- // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
269
- // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
270
- // return newMeta;
271
- // }
272
- // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
273
- // return newMeta;
274
- // }
275
- // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
276
- // return newMeta;
277
- // }
278
- // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
279
- // return newMeta;
280
- // }
281
- // }
282
41
  var _filter = (_newMeta$filter = newMeta.filter) === null || _newMeta$filter === void 0 ? void 0 : _newMeta$filter.map(function (v) {
283
- // 表达式
284
- var tem;
285
- if (typeof v === 'string') {
286
- return {
287
- val: v,
288
- type: AtomsTypeEnum.OPERATOR
289
- };
290
- } else if (v.type === 'expression') {
291
- var rhs;
292
- if (v.valType === 'field') {
293
- rhs = [{
294
- fieldName: v.table2.name,
295
- fieldNameZh: v.table2.name_zh,
296
- fieldAlias: v.table2.fieldAlias,
297
- fieldUuid: v.table2.fieldUuid,
298
- fieldId: v.table2.id,
299
- tableName: v.table2.table,
300
- tableNameZh: '',
301
- tableId: v.table2.tableId,
302
- tableAlias: v.table2.alias,
303
- tableUuid: v.table2.tableUuid,
304
- datasourceName: v.table2.datasourceName,
305
- datasourceId: v.table2.datasourceId,
306
- type: AtomsTypeEnum.FIELD
307
- }];
308
- } else if (v.valType === 'constant') {
309
- var _v$val;
310
- rhs = [{
311
- val: ((_v$val = v.val) === null || _v$val === void 0 ? void 0 : _v$val[0]) || '',
312
- type: AtomsTypeEnum.CONSTANT
313
- }];
314
- } else {
315
- var _v$val2;
316
- if (((_v$val2 = v.val) === null || _v$val2 === void 0 ? void 0 : _v$val2.length) > 1) {
317
- rhs = [{
318
- val: v.val,
319
- type: AtomsTypeEnum.INPUT_STRING_LIST
320
- }];
321
- } else {
322
- var _v$val3;
323
- rhs = [{
324
- val: ((_v$val3 = v.val) === null || _v$val3 === void 0 ? void 0 : _v$val3[0]) || '',
325
- type: AtomsTypeEnum.INPUT_STRING
326
- }];
42
+ if (v.type === 'constant' && !v.id) {
43
+ return setConstantId(v, constantList);
44
+ }
45
+ if (v.type === 'expression') {
46
+ v.rhs = v.rhs.map(function (item) {
47
+ if (item.type === 'constant' && !item.id) {
48
+ return setConstantId(item, constantList);
327
49
  }
328
- }
329
- tem = {
330
- lhs: [{
331
- fieldName: v.name,
332
- fieldNameZh: v.name_zh,
333
- fieldAlias: v.fieldAlias || v.name,
334
- fieldUuid: v.fieldUuid,
335
- fieldId: v.id,
336
- tableName: v.table,
337
- tableNameZh: '',
338
- tableId: v.tableId,
339
- tableAlias: v.alias,
340
- tableUuid: v.tableUuid,
341
- datasourceName: v.datasourceName,
342
- datasourceId: v.datasourceId,
343
- type: AtomsTypeEnum.FIELD
344
- }],
345
- rhs: rhs,
346
- database_type: v.database_type,
347
- condition: v.condition,
348
- quotes: v.quotes,
349
- formula: v.formula,
350
- type: AtomsTypeEnum.EXPRESSION
351
- };
352
- return tem;
353
- } else if (v.type === 'notExists') {
354
- var notExists = _patchMetas(v.notExists);
355
- return {
356
- notExists: notExists,
357
- quotes: buildSqlQuery(notExists, v.type),
358
- type: AtomsTypeEnum.NOT_EXISTS
359
- };
360
- } else if (v.type === 'exists') {
361
- var _notExists = _patchMetas(v.notExists);
362
- return {
363
- notExists: _notExists,
364
- quotes: buildSqlQuery(_notExists, v.type),
365
- type: AtomsTypeEnum.EXISTS
366
- };
50
+ return item;
51
+ });
52
+ }
53
+ if (v.type === 'FORMULA' && !v.id) {
54
+ return setFormulaId(v, formulaTemplates);
55
+ }
56
+ if (v.type === 'exists' || v.type === 'notExists') {
57
+ v.notExists = _patchMetas(v.notExists, constantList, formulaTemplates);
367
58
  }
368
59
  return v;
369
60
  });
370
61
  newMeta.filter = _filter;
371
62
  return newMeta;
372
63
  };
373
- export var customColumnPatch = function customColumnPatch(newMeta) {
64
+ // 自定义
65
+ export var customColumnPatch = function customColumnPatch(newMeta, constantList, formulaTemplates) {
374
66
  var _newMeta$customColumn;
375
- // let item = newMeta.customColumn?.[0]?.formulaList?.[0] || {};
376
- // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
377
- // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
378
- // return newMeta;
379
- // }
380
- // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
381
- // return newMeta;
382
- // }
383
- // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
384
- // return newMeta;
385
- // }
386
- // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
387
- // return newMeta;
388
- // }
389
- // }
390
67
  newMeta.customColumn = (newMeta === null || newMeta === void 0 || (_newMeta$customColumn = newMeta.customColumn) === null || _newMeta$customColumn === void 0 ? void 0 : _newMeta$customColumn.map(function (v) {
391
68
  var _formulaList = v.formulaList.map(function (formula) {
392
- var tem = formula;
393
69
  if (formula.type === 'expression') {
394
- var rhs;
395
- if (formula.expression.valType === 'field') {
396
- rhs = [{
397
- fieldName: formula.expression.table2.name,
398
- fieldNameZh: formula.expression.table2.name_zh,
399
- fieldAlias: formula.expression.table2.fieldAlias,
400
- fieldUuid: formula.expression.table2.fieldUuid,
401
- fieldId: formula.expression.table2.id,
402
- tableName: formula.expression.table2.table,
403
- tableNameZh: '',
404
- tableId: formula.expression.table2.tableId,
405
- tableAlias: formula.expression.table2.alias,
406
- tableUuid: formula.expression.table2.tableUuid,
407
- datasourceName: formula.expression.table2.datasourceName,
408
- datasourceId: formula.expression.table2.datasourceId,
409
- // quotes: formula.expression.table2.quotes,
410
- type: AtomsTypeEnum.FIELD
411
- }];
412
- } else if (formula.expression.valType === 'constant') {
413
- var _formula$expression$v;
414
- rhs = [{
415
- val: ((_formula$expression$v = formula.expression.val) === null || _formula$expression$v === void 0 ? void 0 : _formula$expression$v[0]) || '',
416
- type: AtomsTypeEnum.CONSTANT
417
- }];
418
- } else {
419
- var _formula$expression$v2;
420
- if (((_formula$expression$v2 = formula.expression.val) === null || _formula$expression$v2 === void 0 ? void 0 : _formula$expression$v2.length) > 1) {
421
- rhs = [{
422
- val: formula.expression.val,
423
- type: AtomsTypeEnum.INPUT_STRING_LIST
424
- }];
425
- } else {
426
- var _formula$expression$v3;
427
- rhs = [{
428
- val: ((_formula$expression$v3 = formula.expression.val) === null || _formula$expression$v3 === void 0 ? void 0 : _formula$expression$v3[0]) || '',
429
- type: AtomsTypeEnum.INPUT_STRING
430
- }];
70
+ formula.lhs = formula.lhs.map(function (vv) {
71
+ if (vv.type === 'constant' && !vv.id) {
72
+ return setConstantId(vv, constantList);
431
73
  }
432
- }
433
- tem = {
434
- lhs: [{
435
- fieldName: formula.expression.name,
436
- fieldNameZh: formula.expression.name_zh,
437
- fieldAlias: formula.expression.fieldAlias || formula.expression.name,
438
- fieldUuid: formula.expression.fieldUuid,
439
- fieldId: formula.expression.id,
440
- tableName: formula.expression.table,
441
- tableNameZh: '',
442
- tableId: formula.expression.tableId,
443
- tableAlias: formula.expression.alias,
444
- tableUuid: formula.expression.tableUuid,
445
- datasourceName: formula.expression.datasourceName,
446
- datasourceId: formula.expression.datasourceId,
447
- // quotes: formula.expression.name,
448
- type: AtomsTypeEnum.FIELD
449
- }],
450
- rhs: rhs,
451
- database_type: formula.expression.database_type,
452
- condition: formula.expression.condition,
453
- quotes: formula.expression.quotes,
454
- formula: formula.expression.formula,
455
- type: AtomsTypeEnum.EXPRESSION
456
- };
457
- } else if (formula.type === 'field') {
458
- tem = {
459
- fieldName: formula.expression.name,
460
- fieldNameZh: formula.expression.name_zh,
461
- fieldAlias: formula.expression.fieldAlias,
462
- fieldUuid: formula.expression.fieldUuid,
463
- fieldId: formula.expression.id,
464
- tableName: formula.expression.table,
465
- tableNameZh: '',
466
- tableId: formula.expression.tableId,
467
- tableAlias: formula.expression.alias,
468
- tableUuid: formula.expression.tableUuid,
469
- datasourceName: formula.expression.datasourceName,
470
- datasourceId: formula.expression.datasourceId,
471
- // quotes: formula.expression.quotes,
472
- type: AtomsTypeEnum.FIELD
473
- };
474
- } else if (formula.type === 'operator') {
475
- tem = {
476
- val: formula.operator,
477
- type: AtomsTypeEnum.OPERATOR
478
- };
479
- } else if (formula.type === 'other') {
480
- tem = {
481
- val: formula.operator,
482
- type: AtomsTypeEnum.OPERATOR
483
- };
484
- } else if (formula.type === 'input') {
485
- tem = {
486
- val: formula.operator,
487
- type: AtomsTypeEnum.INPUT_STRING
488
- };
489
- } else if (formula.type === 'notExists') {
490
- //应该是多余
491
- return {
492
- notExists: v.expression.notExists,
493
- quotes: v.expression.quotes,
494
- type: AtomsTypeEnum.NOT_EXISTS
495
- };
74
+ return vv;
75
+ });
76
+ formula.rhs = formula.rhs.map(function (vv) {
77
+ if (vv.type === 'constant' && !vv.id) {
78
+ return setConstantId(vv, constantList);
79
+ }
80
+ return vv;
81
+ });
82
+ } else if (formula.type === 'constant' && !formula.id) {
83
+ return setConstantId(formula, constantList);
84
+ } else if (formula.type === 'FORMULA' && !formula.id) {
85
+ return setFormulaId(formula, formulaTemplates);
86
+ } else if (formula.type === 'exists' || formula.type === 'notExists') {
87
+ return _objectSpread(_objectSpread({}, formula), {}, {
88
+ notExists: _patchMetas(formula.notExists, constantList, formulaTemplates)
89
+ });
496
90
  }
497
- return tem;
91
+ return formula;
498
92
  });
499
- {}
500
93
  return _objectSpread(_objectSpread({}, v), {}, {
501
94
  formulaList: _formulaList
502
95
  });
503
96
  })) || newMeta.customColumn;
504
97
  return newMeta;
505
98
  };
506
- export var sortPatch = function sortPatch(newMeta) {
507
- var _newMeta$sort;
508
- // let item = newMeta.sort?.[0].expression?.[0] || {};
509
- // if (item?.type && Object.values(AtomsTypeEnum).includes(item.type)) {
510
- // if (item.type === AtomsTypeEnum.EXPRESSION && item.lhs) {
511
- // return newMeta;
512
- // }
513
- // if (item.type === AtomsTypeEnum.EXISTS && !item.tableUuid) {
514
- // return newMeta;
515
- // }
516
- // if (item.type === AtomsTypeEnum.NOT_EXISTS && !item.tableUuid) {
517
- // return newMeta;
518
- // }
519
- // if (item.type === AtomsTypeEnum.FIELD && item.fieldName) {
520
- // return newMeta;
521
- // }
522
- // }
523
- var _sort = (_newMeta$sort = newMeta.sort) === null || _newMeta$sort === void 0 ? void 0 : _newMeta$sort.map(function (v) {
524
- return {
525
- expression: [{
526
- fieldName: v.name,
527
- fieldNameZh: v.name_zh,
528
- fieldAlias: v.fieldAlias || v.name,
529
- fieldUuid: v.fieldUuid,
530
- fieldId: v.id,
531
- tableName: v.table,
532
- tableNameZh: '',
533
- tableId: v.tableId,
534
- tableAlias: v.alias,
535
- tableUuid: v.tableUuid,
536
- datasourceName: v.datasourceName,
537
- datasourceId: v.datasourceId,
538
- type: AtomsTypeEnum.FIELD
539
- }],
540
- sort: v.sort
541
- };
542
- });
543
- newMeta.sort = _sort;
544
- return newMeta;
545
- };
546
- var _patchMetas = function patchMetas(items) {
99
+ // 兼容
100
+ var _patchMetas = function patchMetas(items, constantList, formulaTemplates) {
547
101
  return (items === null || items === void 0 ? void 0 : items.map(function (v) {
548
- if (v.type === TypeEnum.data) {
549
- v = dataPatch(v);
550
- }
551
102
  if (v.type === TypeEnum.joinData) {
552
- v = joinDataPatch(v);
103
+ v = joinDataPatch(v, constantList, formulaTemplates);
553
104
  }
554
105
  if (v.type === TypeEnum.filter) {
555
- v = filterPatch(v);
556
- }
557
- if (v.type === TypeEnum.sort) {
558
- v = sortPatch(v);
106
+ v = filterPatch(v, constantList, formulaTemplates);
559
107
  }
560
108
  if (v.type === TypeEnum.customColumn) {
561
- v = customColumnPatch(v);
109
+ v = customColumnPatch(v, constantList, formulaTemplates);
562
110
  }
563
111
  if (v.type === TypeEnum.union) {
564
- v.subquery = _patchMetas(v.subquery || []);
112
+ v.subquery = _patchMetas(v.subquery || [], constantList, formulaTemplates);
565
113
  }
566
114
  return v;
567
115
  })) || [];
568
116
  };
569
- // export const patchMetas1 = (items: MetaListType[]) => {
570
- // return (
571
- // items?.map((v: MetaListType): MetaListType => {
572
- // // if (v.type === TypeEnum.data) {
573
- // // v = dataPatch(v);
574
- // // }
575
- // // if (v.type === TypeEnum.joinData) {
576
- // // v = joinDataPatch(v);
577
- // // }
578
- // // if (v.type === TypeEnum.filter) {
579
- // // v = filterPatch(v);
580
- // // }
581
- // // if (v.type === TypeEnum.sort) {
582
- // // v = sortPatch(v);
583
- // // }
584
- // // if (v.type === TypeEnum.customColumn) {
585
- // // v = customColumnPatch(v);
586
- // // }
587
- // if (v.type === TypeEnum.union) {
588
- // v.subquery = patchMetas(v.subquery || []);
589
- // }
590
- // return v;
591
- // }) || []
592
- // );
593
- // };
594
117
  export { _patchMetas as patchMetas };
@@ -0,0 +1,7 @@
1
+ import { MetaListType } from '../store/types';
2
+ export declare const dataPatch: (newMeta: any) => any;
3
+ export declare const joinDataPatch: (newMeta: any) => any;
4
+ export declare const filterPatch: (newMeta: any) => any;
5
+ export declare const customColumnPatch: (newMeta: any) => any;
6
+ export declare const sortPatch: (newMeta: any) => any;
7
+ export declare const patchMetas: (items: MetaListType[]) => MetaListType[];