@gingkoo/pandora-metabase 1.0.14 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +1 -1
  4. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  5. package/lib/cjs/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  6. package/lib/cjs/components/dialog/{select-filter → expression}/index.js +345 -206
  7. package/lib/cjs/components/dialog/formula-list/enum.d.ts +9 -13
  8. package/lib/cjs/components/dialog/formula-list/enum.js +83 -39
  9. package/lib/cjs/components/dialog/formula-list/index.d.ts +4 -1
  10. package/lib/cjs/components/dialog/formula-list/index.js +110 -126
  11. package/lib/cjs/components/dialog/formula-list/utils.js +77 -46
  12. package/lib/cjs/components/dialog/index.d.ts +2 -2
  13. package/lib/cjs/components/dialog/index.js +20 -20
  14. package/lib/cjs/components/dialog/select-column/index.js +43 -12
  15. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +54 -0
  16. package/lib/cjs/components/dialog/select-column-multiple/index.js +341 -0
  17. package/lib/cjs/components/dialog/select-column-multiple/index.less +246 -0
  18. package/lib/cjs/components/dialog/select-table/index.js +9 -7
  19. package/lib/cjs/components/icons.js +36 -36
  20. package/lib/cjs/components/metabase/index.js +6 -6
  21. package/lib/cjs/components/metabase/index.less +12 -1
  22. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  23. package/lib/cjs/components/modules/custom-column.js +12 -14
  24. package/lib/cjs/components/modules/enum/filter-enum.d.ts +34 -0
  25. package/lib/cjs/components/modules/enum/filter-enum.js +137 -0
  26. package/lib/cjs/components/modules/filter.js +43 -460
  27. package/lib/cjs/components/modules/join-data.js +892 -522
  28. package/lib/cjs/components/modules/permission-table.js +4 -0
  29. package/lib/cjs/components/modules/sort.js +102 -91
  30. package/lib/cjs/components/modules/summarize/group-by.js +47 -16
  31. package/lib/cjs/components/modules/summarize/select-index.js +48 -17
  32. package/lib/cjs/components/modules/table-data.js +13 -4
  33. package/lib/cjs/components/popup.js +1 -2
  34. package/lib/cjs/hooks/patch.d.ts +4 -0
  35. package/lib/cjs/hooks/patch.js +464 -0
  36. package/lib/cjs/hooks/use-state.js +73 -138
  37. package/lib/cjs/index.d.ts +0 -1
  38. package/lib/cjs/index.js +3 -21
  39. package/lib/cjs/locale/en.js +10 -3
  40. package/lib/cjs/locale/zh.js +12 -5
  41. package/lib/cjs/store/helper.d.ts +2 -3
  42. package/lib/cjs/store/helper.js +288 -233
  43. package/lib/cjs/store/types.d.ts +94 -71
  44. package/lib/cjs/store/types.js +17 -12
  45. package/lib/cjs/utils.d.ts +3 -3
  46. package/lib/cjs/utils.js +152 -187
  47. package/lib/es/common/SplitView/index.js +10 -10
  48. package/lib/es/components/dialog/custom-column/expressions/suggest.js +1 -1
  49. package/lib/es/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  50. package/lib/es/components/dialog/{select-filter → expression}/index.js +343 -206
  51. package/lib/es/components/dialog/formula-list/enum.d.ts +9 -13
  52. package/lib/es/components/dialog/formula-list/enum.js +82 -38
  53. package/lib/es/components/dialog/formula-list/index.d.ts +4 -1
  54. package/lib/es/components/dialog/formula-list/index.js +115 -131
  55. package/lib/es/components/dialog/formula-list/utils.js +77 -46
  56. package/lib/es/components/dialog/index.d.ts +2 -2
  57. package/lib/es/components/dialog/index.js +3 -3
  58. package/lib/es/components/dialog/select-column/index.js +44 -13
  59. package/lib/es/components/dialog/select-column-multiple/index.d.ts +54 -0
  60. package/lib/es/components/dialog/select-column-multiple/index.js +335 -0
  61. package/lib/es/components/dialog/select-column-multiple/index.less +246 -0
  62. package/lib/es/components/dialog/select-table/index.js +9 -7
  63. package/lib/es/components/icons.js +36 -36
  64. package/lib/es/components/metabase/index.js +6 -6
  65. package/lib/es/components/metabase/index.less +12 -1
  66. package/lib/es/components/modules/components/Wrapper.js +6 -6
  67. package/lib/es/components/modules/custom-column.js +12 -14
  68. package/lib/es/components/modules/enum/filter-enum.d.ts +34 -0
  69. package/lib/es/components/modules/enum/filter-enum.js +131 -0
  70. package/lib/es/components/modules/filter.js +45 -463
  71. package/lib/es/components/modules/join-data.js +894 -524
  72. package/lib/es/components/modules/permission-table.js +4 -0
  73. package/lib/es/components/modules/sort.js +102 -91
  74. package/lib/es/components/modules/summarize/group-by.js +48 -17
  75. package/lib/es/components/modules/summarize/select-index.js +49 -18
  76. package/lib/es/components/modules/table-data.js +13 -4
  77. package/lib/es/hooks/patch.d.ts +4 -0
  78. package/lib/es/hooks/patch.js +457 -0
  79. package/lib/es/hooks/use-state.js +73 -138
  80. package/lib/es/index.d.ts +0 -1
  81. package/lib/es/index.js +1 -1
  82. package/lib/es/locale/en.js +10 -3
  83. package/lib/es/locale/zh.js +12 -5
  84. package/lib/es/store/helper.d.ts +2 -3
  85. package/lib/es/store/helper.js +288 -233
  86. package/lib/es/store/types.d.ts +94 -71
  87. package/lib/es/store/types.js +16 -11
  88. package/lib/es/utils.d.ts +3 -3
  89. package/lib/es/utils.js +154 -190
  90. package/package.json +1 -1
  91. package/lib/cjs/components/modules/filter copy.d.ts +0 -7
  92. package/lib/cjs/components/modules/filter copy.js +0 -178
  93. package/lib/es/components/modules/filter copy.d.ts +0 -7
  94. package/lib/es/components/modules/filter copy.js +0 -171
  95. /package/lib/cjs/components/dialog/{select-filter → expression}/index.less +0 -0
  96. /package/lib/es/components/dialog/{select-filter → expression}/index.less +0 -0
