@gingkoo/pandora-metabase 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +1 -1
  4. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  5. package/lib/cjs/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  6. package/lib/cjs/components/dialog/{select-filter → expression}/index.js +345 -206
  7. package/lib/cjs/components/dialog/formula-list/enum.d.ts +9 -13
  8. package/lib/cjs/components/dialog/formula-list/enum.js +83 -39
  9. package/lib/cjs/components/dialog/formula-list/index.d.ts +4 -1
  10. package/lib/cjs/components/dialog/formula-list/index.js +110 -126
  11. package/lib/cjs/components/dialog/formula-list/utils.js +77 -46
  12. package/lib/cjs/components/dialog/index.d.ts +2 -2
  13. package/lib/cjs/components/dialog/index.js +20 -20
  14. package/lib/cjs/components/dialog/select-column/index.js +43 -12
  15. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +54 -0
  16. package/lib/cjs/components/dialog/select-column-multiple/index.js +341 -0
  17. package/lib/cjs/components/dialog/select-column-multiple/index.less +246 -0
  18. package/lib/cjs/components/dialog/select-table/index.js +9 -7
  19. package/lib/cjs/components/icons.js +36 -36
  20. package/lib/cjs/components/metabase/index.js +6 -6
  21. package/lib/cjs/components/metabase/index.less +12 -1
  22. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  23. package/lib/cjs/components/modules/custom-column.js +12 -14
  24. package/lib/cjs/components/modules/enum/filter-enum.d.ts +34 -0
  25. package/lib/cjs/components/modules/enum/filter-enum.js +137 -0
  26. package/lib/cjs/components/modules/filter.js +43 -460
  27. package/lib/cjs/components/modules/join-data.js +863 -525
  28. package/lib/cjs/components/modules/permission-table.js +4 -0
  29. package/lib/cjs/components/modules/sort.js +102 -91
  30. package/lib/cjs/components/modules/summarize/group-by.js +47 -16
  31. package/lib/cjs/components/modules/summarize/select-index.js +48 -17
  32. package/lib/cjs/components/modules/table-data.js +13 -4
  33. package/lib/cjs/components/popup.js +1 -2
  34. package/lib/cjs/hooks/patch.d.ts +4 -0
  35. package/lib/cjs/hooks/patch.js +464 -0
  36. package/lib/cjs/hooks/use-state.js +73 -138
  37. package/lib/cjs/index.d.ts +0 -1
  38. package/lib/cjs/index.js +3 -21
  39. package/lib/cjs/locale/en.js +9 -2
  40. package/lib/cjs/locale/zh.js +11 -4
  41. package/lib/cjs/store/helper.d.ts +2 -3
  42. package/lib/cjs/store/helper.js +288 -233
  43. package/lib/cjs/store/types.d.ts +94 -71
  44. package/lib/cjs/store/types.js +17 -12
  45. package/lib/cjs/utils.d.ts +3 -3
  46. package/lib/cjs/utils.js +152 -187
  47. package/lib/es/common/SplitView/index.js +10 -10
  48. package/lib/es/components/dialog/custom-column/expressions/suggest.js +1 -1
  49. package/lib/es/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  50. package/lib/es/components/dialog/{select-filter → expression}/index.js +343 -206
  51. package/lib/es/components/dialog/formula-list/enum.d.ts +9 -13
  52. package/lib/es/components/dialog/formula-list/enum.js +82 -38
  53. package/lib/es/components/dialog/formula-list/index.d.ts +4 -1
  54. package/lib/es/components/dialog/formula-list/index.js +115 -131
  55. package/lib/es/components/dialog/formula-list/utils.js +77 -46
  56. package/lib/es/components/dialog/index.d.ts +2 -2
  57. package/lib/es/components/dialog/index.js +3 -3
  58. package/lib/es/components/dialog/select-column/index.js +44 -13
  59. package/lib/es/components/dialog/select-column-multiple/index.d.ts +54 -0
  60. package/lib/es/components/dialog/select-column-multiple/index.js +335 -0
  61. package/lib/es/components/dialog/select-column-multiple/index.less +246 -0
  62. package/lib/es/components/dialog/select-table/index.js +9 -7
  63. package/lib/es/components/icons.js +36 -36
  64. package/lib/es/components/metabase/index.js +6 -6
  65. package/lib/es/components/metabase/index.less +12 -1
  66. package/lib/es/components/modules/components/Wrapper.js +6 -6
  67. package/lib/es/components/modules/custom-column.js +12 -14
  68. package/lib/es/components/modules/enum/filter-enum.d.ts +34 -0
  69. package/lib/es/components/modules/enum/filter-enum.js +131 -0
  70. package/lib/es/components/modules/filter.js +45 -463
  71. package/lib/es/components/modules/join-data.js +865 -527
  72. package/lib/es/components/modules/permission-table.js +4 -0
  73. package/lib/es/components/modules/sort.js +102 -91
  74. package/lib/es/components/modules/summarize/group-by.js +48 -17
  75. package/lib/es/components/modules/summarize/select-index.js +49 -18
  76. package/lib/es/components/modules/table-data.js +13 -4
  77. package/lib/es/hooks/patch.d.ts +4 -0
  78. package/lib/es/hooks/patch.js +457 -0
  79. package/lib/es/hooks/use-state.js +73 -138
  80. package/lib/es/index.d.ts +0 -1
  81. package/lib/es/index.js +1 -1
  82. package/lib/es/locale/en.js +9 -2
  83. package/lib/es/locale/zh.js +11 -4
  84. package/lib/es/store/helper.d.ts +2 -3
  85. package/lib/es/store/helper.js +288 -233
  86. package/lib/es/store/types.d.ts +94 -71
  87. package/lib/es/store/types.js +16 -11
  88. package/lib/es/utils.d.ts +3 -3
  89. package/lib/es/utils.js +154 -190
  90. package/package.json +1 -1
  91. package/lib/cjs/components/modules/filter copy.d.ts +0 -7
  92. package/lib/cjs/components/modules/filter copy.js +0 -178
  93. package/lib/es/components/modules/filter copy.d.ts +0 -7
  94. package/lib/es/components/modules/filter copy.js +0 -171
  95. /package/lib/cjs/components/dialog/{select-filter → expression}/index.less +0 -0
  96. /package/lib/es/components/dialog/{select-filter → expression}/index.less +0 -0
