@gingkoo/pandora-metabase 1.0.14 → 1.0.15

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 +892 -522
  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 +10 -3
  40. package/lib/cjs/locale/zh.js +12 -5
  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 +894 -524
  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 +10 -3
  83. package/lib/es/locale/zh.js +12 -5
  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
@@ -1,12 +1,12 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  var _excluded = ["subToolbar", "toolbar"];
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import cx from 'classnames';
9
- import { Button, Tooltip, Input, Modal2, Modal, Toast } from '@gingkoo/pandora';
9
+ import { Button, Tooltip, Input, Modal2, Modal, Toast, Dropdown, InputNumber } from '@gingkoo/pandora';
10
10
  import { FfPlus, FfLine, Repeat, RelatedWork } from '@gingkoo/pandora-icons';
11
11
  import Metabase from '../../index';
12
12
  import isEqual from 'lodash/isEqual';
@@ -15,6 +15,7 @@ import { uuidv4, getAlias } from '../../utils/helper';
15
15
  import { __ } from '../../locale';
16
16
  import { findIndex, getSubColumns } from '../../utils';
17
17
  import { TypeEnum, ColumnsPopupThemeEnum, JoinEnum, SQL_COLUMN_TYPE } from '../../store/enum';
18
+ import { AtomsTypeEnum } from '../../store/types';
18
19
  import { SummarizeAlias } from '../../store/helper';
19
20
  import { getHelper, changeTableAlias } from '../../utils';
20
21
  import Wrapper from './components/Wrapper';
@@ -22,9 +23,10 @@ import NextDom from './components/meta-icon';
22
23
  import Header from './components/header';
23
24
  import SelectList from '../dialog/select-list';
24
25
  import { LeftJoinIcon, InnerJoinIcon } from '../icons';
25
- import { SelectTable, SelectJoin, SelectJoinColumnMultiple, SelectColumn } from '../dialog';
26
+ import { SelectTable, SelectJoin, SelectColumnMultiple, SelectColumn, Expression } from '../dialog';
26
27
  import { useStore } from '../../hooks/use-provider';
27
28
  var PrevResult = 'Previous results';
29
+ var operators = ['AND', 'OR', '(', ')', ',', '+', '-', '*', '/', '!=', '<=', '>=', '<', '>', '='];
28
30
  var FlagLocation;
29
31
  (function (FlagLocation) {
30
32
  FlagLocation["TABLE_1"] = "table1";
@@ -32,71 +34,146 @@ var FlagLocation;
32
34
  })(FlagLocation || (FlagLocation = {}));
33
35
  var ExpressionsEnum;
34
36
  (function (ExpressionsEnum) {
35
- ExpressionsEnum["LEFT"] = "left";
36
- ExpressionsEnum["RIGHT"] = "right";
37
+ ExpressionsEnum["LEFT"] = "lhs";
38
+ ExpressionsEnum["RIGHT"] = "rhs";
37
39
  })(ExpressionsEnum || (ExpressionsEnum = {}));
38
- var operatorList = ['等于'
39
- // '不等于',
40
- // '包含',
41
- // '不包含',
42
- // '为空',
43
- // '不为空',
44
- // '以...开始',
45
- // '以...结束',
46
- // '不以...开始',
47
- // '不以...结束',
48
- // 'In',
49
- // 'Not In',
50
- // '正则匹配',
51
- ];
52
40
  var getText = function getText(v) {
53
- return {
54
- 等于: 'filter.equal',
55
- 不等于: 'filter.notEqual',
56
- 大于: 'filter.greaterThan',
57
- 小于: 'filter.lessThan',
58
- 介于之间: 'filter.inBetween',
59
- 大于或等于: 'filter.greaterThanOrEqualTo',
60
- 小于或等于: 'filter.lessThanOrEqualTo',
61
- 为空: 'filter.empty',
62
- 不为空: 'filter.notEmpty',
63
- 包含: 'filter.contain',
64
- 不包含: 'filter.notInclude',
65
- '以...开始': 'filter.startWith',
66
- '以...结束': 'filter.endWith',
67
- '不以...开始': 'filter.notStartWith',
68
- '不以...结束': 'filter.notEndWith',
69
- 早于: 'filter.earlierThan',
70
- 晚于: 'filter.laterThan',
71
- 是空的: 'filter.isEmpty',
72
- In: 'filter.within',
73
- 'Not In': 'filter.withnotin',
74
- 无需结果: 'filter.notresults',
75
- 正则匹配: 'filter.regularMatch'
76
- }[v];
41
+ return _defineProperty(_defineProperty(_defineProperty({}, AtomsTypeEnum.JOIN_DEFAULT, 'joinData.default'), AtomsTypeEnum.EXPRESSION, 'joinData.expression'), AtomsTypeEnum.OPERATOR, 'customColumn.operator')[v];
77
42
  };
78
- var menu = operatorList.map(function (v) {
43
+ var menuTypes = [{
44
+ key: AtomsTypeEnum.JOIN_DEFAULT,
45
+ label: __(getText(AtomsTypeEnum.JOIN_DEFAULT))
46
+ }, {
47
+ key: AtomsTypeEnum.EXPRESSION,
48
+ label: __(getText(AtomsTypeEnum.EXPRESSION))
49
+ }, {
50
+ key: AtomsTypeEnum.OPERATOR,
51
+ label: __(getText(AtomsTypeEnum.OPERATOR))
52
+ }];
53
+ var menuOperator = operators.map(function (v) {
79
54
  return {
80
55
  key: v,
81
- label: __(getText(v))
56
+ label: v
82
57
  };
83
58
  });
84
59
  var JoinData = function JoinData(props) {
85
- var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table2, _meta$table3, _meta$table5, _meta$table6, _meta$table7, _meta$table8, _meta$table9, _meta$table10, _meta$table11, _meta$table12, _meta$expressions, _meta$expressions2;
60
+ 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;
86
61
  var meta = props.meta,
87
62
  groupIndex = props.groupIndex;
88
63
  var store = useStore();
64
+ var filterCustomType = store.filterCustomType;
89
65
  var metaKey = meta.metaKey;
90
66
  var index = findIndex(store.metaList[groupIndex].list, meta);
91
67
  var table1Selected = Boolean(meta.table1.name);
92
68
  var table2Selected = Boolean(meta.table2.name);
93
69
  var subQuerySelected = Boolean((_meta$subquery = meta.subquery) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery[0]) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery.table) === null || _meta$subquery === void 0 ? void 0 : _meta$subquery.name);
94
- var columnsSelected = meta.table1.fields.length > 0 && meta.table2.fields.length > 0;
70
+ var columnsSelected = meta.table1.id && meta.table2.id;
95
71
  // useEffect(() => {
96
72
  // let newMetaList = store.metaList[groupIndex].list.slice();
97
73
  // newMetaList[index] = setQuotes(meta);
98
74
  // store.setMeta(newMetaList, groupIndex);
99
75
  // }, []);
76
+ // 获取表格列
77
+ var getTableColumns = function getTableColumns() {
78
+ var data = [];
79
+ var _getHelper = getHelper(store.metaList[groupIndex].list, meta),
80
+ ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
81
+ prevList = _getHelper.prevList,
82
+ prevGroupBy = _getHelper.prevGroupBy;
83
+ if (ExistAboveGroupBy) {
84
+ var _prevGroupBy$group, _prevGroupBy$by;
85
+ var _data = {
86
+ alias: prevGroupBy.alias,
87
+ id: prevGroupBy.alias,
88
+ tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
89
+ name: prevGroupBy.alias,
90
+ name_zh: prevGroupBy.alias,
91
+ datasourceId: '',
92
+ datasourceName: '',
93
+ columns: []
94
+ };
95
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
96
+ _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
97
+ return _objectSpread(_objectSpread({}, v), {}, {
98
+ name: v.name || v.quotes,
99
+ name_zh: v.name_zh || v.quotes,
100
+ id: v.id || v.fieldId,
101
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
102
+ special_type: '',
103
+ sql: v.sql,
104
+ select: true
105
+ });
106
+ }));
107
+ }
108
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by = prevGroupBy.by) !== null && _prevGroupBy$by !== void 0 && _prevGroupBy$by.length) {
109
+ _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
110
+ return _objectSpread(_objectSpread({}, v), {}, {
111
+ name: v.name || v.quotes,
112
+ name_zh: v.name_zh || v.quotes,
113
+ id: v.id || v.fieldId,
114
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
115
+ special_type: '',
116
+ sql: v.sql,
117
+ select: true
118
+ });
119
+ }));
120
+ }
121
+ data = [_data];
122
+ var joinData = prevList.filter(function (v) {
123
+ return v.type === TypeEnum.joinData;
124
+ }).filter(function (v) {
125
+ return v && v.table2.name;
126
+ });
127
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
128
+ data = data.concat(joinData.map(function (v) {
129
+ return {
130
+ alias: v.table2.alias,
131
+ name: v.table2.name,
132
+ name_zh: v.table2.name_zh,
133
+ id: v.table2.id,
134
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
135
+ datasourceId: v.table2.datasourceId,
136
+ datasourceName: v.table2.datasourceName,
137
+ columns: v.columns || []
138
+ };
139
+ }));
140
+ }
141
+ } else {
142
+ data = store.metaList[groupIndex].list.slice(0, index + 1).reduce(function (mo, v) {
143
+ if (v.type === TypeEnum.data) {
144
+ mo.push({
145
+ alias: v.table.alias,
146
+ name: v.table.name,
147
+ name_zh: v.table.name_zh,
148
+ id: v.table.id,
149
+ tableUuid: v.table.tableUuid || uuidv4('table'),
150
+ columns: v.columns,
151
+ datasourceId: v.table.datasourceId,
152
+ datasourceName: v.table.datasourceName
153
+ });
154
+ } else if (v.type === TypeEnum.joinData) {
155
+ mo.push({
156
+ alias: v.table2.alias,
157
+ name: v.table2.name,
158
+ name_zh: v.table2.name_zh,
159
+ id: v.table2.id,
160
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
161
+ columns: v.columns,
162
+ datasourceId: v.table2.datasourceId,
163
+ datasourceName: v.table2.datasourceName
164
+ });
165
+ }
166
+ return mo;
167
+ }, []);
168
+ }
169
+ // 过滤为table1选中的表
170
+ var newMeta = store.metaList[groupIndex].list.slice();
171
+ data = data.filter(function (v) {
172
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_2].tableUuid == v.tableUuid;
173
+ });
174
+ return data;
175
+ };
176
+ // 字段列表
100
177
  function selectColumns(e) {
101
178
  var columns = meta.columns;
102
179
  !meta.readonly && store.setPopup({
@@ -113,9 +190,175 @@ var JoinData = function JoinData(props) {
113
190
  })
114
191
  });