@@ -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,175 @@ 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 tableInfo = {
206
+ name: meta[table_type].name,
207
+ id: meta[table_type].id,
208
+ table: meta[table_type].name,
209
+ // fieldUuid: meta[table_type][_ind].fieldUuid || uuidv4('field'),
210
+ // fieldAlias: meta[table_type].fieldAlias || '',
211
+ tableId: meta[table_type].id,
212
+ tableUuid: meta[table_type].tableUuid || (0, _helper.uuidv4)('table'),
213
+ alias: meta[table_type].alias,
214
+ database_type: '',
215
+ datasourceId: meta[table_type].datasourceId,
216
+ // 数据源id
217
+ datasourceName: meta[table_type].datasourceName // 数据源名
218
+ };
219
+ // let value: MetaJoin_Field[] = [
220
+ // {
221
+ // fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),
222
+ // fieldAlias: meta[table_type].fieldAlias || '',
223
+ // },
224
+ // ];
225
+ var data = [];
226
+ var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
227
+ ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
228
+ prevList = _getHelper2.prevList,
229
+ prevGroupBy = _getHelper2.prevGroupBy;
230
+ if (ExistAboveGroupBy) {
231
+ var _prevGroupBy$group2, _prevGroupBy$by2;
232
+ var _data = {
233
+ alias: prevGroupBy.alias,
234
+ id: prevGroupBy.alias,
235
+ tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
236
+ name: prevGroupBy.alias,
237
+ name_zh: prevGroupBy.alias,
238
+ datasourceId: '',
239
+ datasourceName: '',
240
+ columns: []
241
+ };
242
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
243
+ _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
244
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
245
+ name: v.name || v.quotes,
246
+ name_zh: v.name_zh || v.quotes,
247
+ id: v.id || v.fieldId,
248
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
249
+ special_type: '',
250
+ sql: v.sql,
251
+ select: true
252
+ });
253
+ }));
254
+ }
255
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
256
+ _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
257
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
258
+ name: v.name || v.quotes,
259
+ name_zh: v.name_zh || v.quotes,
260
+ id: v.id || v.fieldId,
261
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
262
+ special_type: '',
263
+ sql: v.sql,
264
+ select: true
265
+ });
266
+ }));
267
+ }
268
+ data = [_data];
269
+ var joinData = prevList.filter(function (v) {
270
+ return v.type === _enum.TypeEnum.joinData;
271
+ }).filter(function (v) {
272
+ return v && v.table2.name;
273
+ });
274
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
275
+ data = data.concat(joinData.map(function (v) {
276
+ return {
277
+ alias: v.table2.alias,
278
+ name: v.table2.name,
279
+ name_zh: v.table2.name_zh,
280
+ id: v.table2.id,
281
+ tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
282
+ datasourceId: v.table2.datasourceId,
283
+ datasourceName: v.table2.datasourceName,
284
+ columns: []
285
+ };
286
+ }));
287
+ }
288
+ } else {
289
+ data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
290
+ if (v.type === _enum.TypeEnum.data) {
291
+ mo.push({
292
+ alias: v.table.alias,
293
+ name: v.table.name,
294
+ name_zh: v.table.name_zh,
295
+ id: v.table.id,
296
+ tableUuid: v.table.tableUuid || (0, _helper.uuidv4)('table'),
297
+ columns: [],
298
+ datasourceId: v.table.datasourceId,
299
+ datasourceName: v.table.datasourceName
300
+ });
301
+ } else if (v.type === _enum.TypeEnum.joinData) {
302
+ mo.push({
303
+ alias: v.table2.alias,
304
+ name: v.table2.name,
305
+ name_zh: v.table2.name_zh,
306
+ id: v.table2.id,
307
+ tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
308
+ columns: [],
309
+ datasourceId: v.table2.datasourceId,
310
+ datasourceName: v.table2.datasourceName
311
+ });
312
+ }
313
+ return mo;
314
+ }, []);
315
+ }
316
+ // // 过滤为table1选中的表
317
+ var newMeta = store.metaList[groupIndex].list.slice();
318
+ // if (((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name) {
319
+ // data = data.filter((v) => {
320
+ // return (
321
+ // ((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name == v.table
322
+ // );
323
+ // });
324
+ // }
325
+ !meta.readonly && store.setPopup({
326
+ visible: true,
327
+ node: node,
328
+ content: (0, _jsxRuntime.jsx)(_dialog.SelectColumnMultiple, {
329
+ data: data,
330
+ // tableInfo={tableInfo}
331
+ value: [],
332
+ isGroup: true,
333
+ theme: _enum.ColumnsPopupThemeEnum.skyBlue,
334
+ onSelect: function onSelect(fields, quotes) {
335
+ var _data = fields[0];
336
+ if (table_type === FlagLocation.TABLE_1) {
337
+ if (newMeta[index][table_type].alias !== _data.tableAlias) {
338
+ // (newMeta[index] as MetaJoin)
339
+ newMeta[index][table_type] = {
340
+ name: _data.tableName,
341
+ name_zh: _data.tableNameZh,
342
+ // 表名
343
+ id: _data.tableId,
344
+ // 表名
345
+ tableUuid: _data.tableUuid,
346
+ // 表名
347
+ alias: _data.tableAlias,
348
+ // 表名
349
+ datasourceName: _data.datasourceName,
350
+ datasourceId: _data.datasourceId // 表名
351
+ };
352
+ // (newMeta[index] as MetaJoin).expressions = [];
353
+ initExpressions();
354
+ }
355
+ }
356
+ store.setMeta(newMeta, groupIndex);
357
+ store.setPopup({
358
+ visible: false
359
+ });
360
+ }
361
+ })
362
+ });
363
+ }
122
364
  function selectTable(e) {
123
365
  var value = {
124
366
  name: meta.table2.name,
367
+ name_zh: meta.table2.name_zh,
125
368
  id: meta.table2.id,
126
369
  alias: meta.table2.alias,
127
370
  datasourceId: meta.table2.datasourceId,
@@ -147,11 +390,10 @@ var JoinData = function JoinData(props) {
147
390
  fieldUuid: '',
148
391
  quotes: '',
149
392
  datasourceId: data.datasourceId,
150
- datasourceName: data.datasourceName,
151
- fields: []
393
+ datasourceName: data.datasourceName
152
394
  });
153
395
  newMeta[index].table2 = _table2;
154
- newMeta[index].expressions = [];
396
+ initExpressions();
155
397
  store.fetchColumns(_table2, data.datasourceId, function (columns) {
156
398
  newMeta[index].columns = columns;
157
399
  // 关联表变了 下面模块全部删除
@@ -168,6 +410,72 @@ var JoinData = function JoinData(props) {
168
410
  })
169
411
  });