@@ -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, SelectPermissionTable } 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,143 @@ 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 data = [];
200
+ var _getHelper2 = getHelper(store.metaList[groupIndex].list, meta),
201
+ ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
202
+ prevList = _getHelper2.prevList,
203
+ prevGroupBy = _getHelper2.prevGroupBy;
204
+ if (ExistAboveGroupBy) {
205
+ var _prevGroupBy$group2, _prevGroupBy$by2;
206
+ var _data = {
207
+ alias: prevGroupBy.alias,
208
+ id: prevGroupBy.alias,
209
+ tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
210
+ name: prevGroupBy.alias,
211
+ name_zh: prevGroupBy.alias,
212
+ datasourceId: '',
213
+ datasourceName: ''
214
+ // columns: [],
215
+ };
216
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
217
+ // _data.columns = _data.columns.concat(
218
+ // prevGroupBy.group.map((v: MetaSummarize_Group) => {
219
+ // return {
220
+ // ...v,
221
+ // name: v.name || v.quotes,
222
+ // name_zh: v.name_zh || v.quotes,
223
+ // id: v.id || v.fieldId,
224
+ // database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,
225
+ // special_type: '',
226
+ // sql: v.sql,
227
+ // select: true,
228
+ // };
229
+ // }),
230
+ // );
231
+ }
232
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
233
+ // _data.columns = _data.columns.concat(
234
+ // prevGroupBy.by.map((v: MetaSummarize_By) => {
235
+ // return {
236
+ // ...v,
237
+ // name: v.name || v.quotes,
238
+ // name_zh: v.name_zh || v.quotes,
239
+ // id: v.id || v.fieldId,
240
+ // database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,
241
+ // special_type: '',
242
+ // sql: v.sql,
243
+ // select: true,
244
+ // };
245
+ // }),
246
+ // );
247
+ }
248
+ data = [_data];
249
+ var joinData = prevList.filter(function (v) {
250
+ return v.type === TypeEnum.joinData;
251
+ }).filter(function (v) {
252
+ return v && v.table2.name;
253
+ });
254
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
255
+ data = data.concat(joinData.map(function (v) {
256
+ return {
257
+ alias: v.table2.alias,
258
+ name: v.table2.name,
259
+ name_zh: v.table2.name_zh,
260
+ id: v.table2.id,
261
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
262
+ datasourceId: v.table2.datasourceId,
263
+ datasourceName: v.table2.datasourceName,
264
+ columns: []
265
+ };
266
+ }));
267
+ }
268
+ } else {
269
+ data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
270
+ if (v.type === TypeEnum.data) {
271
+ mo.push({
272
+ alias: v.table.alias,
273
+ name: v.table.name,
274
+ name_zh: v.table.name_zh,
275
+ id: v.table.id,
276
+ tableUuid: v.table.tableUuid || uuidv4('table'),
277
+ columns: [],
278
+ datasourceId: v.table.datasourceId,
279
+ datasourceName: v.table.datasourceName
280
+ });
281
+ } else if (v.type === TypeEnum.joinData) {
282
+ mo.push({
283
+ alias: v.table2.alias,
284
+ name: v.table2.name,
285
+ name_zh: v.table2.name_zh,
286
+ id: v.table2.id,
287
+ tableUuid: v.table2.tableUuid || uuidv4('table'),
288
+ columns: [],
289
+ datasourceId: v.table2.datasourceId,
290
+ datasourceName: v.table2.datasourceName
291
+ });
292
+ }
293
+ return mo;
294
+ }, []);
295
+ }
296
+ // // 过滤为table1选中的表
297
+ var newMeta = store.metaList[groupIndex].list.slice();
298
+ // if (((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name) {
299
+ // data = data.filter((v) => {
300
+ // return (
301
+ // ((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name == v.table
302
+ // );
303
+ // });
304
+ // }
305
+ !meta.readonly && store.setPopup({
306
+ visible: true,
307
+ node: node,
308
+ content: _jsx(SelectPermissionTable, {
309
+ data: data,
310
+ value: newMeta[index][table_type],
311
+ onChange: function onChange(data) {
312
+ if (table_type === FlagLocation.TABLE_1) {
313
+ if (newMeta[index][table_type].datasourceId !== data.datasourceId || newMeta[index][table_type].name !== data.name) {
314
+ newMeta[index][table_type] = data;
315
+ initExpressions();
316
+ }
317
+ }
318
+ store.setMeta(newMeta, groupIndex);
319
+ store.setPopup({
320
+ visible: false
321
+ });
322
+ }
323
+ })
324
+ });
325
+ }
116
326
  function selectTable(e) {
117
327
  var value = {
118
328
  name: meta.table2.name,
329
+ name_zh: meta.table2.name_zh,
119
330
  id: meta.table2.id,
120
331
  alias: meta.table2.alias,
121
332
  datasourceId: meta.table2.datasourceId,
@@ -141,11 +352,10 @@ var JoinData = function JoinData(props) {
141
352
  fieldUuid: '',
142
353
  quotes: '',
143
354
  datasourceId: data.datasourceId,
144
- datasourceName: data.datasourceName,
145
- fields: []
355
+ datasourceName: data.datasourceName
146
356
  });
147
357
  newMeta[index].table2 = _table2;
148
- newMeta[index].expressions = [];
358
+ initExpressions();
149
359
  store.fetchColumns(_table2, data.datasourceId, function (columns) {
150
360
  newMeta[index].columns = columns;
151
361
  // 关联表变了 下面模块全部删除
@@ -162,6 +372,72 @@ var JoinData = function JoinData(props) {
162
372
  })
163
373
  });
