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