170
412
  }
413
+ function initExpressions() {
414
+ var _newMeta$index, _newMeta$index2;
415
+ var newMeta = store.metaList[groupIndex].list.slice();
416
+ 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) {
417
+ newMeta[index].expressions = [{
418
+ lhs: [{
419
+ fieldName: '',
420
+ // 字段名
421
+ fieldNameZh: '',
422
+ // 字段中文名
423
+ fieldAlias: '',
424
+ // 别名
425
+ fieldUuid: '',
426
+ // uuid
427
+ fieldId: '',
428
+ // 字段id
429
+ // quotes?: string; // 字段展示的 不知道有没有用
430
+ tableName: '',
431
+ // 表名
432
+ tableNameZh: '',
433
+ tableId: '',
434
+ // 表名
435
+ tableAlias: '',
436
+ // 别名
437
+ tableUuid: '',
438
+ // 表唯一标识
439
+ datasourceName: '',
440
+ // 数据源名
441
+ datasourceId: '',
442
+ // 数据源id
443
+ type: _types.AtomsTypeEnum.FIELD
444
+ }],
445
+ condition: '',
446
+ rhs: [{
447
+ fieldName: '',
448
+ // 字段名
449
+ fieldNameZh: '',
450
+ // 字段中文名
451
+ fieldAlias: '',
452
+ // 别名
453
+ fieldUuid: '',
454
+ // uuid
455
+ fieldId: '',
456
+ // 字段id
457
+ // quotes?: string; // 字段展示的 不知道有没有用
458
+ tableName: '',
459
+ // 表名
460
+ tableNameZh: '',
461
+ tableId: '',
462
+ // 表名
463
+ tableAlias: '',
464
+ // 别名
465
+ tableUuid: '',
466
+ // 表唯一标识
467
+ datasourceName: '',
468
+ // 数据源名
469
+ datasourceId: '',
470
+ // 数据源id
471
+ type: _types.AtomsTypeEnum.FIELD
472
+ }],
473
+ // quotes: '',
474
+ type: _types.AtomsTypeEnum.JOIN_DEFAULT
475
+ }];
476
+ store.setMeta(newMeta, groupIndex);
477
+ }
478
+ }
171
479
  function selectJoin(e) {
172
480
  var newMeta = store.metaList[groupIndex].list.slice();
173
481
  !meta.readonly && store.setPopup({
@@ -186,222 +494,36 @@ var JoinData = function JoinData(props) {
186
494
  })
187
495
  });
188
496
  }
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
497
  function selectMoreJoinColumn(e) {
359
498
  var node = e.currentTarget;
360
- var type = node.getAttribute('v-data');
499
+ var _position = node.getAttribute('v-position');
361
500
  var _ind = Number(node.getAttribute('v-index'));
501
+ var _ind2 = Number(node.getAttribute('v-index2'));
362
502
  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
503
  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) {
504
+ var _getHelper3 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
505
+ ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
506
+ prevList = _getHelper3.prevList,
507
+ prevGroupBy = _getHelper3.prevGroupBy;
508
+ if (_position === ExpressionsEnum.LEFT) {
390
509
  if (ExistAboveGroupBy) {
391
- var _prevGroupBy$group2, _prevGroupBy$by2;
510
+ var _prevGroupBy$group3, _prevGroupBy$by3;
392
511
  var _data = {
393
- table: prevGroupBy.alias,
394
- tableId: prevGroupBy.alias,
512
+ name: prevGroupBy.alias,
513
+ name_zh: prevGroupBy.alias,
514
+ id: prevGroupBy.alias,
395
515
  tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
396
516
  alias: prevGroupBy.alias,
397
517
  datasourceId: '',
398
518
  datasourceName: '',
399
519
  columns: []
400
520
  };
401
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group2 = prevGroupBy.group) !== null && _prevGroupBy$group2 !== void 0 && _prevGroupBy$group2.length) {
521
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
402
522
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
403
523
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
404
- name: v.quotes,
524
+ name: v.name || v.quotes,
525
+ name_zh: v.name_zh || v.quotes,
526
+ id: v.id || v.fieldId,
405
527
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
406
528
  special_type: '',
407
529
  sql: v.sql,
@@ -409,10 +531,12 @@ var JoinData = function JoinData(props) {
409
531
  });
410
532
  }));