115
192
  }
193
+ function selectLeftTable(e) {
194
+ var node = e.currentTarget;
195
+ // let type: ExpressionsEnum = node.getAttribute('v-data');
196
+ var _ind = Number(node.getAttribute('v-index'));
197
+ var index = findIndex(store.metaList[groupIndex].list, meta);
198
+ var table_type = FlagLocation.TABLE_1;
199
+ var tableInfo = {
200
+ name: meta[table_type].name,
201
+ id: meta[table_type].id,
202
+ table: meta[table_type].name,
203
+ // fieldUuid: meta[table_type][_ind].fieldUuid || uuidv4('field'),
204
+ // fieldAlias: meta[table_type].fieldAlias || '',
205
+ tableId: meta[table_type].id,
206
+ tableUuid: meta[table_type].tableUuid || uuidv4('table'),
207
+ alias: meta[table_type].alias,
208
+ database_type: '',
209
+ datasourceId: meta[table_type].datasourceId,
210
+ // 数据源id
211
+ datasourceName: meta[table_type].datasourceName // 数据源名
212
+ };
213
+ // let value: MetaJoin_Field[] = [
214
+ // {
215
+ // fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),
216
+ // fieldAlias: meta[table_type].fieldAlias || '',
217
+ // },
218
+ // ];
219
+ var data = [];
220
+ var _getHelper2 = getHelper(store.metaList[groupIndex].list, meta),
221
+ ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
222
+ prevList = _getHelper2.prevList,
223
+ prevGroupBy = _getHelper2.prevGroupBy;
224
+ if (ExistAboveGroupBy) {
225
+ var _prevGroupBy$group2, _prevGroupBy$by2;
226
+ var _data = {
227
+ alias: prevGroupBy.alias,
228
+ id: prevGroupBy.alias,
229
+ tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
230
+ name: prevGroupBy.alias,
231
+ name_zh: prevGroupBy.alias,
232
+ datasourceId: '',
233
+ datasourceName: '',
234
+ columns: []
235
+ };
236
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
237
+ _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
238
+ return _objectSpread(_objectSpread({}, v), {}, {
239
+ name: v.name || v.quotes,
240
+ name_zh: v.name_zh || v.quotes,
241
+ id: v.id || v.fieldId,
242
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
243
+ special_type: '',
244
+ sql: v.sql,
245
+ select: true
246
+ });
247
+ }));
248
+ }
249
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
250
+ _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
251
+ return _objectSpread(_objectSpread({}, v), {}, {
252
+ name: v.name || v.quotes,
253
+ name_zh: v.name_zh || v.quotes,
254
+ id: v.id || v.fieldId,
255
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
256
+ special_type: '',
257
+ sql: v.sql,
258
+ select: true
259
+ });
260
+ }));
261
+ }
262
+ data = [_data];
263
+ var joinData = prevList.filter(function (v) {
264
+ return v.type === TypeEnum.joinData;
265
+ }).filter(function (v) {
266
+ return v && v.table2.name;
267
+ });
268
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
269
+ data = data.concat(joinData.map(function (v) {
270
+ return {
271
+ alias: v.table2.alias,
272
+ name: v.table2.name,
273
+ name_zh: v.table2.name_zh,
274
+ id: v.table2.id,
275
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
276
+ datasourceId: v.table2.datasourceId,
277
+ datasourceName: v.table2.datasourceName,
278
+ columns: []
279
+ };
280
+ }));
281
+ }
282
+ } else {
283
+ data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
284
+ if (v.type === TypeEnum.data) {
285
+ mo.push({
286
+ alias: v.table.alias,
287
+ name: v.table.name,
288
+ name_zh: v.table.name_zh,
289
+ id: v.table.id,
290
+ tableUuid: v.table.tableUuid || uuidv4('table'),
291
+ columns: [],
292
+ datasourceId: v.table.datasourceId,
293
+ datasourceName: v.table.datasourceName
294
+ });
295
+ } else if (v.type === TypeEnum.joinData) {
296
+ mo.push({
297
+ alias: v.table2.alias,
298
+ name: v.table2.name,
299
+ name_zh: v.table2.name_zh,
300
+ id: v.table2.id,
301
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
302
+ columns: [],
303
+ datasourceId: v.table2.datasourceId,
304
+ datasourceName: v.table2.datasourceName
305
+ });
306
+ }
307
+ return mo;
308
+ }, []);
309
+ }
310
+ // // 过滤为table1选中的表
311
+ var newMeta = store.metaList[groupIndex].list.slice();
312
+ // if (((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name) {
313
+ // data = data.filter((v) => {
314
+ // return (
315
+ // ((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name == v.table
316
+ // );
317
+ // });
318
+ // }
319
+ !meta.readonly && store.setPopup({
320
+ visible: true,
321
+ node: node,
322
+ content: _jsx(SelectColumnMultiple, {
323
+ data: data,
324
+ // tableInfo={tableInfo}
325
+ value: [],
326
+ isGroup: true,
327
+ theme: ColumnsPopupThemeEnum.skyBlue,
328
+ onSelect: function onSelect(fields, quotes) {
329
+ var _data = fields[0];
330
+ if (table_type === FlagLocation.TABLE_1) {
331
+ if (newMeta[index][table_type].alias !== _data.tableAlias) {
332
+ // (newMeta[index] as MetaJoin)
333
+ newMeta[index][table_type] = {
334
+ name: _data.tableName,
335
+ name_zh: _data.tableNameZh,
336
+ // 表名
337
+ id: _data.tableId,
338
+ // 表名
339
+ tableUuid: _data.tableUuid,
340
+ // 表名
341
+ alias: _data.tableAlias,
342
+ // 表名
343
+ datasourceName: _data.datasourceName,
344
+ datasourceId: _data.datasourceId // 表名
345
+ };
346
+ // (newMeta[index] as MetaJoin).expressions = [];
347
+ initExpressions();
348
+ }
349
+ }
350
+ store.setMeta(newMeta, groupIndex);
351
+ store.setPopup({
352
+ visible: false
353
+ });
354
+ }
355
+ })
356
+ });
357
+ }
116
358
  function selectTable(e) {
117
359
  var value = {
118
360
  name: meta.table2.name,
361
+ name_zh: meta.table2.name_zh,
119
362
  id: meta.table2.id,
120
363
  alias: meta.table2.alias,
121
364
  datasourceId: meta.table2.datasourceId,
@@ -141,11 +384,10 @@ var JoinData = function JoinData(props) {
141
384
  fieldUuid: '',
142
385
  quotes: '',
143
386
  datasourceId: data.datasourceId,
144
- datasourceName: data.datasourceName,
145
- fields: []
387
+ datasourceName: data.datasourceName
146
388
  });
147
389
  newMeta[index].table2 = _table2;
148
- newMeta[index].expressions = [];
390
+ initExpressions();
149
391
  store.fetchColumns(_table2, data.datasourceId, function (columns) {
150
392
  newMeta[index].columns = columns;
151
393
  // 关联表变了 下面模块全部删除
@@ -162,6 +404,72 @@ var JoinData = function JoinData(props) {
162
404
  })
163
405
  });