164
374
  }
375
+ function initExpressions() {
376
+ var _newMeta$index, _newMeta$index2;
377
+ var newMeta = store.metaList[groupIndex].list.slice();
378
+ 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) {
379
+ newMeta[index].expressions = [{
380
+ lhs: [{
381
+ fieldName: '',
382
+ // 字段名
383
+ fieldNameZh: '',
384
+ // 字段中文名
385
+ fieldAlias: '',
386
+ // 别名
387
+ fieldUuid: '',
388
+ // uuid
389
+ fieldId: '',
390
+ // 字段id
391
+ // quotes?: string; // 字段展示的 不知道有没有用
392
+ tableName: '',
393
+ // 表名
394
+ tableNameZh: '',
395
+ tableId: '',
396
+ // 表名
397
+ tableAlias: '',
398
+ // 别名
399
+ tableUuid: '',
400
+ // 表唯一标识
401
+ datasourceName: '',
402
+ // 数据源名
403
+ datasourceId: '',
404
+ // 数据源id
405
+ type: AtomsTypeEnum.FIELD
406
+ }],
407
+ condition: '',
408
+ rhs: [{
409
+ fieldName: '',
410
+ // 字段名
411
+ fieldNameZh: '',
412
+ // 字段中文名
413
+ fieldAlias: '',
414
+ // 别名
415
+ fieldUuid: '',
416
+ // uuid
417
+ fieldId: '',
418
+ // 字段id
419
+ // quotes?: string; // 字段展示的 不知道有没有用
420
+ tableName: '',
421
+ // 表名
422
+ tableNameZh: '',
423
+ tableId: '',
424
+ // 表名
425
+ tableAlias: '',
426
+ // 别名
427
+ tableUuid: '',
428
+ // 表唯一标识
429
+ datasourceName: '',
430
+ // 数据源名
431
+ datasourceId: '',
432
+ // 数据源id
433
+ type: AtomsTypeEnum.FIELD
434
+ }],
435
+ // quotes: '',
436
+ type: AtomsTypeEnum.JOIN_DEFAULT
437
+ }];
438
+ store.setMeta(newMeta, groupIndex);
439
+ }
440
+ }
165
441
  function selectJoin(e) {
166
442
  var newMeta = store.metaList[groupIndex].list.slice();
167
443
  !meta.readonly && store.setPopup({
@@ -180,222 +456,36 @@ var JoinData = function JoinData(props) {
180
456
  })
181
457
  });
182
458
  }
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
459
  function selectMoreJoinColumn(e) {
353
460
  var node = e.currentTarget;
354
- var type = node.getAttribute('v-data');
461
+ var _position = node.getAttribute('v-position');
355
462
  var _ind = Number(node.getAttribute('v-index'));
463
+ var _ind2 = Number(node.getAttribute('v-index2'));
356
464
  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
465
  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) {
466
+ var _getHelper3 = getHelper(store.metaList[groupIndex].list, meta),
467
+ ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
468
+ prevList = _getHelper3.prevList,
469
+ prevGroupBy = _getHelper3.prevGroupBy;
470
+ if (_position === ExpressionsEnum.LEFT) {
384
471
  if (ExistAboveGroupBy) {
385
- var _prevGroupBy$group2, _prevGroupBy$by2;
472
+ var _prevGroupBy$group3, _prevGroupBy$by3;
386
473
  var _data = {
387
- table: prevGroupBy.alias,
388
- tableId: prevGroupBy.alias,
474
+ name: prevGroupBy.alias,
475
+ name_zh: prevGroupBy.alias,
476
+ id: prevGroupBy.alias,
389
477
  tableUuid: prevGroupBy.tableUuid || uuidv4('table'),
390
478
  alias: prevGroupBy.alias,
391
479
  datasourceId: '',
392
480
  datasourceName: '',
393
481
  columns: []
394
482
  };
395
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
483
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
396
484
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
397
485
  return _objectSpread(_objectSpread({}, v), {}, {
398
- name: v.quotes,
486
+ name: v.name || v.quotes,
487
+ name_zh: v.name_zh || v.quotes,
488
+ id: v.id || v.fieldId,
399
489
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
400
490
  special_type: '',
401
491
  sql: v.sql,
@@ -403,10 +493,12 @@ var JoinData = function JoinData(props) {
403
493
  });
404
494
  }));
405
495
  }