411
533
  }
412
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by2 = prevGroupBy.by) !== null && _prevGroupBy$by2 !== void 0 && _prevGroupBy$by2.length) {
534
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
413
535
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
414
536
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
415
- name: v.quotes,
537
+ name: v.name || v.quotes,
538
+ name_zh: v.name_zh || v.quotes,
539
+ id: v.id || v.fieldId,
416
540
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
417
541
  special_type: '',
418
542
  sql: v.sql,
@@ -426,12 +550,13 @@ var JoinData = function JoinData(props) {
426
550
  }).filter(function (v) {
427
551
  return v && v.table2.name;
428
552
  });
429
- if (joinData.length) {
553
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
430
554
  data = data.concat(joinData.map(function (v) {
431
555
  return {
432
556
  alias: v.table2.alias,
433
- table: v.table2.name,
434
- tableId: v.table2.id,
557
+ name: v.table2.name,
558
+ name_zh: v.table2.name_zh,
559
+ id: v.table2.id,
435
560
  tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
436
561
  datasourceId: v.table2.datasourceId,
437
562
  datasourceName: v.table2.datasourceName,
@@ -444,8 +569,9 @@ var JoinData = function JoinData(props) {
444
569
  if (v.type === _enum.TypeEnum.data) {
445
570
  mo.push({
446
571
  alias: v.table.alias,
447
- table: v.table.name,
448
- tableId: v.table.id,
572
+ name: v.table.name,
573
+ name_zh: v.table.name_zh,
574
+ id: v.table.id,
449
575
  tableUuid: v.table.tableUuid || (0, _helper.uuidv4)('table'),
450
576
  columns: v.columns,
451
577
  datasourceId: v.table.datasourceId,
@@ -454,8 +580,9 @@ var JoinData = function JoinData(props) {
454
580
  } else if (v.type === _enum.TypeEnum.joinData) {
455
581
  mo.push({
456
582
  alias: v.table2.alias,
457
- table: v.table2.name,
458
- tableId: v.table2.id,
583
+ name: v.table2.name,
584
+ name_zh: v.table2.name_zh,
585
+ id: v.table2.id,
459
586
  tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
460
587
  columns: v.columns,
461
588
  datasourceId: v.table2.datasourceId,
@@ -467,14 +594,17 @@ var JoinData = function JoinData(props) {
467
594
  }
468
595
  // 过滤为table1选中的表
469
596
  var newMeta = store.metaList[groupIndex].list.slice();
470
- data = data.filter(function (v) {
471
- return newMeta[index][FlagLocation.TABLE_1].name == v.table;
472
- });
597
+ if (newMeta[index][FlagLocation.TABLE_1].name) {
598
+ data = data.filter(function (v) {
599
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid;
600
+ });
601
+ }
473
602
  } else {
474
603
  data = [{
475
604
  alias: meta.table2.alias,
476
- table: meta.table2.name,
477
- tableId: meta.table2.id,
605
+ name: meta.table2.name,
606
+ name_zh: meta.table2.name_zh,
607
+ id: meta.table2.id,
478
608
  tableUuid: meta.table2.tableUuid || (0, _helper.uuidv4)('table'),
479
609
  datasourceId: meta.table2.datasourceId,
480
610
  datasourceName: meta.table2.datasourceName,
@@ -484,39 +614,46 @@ var JoinData = function JoinData(props) {
484
614
  !meta.readonly && store.setPopup({
485
615
  visible: true,
486
616
  node: node,
487
- content: (0, _jsxRuntime.jsx)(_dialog.SelectJoinColumnMultiple, {
617
+ content: (0, _jsxRuntime.jsx)(_dialog.SelectColumnMultiple, {
488
618
  data: data,
489
- tableInfo: tableInfo,
490
- value: meta.expressions[_ind]["".concat(type, "_fields")] || [],
619
+ // tableInfo={tableInfo}
620
+ value: meta.expressions[_ind][_position],
491
621
  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;
622
+ onSelect: function onSelect(fields, quotes) {
505
623
  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;
624
+ newMeta[index].expressions[_ind][_position] = fields.length > 0 ? fields : [{
625
+ fieldName: '',
626
+ // 字段名
627
+ fieldNameZh: '',
628
+ // 字段中文名
629
+ fieldAlias: '',
630
+ // 别名
631
+ fieldUuid: '',
632
+ // uuid
633
+ fieldId: '',
634
+ // 字段id
635
+ // quotes?: string; // 字段展示的 不知道有没有用
636
+ tableName: '',
637
+ // 表名
638
+ tableNameZh: '',
639
+ tableId: '',
640
+ // 表名
641
+ tableAlias: '',
642
+ // 别名
643
+ tableUuid: '',
644
+ // 表唯一标识
645
+ datasourceName: '',
646
+ // 数据源名
647
+ datasourceId: '',
648
+ // 数据源id
649
+ type: _types.AtomsTypeEnum.FIELD
650
+ }];
651
+ // (
652
+ // ((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[_position][
653
+ // _ind2
654
+ // ] as AtomsField
655
+ // ).quotes = quotes;
518
656
  store.setMeta(newMeta, groupIndex);
519
- // store.setPopup({ visible: false });
520
657
  }
521
658
  })
522
659
  });
@@ -525,6 +662,7 @@ var JoinData = function JoinData(props) {
525
662
  var node = e.currentTarget;
526
663
  var _ind = Number(node.getAttribute('v-index'));
527
664
  var _position = node.getAttribute('v-position');
665
+ var _ind2 = Number(node.getAttribute('v-index2'));
528
666
  var _val = node.getAttribute('v-val');
529
667
  store.setPopup({
530
668
  visible: true,
@@ -539,8 +677,7 @@ var JoinData = function JoinData(props) {
539
677
  })[0];
540
678
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
541
679
  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;
680
+ newMeta[index].expressions[_ind][_position][_ind2].val = curObj.value;
544
681
  store.setMeta(newMeta, groupIndex);
545
682
  }
546
683
  })
@@ -552,36 +689,90 @@ var JoinData = function JoinData(props) {
552
689
  });
553
690
  }
554
691
  // 修改输入框类型
555
- function onChangeType(e, position, _ind) {
692
+ function onChangeType(e, _ref) {
693
+ var _ref$position = _ref.position,
694
+ position = _ref$position === void 0 ? 'rhs' : _ref$position,
695
+ _ind = _ref.index;
556
696
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
557
697
  var newMeta = store.metaList[groupIndex].list.slice();
558
698
  store.setPopup({
559
699
  visible: true,
560
700
  node: e.currentTarget,
561
- content: (0, _jsxRuntime.jsx)(_selectList["default"], {
562
- value: newMeta[index].expressions[_ind]["".concat(position, "_type")],
701
+ content: (0, _jsxRuntime.jsx)(_selectList["default"]
702
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
703
+ , {
704
+ // value={(((newMeta[index] as MetaJoin).expressions[_ind] as AtomsExpression)[position])[`type`]}
563
705
  list: [{
564
- value: 'string',
706
+ value: _types.AtomsTypeEnum.INPUT_STRING,
565
707
  label: (0, _locale.__)('SqlQueryBuilder.input')
566
708
  }, {
567
- value: 'constant',
709
+ value: _types.AtomsTypeEnum.INPUT_NUMBER,
710
+ label: (0, _locale.__)('SqlQueryBuilder.numberInput')
711
+ }, {
712
+ value: _types.AtomsTypeEnum.CONSTANT,
568
713
  label: (0, _locale.__)('customColumn.constant')
569
714
  }, {
570
- value: '',
715
+ value: _types.AtomsTypeEnum.FIELD,
571
716
  label: (0, _locale.__)('SqlQueryBuilder.columns')
572
717
  }],
573
718
  onChange: function onChange(type) {
574
719
  closePopup();
575
- newMeta[index].expressions[_ind]["".concat(position, "_type")] = type;
720
+ if (type === _types.AtomsTypeEnum.INPUT_STRING || type === _types.AtomsTypeEnum.CONSTANT) {
721
+ newMeta[index].expressions[_ind][position] = [{
722
+ val: '',
723
+ type: type
724
+ }];
725
+ }
726
+ if (type === _types.AtomsTypeEnum.INPUT_NUMBER) {
727
+ newMeta[index].expressions[_ind][position] = [{
728
+ val: 0,
729
+ type: type
730
+ }];
731
+ }
732
+ if (type === _types.AtomsTypeEnum.FIELD) {
733
+ newMeta[index].expressions[_ind][position] = [{
734
+ fieldName: '',
735
+ // 字段名
736
+ fieldNameZh: '',
737
+ // 字段中文名
738
+ fieldAlias: '',
739
+ // 别名
740
+ fieldUuid: '',
741
+ // uuid
742
+ fieldId: '',
743
+ // 字段id
744
+ tableName: '',
745
+ // 表名
746
+ tableNameZh: '',
747
+ tableId: '',
748
+ // 表名
749
+ tableAlias: '',
750
+ // 别名
751
+ tableUuid: '',
752
+ // 表唯一标识
753
+ datasourceName: '',
754
+ // 数据源名
755
+ datasourceId: '',
756
+ // 数据源id
757
+ type: _types.AtomsTypeEnum.FIELD
758
+ }];
759
+ }
576
760
  store.setMeta(newMeta, groupIndex);
577
761
  }
578
762
  })
579
763
  });
580
764
  }
581
- function onChangeString(type, _ind, val) {
765
+ function onChangeString(val, _ref2) {
766
+ var _ref2$position = _ref2.position,
767
+ position = _ref2$position === void 0 ? 'rhs' : _ref2$position,
768
+ _ref2$index = _ref2.index1,
769
+ index1 = _ref2$index === void 0 ? 0 : _ref2$index,
770
+ _ref2$index2 = _ref2.index2,
771
+ index2 = _ref2$index2 === void 0 ? 0 : _ref2$index2;
772
+ // : 'rhs'
582
773
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
583
774
  var newMeta = store.metaList[groupIndex].list.slice();
584
- newMeta[index].expressions[_ind][type] = val;
775
+ newMeta[index].expressions[index1][position][index2].val = val;
585
776
  store.setMeta(newMeta, groupIndex);
586
777
  }
587
778
  // 子查询弹窗
@@ -649,10 +840,10 @@ var JoinData = function JoinData(props) {
649
840
  newMeta[index].isSubquery = !newMeta[index].isSubquery;
650
841
  newMeta[index].table2 = {
651
842
  quotes: '',
652
- fieldAlias: '',
653
- fieldUuid: '',
654
843
  name: '',
655
844
  // 表名
845
+ name_zh: '',
846
+ // 表名
656
847
  tableUuid: '',
657
848
  id: '',
658
849
  // 表名
@@ -660,11 +851,8 @@ var JoinData = function JoinData(props) {
660
851
  // 表别名
661
852
  datasourceName: '',
662
853
  // 数据源名
663
- datasourceId: '',
664
- // 数据源id
665
- groupSql: '',
666
- //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
667
- fields: []
854
+ datasourceId: '' // 数据源id
855
+ // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
668
856
  };
669
857
  newMeta[index].expressions = [];
670
858
  newMeta[index].subquery = [];
@@ -684,22 +872,29 @@ var JoinData = function JoinData(props) {
684
872
  onOk: function () {
685
873
  var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
686
874
  var _index, newMeta;
687
- return _regenerator["default"].wrap(function _callee$(_context) {
875
+ return _regenerator["default"].wrap(function (_context) {
688
876
  while (1) switch (_context.prev = _context.next) {
689
877
  case 0:
690
878
  if (alias) {
691
- _context.next = 5;
879
+ _context.next = 1;
692
880
  break;
693
881
  }
694
882
  _pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasCannotEmpty'));
695
883
  return _context.abrupt("return", false);
696
- case 5:
884
+ case 1:
885
+ if (!(alias.length > 30)) {
886
+ _context.next = 2;
887
+ break;
888
+ }
889
+ _pandora.Toast.warning('别名长度不能超过30');
890
+ return _context.abrupt("return", false);
891
+ case 2:
697
892
  _index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
698
893
  newMeta = store.metaList[groupIndex].list.slice();
699
894
  newMeta[_index].table2.alias = alias;
700
895
  newMeta = (0, _utils.changeTableAlias)(newMeta, newMeta[_index].table2);
701
896
  store.setMeta(newMeta, groupIndex);
702
- case 10:
897
+ case 3:
703
898
  case "end":
704
899
  return _context.stop();
705
900
  }
@@ -713,18 +908,209 @@ var JoinData = function JoinData(props) {
713
908
  onCancel: function onCancel() {}
714
909
  });
715
910
  };
716
- var onChangeOperator = function onChangeOperator(value) {
911
+ // 修改连接符
912
+ var changeOperator = function changeOperator(key, i) {
717
913
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
718
914
  var newMeta = store.metaList[groupIndex].list.slice();
719
- newMeta[index].comparison_operator = value;
915
+ newMeta[index].expressions[i].val = key;
720
916
  store.setMeta(newMeta, groupIndex);
721
917
  };
722
- var onChangeExpressionsOperator = function onChangeExpressionsOperator(value, _ind) {
918
+ var changeExpression = function changeExpression(e, i) {
919
+ var data = getTableColumns();
920
+ var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
921
+ var newMeta = store.metaList[groupIndex].list.slice();
922
+ var value = newMeta[index].expressions[i];
923
+ store.setPopup({
924
+ visible: true,
925
+ node: e.currentTarget,
926
+ content: (0, _jsxRuntime.jsx)(_dialog.Expression, {
927
+ filterCustomType: filterCustomType,
928
+ data: data,
929
+ value: value,
930
+ onChange: function onChange(data) {
931
+ newMeta[index].expressions.splice(i, 1, data);
932
+ store.setMeta(newMeta, groupIndex);
933
+ closePopup();
934
+ }
935
+ })
936
+ });
937
+ };
938
+ // 添加表达式
939
+ var addExpression = function addExpression(type) {
940
+ var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
723
941
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
724
942
  var newMeta = store.metaList[groupIndex].list.slice();
725
- newMeta[index].expressions[_ind].comparison_operator = value;
943
+ var item = null;
944
+ if (type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
945
+ item = {
946
+ lhs: [{
947
+ fieldName: '',
948
+ // 字段名
949
+ fieldNameZh: '',
950
+ // 字段中文名
951
+ fieldAlias: '',
952
+ // 别名
953
+ fieldUuid: '',
954
+ // uuid
955
+ fieldId: '',
956
+ // 字段id
957
+ // quotes?: string; // 字段展示的 不知道有没有用
958
+ tableName: '',
959
+ // 表名
960
+ tableNameZh: '',
961
+ tableId: '',
962
+ // 表名
963
+ tableAlias: '',
964
+ // 别名
965
+ tableUuid: '',
966
+ // 表唯一标识
967
+ datasourceName: '',
968
+ // 数据源名
969
+ datasourceId: '',
970
+ // 数据源id
971
+ type: _types.AtomsTypeEnum.FIELD
972
+ }],
973
+ condition: '',
974
+ rhs: [{
975
+ fieldName: '',
976
+ // 字段名
977
+ fieldNameZh: '',
978
+ // 字段中文名
979
+ fieldAlias: '',
980
+ // 别名
981
+ fieldUuid: '',
982
+ // uuid
983
+ fieldId: '',
984
+ // 字段id
985
+ // quotes?: string; // 字段展示的 不知道有没有用
986
+ tableName: '',
987
+ // 表名
988
+ tableNameZh: '',
989
+ tableId: '',
990
+ // 表名
991
+ tableAlias: '',
992
+ // 别名
993
+ tableUuid: '',
994
+ // 表唯一标识
995
+ datasourceName: '',
996
+ // 数据源名
997
+ datasourceId: '',
998
+ // 数据源id
999
+ type: _types.AtomsTypeEnum.FIELD
1000
+ }],
1001
+ // quotes: '',
1002
+ type: type
1003
+ };
1004
+ store.setMeta(newMeta, groupIndex);
1005
+ }
1006
+ if (type === _types.AtomsTypeEnum.OPERATOR) {
1007
+ item = {
1008
+ val: 'AND',
1009
+ type: type
1010
+ };
1011
+ }
1012
+ if (type === _types.AtomsTypeEnum.EXPRESSION) {
1013
+ item = {
1014
+ lhs: [],
1015
+ condition: '',
1016
+ rhs: [],
1017
+ quotes: '',
1018
+ type: type
1019
+ };
1020
+ }
1021
+ if (!item) {
1022
+ return;
1023
+ }
1024
+ if (i >= 0) {
1025
+ newMeta[index].expressions.splice(i + 1, 0, item);
1026
+ } else {
1027
+ newMeta[index].expressions.push(item);
1028
+ }
726
1029
  store.setMeta(newMeta, groupIndex);
727
1030
  };
1031
+ var getTable1Name = function getTable1Name() {
1032
+ if (meta.table1.name) {
1033
+ if (meta.table1.name === _helper2.SummarizeAlias) {
1034
+ return PrevResult;
1035
+ } else {
1036
+ return "".concat(meta.table1.datasourceName, ".").concat(meta.table1.name);
1037
+ }
1038
+ } else {
1039
+ return '';
1040
+ }
1041
+ };
1042
+ var renderItem = function renderItem(items, type, i) {
1043
+ var _items$;
1044
+ if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === _types.AtomsTypeEnum.FIELD) {
1045
+ var _items$2, _items$3;
1046
+ return (0, _jsxRuntime.jsx)("div", {
1047
+ className: (0, _classnames["default"])("Sqb-TableName", {
1048
+ notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1049
+ }),
1050
+ "v-position": type,
1051
+ "v-index": i,
1052
+ "v-index2": index,
1053
+ onClick: selectMoreJoinColumn,
1054
+ children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1055
+ return field.fieldName;
1056
+ }).join(' || ') : (0, _locale.__)('SqlQueryBuilder.pickTable')
1057
+ }, type + i);
1058
+ } else {
1059
+ return items.map(function (item, index) {
1060
+ if (item.type === _types.AtomsTypeEnum.INPUT_NUMBER) {
1061
+ return (0, _jsxRuntime.jsx)(_pandora.InputNumber, {
1062
+ disabled: meta.readonly,
1063
+ className: ':Sqb-TableName-input',
1064
+ value: item.val,
1065
+ placeholder: (0, _locale.__)('SqlQueryBuilder.pleaseEnter'),
1066
+ style: {
1067
+ width: '180px'
1068
+ },
1069
+ size: 'large',
1070
+ onChange: function onChange(val) {
1071
+ onChangeString(val, {
1072
+ position: type,
1073
+ index1: i,
1074
+ index2: index
1075
+ });
1076
+ }
1077
+ }, index);
1078
+ }
1079
+ if (item.type === _types.AtomsTypeEnum.INPUT_STRING) {
1080
+ return (0, _jsxRuntime.jsx)(_pandora.Input, {
1081
+ disabled: meta.readonly,
1082
+ className: ':Sqb-TableName-input',
1083
+ value: item.val,
1084
+ placeholder: (0, _locale.__)('SqlQueryBuilder.pleaseEnter'),
1085
+ style: {
1086
+ width: '180px'
1087
+ },
1088
+ size: 'large',
1089
+ onChange: function onChange(val) {
1090
+ onChangeString(val, {
1091
+ position: type,
1092
+ index1: i,
1093
+ index2: index
1094
+ });
1095
+ }
1096
+ }, index);
1097
+ }
1098
+ if (item.type === _types.AtomsTypeEnum.CONSTANT) {
1099
+ return (0, _jsxRuntime.jsx)("div", {
1100
+ className: (0, _classnames["default"])("Sqb-TableName", {
1101
+ notSelected: !item.val
1102
+ }),
1103
+ "v-position": type,
1104
+ "v-index": i,
1105
+ "v-index2": index,
1106
+ "v-val": item.val,
1107
+ onClick: selectConstant,
1108
+ children: item.val ? item.val : (0, _locale.__)('SqlQueryBuilder.pickConstant')
1109
+ }, index);
1110
+ }
1111
+ });
1112
+ }
1113
+ };
728
1114
  return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
729
1115
  className: (0, _classnames["default"])("Sqb-item"),
730
1116
  children: (0, _jsxRuntime.jsxs)("div", {
@@ -739,8 +1125,11 @@ var JoinData = function JoinData(props) {
739
1125
  children: (0, _jsxRuntime.jsxs)("div", {
740
1126
  className: (0, _classnames["default"])("Sqb-NotebookCell"),
741
1127
  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)
1128
+ className: (0, _classnames["default"])("Sqb-TableName", {
1129
+ notSelected: !table1Selected
1130
+ }),
1131
+ onClick: selectLeftTable,
1132
+ children: getTable1Name() || (0, _locale.__)('SqlQueryBuilder.pickTable')
744
1133
  }), (0, _jsxRuntime.jsx)("div", {
745
1134
  onClick: selectJoin,
746
1135
  children: meta.joinType === _enum.JoinEnum.left ? (0, _jsxRuntime.jsx)(_icons.LeftJoinIcon, {
@@ -814,210 +1203,191 @@ var JoinData = function JoinData(props) {
814
1203
  icon: (0, _jsxRuntime.jsx)(_pandoraIcons.RelatedWork, {}),
815
1204
  onClick: switchSubQuery
816
1205
  })
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, {}),
1206
+ }), ((_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) {
1207
+ if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
1208
+ return (0, _jsxRuntime.jsxs)("div", {
1209
+ className: (0, _classnames["default"])("Sqb-where block"),
1210
+ children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
1211
+ className: 'ml-2 mr-4 text-gray-500',
1212
+ children: "on"
1213
+ }), renderItem(v.lhs, ExpressionsEnum.LEFT, i), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1214
+ title: (0, _locale.__)('SqlQueryBuilder.switch'),
1215
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1216
+ disabled: meta.readonly,
1217
+ primary: true,
1218
+ ghost: true,
1219
+ className: 'mr-2 operator-icon',
1220
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.Repeat, {}),
1221
+ onClick: function onClick(e) {
1222
+ onChangeType(e, {
1223
+ position: ExpressionsEnum.LEFT,
1224
+ index: i
1225
+ });
1226
+ }
1227
+ })
1228
+ }), (0, _jsxRuntime.jsx)("span", {
1229
+ className: 'mr-2 text-gray-500',
1230
+ children: "="
1231
+ }), renderItem(v.rhs, ExpressionsEnum.RIGHT, i), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1232
+ title: (0, _locale.__)('SqlQueryBuilder.switch'),
1233
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1234
+ disabled: meta.readonly,
1235
+ primary: true,
1236
+ ghost: true,
1237
+ className: 'mr-2 operator-icon',
1238
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.Repeat, {}),
1239
+ onClick: function onClick(e) {
1240
+ onChangeType(e, {
1241
+ position: ExpressionsEnum.RIGHT,
1242
+ index: i
1243
+ });
1244
+ }
1245
+ })
1246
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1247
+ title: (0, _locale.__)('SqlQueryBuilder.add'),
1248
+ children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1249
+ trigger: ['click'],
1250
+ onChange: function onChange(key) {
1251
+ addExpression(key, i);
1252
+ },
1253
+ droplist: menuTypes,
1254
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1255
+ disabled: meta.readonly,
1256
+ primary: true,
1257
+ ghost: true,
1258
+ className: 'mr-2 operator-icon',
1259
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfPlus, {})
1260
+ })
1261
+ })
1262
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1263
+ title: (0, _locale.__)('SqlQueryBuilder.del'),
1264
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1265
+ disabled: meta.readonly,
1266
+ danger: true,
1267
+ className: 'mr-2 operator-icon',
1268
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
1269
+ onClick: function onClick() {
1270
+ var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
1271
+ var newMeta = store.metaList[groupIndex].list.slice();
1272
+ newMeta[index].expressions.splice(i, 1);
1273
+ store.setMeta(newMeta, groupIndex);
1274
+ }
1275
+ })
1276
+ })]
1277
+ }, i);
1278
+ }
1279
+ if (v.type === _types.AtomsTypeEnum.OPERATOR) {
1280
+ return (0, _jsxRuntime.jsxs)("div", {
1281
+ className: (0, _classnames["default"])("Sqb-where block"),
1282
+ children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
1283
+ className: 'ml-2 mr-4 text-gray-500',
1284
+ children: "on"
1285
+ }), (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1286
+ trigger: ['click'],
1287
+ onChange: function onChange(key) {
1288
+ changeOperator(key, i);
1289
+ },
1290
+ droplist: menuOperator,
1291
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1292
+ className: 'ml-2 mr-4 text-gray-500',
1293
+ type: 'link',
1294
+ children: v.val
1295
+ })
1296
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1297
+ title: (0, _locale.__)('SqlQueryBuilder.add'),
1298
+ children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1299
+ trigger: ['click'],
1300
+ onChange: function onChange(key) {
1301
+ addExpression(key, i);
1302
+ },
1303
+ droplist: menuTypes,
1304
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1305
+ disabled: meta.readonly,
1306
+ primary: true,
1307
+ ghost: true,
1308
+ className: 'mr-2 operator-icon',
1309
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfPlus, {})
1310
+ })
1311
+ })
1312
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1313
+ title: (0, _locale.__)('SqlQueryBuilder.del'),
1314
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1315
+ disabled: meta.readonly,
1316
+ danger: true,
1317
+ className: 'mr-2 operator-icon',
1318
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
1319
+ onClick: function onClick() {
1320
+ var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
1321
+ var newMeta = store.metaList[groupIndex].list.slice();
1322
+ newMeta[index].expressions.splice(i, 1);
1323
+ store.setMeta(newMeta, groupIndex);
1324
+ }
1325
+ })
1326
+ })]
1327
+ }, i);
1328
+ }
1329
+ if (v.type === _types.AtomsTypeEnum.EXPRESSION) {
1330
+ return (0, _jsxRuntime.jsxs)("div", {
1331
+ className: (0, _classnames["default"])("Sqb-where block"),
1332
+ children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
1333
+ className: 'ml-2 mr-4 text-gray-500',
1334
+ children: "on"
1335
+ }), (0, _jsxRuntime.jsx)("div", {
1336
+ className: (0, _classnames["default"])("Sqb-TableName purple-name", {
1337
+ notSelected: !v.quotes
1338
+ }),
936
1339
  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, {
1340
+ return changeExpression(e, i);
1341
+ },
1342
+ children: v.quotes || (0, _locale.__)('joinData.selectExpression')
1343
+ }, i), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1344
+ title: (0, _locale.__)('SqlQueryBuilder.add'),
1345
+ children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1346
+ trigger: ['click'],
1347
+ onChange: function onChange(key) {
1348
+ addExpression(key, i);
1349
+ },
1350
+ droplist: menuTypes,
1351
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1352
+ disabled: meta.readonly,
1353
+ primary: true,
1354
+ ghost: true,
1355
+ className: 'mr-2 operator-icon',
1356
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfPlus, {})
1357
+ })
1358
+ })
1359
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1360
+ title: (0, _locale.__)('SqlQueryBuilder.del'),
1361
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1362
+ disabled: meta.readonly,
1363
+ danger: true,
1364
+ className: 'mr-2 operator-icon',
1365
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
1366
+ onClick: function onClick() {
1367
+ var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
1368
+ var newMeta = store.metaList[groupIndex].list.slice();
1369
+ newMeta[index].expressions.splice(i, 1);
1370
+ store.setMeta(newMeta, groupIndex);
1371
+ }
1372
+ })
1373
+ })]
1374
+ }, i);
1375
+ }
1376
+ })), ((_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
1377
  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
- }
1378
+ children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1379
+ trigger: ['click'],
1380
+ onChange: function onChange(key) {
1381
+ addExpression(key);
1382
+ },
1383
+ droplist: menuTypes,
1384
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
1385
+ disabled: meta.readonly,
1386
+ primary: true,
1387
+ ghost: true,
1388
+ className: 'mr-2 operator-icon',
1389
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfPlus, {})
1390
+ })
1021
1391
  })
1022
1392
  }), columnsSelected && store.showFields && (0, _jsxRuntime.jsx)("div", {
1023
1393
  className: "Sqb-TableColumns",