164
406
  }
407
+ function initExpressions() {
408
+ var _newMeta$index, _newMeta$index2;
409
+ var newMeta = store.metaList[groupIndex].list.slice();
410
+ if (newMeta[index].table1.name && newMeta[index].table2.name && !((_newMeta$index = newMeta[index]) !== null && _newMeta$index !== void 0 && _newMeta$index.expressions) || ((_newMeta$index2 = newMeta[index]) === null || _newMeta$index2 === void 0 || (_newMeta$index2 = _newMeta$index2.expressions) === null || _newMeta$index2 === void 0 ? void 0 : _newMeta$index2.length) < 1) {
411
+ newMeta[index].expressions = [{
412
+ lhs: [{
413
+ fieldName: '',
414
+ // 字段名
415
+ fieldNameZh: '',
416
+ // 字段中文名
417
+ fieldAlias: '',
418
+ // 别名
419
+ fieldUuid: '',
420
+ // uuid
421
+ fieldId: '',
422
+ // 字段id
423
+ // quotes?: string; // 字段展示的 不知道有没有用
424
+ tableName: '',
425
+ // 表名
426
+ tableNameZh: '',
427
+ tableId: '',
428
+ // 表名
429
+ tableAlias: '',
430
+ // 别名
431
+ tableUuid: '',
432
+ // 表唯一标识
433
+ datasourceName: '',
434
+ // 数据源名
435
+ datasourceId: '',
436
+ // 数据源id
437
+ type: AtomsTypeEnum.FIELD
438
+ }],
439
+ condition: '',
440
+ rhs: [{
441
+ fieldName: '',
442
+ // 字段名
443
+ fieldNameZh: '',
444
+ // 字段中文名
445
+ fieldAlias: '',
446
+ // 别名
447
+ fieldUuid: '',
448
+ // uuid
449
+ fieldId: '',
450
+ // 字段id
451
+ // quotes?: string; // 字段展示的 不知道有没有用
452
+ tableName: '',
453
+ // 表名
454
+ tableNameZh: '',
455
+ tableId: '',
456
+ // 表名
457
+ tableAlias: '',
458
+ // 别名
459
+ tableUuid: '',
460
+ // 表唯一标识
461
+ datasourceName: '',
462
+ // 数据源名
463
+ datasourceId: '',
464
+ // 数据源id
465
+ type: AtomsTypeEnum.FIELD
466
+ }],
467
+ // quotes: '',
468
+ type: AtomsTypeEnum.JOIN_DEFAULT
469
+ }];
470
+ store.setMeta(newMeta, groupIndex);
471
+ }
472
+ }
165
473
  function selectJoin(e) {
166
474
  var newMeta = store.metaList[groupIndex].list.slice();
167
475
  !meta.readonly && store.setPopup({
@@ -180,222 +488,36 @@ var JoinData = function JoinData(props) {
180
488
  })
181
489
  });
182
490
  }
183
- function selectJoinColumn(e) {
184
- var node = e.currentTarget;
185
- var type = node.getAttribute('v-data');
186
- var data = [];
187
- var tableInfo = {
188
- name: meta[type].quotes || meta[type].fieldAlias,
189
- id: meta[type].fieldUuid,
190
- quotes: meta[type].quotes,
191
- fieldUuid: meta[type].fieldUuid || uuidv4('field'),
192
- fieldAlias: meta[type].fieldAlias || '',
193
- table: meta[type].name,
194
- tableId: meta[type].id,
195
- tableUuid: meta[type].tableUuid || uuidv4('table'),
196
- alias: meta[type].alias,
197
- database_type: '',
198
- datasourceId: '',
199
- datasourceName: ''
200
- };
201
- // let value: MetaJoin_Field[] = ;
202
- var _getHelper = getHelper(store.metaList[groupIndex].list, meta),
203
- ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
204
- prevList = _getHelper.prevList,
205
- prevGroupBy = _getHelper.prevGroupBy;
206
- if (type === FlagLocation.TABLE_1) {
207
- if (ExistAboveGroupBy) {
208
- var _prevGroupBy$group, _prevGroupBy$by;
209
- var _data = {
210
- table: prevGroupBy.alias,
211
- tableId: prevGroupBy.alias,
212
- tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
213
- alias: prevGroupBy.alias,
214
- datasourceId: '',
215
- datasourceName: '',
216
- columns: []
217
- };
218
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
219
- _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
220
- return _objectSpread(_objectSpread({}, v), {}, {
221
- name: v.quotes,
222
- database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
223
- special_type: '',
224
- sql: v.sql,
225
- select: true
226
- });
227
- }));
228
- }
229
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by = prevGroupBy.by) !== null && _prevGroupBy$by !== void 0 && _prevGroupBy$by.length) {
230
- _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
231
- return _objectSpread(_objectSpread({}, v), {}, {
232
- name: v.quotes,
233
- database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
234
- special_type: '',
235
- sql: v.sql,
236
- select: true
237
- });
238
- }));
239
- }
240
- data = [_data];
241
- var joinData = prevList.filter(function (v) {
242
- return v.type === TypeEnum.joinData;
243
- }).filter(function (v) {
244
- return v && v.table2.name;
245
- });
246
- if (joinData.length) {
247
- data = data.concat(joinData.map(function (v) {
248
- return {
249
- alias: v.table2.alias,
250
- table: v.table2.name,
251
- tableId: v.table2.id,
252
- tableUuid: v.table2.tableUuid || uuidv4('table'),
253
- datasourceId: v.table2.datasourceId,
254
- datasourceName: v.table2.datasourceName,
255
- columns: v.columns
256
- };
257
- }));
258
- }
259
- } else {
260
- data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
261
- if (v.type === TypeEnum.data) {
262
- mo.push({
263
- alias: v.table.alias,
264
- table: v.table.name,
265
- tableId: v.table.id,
266
- tableUuid: v.table.tableUuid || uuidv4('table'),
267
- columns: v.columns,
268
- datasourceId: v.table.datasourceId,
269
- datasourceName: v.table.datasourceName
270
- });
271
- } else if (v.type === TypeEnum.joinData) {
272
- mo.push({
273
- alias: v.table2.alias,
274
- table: v.table2.name,
275
- tableId: v.table2.id,
276
- tableUuid: v.table2.tableUuid || uuidv4('table'),
277
- columns: v.columns,
278
- datasourceId: v.table2.datasourceId,
279
- datasourceName: v.table2.datasourceName
280
- });
281
- }
282
- return mo;
283
- }, []);
284
- }
285
- } else {
286
- data = [{
287
- alias: meta.table2.alias,
288
- table: meta.table2.name,
289
- tableId: meta.table2.id,
290
- tableUuid: meta.table2.tableUuid || uuidv4('table'),
291
- datasourceId: meta.table2.datasourceId,
292
- datasourceName: meta.table2.datasourceName,
293
- columns: meta.columns
294
- }];
295
- }
296
- !meta.readonly && store.setPopup({
297
- visible: true,
298
- node: node,
299
- content: _jsx(SelectJoinColumnMultiple, {
300
- data: data,
301
- tableInfo: tableInfo,
302
- value: meta[type].fields || [],
303
- theme: ColumnsPopupThemeEnum.skyBlue,
304
- multiple: true,
305
- onSelect: function onSelect(tableInfo, fields) {
306
- var table = tableInfo.table,
307
- alias = tableInfo.alias,
308
- name = tableInfo.name,
309
- sql = tableInfo.sql,
310
- datasourceId = tableInfo.datasourceId,
311
- datasourceName = tableInfo.datasourceName,
312
- _tableInfo$id = tableInfo.id,
313
- id = _tableInfo$id === void 0 ? '' : _tableInfo$id,
314
- _tableInfo$fieldAlias = tableInfo.fieldAlias,
315
- fieldAlias = _tableInfo$fieldAlias === void 0 ? '' : _tableInfo$fieldAlias,
316
- _tableInfo$fieldUuid = tableInfo.fieldUuid,
317
- fieldUuid = _tableInfo$fieldUuid === void 0 ? '' : _tableInfo$fieldUuid,
318
- quotes = tableInfo.quotes,
319
- tableUuid = tableInfo.tableUuid;
320
- var newMeta = store.metaList[groupIndex].list.slice();
321
- if (alias === SummarizeAlias) {
322
- newMeta[index][type].fieldAlias = fieldAlias;
323
- newMeta[index][type].fieldUuid = fieldUuid;
324
- newMeta[index][type].quotes = quotes;
325
- newMeta[index][type].fields = fields;
326
- } else {
327
- newMeta[index][type].fieldAlias = name;
328
- newMeta[index][type].fieldUuid = id;
329
- newMeta[index][type].quotes = name;
330
- newMeta[index][type].fields = fields;
331
- }
332
- if (type === FlagLocation.TABLE_1) {
333
- if (newMeta[index][type].alias !== alias) {
334
- newMeta[index][type].alias = alias;
335
- newMeta[index][type].name = table;
336
- newMeta[index][type].tableUuid = tableUuid;
337
- newMeta[index][type].datasourceId = datasourceId;
338
- newMeta[index][type].datasourceName = datasourceName;
339
- newMeta[index].expressions = [];
340
- if (alias === SummarizeAlias) {
341
- var _sql$split;
342
- newMeta[index][type].groupSql = (sql === null || sql === void 0 || (_sql$split = sql.split(' AS ')) === null || _sql$split === void 0 ? void 0 : _sql$split[1]) || '';
343
- }
344
- }
345
- }
346
- store.setMeta(newMeta, groupIndex);
347
- // store.setPopup({ visible: false });
348
- }
349
- })
350
- });
351
- }
352
491
  function selectMoreJoinColumn(e) {
353
492
  var node = e.currentTarget;
354
- var type = node.getAttribute('v-data');
493
+ var _position = node.getAttribute('v-position');
355
494
  var _ind = Number(node.getAttribute('v-index'));
495
+ var _ind2 = Number(node.getAttribute('v-index2'));
356
496
  var index = findIndex(store.metaList[groupIndex].list, meta);
357
- var table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;
358
- var tableInfo = {
359
- name: meta.expressions[_ind]["".concat(type, "_quotes")] || meta.expressions[_ind]["".concat(type, "_fieldAlias")],
360
- id: meta.expressions[_ind]["".concat(type, "_fieldUuid")],
361
- table: meta[table_type].name,
362
- fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),
363
- fieldAlias: meta[table_type].fieldAlias || '',
364
- tableId: meta[table_type].id,
365
- tableUuid: meta[table_type].tableUuid || uuidv4('table'),
366
- alias: meta[table_type].alias,
367
- database_type: '',
368
- datasourceId: meta[table_type].datasourceId,
369
- // 数据源id
370
- datasourceName: meta[table_type].datasourceName // 数据源名
371
- };
372
- // let value: MetaJoin_Field[] = [
373
- // {
374
- // fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),
375
- // fieldAlias: meta[table_type].fieldAlias || '',
376
- // },
377
- // ];
378
497
  var data = [];