406
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
496
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
407
497
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
408
498
  return _objectSpread(_objectSpread({}, v), {}, {
409
- name: v.quotes,
499
+ name: v.name || v.quotes,
500
+ name_zh: v.name_zh || v.quotes,
501
+ id: v.id || v.fieldId,
410
502
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
411
503
  special_type: '',
412
504
  sql: v.sql,
@@ -420,12 +512,13 @@ var JoinData = function JoinData(props) {
420
512
  }).filter(function (v) {
421
513
  return v && v.table2.name;
422
514
  });
423
- if (joinData.length) {
515
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
424
516
  data = data.concat(joinData.map(function (v) {
425
517
  return {
426
518
  alias: v.table2.alias,
427
- table: v.table2.name,
428
- tableId: v.table2.id,
519
+ name: v.table2.name,
520
+ name_zh: v.table2.name_zh,
521
+ id: v.table2.id,
429
522
  tableUuid: v.table2.tableUuid || uuidv4('table'),
430
523
  datasourceId: v.table2.datasourceId,
431
524
  datasourceName: v.table2.datasourceName,
@@ -438,8 +531,9 @@ var JoinData = function JoinData(props) {
438
531
  if (v.type === TypeEnum.data) {
439
532
  mo.push({
440
533
  alias: v.table.alias,
441
- table: v.table.name,
442
- tableId: v.table.id,
534
+ name: v.table.name,
535
+ name_zh: v.table.name_zh,
536
+ id: v.table.id,
443
537
  tableUuid: v.table.tableUuid || uuidv4('table'),
444
538
  columns: v.columns,
445
539
  datasourceId: v.table.datasourceId,
@@ -448,8 +542,9 @@ var JoinData = function JoinData(props) {
448
542
  } else if (v.type === TypeEnum.joinData) {
449
543
  mo.push({
450
544
  alias: v.table2.alias,
451
- table: v.table2.name,
452
- tableId: v.table2.id,
545
+ name: v.table2.name,
546
+ name_zh: v.table2.name_zh,
547
+ id: v.table2.id,
453
548
  tableUuid: v.table2.tableUuid || uuidv4('table'),
454
549
  columns: v.columns,
455
550
  datasourceId: v.table2.datasourceId,
@@ -461,14 +556,17 @@ var JoinData = function JoinData(props) {
461
556
  }
462
557
  // 过滤为table1选中的表
463
558
  var newMeta = store.metaList[groupIndex].list.slice();
464
- data = data.filter(function (v) {
465
- return newMeta[index][FlagLocation.TABLE_1].name == v.table;
466
- });
559
+ if (newMeta[index][FlagLocation.TABLE_1].name) {
560
+ data = data.filter(function (v) {
561
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid;
562
+ });
563
+ }
467
564
  } else {
468
565
  data = [{
469
566
  alias: meta.table2.alias,
470
- table: meta.table2.name,
471
- tableId: meta.table2.id,
567
+ name: meta.table2.name,
568
+ name_zh: meta.table2.name_zh,
569
+ id: meta.table2.id,
472
570
  tableUuid: meta.table2.tableUuid || uuidv4('table'),
473
571
  datasourceId: meta.table2.datasourceId,
474
572
  datasourceName: meta.table2.datasourceName,
@@ -478,39 +576,46 @@ var JoinData = function JoinData(props) {
478
576
  !meta.readonly && store.setPopup({
479
577
  visible: true,
480
578
  node: node,
481
- content: _jsx(SelectJoinColumnMultiple, {
579
+ content: _jsx(SelectColumnMultiple, {
482
580
  data: data,
483
- tableInfo: tableInfo,
484
- value: meta.expressions[_ind]["".concat(type, "_fields")] || [],
581
+ // tableInfo={tableInfo}
582
+ value: meta.expressions[_ind][_position],
485
583
  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;
584
+ onSelect: function onSelect(fields, quotes) {
499
585
  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;
586
+ newMeta[index].expressions[_ind][_position] = fields.length > 0 ? fields : [{
587
+ fieldName: '',
588
+ // 字段名
589
+ fieldNameZh: '',
590
+ // 字段中文名
591
+ fieldAlias: '',
592
+ // 别名
593
+ fieldUuid: '',
594
+ // uuid
595
+ fieldId: '',
596
+ // 字段id
597
+ // quotes?: string; // 字段展示的 不知道有没有用
598
+ tableName: '',
599
+ // 表名
600
+ tableNameZh: '',
601
+ tableId: '',
602
+ // 表名
603
+ tableAlias: '',
604
+ // 别名
605
+ tableUuid: '',
606
+ // 表唯一标识
607
+ datasourceName: '',
608
+ // 数据源名
609
+ datasourceId: '',
610
+ // 数据源id
611
+ type: AtomsTypeEnum.FIELD
612
+ }];
613
+ // (
614
+ // ((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[_position][
615
+ // _ind2
616
+ // ] as AtomsField
617
+ // ).quotes = quotes;
512
618
  store.setMeta(newMeta, groupIndex);
513
- // store.setPopup({ visible: false });
514
619
  }
515
620
  })
516
621
  });
@@ -519,6 +624,7 @@ var JoinData = function JoinData(props) {
519
624
  var node = e.currentTarget;
520
625
  var _ind = Number(node.getAttribute('v-index'));
521
626
  var _position = node.getAttribute('v-position');
627
+ var _ind2 = Number(node.getAttribute('v-index2'));
522
628
  var _val = node.getAttribute('v-val');
523
629
  store.setPopup({
524
630
  visible: true,
@@ -533,8 +639,7 @@ var JoinData = function JoinData(props) {
533
639
  })[0];
534
640
  var index = findIndex(store.metaList[groupIndex].list, meta);
535
641
  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;
642
+ newMeta[index].expressions[_ind][_position][_ind2].val = curObj.value;
538
643
  store.setMeta(newMeta, groupIndex);
539
644
  }
540
645
  })
@@ -546,36 +651,90 @@ var JoinData = function JoinData(props) {
546
651
  });
547
652
  }
548
653
  // 修改输入框类型
549
- function onChangeType(e, position, _ind) {
654
+ function onChangeType(e, _ref) {
655
+ var _ref$position = _ref.position,
656
+ position = _ref$position === void 0 ? 'rhs' : _ref$position,
657
+ _ind = _ref.index;
550
658
  var index = findIndex(store.metaList[groupIndex].list, meta);
551
659
  var newMeta = store.metaList[groupIndex].list.slice();
552
660
  store.setPopup({
553
661
  visible: true,
554
662
  node: e.currentTarget,
555
- content: _jsx(SelectList, {
556
- value: newMeta[index].expressions[_ind]["".concat(position, "_type")],
663
+ content: _jsx(SelectList
664
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
665
+ , {
666
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
557
667
  list: [{
558
- value: 'string',
668
+ value: AtomsTypeEnum.INPUT_STRING,
559
669
  label: __('SqlQueryBuilder.input')
560
670
  }, {
561
- value: 'constant',
671
+ value: AtomsTypeEnum.INPUT_NUMBER,
672
+ label: __('SqlQueryBuilder.numberInput')
673
+ }, {
674
+ value: AtomsTypeEnum.CONSTANT,
562
675
  label: __('customColumn.constant')
563
676
  }, {
564
- value: '',
677
+ value: AtomsTypeEnum.FIELD,
565
678
  label: __('SqlQueryBuilder.columns')
566
679
  }],
567
680
  onChange: function onChange(type) {
568
681
  closePopup();
569
- newMeta[index].expressions[_ind]["".concat(position, "_type")] = type;
682
+ if (type === AtomsTypeEnum.INPUT_STRING || type === AtomsTypeEnum.CONSTANT) {
683
+ newMeta[index].expressions[_ind][position] = [{
684
+ val: '',
685
+ type: type
686
+ }];
687
+ }
688
+ if (type === AtomsTypeEnum.INPUT_NUMBER) {
689
+ newMeta[index].expressions[_ind][position] = [{
690
+ val: 0,
691
+ type: type
692
+ }];
693
+ }
694
+ if (type === AtomsTypeEnum.FIELD) {
695
+ newMeta[index].expressions[_ind][position] = [{
696
+ fieldName: '',
697
+ // 字段名
698
+ fieldNameZh: '',
699
+ // 字段中文名
700
+ fieldAlias: '',
701
+ // 别名
702
+ fieldUuid: '',
703
+ // uuid
704
+ fieldId: '',
705
+ // 字段id
706
+ tableName: '',
707
+ // 表名
708
+ tableNameZh: '',
709
+ tableId: '',
710
+ // 表名
711
+ tableAlias: '',
712
+ // 别名
713
+ tableUuid: '',
714
+ // 表唯一标识
715
+ datasourceName: '',
716
+ // 数据源名
717
+ datasourceId: '',
718
+ // 数据源id
719
+ type: AtomsTypeEnum.FIELD
720
+ }];
721
+ }
570
722
  store.setMeta(newMeta, groupIndex);
571
723
  }
572
724
  })
573
725
  });
574
726
  }
575
- function onChangeString(type, _ind, val) {
727
+ function onChangeString(val, _ref2) {
728
+ var _ref2$position = _ref2.position,
729
+ position = _ref2$position === void 0 ? 'rhs' : _ref2$position,
730
+ _ref2$index = _ref2.index1,
731
+ index1 = _ref2$index === void 0 ? 0 : _ref2$index,
732
+ _ref2$index2 = _ref2.index2,
733
+ index2 = _ref2$index2 === void 0 ? 0 : _ref2$index2;
734
+ // : 'rhs'
576
735
  var index = findIndex(store.metaList[groupIndex].list, meta);
577
736
  var newMeta = store.metaList[groupIndex].list.slice();
578
- newMeta[index].expressions[_ind][type] = val;
737
+ newMeta[index].expressions[index1][position][index2].val = val;
579
738
  store.setMeta(newMeta, groupIndex);
580
739
  }
581
740
  // 子查询弹窗
@@ -610,15 +769,15 @@ var JoinData = function JoinData(props) {
610
769
  }
611
770
  newMeta[index].subquery = newList;
612
771
  newMeta[index].table2 = _objectSpread(_objectSpread({}, newList[0].table), {}, {
613
- alias: newMeta[index].table2.alias || getAlias(newList[0].table.name, newMeta),
614
- fields: []
772
+ alias: newMeta[index].table2.alias || getAlias(newList[0].table.name, newMeta)
773
+ // fields: [],
615
774
  });
616
775
  var items = getSubColumns(newList);
617
776
  var newColumns = items.flatMap(function (item) {
618
777
  return item.columns;
619
778
  });
620
779
  newMeta[index].columns = newColumns;
621
- newMeta[index].expressions = [];
780
+ initExpressions();
622
781
  // 关联表变了 下面模块全部删除
623
782
  newMeta = newMeta.filter(function (v, i) {
624
783
  return i <= index;
@@ -643,10 +802,10 @@ var JoinData = function JoinData(props) {
643
802
  newMeta[index].isSubquery = !newMeta[index].isSubquery;
644
803
  newMeta[index].table2 = {
645
804
  quotes: '',
646
- fieldAlias: '',
647
- fieldUuid: '',
648
805
  name: '',
649
806
  // 表名
807
+ name_zh: '',
808
+ // 表名
650
809
  tableUuid: '',
651
810
  id: '',
652
811
  // 表名
@@ -654,11 +813,8 @@ var JoinData = function JoinData(props) {
654
813
  // 表别名
655
814
  datasourceName: '',
656
815
  // 数据源名
657
- datasourceId: '',
658
- // 数据源id
659
- groupSql: '',
660
- //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
661
- fields: []
816
+ datasourceId: '' // 数据源id
817
+ // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
662
818
  };
663
819
  newMeta[index].expressions = [];
664
820
  newMeta[index].subquery = [];
@@ -678,22 +834,29 @@ var JoinData = function JoinData(props) {
678
834
  onOk: function () {
679
835
  var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
680
836
  var _index, newMeta;
681
- return _regeneratorRuntime.wrap(function _callee$(_context) {
837
+ return _regeneratorRuntime.wrap(function (_context) {
682
838
  while (1) switch (_context.prev = _context.next) {
683
839
  case 0:
684
840
  if (alias) {
685
- _context.next = 5;
841
+ _context.next = 1;
686
842
  break;
687
843
  }
688
844
  Toast.warning(__('SqlQueryBuilder.aliasCannotEmpty'));
689
845
  return _context.abrupt("return", false);
690
- case 5:
846
+ case 1:
847
+ if (!(alias.length > 30)) {
848
+ _context.next = 2;
849
+ break;
850
+ }
851
+ Toast.warning('别名长度不能超过30');
852
+ return _context.abrupt("return", false);
853
+ case 2:
691
854
  _index = findIndex(store.metaList[groupIndex].list, meta);
692
855
  newMeta = store.metaList[groupIndex].list.slice();
693
856
  newMeta[_index].table2.alias = alias;
694
857
  newMeta = changeTableAlias(newMeta, newMeta[_index].table2);
695
858
  store.setMeta(newMeta, groupIndex);
696
- case 10:
859
+ case 3:
697
860
  case "end":
698
861
  return _context.stop();
699
862
  }
@@ -707,18 +870,209 @@ var JoinData = function JoinData(props) {
707
870
  onCancel: function onCancel() {}
708
871
  });
709
872
  };
710
- var onChangeOperator = function onChangeOperator(value) {
873
+ // 修改连接符
874
+ var changeOperator = function changeOperator(key, i) {
711
875
  var index = findIndex(store.metaList[groupIndex].list, meta);
712
876
  var newMeta = store.metaList[groupIndex].list.slice();
713
- newMeta[index].comparison_operator = value;
877
+ newMeta[index].expressions[i].val = key;
714
878
  store.setMeta(newMeta, groupIndex);
715
879
  };
716
- var onChangeExpressionsOperator = function onChangeExpressionsOperator(value, _ind) {
880
+ var changeExpression = function changeExpression(e, i) {
881
+ var data = getTableColumns();
717
882
  var index = findIndex(store.metaList[groupIndex].list, meta);
718
883
  var newMeta = store.metaList[groupIndex].list.slice();
719
- newMeta[index].expressions[_ind].comparison_operator = value;
884
+ var value = newMeta[index].expressions[i];
885
+ store.setPopup({
886
+ visible: true,
887
+ node: e.currentTarget,
888
+ content: _jsx(Expression, {
889
+ filterCustomType: filterCustomType,
890
+ data: data,
891
+ value: value,
892
+ onChange: function onChange(data) {
893
+ newMeta[index].expressions.splice(i, 1, data);
894
+ store.setMeta(newMeta, groupIndex);
895
+ closePopup();
896
+ }
897
+ })
898
+ });
899
+ };
900
+ // 添加表达式
901
+ var addExpression = function addExpression(type) {
902
+ var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
903
+ var index = findIndex(store.metaList[groupIndex].list, meta);
904
+ var newMeta = store.metaList[groupIndex].list.slice();
905
+ var item = null;
906
+ if (type === AtomsTypeEnum.JOIN_DEFAULT) {
907
+ item = {
908
+ lhs: [{
909
+ fieldName: '',
910
+ // 字段名
911
+ fieldNameZh: '',
912
+ // 字段中文名
913
+ fieldAlias: '',
914
+ // 别名
915
+ fieldUuid: '',
916
+ // uuid
917
+ fieldId: '',
918
+ // 字段id
919
+ // quotes?: string; // 字段展示的 不知道有没有用
920
+ tableName: '',
921
+ // 表名
922
+ tableNameZh: '',
923
+ tableId: '',
924
+ // 表名
925
+ tableAlias: '',
926
+ // 别名
927
+ tableUuid: '',
928
+ // 表唯一标识
929
+ datasourceName: '',
930
+ // 数据源名
931
+ datasourceId: '',
932
+ // 数据源id
933
+ type: AtomsTypeEnum.FIELD
934
+ }],
935
+ condition: '',
936
+ rhs: [{
937
+ fieldName: '',
938
+ // 字段名
939
+ fieldNameZh: '',
940
+ // 字段中文名
941
+ fieldAlias: '',
942
+ // 别名
943
+ fieldUuid: '',
944
+ // uuid
945
+ fieldId: '',
946
+ // 字段id
947
+ // quotes?: string; // 字段展示的 不知道有没有用
948
+ tableName: '',
949
+ // 表名
950
+ tableNameZh: '',
951
+ tableId: '',
952
+ // 表名
953
+ tableAlias: '',
954
+ // 别名
955
+ tableUuid: '',
956
+ // 表唯一标识
957
+ datasourceName: '',
958
+ // 数据源名
959
+ datasourceId: '',
960
+ // 数据源id
961
+ type: AtomsTypeEnum.FIELD
962
+ }],
963
+ // quotes: '',
964
+ type: type
965
+ };
966
+ store.setMeta(newMeta, groupIndex);
967
+ }
968
+ if (type === AtomsTypeEnum.OPERATOR) {
969
+ item = {
970
+ val: 'AND',
971
+ type: type
972
+ };
973
+ }
974
+ if (type === AtomsTypeEnum.EXPRESSION) {
975
+ item = {
976
+ lhs: [],
977
+ condition: '',
978
+ rhs: [],
979
+ quotes: '',
980
+ type: type
981
+ };
982
+ }
983
+ if (!item) {
984
+ return;
985
+ }
986
+ if (i >= 0) {
987
+ newMeta[index].expressions.splice(i + 1, 0, item);
988
+ } else {
989
+ newMeta[index].expressions.push(item);
990
+ }
720
991
  store.setMeta(newMeta, groupIndex);
721
992
  };
993
+ var getTable1Name = function getTable1Name() {
994
+ if (meta.table1.name) {
995
+ if (meta.table1.name === SummarizeAlias) {
996
+ return PrevResult;
997
+ } else {
998
+ return "".concat(meta.table1.datasourceName, ".").concat(meta.table1.name);
999
+ }
1000
+ } else {
1001
+ return '';
1002
+ }
1003
+ };
1004
+ var renderItem = function renderItem(items, type, i) {
1005
+ var _items$;
1006
+ if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === AtomsTypeEnum.FIELD) {
1007
+ var _items$2, _items$3;
1008
+ return _jsx("div", {
1009
+ className: cx("Sqb-TableName", {
1010
+ notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1011
+ }),
1012
+ "v-position": type,
1013
+ "v-index": i,
1014
+ "v-index2": index,
1015
+ onClick: selectMoreJoinColumn,
1016
+ children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1017
+ return field.fieldName;
1018
+ }).join(' || ') : __('SqlQueryBuilder.pickTable')
1019
+ }, type + i);
1020
+ } else {
1021
+ return items.map(function (item, index) {
1022
+ if (item.type === AtomsTypeEnum.INPUT_NUMBER) {
1023
+ return _jsx(InputNumber, {
1024
+ disabled: meta.readonly,
1025
+ className: ':Sqb-TableName-input',
1026
+ value: item.val,
1027
+ placeholder: __('SqlQueryBuilder.pleaseEnter'),
1028
+ style: {
1029
+ width: '180px'
1030
+ },
1031
+ size: 'large',
1032
+ onChange: function onChange(val) {
1033
+ onChangeString(val, {
1034
+ position: type,
1035
+ index1: i,
1036
+ index2: index
1037
+ });
1038
+ }
1039
+ }, index);
1040
+ }
1041
+ if (item.type === AtomsTypeEnum.INPUT_STRING) {
1042
+ return _jsx(Input, {
1043
+ disabled: meta.readonly,
1044
+ className: ':Sqb-TableName-input',
1045
+ value: item.val,
1046
+ placeholder: __('SqlQueryBuilder.pleaseEnter'),
1047
+ style: {
1048
+ width: '180px'
1049
+ },
1050
+ size: 'large',
1051
+ onChange: function onChange(val) {
1052
+ onChangeString(val, {
1053
+ position: type,
1054
+ index1: i,
1055
+ index2: index
1056
+ });
1057
+ }
1058
+ }, index);
1059
+ }
1060
+ if (item.type === AtomsTypeEnum.CONSTANT) {
1061
+ return _jsx("div", {
1062
+ className: cx("Sqb-TableName", {
1063
+ notSelected: !item.val
1064
+ }),
1065
+ "v-position": type,
1066
+ "v-index": i,
1067
+ "v-index2": index,
1068
+ "v-val": item.val,
1069
+ onClick: selectConstant,
1070
+ children: item.val ? item.val : __('SqlQueryBuilder.pickConstant')
1071
+ }, index);
1072
+ }
1073
+ });
1074
+ }
1075
+ };
722
1076
  return _jsx(Wrapper, {
723
1077
  className: cx("Sqb-item"),
724
1078
  children: _jsxs("div", {
@@ -733,8 +1087,11 @@ var JoinData = function JoinData(props) {
733
1087
  children: _jsxs("div", {
734
1088
  className: cx("Sqb-NotebookCell"),
735
1089
  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)
1090
+ className: cx("Sqb-TableName", {
1091
+ notSelected: !table1Selected
1092
+ }),
1093
+ onClick: selectLeftTable,
1094
+ children: getTable1Name() || __('SqlQueryBuilder.pickTable')
738
1095
  }), _jsx("div", {
739
1096
  onClick: selectJoin,
740
1097
  children: meta.joinType === JoinEnum.left ? _jsx(LeftJoinIcon, {
@@ -808,210 +1165,191 @@ var JoinData = function JoinData(props) {
808
1165
  icon: _jsx(RelatedWork, {}),
809
1166
  onClick: switchSubQuery
810
1167
  })
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, {}),
1168
+ }), ((_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) {
1169
+ if (v.type === AtomsTypeEnum.JOIN_DEFAULT) {
1170
+ return _jsxs("div", {
1171
+ className: cx("Sqb-where block"),
1172
+ children: [i == 0 && _jsx("span", {
1173
+ className: 'ml-2 mr-4 text-gray-500',
1174
+ children: "on"
1175
+ }), renderItem(v.lhs, ExpressionsEnum.LEFT, i), _jsx(Tooltip, {
1176
+ title: __('SqlQueryBuilder.switch'),
1177
+ children: _jsx(Button, {
1178
+ disabled: meta.readonly,
1179
+ primary: true,
1180
+ ghost: true,
1181
+ className: 'mr-2 operator-icon',
1182
+ icon: _jsx(Repeat, {}),
1183
+ onClick: function onClick(e) {
1184
+ onChangeType(e, {
1185
+ position: ExpressionsEnum.LEFT,
1186
+ index: i
1187
+ });
1188
+ }
1189
+ })
1190
+ }), _jsx("span", {
1191
+ className: 'mr-2 text-gray-500',
1192
+ children: "="
1193
+ }), renderItem(v.rhs, ExpressionsEnum.RIGHT, i), _jsx(Tooltip, {
1194
+ title: __('SqlQueryBuilder.switch'),
1195
+ children: _jsx(Button, {
1196
+ disabled: meta.readonly,
1197
+ primary: true,
1198
+ ghost: true,
1199
+ className: 'mr-2 operator-icon',
1200
+ icon: _jsx(Repeat, {}),
1201
+ onClick: function onClick(e) {
1202
+ onChangeType(e, {
1203
+ position: ExpressionsEnum.RIGHT,
1204
+ index: i
1205
+ });
1206
+ }
1207
+ })
1208
+ }), _jsx(Tooltip, {
1209
+ title: __('SqlQueryBuilder.add'),
1210
+ children: _jsx(Dropdown, {
1211
+ trigger: ['click'],
1212
+ onChange: function onChange(key) {
1213
+ addExpression(key, i);
1214
+ },
1215
+ droplist: menuTypes,
1216
+ children: _jsx(Button, {
1217
+ disabled: meta.readonly,
1218
+ primary: true,
1219
+ ghost: true,
1220
+ className: 'mr-2 operator-icon',
1221
+ icon: _jsx(FfPlus, {})
1222
+ })
1223
+ })
1224
+ }), _jsx(Tooltip, {
1225
+ title: __('SqlQueryBuilder.del'),
1226
+ children: _jsx(Button, {
1227
+ disabled: meta.readonly,
1228
+ danger: true,
1229
+ className: 'mr-2 operator-icon',
1230
+ icon: _jsx(FfLine, {}),
1231
+ onClick: function onClick() {
1232
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1233
+ var newMeta = store.metaList[groupIndex].list.slice();
1234
+ newMeta[index].expressions.splice(i, 1);
1235
+ store.setMeta(newMeta, groupIndex);
1236
+ }
1237
+ })
1238
+ })]
1239
+ }, i);
1240
+ }
1241
+ if (v.type === AtomsTypeEnum.OPERATOR) {
1242
+ return _jsxs("div", {
1243
+ className: cx("Sqb-where block"),
1244
+ children: [i == 0 && _jsx("span", {
1245
+ className: 'ml-2 mr-4 text-gray-500',
1246
+ children: "on"
1247
+ }), _jsx(Dropdown, {
1248
+ trigger: ['click'],
1249
+ onChange: function onChange(key) {
1250
+ changeOperator(key, i);
1251
+ },
1252
+ droplist: menuOperator,
1253
+ children: _jsx(Button, {
1254
+ className: 'ml-2 mr-4 text-gray-500',
1255
+ type: 'link',
1256
+ children: v.val
1257
+ })
1258
+ }), _jsx(Tooltip, {
1259
+ title: __('SqlQueryBuilder.add'),
1260
+ children: _jsx(Dropdown, {
1261
+ trigger: ['click'],
1262
+ onChange: function onChange(key) {
1263
+ addExpression(key, i);
1264
+ },
1265
+ droplist: menuTypes,
1266
+ children: _jsx(Button, {
1267
+ disabled: meta.readonly,
1268
+ primary: true,
1269
+ ghost: true,
1270
+ className: 'mr-2 operator-icon',
1271
+ icon: _jsx(FfPlus, {})
1272
+ })
1273
+ })
1274
+ }), _jsx(Tooltip, {
1275
+ title: __('SqlQueryBuilder.del'),
1276
+ children: _jsx(Button, {
1277
+ disabled: meta.readonly,
1278
+ danger: true,
1279
+ className: 'mr-2 operator-icon',
1280
+ icon: _jsx(FfLine, {}),
1281
+ onClick: function onClick() {
1282
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1283
+ var newMeta = store.metaList[groupIndex].list.slice();
1284
+ newMeta[index].expressions.splice(i, 1);
1285
+ store.setMeta(newMeta, groupIndex);
1286
+ }
1287
+ })
1288
+ })]
1289
+ }, i);
1290
+ }
1291
+ if (v.type === AtomsTypeEnum.EXPRESSION) {
1292
+ return _jsxs("div", {
1293
+ className: cx("Sqb-where block"),
1294
+ children: [i == 0 && _jsx("span", {
1295
+ className: 'ml-2 mr-4 text-gray-500',
1296
+ children: "on"
1297
+ }), _jsx("div", {
1298
+ className: cx("Sqb-TableName purple-name", {
1299
+ notSelected: !v.quotes
1300
+ }),
930
1301
  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, {
1302
+ return changeExpression(e, i);
1303
+ },
1304
+ children: v.quotes || __('joinData.selectExpression')
1305
+ }, i), _jsx(Tooltip, {
1306
+ title: __('SqlQueryBuilder.add'),
1307
+ children: _jsx(Dropdown, {
1308
+ trigger: ['click'],
1309
+ onChange: function onChange(key) {
1310
+ addExpression(key, i);
1311
+ },
1312
+ droplist: menuTypes,
1313
+ children: _jsx(Button, {
1314
+ disabled: meta.readonly,
1315
+ primary: true,
1316
+ ghost: true,
1317
+ className: 'mr-2 operator-icon',
1318
+ icon: _jsx(FfPlus, {})
1319
+ })
1320
+ })
1321
+ }), _jsx(Tooltip, {
1322
+ title: __('SqlQueryBuilder.del'),
1323
+ children: _jsx(Button, {
1324
+ disabled: meta.readonly,
1325
+ danger: true,
1326
+ className: 'mr-2 operator-icon',
1327
+ icon: _jsx(FfLine, {}),
1328
+ onClick: function onClick() {
1329
+ var index = findIndex(store.metaList[groupIndex].list, meta);
1330
+ var newMeta = store.metaList[groupIndex].list.slice();
1331
+ newMeta[index].expressions.splice(i, 1);
1332
+ store.setMeta(newMeta, groupIndex);
1333
+ }
1334
+ })
1335
+ })]
1336
+ }, i);
1337
+ }
1338
+ })), ((_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
1339
  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
- }
1340
+ children: _jsx(Dropdown, {
1341
+ trigger: ['click'],
1342
+ onChange: function onChange(key) {
1343
+ addExpression(key);
1344
+ },
1345
+ droplist: menuTypes,
1346
+ children: _jsx(Button, {
1347
+ disabled: meta.readonly,
1348
+ primary: true,
1349
+ ghost: true,
1350
+ className: 'mr-2 operator-icon',
1351
+ icon: _jsx(FfPlus, {})
1352
+ })
1015
1353
  })
1016
1354
  }), columnsSelected && store.showFields && _jsx("div", {
1017
1355
  className: "Sqb-TableColumns",