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