379
- var _getHelper2 = getHelper(store.metaList[groupIndex].list, meta),
380
- ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
381
- prevList = _getHelper2.prevList,
382
- prevGroupBy = _getHelper2.prevGroupBy;
383
- if (type === ExpressionsEnum.LEFT) {
498
+ var _getHelper3 = getHelper(store.metaList[groupIndex].list, meta),
499
+ ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
500
+ prevList = _getHelper3.prevList,
501
+ prevGroupBy = _getHelper3.prevGroupBy;
502
+ if (_position === ExpressionsEnum.LEFT) {
384
503
  if (ExistAboveGroupBy) {
385
- var _prevGroupBy$group2, _prevGroupBy$by2;
504
+ var _prevGroupBy$group3, _prevGroupBy$by3;
386
505
  var _data = {
387
- table: prevGroupBy.alias,
388
- tableId: prevGroupBy.alias,
506
+ name: prevGroupBy.alias,
507
+ name_zh: prevGroupBy.alias,
508
+ id: prevGroupBy.alias,
389
509
  tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
390
510
  alias: prevGroupBy.alias,
391
511
  datasourceId: '',
392
512
  datasourceName: '',
393
513
  columns: []
394
514
  };
395
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
515
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
396
516
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
397
517
  return _objectSpread(_objectSpread({}, v), {}, {
398
- name: v.quotes,
518
+ name: v.name || v.quotes,
519
+ name_zh: v.name_zh || v.quotes,
520
+ id: v.id || v.fieldId,
399
521
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
400
522
  special_type: '',
401
523
  sql: v.sql,
@@ -403,10 +525,12 @@ var JoinData = function JoinData(props) {
403
525
  });
404
526
  }));
405
527
  }
406
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
528
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
407
529
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
408
530
  return _objectSpread(_objectSpread({}, v), {}, {
409
- name: v.quotes,
531
+ name: v.name || v.quotes,
532
+ name_zh: v.name_zh || v.quotes,
533
+ id: v.id || v.fieldId,
410
534
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
411
535
  special_type: '',
412
536
  sql: v.sql,
@@ -420,12 +544,13 @@ var JoinData = function JoinData(props) {
420
544
  }).filter(function (v) {
421
545
  return v && v.table2.name;
422
546
  });
423
- if (joinData.length) {
547
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
424
548
  data = data.concat(joinData.map(function (v) {
425
549
  return {
426
550
  alias: v.table2.alias,
427
- table: v.table2.name,
428
- tableId: v.table2.id,
551
+ name: v.table2.name,
552
+ name_zh: v.table2.name_zh,
553
+ id: v.table2.id,
429
554
  tableUuid: v.table2.tableUuid || uuidv4('table'),
430
555
  datasourceId: v.table2.datasourceId,
431
556
  datasourceName: v.table2.datasourceName,
@@ -438,8 +563,9 @@ var JoinData = function JoinData(props) {
438
563
  if (v.type === TypeEnum.data) {
439
564
  mo.push({
440
565
  alias: v.table.alias,
441
- table: v.table.name,
442
- tableId: v.table.id,
566
+ name: v.table.name,
567
+ name_zh: v.table.name_zh,
568
+ id: v.table.id,
443
569
  tableUuid: v.table.tableUuid || uuidv4('table'),
444
570
  columns: v.columns,
445
571
  datasourceId: v.table.datasourceId,
@@ -448,8 +574,9 @@ var JoinData = function JoinData(props) {
448
574
  } else if (v.type === TypeEnum.joinData) {
449
575
  mo.push({
450
576
  alias: v.table2.alias,
451
- table: v.table2.name,
452
- tableId: v.table2.id,
577
+ name: v.table2.name,
578
+ name_zh: v.table2.name_zh,
579
+ id: v.table2.id,
453
580
  tableUuid: v.table2.tableUuid || uuidv4('table'),
454
581
  columns: v.columns,
455
582
  datasourceId: v.table2.datasourceId,
@@ -461,14 +588,17 @@ var JoinData = function JoinData(props) {
461
588
  }
462
589
  // 过滤为table1选中的表
463
590
  var newMeta = store.metaList[groupIndex].list.slice();
464
- data = data.filter(function (v) {
465
- return newMeta[index][FlagLocation.TABLE_1].name == v.table;
466
- });
591
+ if (newMeta[index][FlagLocation.TABLE_1].name) {
592
+ data = data.filter(function (v) {
593
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid;
594
+ });
595
+ }
467
596
  } else {
468
597
  data = [{
469
598
  alias: meta.table2.alias,
470
- table: meta.table2.name,
471
- tableId: meta.table2.id,
599
+ name: meta.table2.name,
600
+ name_zh: meta.table2.name_zh,
601
+ id: meta.table2.id,
472
602
  tableUuid: meta.table2.tableUuid || uuidv4('table'),
473
603
  datasourceId: meta.table2.datasourceId,
474
604
  datasourceName: meta.table2.datasourceName,
@@ -478,39 +608,46 @@ var JoinData = function JoinData(props) {
478
608
  !meta.readonly && store.setPopup({
479
609
  visible: true,
480
610
  node: node,
481
- content: _jsx(SelectJoinColumnMultiple, {
611
+ content: _jsx(SelectColumnMultiple, {
482
612
  data: data,
483
- tableInfo: tableInfo,
484
- value: meta.expressions[_ind]["".concat(type, "_fields")] || [],
613
+ // tableInfo={tableInfo}
614
+ value: meta.expressions[_ind][_position],
485
615
  theme: ColumnsPopupThemeEnum.skyBlue,
486
- onSelect: function onSelect(tableInfo, fields) {
487
- var table = tableInfo.table,
488
- alias = tableInfo.alias,
489
- name = tableInfo.name,
490
- sql = tableInfo.sql,
491
- datasourceId = tableInfo.datasourceId,
492
- datasourceName = tableInfo.datasourceName,
493
- _tableInfo$id2 = tableInfo.id,
494
- id = _tableInfo$id2 === void 0 ? '' : _tableInfo$id2,
495
- fieldAlias = tableInfo.fieldAlias,
496
- fieldUuid = tableInfo.fieldUuid,
497
- _tableInfo$quotes = tableInfo.quotes,
498
- quotes = _tableInfo$quotes === void 0 ? '' : _tableInfo$quotes;
616
+ onSelect: function onSelect(fields, quotes) {
499
617
  var newMeta = store.metaList[groupIndex].list.slice();
500
- if (alias === SummarizeAlias) {
501
- newMeta[index].expressions[_ind]["".concat(type, "_fieldAlias")] = fieldAlias;
502
- newMeta[index].expressions[_ind]["".concat(type, "_fieldUuid")] = fieldUuid;
503
- newMeta[index].expressions[_ind]["".concat(type, "_quotes")] = quotes;
504
- } else {
505
- newMeta[index].expressions[_ind]["".concat(type, "_fieldAlias")] = name;
506
- newMeta[index].expressions[_ind]["".concat(type, "_fieldUuid")] = id;
507
- newMeta[index].expressions[_ind]["".concat(type, "_quotes")] = name;
508
- }
509
- newMeta[index].expressions[_ind]["".concat(type, "_fields")] = fields;
510
- // (newMeta[index] as MetaJoin).expressions[_ind][type] = name;
511
- // (newMeta[index] as MetaJoin).expressions[_ind][`${type}_id`] = id;
618
+ newMeta[index].expressions[_ind][_position] = fields.length > 0 ? fields : [{
619
+ fieldName: '',
620
+ // 字段名
621
+ fieldNameZh: '',
622
+ // 字段中文名
623
+ fieldAlias: '',
624
+ // 别名
625
+ fieldUuid: '',
626
+ // uuid
627
+ fieldId: '',
628
+ // 字段id
629
+ // quotes?: string; // 字段展示的 不知道有没有用
630
+ tableName: '',
631
+ // 表名
632
+ tableNameZh: '',
633
+ tableId: '',
634
+ // 表名
635
+ tableAlias: '',
636
+ // 别名
637
+ tableUuid: '',
638
+ // 表唯一标识
639
+ datasourceName: '',
640
+ // 数据源名
641
+ datasourceId: '',
642
+ // 数据源id
643
+ type: AtomsTypeEnum.FIELD
644
+ }];
645
+ // (
646
+ // ((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[_position][
647
+ // _ind2
648
+ // ] as AtomsField
649
+ // ).quotes = quotes;
512
650
  store.setMeta(newMeta, groupIndex);
513
- // store.setPopup({ visible: false });
514
651
  }
515
652
  })
516
653
  });
@@ -519,6 +656,7 @@ var JoinData = function JoinData(props) {
519
656
  var node = e.currentTarget;
520
657
  var _ind = Number(node.getAttribute('v-index'));
521
658
  var _position = node.getAttribute('v-position');
659
+ var _ind2 = Number(node.getAttribute('v-index2'));
522
660
  var _val = node.getAttribute('v-val');
523
661
  store.setPopup({
524
662
  visible: true,
@@ -533,8 +671,7 @@ var JoinData = function JoinData(props) {
533
671
  })[0];
534
672
  var index = findIndex(store.metaList[groupIndex].list, meta);
535
673
  var newMeta = store.metaList[groupIndex].list.slice();
536
- newMeta[index].expressions[_ind]["".concat(_position, "_string")] = val;
537
- newMeta[index].expressions[_ind]["".concat(_position, "_constant")] = curObj.label;
674
+ newMeta[index].expressions[_ind][_position][_ind2].val = curObj.value;
538
675
  store.setMeta(newMeta, groupIndex);
539
676
  }
540
677
  })
@@ -546,36 +683,90 @@ var JoinData = function JoinData(props) {
546
683
  });
547
684
  }
548
685
  // 修改输入框类型
549
- function onChangeType(e, position, _ind) {
686
+ function onChangeType(e, _ref) {
687
+ var _ref$position = _ref.position,
688
+ position = _ref$position === void 0 ? 'rhs' : _ref$position,
689
+ _ind = _ref.index;
550
690
  var index = findIndex(store.metaList[groupIndex].list, meta);
551
691
  var newMeta = store.metaList[groupIndex].list.slice();
552
692
  store.setPopup({
553
693
  visible: true,
554
694
  node: e.currentTarget,
555
- content: _jsx(SelectList, {
556
- value: newMeta[index].expressions[_ind]["".concat(position, "_type")],
695
+ content: _jsx(SelectList
696
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
697
+ , {
698
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
557
699
  list: [{
558
- value: 'string',
700
+ value: AtomsTypeEnum.INPUT_STRING,
559
701
  label: __('SqlQueryBuilder.input')
560
702
  }, {
561
- value: 'constant',
703
+ value: AtomsTypeEnum.INPUT_NUMBER,
704
+ label: __('SqlQueryBuilder.numberInput')
705
+ }, {
706
+ value: AtomsTypeEnum.CONSTANT,
562
707
  label: __('customColumn.constant')
563
708
  }, {
564
- value: '',
709
+ value: AtomsTypeEnum.FIELD,
565
710
  label: __('SqlQueryBuilder.columns')
566
711
  }],
567
712
  onChange: function onChange(type) {
568
713
  closePopup();
569
- newMeta[index].expressions[_ind]["".concat(position, "_type")] = type;
714
+ if (type === AtomsTypeEnum.INPUT_STRING || type === AtomsTypeEnum.CONSTANT) {
715
+ newMeta[index].expressions[_ind][position] = [{
716
+ val: '',
717
+ type: type
718
+ }];
719
+ }
720
+ if (type === AtomsTypeEnum.INPUT_NUMBER) {
721
+ newMeta[index].expressions[_ind][position] = [{
722
+ val: 0,
723
+ type: type
724
+ }];
725
+ }
726
+ if (type === AtomsTypeEnum.FIELD) {
727
+ newMeta[index].expressions[_ind][position] = [{
728
+ fieldName: '',
729
+ // 字段名
730
+ fieldNameZh: '',
731
+ // 字段中文名
732
+ fieldAlias: '',
733
+ // 别名
734
+ fieldUuid: '',
735
+ // uuid
736
+ fieldId: '',
737
+ // 字段id
738
+ tableName: '',
739
+ // 表名
740
+ tableNameZh: '',
741
+ tableId: '',
742
+ // 表名
743
+ tableAlias: '',
744
+ // 别名
745
+ tableUuid: '',
746
+ // 表唯一标识
747
+ datasourceName: '',
748
+ // 数据源名
749
+ datasourceId: '',
750
+ // 数据源id
751
+ type: AtomsTypeEnum.FIELD
752
+ }];
753
+ }
570
754
  store.setMeta(newMeta, groupIndex);
571
755
  }
572
756
  })
573
757
  });
574
758
  }
575
- function onChangeString(type, _ind, val) {
759
+ function onChangeString(val, _ref2) {
760
+ var _ref2$position = _ref2.position,
761
+ position = _ref2$position === void 0 ? 'rhs' : _ref2$position,
762
+ _ref2$index = _ref2.index1,
763
+ index1 = _ref2$index === void 0 ? 0 : _ref2$index,
764
+ _ref2$index2 = _ref2.index2,
765
+ index2 = _ref2$index2 === void 0 ? 0 : _ref2$index2;
766
+ // : 'rhs'
576
767
  var index = findIndex(store.metaList[groupIndex].list, meta);
577
768
  var newMeta = store.metaList[groupIndex].list.slice();
578
- newMeta[index].expressions[_ind][type] = val;
769
+ newMeta[index].expressions[index1][position][index2].val = val;
579
770
  store.setMeta(newMeta, groupIndex);
580
771
  }
581
772
  // 子查询弹窗
@@ -643,10 +834,10 @@ var JoinData = function JoinData(props) {
643
834
  newMeta[index].isSubquery = !newMeta[index].isSubquery;
644
835
  newMeta[index].table2 = {
645
836
  quotes: '',
646
- fieldAlias: '',
647
- fieldUuid: '',
648
837
  name: '',
649
838
  // 表名
839
+ name_zh: '',
840
+ // 表名
650
841
  tableUuid: '',
651
842
  id: '',
652
843
  // 表名
@@ -654,11 +845,8 @@ var JoinData = function JoinData(props) {
654
845
  // 表别名
655
846
  datasourceName: '',
656
847
  // 数据源名
657
- datasourceId: '',
658
- // 数据源id
659
- groupSql: '',
660
- //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
661
- fields: []
848
+ datasourceId: '' // 数据源id
849
+ // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
662
850
  };
663
851
  newMeta[index].expressions = [];
664
852
  newMeta[index].subquery = [];
@@ -678,22 +866,29 @@ var JoinData = function JoinData(props) {
678
866
  onOk: function () {
679
867
  var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
680
868
  var _index, newMeta;
681
- return _regeneratorRuntime.wrap(function _callee$(_context) {
869
+ return _regeneratorRuntime.wrap(function (_context) {
682
870
  while (1) switch (_context.prev = _context.next) {
683
871
  case 0:
684
872
  if (alias) {
685
- _context.next = 5;
873
+ _context.next = 1;
686
874
  break;
687
875
  }
688
876
  Toast.warning(__('SqlQueryBuilder.aliasCannotEmpty'));
689
877
  return _context.abrupt("return", false);
690
- case 5:
878
+ case 1:
879
+ if (!(alias.length > 30)) {
880
+ _context.next = 2;
881
+ break;
882
+ }
883
+ Toast.warning('别名长度不能超过30');
884
+ return _context.abrupt("return", false);
885
+ case 2:
691
886
  _index = findIndex(store.metaList[groupIndex].list, meta);
692
887
  newMeta = store.metaList[groupIndex].list.slice();
693
888
  newMeta[_index].table2.alias = alias;
694
889
  newMeta = changeTableAlias(newMeta, newMeta[_index].table2);
695
890
  store.setMeta(newMeta, groupIndex);
696
- case 10:
891
+ case 3:
697
892
  case "end":
698
893
  return _context.stop();
699
894
  }
@@ -707,18 +902,209 @@ var JoinData = function JoinData(props) {
707
902
  onCancel: function onCancel() {}
708
903
  });
709
904
  };
710
- var onChangeOperator = function onChangeOperator(value) {
905
+ // 修改连接符
906
+ var changeOperator = function changeOperator(key, i) {
711
907
  var index = findIndex(store.metaList[groupIndex].list, meta);
712
908
  var newMeta = store.metaList[groupIndex].list.slice();
713
- newMeta[index].comparison_operator = value;
909
+ newMeta[index].expressions[i].val = key;
714
910
  store.setMeta(newMeta, groupIndex);
715
911
  };
716
- var onChangeExpressionsOperator = function onChangeExpressionsOperator(value, _ind) {
912
+ var changeExpression = function changeExpression(e, i) {
913
+ var data = getTableColumns();
914
+ var index = findIndex(store.metaList[groupIndex].list, meta);
915
+ var newMeta = store.metaList[groupIndex].list.slice();
916
+ var value = newMeta[index].expressions[i];
917
+ store.setPopup({
918
+ visible: true,
919
+ node: e.currentTarget,
920
+ content: _jsx(Expression, {
921
+ filterCustomType: filterCustomType,
922
+ data: data,
923
+ value: value,
924
+ onChange: function onChange(data) {
925
+ newMeta[index].expressions.splice(i, 1, data);
926
+ store.setMeta(newMeta, groupIndex);
927
+ closePopup();
928
+ }
929
+ })
930
+ });
931
+ };
932
+ // 添加表达式
933
+ var addExpression = function addExpression(type) {
934
+ var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
717
935
  var index = findIndex(store.metaList[groupIndex].list, meta);
718
936
  var newMeta = store.metaList[groupIndex].list.slice();
719
- newMeta[index].expressions[_ind].comparison_operator = value;
937
+ var item = null;
938
+ if (type === AtomsTypeEnum.JOIN_DEFAULT) {
939
+ item = {
940
+ lhs: [{
941
+ fieldName: '',
942
+ // 字段名
943
+ fieldNameZh: '',
944
+ // 字段中文名
945
+ fieldAlias: '',
946
+ // 别名
947
+ fieldUuid: '',
948
+ // uuid
949
+ fieldId: '',
950
+ // 字段id
951
+ // quotes?: string; // 字段展示的 不知道有没有用
952
+ tableName: '',
953
+ // 表名
954
+ tableNameZh: '',
955
+ tableId: '',
956
+ // 表名
957
+ tableAlias: '',
958
+ // 别名
959
+ tableUuid: '',
960
+ // 表唯一标识
961
+ datasourceName: '',
962
+ // 数据源名
963
+ datasourceId: '',
964
+ // 数据源id
965
+ type: AtomsTypeEnum.FIELD
966
+ }],
967
+ condition: '',
968
+ rhs: [{
969
+ fieldName: '',
970
+ // 字段名
971
+ fieldNameZh: '',
972
+ // 字段中文名
973
+ fieldAlias: '',
974
+ // 别名
975
+ fieldUuid: '',
976
+ // uuid
977
+ fieldId: '',
978
+ // 字段id
979
+ // quotes?: string; // 字段展示的 不知道有没有用
980
+ tableName: '',
981
+ // 表名
982
+ tableNameZh: '',
983
+ tableId: '',
984
+ // 表名
985
+ tableAlias: '',
986
+ // 别名
987
+ tableUuid: '',
988
+ // 表唯一标识
989
+ datasourceName: '',
990
+ // 数据源名
991
+ datasourceId: '',
992
+ // 数据源id
993
+ type: AtomsTypeEnum.FIELD
994
+ }],
995
+ // quotes: '',
996
+ type: type
997
+ };
998
+ store.setMeta(newMeta, groupIndex);
999
+ }
1000
+ if (type === AtomsTypeEnum.OPERATOR) {
1001
+ item = {
1002
+ val: 'AND',
1003
+ type: type
1004
+ };
1005
+ }
1006
+ if (type === AtomsTypeEnum.EXPRESSION) {
1007
+ item = {
1008
+ lhs: [],
1009
+ condition: '',
1010
+ rhs: [],
1011
+ quotes: '',
1012
+ type: type
1013
+ };
1014
+ }
1015
+ if (!item) {
1016
+ return;
1017
+ }
1018
+ if (i >= 0) {
1019
+ newMeta[index].expressions.splice(i + 1, 0, item);
1020
+ } else {
1021
+ newMeta[index].expressions.push(item);
1022
+ }
720
1023
  store.setMeta(newMeta, groupIndex);
721
1024
  };
1025
+ var getTable1Name = function getTable1Name() {
1026
+ if (meta.table1.name) {
1027
+ if (meta.table1.name === SummarizeAlias) {
1028
+ return PrevResult;
1029
+ } else {
1030
+ return "".concat(meta.table1.datasourceName, ".").concat(meta.table1.name);
1031
+ }
1032
+ } else {
1033
+ return '';
1034
+ }
1035
+ };
1036
+ var renderItem = function renderItem(items, type, i) {
1037
+ var _items$;
1038
+ if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === AtomsTypeEnum.FIELD) {
1039
+ var _items$2, _items$3;
1040
+ return _jsx("div", {
1041
+ className: cx("Sqb-TableName", {
1042
+ notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1043
+ }),
1044
+ "v-position": type,
1045
+ "v-index": i,
1046
+ "v-index2": index,
1047
+ onClick: selectMoreJoinColumn,
1048
+ children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1049
+ return field.fieldName;
1050
+ }).join(' || ') : __('SqlQueryBuilder.pickTable')
1051
+ }, type + i);
1052
+ } else {
1053
+ return items.map(function (item, index) {
1054
+ if (item.type === AtomsTypeEnum.INPUT_NUMBER) {
1055
+ return _jsx(InputNumber, {
1056
+ disabled: meta.readonly,
1057
+ className: ':Sqb-TableName-input',
1058
+ value: item.val,
1059
+ placeholder: __('SqlQueryBuilder.pleaseEnter'),
1060
+ style: {
1061
+ width: '180px'
1062
+ },
1063
+ size: 'large',
1064
+ onChange: function onChange(val) {
1065
+ onChangeString(val, {
1066
+ position: type,
1067
+ index1: i,
1068
+ index2: index
1069
+ });
1070
+ }
1071
+ }, index);
1072
+ }
1073
+ if (item.type === AtomsTypeEnum.INPUT_STRING) {
1074
+ return _jsx(Input, {
1075
+ disabled: meta.readonly,
1076
+ className: ':Sqb-TableName-input',
1077
+ value: item.val,
1078
+ placeholder: __('SqlQueryBuilder.pleaseEnter'),
1079
+ style: {
1080
+ width: '180px'
1081
+ },
1082
+ size: 'large',
1083
+ onChange: function onChange(val) {
1084
+ onChangeString(val, {
1085
+ position: type,
1086
+ index1: i,
1087
+ index2: index
1088
+ });
1089
+ }
1090
+ }, index);
1091
+ }
1092
+ if (item.type === AtomsTypeEnum.CONSTANT) {
1093
+ return _jsx("div", {
1094
+ className: cx("Sqb-TableName", {
1095
+ notSelected: !item.val
1096
+ }),
1097
+ "v-position": type,
1098
+ "v-index": i,
1099
+ "v-index2": index,
1100
+ "v-val": item.val,
1101
+ onClick: selectConstant,
1102
+ children: item.val ? item.val : __('SqlQueryBuilder.pickConstant')
1103
+ }, index);
1104
+ }
1105
+ });
1106
+ }
1107
+ };
722
1108
  return _jsx(Wrapper, {
723
1109
  className: cx("Sqb-item"),
724
1110
  children: _jsxs("div", {
@@ -733,8 +1119,11 @@ var JoinData = function JoinData(props) {
733
1119
  children: _jsxs("div", {
734
1120
  className: cx("Sqb-NotebookCell"),
735
1121
  children: [_jsx("div", {
736
- className: cx("Sqb-TableName noClick"),
737
- children: !table1Selected || meta.table1.name === SummarizeAlias ? PrevResult : "".concat(meta.table1.datasourceName, ".").concat(meta.table1.name)
1122
+ className: cx("Sqb-TableName", {
1123
+ notSelected: !table1Selected
1124
+ }),
1125
+ onClick: selectLeftTable,
1126
+ children: getTable1Name() || __('SqlQueryBuilder.pickTable')
738
1127
  }), _jsx("div", {
739
1128
  onClick: selectJoin,
740
1129
  children: meta.joinType === JoinEnum.left ? _jsx(LeftJoinIcon, {
@@ -808,210 +1197,191 @@ var JoinData = function JoinData(props) {
808
1197
  icon: _jsx(RelatedWork, {}),
809
1198
  onClick: switchSubQuery
810
1199
  })
811
- }), table2Selected && _jsxs("div", {
812
- className: cx("Sqb-where"),
813
- children: [_jsx("span", {
814
- className: 'ml-2 mr-4 text-gray-500',
815
- children: "on"
816
- }), _jsx("div", {
817
- className: cx("Sqb-TableName", {
818
- notSelected: meta.table1.fields.length < 1
819
- }),
820
- "v-data": FlagLocation.TABLE_1,
821
- onClick: selectJoinColumn,
822
- children: ((_meta$table7 = meta.table1) === null || _meta$table7 === void 0 || (_meta$table7 = _meta$table7.fields) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.length) > 0 ? (_meta$table8 = meta.table1) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.fields.map(function (v) {
823
- return v.quotes;
824
- }).join(' || ') : __('SqlQueryBuilder.pickTable')
825
- }), _jsx("span", {
826
- className: 'mr-2 text-gray-500',
827
- children: "="
828
- }), _jsx("div", {
829
- className: cx("Sqb-TableName", {
830
- notSelected: meta.table2.fields.length < 1
831
- }),
832
- "v-data": FlagLocation.TABLE_2,
833
- onClick: selectJoinColumn,
834
- children: ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 || (_meta$table9 = _meta$table9.fields) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.length) > 0 ? (_meta$table10 = meta.table2) === null || _meta$table10 === void 0 ? void 0 : _meta$table10.fields.map(function (v) {
835
- return v.quotes;
836
- }).join(' || ') : __('SqlQueryBuilder.pickTable')
837
- })]
838
- }), ((_meta$table11 = meta.table1) === null || _meta$table11 === void 0 || (_meta$table11 = _meta$table11.fields) === null || _meta$table11 === void 0 ? void 0 : _meta$table11.length) > 0 && ((_meta$table12 = meta.table2) === null || _meta$table12 === void 0 || (_meta$table12 = _meta$table12.fields) === null || _meta$table12 === void 0 ? void 0 : _meta$table12.length) > 0 && ((_meta$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
839
- var _v$left_fields, _v$right_fields;
840
- return _jsxs("div", {
841
- className: cx("Sqb-where block"),
842
- children: [_jsx("span", {
843
- className: 'ml-2 mr-4 text-gray-500',
844
- children: v.operator
845
- }), v.left_type === 'string' && _jsx(Input, {
846
- disabled: meta.readonly,
847
- className: ':Sqb-TableName-input',
848
- value: v.left_string,
849
- placeholder: __('SqlQueryBuilder.pleaseEnter'),
850
- style: {
851
- width: '180px'
852
- },
853
- size: 'large',
854
- onChange: function onChange(val) {
855
- onChangeString('left_string', i, val);
856
- }
857
- }), v.left_type === 'constant' && _jsx("div", {
858
- className: cx("Sqb-TableName", {
859
- notSelected: !v.left_string
860
- }),
861
- "v-position": 'left',
862
- "v-index": i,
863
- "v-val": v.left_string,
864
- onClick: selectConstant,
865
- children: v.left_constant ? v.left_constant : __('SqlQueryBuilder.pickConstant')
866
- }), (!v.left_type || v.left_type === 'field') && _jsx("div", {
867
- className: cx("Sqb-TableName", {
868
- notSelected: v.left_fields.length < 1
869
- }),
870
- "v-data": ExpressionsEnum.LEFT,
871
- "v-index": i,
872
- onClick: selectMoreJoinColumn,
873
- children: (v === null || v === void 0 || (_v$left_fields = v.left_fields) === null || _v$left_fields === void 0 ? void 0 : _v$left_fields.length) > 0 ? v.left_fields.map(function (v) {
874
- return v.quotes;
875
- }).join(' || ') : __('SqlQueryBuilder.pickTable')
876
- }), _jsx(Tooltip, {
877
- title: __('SqlQueryBuilder.switch'),
878
- children: _jsx(Button, {
879
- disabled: meta.readonly,
880
- primary: true,
881
- ghost: true,
882
- className: 'mr-2 operator-icon',
883
- icon: _jsx(Repeat, {}),
884
- onClick: function onClick(e) {
885
- onChangeType(e, 'left', i);
886
- }
887
- })
888
- }), _jsx("span", {
889
- className: 'mr-2 text-gray-500',
890
- children: "="
891
- }), v.right_type === 'string' && _jsx(Input, {
892
- disabled: meta.readonly,
893
- className: ':Sqb-TableName-input',
894
- value: v.right_string,
895
- placeholder: __('SqlQueryBuilder.pleaseEnter'),
896
- style: {
897
- width: '180px'
898
- },
899
- size: 'large',
900
- onChange: function onChange(val) {
901
- onChangeString('right_string', i, val);
902
- }
903
- }), v.right_type === 'constant' && _jsx("div", {
904
- className: cx("Sqb-TableName", {
905
- notSelected: !v.right_string
906
- }),
907
- "v-position": 'right',
908
- "v-index": i,
909
- "v-val": v.right_string,
910
- onClick: selectConstant,
911
- children: v.right_constant ? v.right_constant : __('SqlQueryBuilder.pickConstant')
912
- }), (!v.right_type || v.right_type === 'field') && _jsx("div", {
913
- className: cx("Sqb-TableName", {
914
- notSelected: v.right_fields.length < 1
915
- }),
916
- "v-data": ExpressionsEnum.RIGHT,
917
- "v-index": i,
918
- onClick: selectMoreJoinColumn,
919
- children: (v === null || v === void 0 || (_v$right_fields = v.right_fields) === null || _v$right_fields === void 0 ? void 0 : _v$right_fields.length) > 0 ? v.right_fields.map(function (v) {
920
- return v.quotes;
921
- }).join(' || ') : __('SqlQueryBuilder.pickTable')
922
- }), _jsx(Tooltip, {
923
- title: __('SqlQueryBuilder.switch'),
924
- children: _jsx(Button, {
925
- disabled: meta.readonly,
926
- primary: true,
927
- ghost: true,
928
- className: 'mr-2 operator-icon',
929
- icon: _jsx(Repeat, {}),
1200
+ }), ((_meta$table7 = meta.table2) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.name) && ((_meta$table8 = meta.table1) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.name) && ((_meta$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
1201
+ if (v.type === AtomsTypeEnum.JOIN_DEFAULT) {
1202
+ return _jsxs("div", {
1203
+ className: cx("Sqb-where block"),
1204
+ children: [i == 0 && _jsx("span", {
1205
+ className: 'ml-2 mr-4 text-gray-500',
1206
+ children: "on"
1207
+ }), renderItem(v.lhs, ExpressionsEnum.LEFT, i), _jsx(Tooltip, {
1208
+ title: __('SqlQueryBuilder.switch'),
1209
+ children: _jsx(Button, {
1210
+ disabled: meta.readonly,
1211
+ primary: true,
1212
+ ghost: true,
1213
+ className: 'mr-2 operator-icon',
1214
+ icon: _jsx(Repeat, {}),
1215
+ onClick: function onClick(e) {
1216
+ onChangeType(e, {
1217
+ position: ExpressionsEnum.LEFT,
1218
+ index: i
1219
+ });
1220
+ }
1221
+ })
1222
+ }), _jsx("span", {
1223
+ className: 'mr-2 text-gray-500',
1224
+ children: "="
1225
+ }), renderItem(v.rhs, ExpressionsEnum.RIGHT, i), _jsx(Tooltip, {
1226
+ title: __('SqlQueryBuilder.switch'),
1227
+ children: _jsx(Button, {
1228
+ disabled: meta.readonly,
1229
+ primary: true,
1230
+ ghost: true,
1231
+ className: 'mr-2 operator-icon',
1232
+ icon: _jsx(Repeat, {}),
1233
+ onClick: function onClick(e) {
1234
+ onChangeType(e, {
1235
+ position: ExpressionsEnum.RIGHT,
1236
+ index: i
1237
+ });
1238
+ }
1239
+ })
1240
+ }), _jsx(Tooltip, {
1241
+ title: __('SqlQueryBuilder.add'),
1242
+ children: _jsx(Dropdown, {
1243
+ trigger: ['click'],
1244
+ onChange: function onChange(key) {
1245
+ addExpression(key, i);
1246
+ },
1247
+ droplist: menuTypes,
1248
+ children: _jsx(Button, {
1249
+ disabled: meta.readonly,
1250
+ primary: true,
1251
+ ghost: true,
1252
+ className: 'mr-2 operator-icon',
1253
+ icon: _jsx(FfPlus, {})
1254
+ })
1255
+ })
1256
+ }), _jsx(Tooltip, {
1257
+ title: __('SqlQueryBuilder.del'),
1258
+ children: _jsx(Button, {
1259
+ disabled: meta.readonly,
1260
+ danger: true,
1261
+ className: 'mr-2 operator-icon',
1262
+ icon: _jsx(FfLine, {}),
1263
+ onClick: function onClick() {
1264
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1265
+ var newMeta = store.metaList[groupIndex].list.slice();
1266
+ newMeta[index].expressions.splice(i, 1);
1267
+ store.setMeta(newMeta, groupIndex);
1268
+ }
1269
+ })
1270
+ })]
1271
+ }, i);
1272
+ }
1273
+ if (v.type === AtomsTypeEnum.OPERATOR) {
1274
+ return _jsxs("div", {
1275
+ className: cx("Sqb-where block"),
1276
+ children: [i == 0 && _jsx("span", {
1277
+ className: 'ml-2 mr-4 text-gray-500',
1278
+ children: "on"
1279
+ }), _jsx(Dropdown, {
1280
+ trigger: ['click'],
1281
+ onChange: function onChange(key) {
1282
+ changeOperator(key, i);
1283
+ },
1284
+ droplist: menuOperator,
1285
+ children: _jsx(Button, {
1286
+ className: 'ml-2 mr-4 text-gray-500',
1287
+ type: 'link',
1288
+ children: v.val
1289
+ })
1290
+ }), _jsx(Tooltip, {
1291
+ title: __('SqlQueryBuilder.add'),
1292
+ children: _jsx(Dropdown, {
1293
+ trigger: ['click'],
1294
+ onChange: function onChange(key) {
1295
+ addExpression(key, i);
1296
+ },
1297
+ droplist: menuTypes,
1298
+ children: _jsx(Button, {
1299
+ disabled: meta.readonly,
1300
+ primary: true,
1301
+ ghost: true,
1302
+ className: 'mr-2 operator-icon',
1303
+ icon: _jsx(FfPlus, {})
1304
+ })
1305
+ })
1306
+ }), _jsx(Tooltip, {
1307
+ title: __('SqlQueryBuilder.del'),
1308
+ children: _jsx(Button, {
1309
+ disabled: meta.readonly,
1310
+ danger: true,
1311
+ className: 'mr-2 operator-icon',
1312
+ icon: _jsx(FfLine, {}),
1313
+ onClick: function onClick() {
1314
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1315
+ var newMeta = store.metaList[groupIndex].list.slice();
1316
+ newMeta[index].expressions.splice(i, 1);
1317
+ store.setMeta(newMeta, groupIndex);
1318
+ }
1319
+ })
1320
+ })]
1321
+ }, i);
1322
+ }
1323
+ if (v.type === AtomsTypeEnum.EXPRESSION) {
1324
+ return _jsxs("div", {
1325
+ className: cx("Sqb-where block"),
1326
+ children: [i == 0 && _jsx("span", {
1327
+ className: 'ml-2 mr-4 text-gray-500',
1328
+ children: "on"
1329
+ }), _jsx("div", {
1330
+ className: cx("Sqb-TableName purple-name", {
1331
+ notSelected: !v.quotes
1332
+ }),
930
1333
  onClick: function onClick(e) {
931
- onChangeType(e, 'right', i);
932
- }
933
- })
934
- }), _jsx(Tooltip, {
935
- title: __('SqlQueryBuilder.add'),
936
- children: _jsx(Button, {
937
- disabled: meta.readonly,
938
- primary: true,
939
- ghost: true,
940
- className: 'mr-2 operator-icon',
941
- icon: _jsx(FfPlus, {}),
942
- onClick: function onClick() {
943
- var index = findIndex(store.metaList[groupIndex].list, meta);
944
- var newMeta = store.metaList[groupIndex].list.slice();
945
- newMeta[index].expressions.splice(i + 1, 0, {
946
- operator: 'and',
947
- comparison_operator: '等于',
948
- left_fieldAlias: '',
949
- left_fieldUuid: '',
950
- left_quotes: '',
951
- left_string: '',
952
- left_type: 'field',
953
- left_constant: '',
954
- left_fields: [],
955
- right_fieldAlias: '',
956
- right_fieldUuid: '',
957
- right_quotes: '',
958
- right_string: '',
959
- // right_isString: false,
960
- right_type: 'field',
961
- right_constant: '',
962
- right_fields: []
963
- });
964
- store.setMeta(newMeta, groupIndex);
965
- }
966
- })
967
- }), meta.expressions.length > 0 && _jsx(Tooltip, {
968
- title: __('SqlQueryBuilder.del'),
969
- children: _jsx(Button, {
970
- disabled: meta.readonly,
971
- danger: true,
972
- className: 'mr-2 operator-icon',
973
- icon: _jsx(FfLine, {}),
974
- onClick: function onClick() {
975
- var index = findIndex(store.metaList[groupIndex].list, meta);
976
- var newMeta = store.metaList[groupIndex].list.slice();
977
- newMeta[index].expressions.splice(i, 1);
978
- store.setMeta(newMeta, groupIndex);
979
- }
980
- })
981
- })]
982
- }, i);
983
- })), meta.table1.fields.length > 0 && meta.table2.fields.length > 0 && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && _jsx(Tooltip, {
1334
+ return changeExpression(e, i);
1335
+ },
1336
+ children: v.quotes || __('joinData.selectExpression')
1337
+ }, i), _jsx(Tooltip, {
1338
+ title: __('SqlQueryBuilder.add'),
1339
+ children: _jsx(Dropdown, {
1340
+ trigger: ['click'],
1341
+ onChange: function onChange(key) {
1342
+ addExpression(key, i);
1343
+ },
1344
+ droplist: menuTypes,
1345
+ children: _jsx(Button, {
1346
+ disabled: meta.readonly,
1347
+ primary: true,
1348
+ ghost: true,
1349
+ className: 'mr-2 operator-icon',
1350
+ icon: _jsx(FfPlus, {})
1351
+ })
1352
+ })
1353
+ }), _jsx(Tooltip, {
1354
+ title: __('SqlQueryBuilder.del'),
1355
+ children: _jsx(Button, {
1356
+ disabled: meta.readonly,
1357
+ danger: true,
1358
+ className: 'mr-2 operator-icon',
1359
+ icon: _jsx(FfLine, {}),
1360
+ onClick: function onClick() {
1361
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1362
+ var newMeta = store.metaList[groupIndex].list.slice();
1363
+ newMeta[index].expressions.splice(i, 1);
1364
+ store.setMeta(newMeta, groupIndex);
1365
+ }
1366
+ })
1367
+ })]
1368
+ }, i);
1369
+ }
1370
+ })), ((_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 && _jsx(Tooltip, {
984
1371
  title: __('SqlQueryBuilder.add'),
985
- children: _jsx(Button, {
986
- disabled: meta.readonly,
987
- primary: true,
988
- ghost: true,
989
- className: 'mr-2 operator-icon',
990
- icon: _jsx(FfPlus, {}),
991
- onClick: function onClick() {
992
- var index = findIndex(store.metaList[groupIndex].list, meta);
993
- var newMeta = store.metaList[groupIndex].list.slice();
994
- newMeta[index].expressions = [{
995
- operator: 'and',
996
- comparison_operator: '等于',
997
- left_fieldAlias: '',
998
- left_fieldUuid: '',
999
- left_quotes: '',
1000
- left_fields: [],
1001
- left_string: '',
1002
- left_type: 'field',
1003
- left_constant: '',
1004
- right_fieldAlias: '',
1005
- right_fieldUuid: '',
1006
- right_quotes: '',
1007
- right_string: '',
1008
- // right_isString: false,
1009
- right_constant: '',
1010
- right_type: 'field',
1011
- right_fields: []
1012
- }];
1013
- store.setMeta(newMeta, groupIndex);
1014
- }
1372
+ children: _jsx(Dropdown, {
1373
+ trigger: ['click'],
1374
+ onChange: function onChange(key) {
1375
+ addExpression(key);
1376
+ },
1377
+ droplist: menuTypes,
1378
+ children: _jsx(Button, {
1379
+ disabled: meta.readonly,
1380
+ primary: true,
1381
+ ghost: true,
1382
+ className: 'mr-2 operator-icon',
1383
+ icon: _jsx(FfPlus, {})
1384
+ })
1015
1385
  })
1016
1386
  }), columnsSelected && store.showFields && _jsx("div", {
1017
1387
  className: "Sqb-TableColumns",