@gingkoo/pandora-metabase 0.0.23 → 0.0.24
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.
package/lib/es/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @gingkoo/pandora-metabase v0.0.
|
|
2
|
+
* @gingkoo/pandora-metabase v0.0.24
|
|
3
3
|
*/
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import React__default, { useContext, createContext, useState, useRef, useMemo, forwardRef, useImperativeHandle, useEffect } from 'react';
|
|
7
7
|
import cx from 'classnames';
|
|
8
|
-
import {
|
|
9
|
-
import { DatePicker,
|
|
8
|
+
import { Button, Tooltip, Input, Modal2, Toast } from '@gingkoo/pandora';
|
|
9
|
+
import { DatePicker, Dropdown, Tooltip as Tooltip$1, InputNumber, Button as Button$1 } from 'antd';
|
|
10
10
|
import { DownOutlined, LoadingOutlined } from '@ant-design/icons';
|
|
11
11
|
import Styled from 'styled-components';
|
|
12
12
|
import _$2 from 'underscore';
|
|
13
13
|
import ReactDOM from 'react-dom';
|
|
14
14
|
import ReactDOMServer from 'react-dom/server';
|
|
15
15
|
import cloneDeep from 'lodash/cloneDeep';
|
|
16
|
+
import { Repeat, RelatedWork, FfPlus, FfLine } from '@gingkoo/pandora-icons';
|
|
16
17
|
import moment from 'dayjs';
|
|
17
|
-
import { RelatedWork, Repeat, FfPlus, FfLine } from '@gingkoo/pandora-icons';
|
|
18
18
|
import isEqual from 'lodash/isEqual';
|
|
19
19
|
|
|
20
20
|
// 创建 Context
|
|
@@ -251,6 +251,7 @@ const useStore = () => {
|
|
|
251
251
|
type: TypeEnum.data,
|
|
252
252
|
table: {
|
|
253
253
|
name: '',
|
|
254
|
+
id: '',
|
|
254
255
|
alias: '',
|
|
255
256
|
datasourceId: '',
|
|
256
257
|
datasourceName: ''
|
|
@@ -272,7 +273,13 @@ const useStore = () => {
|
|
|
272
273
|
node: null,
|
|
273
274
|
content: null
|
|
274
275
|
}); //弹窗
|
|
276
|
+
const [popupData2, setPopup2] = useState({
|
|
277
|
+
visible: false,
|
|
278
|
+
node: null,
|
|
279
|
+
content: null
|
|
280
|
+
}); //弹窗
|
|
275
281
|
const [popupClosable, setClosable] = useState(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭
|
|
282
|
+
const [popupClosable2, setClosable2] = useState(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭
|
|
276
283
|
// const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
|
|
277
284
|
// async () => {},
|
|
278
285
|
// ); //fn
|
|
@@ -385,6 +392,7 @@ const useStore = () => {
|
|
|
385
392
|
metaKey += 1;
|
|
386
393
|
if (type === TypeEnum.joinData) {
|
|
387
394
|
let table1 = {
|
|
395
|
+
id: '',
|
|
388
396
|
name: '',
|
|
389
397
|
alias: '',
|
|
390
398
|
datasourceId: '',
|
|
@@ -410,6 +418,7 @@ const useStore = () => {
|
|
|
410
418
|
table1,
|
|
411
419
|
table2: {
|
|
412
420
|
name: '',
|
|
421
|
+
id: '',
|
|
413
422
|
alias: '',
|
|
414
423
|
datasourceId: '',
|
|
415
424
|
datasourceName: '',
|
|
@@ -463,6 +472,7 @@ const useStore = () => {
|
|
|
463
472
|
type: TypeEnum.permissionTable,
|
|
464
473
|
table: {
|
|
465
474
|
name: '',
|
|
475
|
+
id: '',
|
|
466
476
|
alias: '',
|
|
467
477
|
datasourceId: '',
|
|
468
478
|
datasourceName: ''
|
|
@@ -540,8 +550,12 @@ const useStore = () => {
|
|
|
540
550
|
setMeta,
|
|
541
551
|
popupData,
|
|
542
552
|
setPopup,
|
|
553
|
+
popupData2,
|
|
554
|
+
setPopup2,
|
|
543
555
|
popupClosable,
|
|
544
556
|
setClosable,
|
|
557
|
+
popupClosable2,
|
|
558
|
+
setClosable2,
|
|
545
559
|
fetchDatasetFn: fetchDatasetFn.current,
|
|
546
560
|
setFetchDatasetFn,
|
|
547
561
|
fetchColumnsFn: fetchColumnsFn.current,
|
|
@@ -3869,6 +3883,7 @@ const SelectJoinColumn = ({
|
|
|
3869
3883
|
let {
|
|
3870
3884
|
alias: tableAlias,
|
|
3871
3885
|
table,
|
|
3886
|
+
tableId,
|
|
3872
3887
|
columns,
|
|
3873
3888
|
open,
|
|
3874
3889
|
searchText,
|
|
@@ -3966,6 +3981,7 @@ const SelectJoinColumn = ({
|
|
|
3966
3981
|
return onGroup({
|
|
3967
3982
|
...v,
|
|
3968
3983
|
table,
|
|
3984
|
+
tableId,
|
|
3969
3985
|
alias: tableAlias,
|
|
3970
3986
|
name,
|
|
3971
3987
|
database_type,
|
|
@@ -3977,6 +3993,7 @@ const SelectJoinColumn = ({
|
|
|
3977
3993
|
typeof onSelect === 'function' && onSelect({
|
|
3978
3994
|
...v,
|
|
3979
3995
|
table,
|
|
3996
|
+
tableId,
|
|
3980
3997
|
alias: tableAlias,
|
|
3981
3998
|
name,
|
|
3982
3999
|
database_type,
|
|
@@ -4008,7 +4025,7 @@ const SelectJoinColumn = ({
|
|
|
4008
4025
|
});
|
|
4009
4026
|
};
|
|
4010
4027
|
|
|
4011
|
-
var css_248z$4 = ".filter-page {\n min-width: 300px;\n}\n.filter-page .header {\n margin-bottom: 0.5rem;\n padding: 0.5rem;\n display: flex;\n align-items: center;\n color: #949aab;\n border-bottom: 1px solid #f0f0f0;\n}\n.filter-page .header .left-info {\n padding: 0.5rem 0.5rem 0.5rem 0;\n display: flex;\n align-items: center;\n}\n.filter-page .header .left-info span {\n font-weight: 900;\n font-size: 16px;\n color: #4c5773;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-family: 'Lato', sans-serif;\n}\n.filter-page .header .left-info span svg {\n margin-right: 0.5rem;\n}\n.filter-page .header .left-info span:hover {\n color: #509ee3;\n}\n.filter-page .header .right-info {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n.filter-page .content {\n padding: 0.5rem;\n}\n.filter-page .content .w_300 {\n width: 300px;\n}\n.filter-page .content .input {\n border: 1px solid #f0f0f0;\n font-size: 16px;\n color: #4c5773;\n border-radius: 4px;\n transition: border 0.3s linear;\n padding: 9px 20px;\n
|
|
4028
|
+
var css_248z$4 = ".filter-page {\n min-width: 300px;\n}\n.filter-page .header {\n margin-bottom: 0.5rem;\n padding: 0.5rem;\n display: flex;\n align-items: center;\n color: #949aab;\n border-bottom: 1px solid #f0f0f0;\n}\n.filter-page .header .left-info {\n padding: 0.5rem 0.5rem 0.5rem 0;\n display: flex;\n align-items: center;\n}\n.filter-page .header .left-info span {\n font-weight: 900;\n font-size: 16px;\n color: #4c5773;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-family: 'Lato', sans-serif;\n}\n.filter-page .header .left-info span svg {\n margin-right: 0.5rem;\n}\n.filter-page .header .left-info span:hover {\n color: #509ee3;\n}\n.filter-page .header .right-info {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n.filter-page .content {\n padding: 0.5rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.filter-page .content_l {\n flex: 1;\n}\n.filter-page .content .operator-icon {\n font-size: 18px !important;\n}\n.filter-page .content .Sqb-TableName {\n border: 2px solid transparent;\n border-radius: 6px;\n color: white;\n background-color: #509ee3;\n transition: background 300ms linear 0s;\n box-sizing: border-box;\n padding: 8px;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n cursor: pointer;\n}\n.filter-page .content .Sqb-TableName-input {\n margin-bottom: 9px;\n margin-right: 8px;\n padding: 9px;\n}\n.filter-page .content .Sqb-TableName::selection {\n color: #ffffff;\n background-color: #d489ac;\n text-shadow: none;\n}\n.filter-page .content .Sqb-TableName:hover {\n background-color: rgba(80, 158, 227, 0.8);\n}\n.filter-page .content .Sqb-TableName.noClick {\n cursor: default;\n}\n.filter-page .content .Sqb-TableName.noClick:hover {\n background-color: #509ee3;\n}\n.filter-page .content .Sqb-TableName.notSelected {\n border: 2px solid rgba(80, 158, 227, 0.25);\n color: #509ee3;\n background-color: transparent;\n}\n.filter-page .content .Sqb-TableName.notSelected:hover {\n border-color: rgba(80, 158, 227, 0.8);\n}\n.filter-page .content .Sqb-TableName.purple-name {\n color: white;\n background-color: #7172ad;\n}\n.filter-page .content .Sqb-TableName.purple-name:hover {\n background-color: rgba(113, 114, 173, 0.8);\n}\n.filter-page .content .Sqb-TableName.purple-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.filter-page .content .Sqb-TableName.purple-name.notSelected {\n border: 2px solid rgba(113, 114, 173, 0.25);\n color: #7172ad;\n background-color: transparent;\n}\n.filter-page .content .Sqb-TableName.purple-name.notSelected:hover {\n border-color: rgba(113, 114, 173, 0.8);\n}\n.filter-page .content .Sqb-TableName.gray-name {\n color: white;\n background-color: #93a1ab;\n}\n.filter-page .content .Sqb-TableName.gray-name:hover {\n background-color: rgba(147, 161, 171, 0.8);\n}\n.filter-page .content .Sqb-TableName.gray-name svg.sort-arrow {\n margin-right: 0.5rem;\n}\n.filter-page .content .Sqb-TableName.gray-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.filter-page .content .Sqb-TableName.green-name {\n color: white;\n background-color: #88bf4d;\n}\n.filter-page .content .Sqb-TableName.green-name:hover {\n background-color: rgba(136, 191, 77, 0.8);\n}\n.filter-page .content .Sqb-TableName.green-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.filter-page .content .Sqb-TableName.green-name.notSelected {\n border: 2px solid rgba(136, 191, 77, 0.25);\n color: #88bf4d;\n background-color: transparent;\n}\n.filter-page .content .Sqb-TableName.green-name.notSelected:hover {\n border-color: rgba(136, 191, 77, 0.8);\n}\n.filter-page .content .w_300 {\n width: 300px;\n}\n.filter-page .content .input {\n border: 1px solid #f0f0f0;\n font-size: 16px;\n color: #4c5773;\n border-radius: 4px;\n transition: border 0.3s linear;\n padding: 9px 20px;\n height: 40px;\n outline: none;\n}\n.filter-page .content .input::placeholder {\n color: #ccc;\n}\n.filter-page .content .input + .input {\n margin-top: 10px;\n}\n.filter-page .content .input.inline {\n display: inline-block;\n flex: 1;\n margin-right: 15px;\n padding: 5px 20px;\n}\n.filter-page .footer {\n padding: 0 0.5rem 0.5rem;\n display: flex;\n align-items: center;\n}\n.filter-page .footer .button--purple {\n margin-left: auto;\n flex-shrink: 0;\n color: white;\n background-color: #7172ad;\n border: 1px solid #7172ad;\n padding: 6px 14px;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n cursor: pointer;\n}\n.filter-page .footer .button--purple.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.filter-page .footer .button--purple:hover {\n color: white;\n background-color: rgba(113, 114, 173, 0.88);\n border-color: rgba(113, 114, 173, 0.88);\n}\n.operator-btn {\n height: 38px !important;\n padding: 8px !important;\n text-align: left !important;\n display: flex !important;\n align-items: center !important;\n}\n.operator-btn > .anticon {\n margin-left: auto !important;\n}\n";
|
|
4012
4029
|
styleInject(css_248z$4);
|
|
4013
4030
|
|
|
4014
4031
|
const {
|
|
@@ -4029,9 +4046,15 @@ const SelectFilterColumn = ({
|
|
|
4029
4046
|
}) => {
|
|
4030
4047
|
const [curColumn, setCurColumn] = useState(value);
|
|
4031
4048
|
const [condition, setCondition] = useState(value.condition);
|
|
4049
|
+
const [isField, setIsField] = useState(value.isField || false);
|
|
4032
4050
|
const [curVal, setVal] = useState(value.val);
|
|
4051
|
+
const store = useStore$1();
|
|
4052
|
+
let table2Selected = Boolean(curColumn.table2?.name);
|
|
4033
4053
|
const disabled = useMemo(() => {
|
|
4034
4054
|
if (!condition) return true;
|
|
4055
|
+
if (curColumn.table2?.id && ~['是', '不是'].indexOf(condition)) {
|
|
4056
|
+
return false;
|
|
4057
|
+
}
|
|
4035
4058
|
if (~['为空', '不为空', '是空的', '不是空的'].indexOf(condition)) {
|
|
4036
4059
|
return false;
|
|
4037
4060
|
} else if (~['前', '下一个', '介于之间'].indexOf(condition)) {
|
|
@@ -4042,11 +4065,11 @@ const SelectFilterColumn = ({
|
|
|
4042
4065
|
return false;
|
|
4043
4066
|
}
|
|
4044
4067
|
return true;
|
|
4045
|
-
}, [curVal, condition]);
|
|
4068
|
+
}, [curVal, condition, curColumn]);
|
|
4046
4069
|
useEffect(() => {
|
|
4047
4070
|
didUpdate?.();
|
|
4048
4071
|
}, [condition]);
|
|
4049
|
-
function generateQuotes(val) {
|
|
4072
|
+
function generateQuotes(val, curColumn) {
|
|
4050
4073
|
let [firstVal = '', secondVal = ''] = val;
|
|
4051
4074
|
let quotes = '';
|
|
4052
4075
|
if (condition === '以...开始') {
|
|
@@ -4132,17 +4155,27 @@ const SelectFilterColumn = ({
|
|
|
4132
4155
|
晚于: 'filter.laterThan',
|
|
4133
4156
|
是空的: 'filter.isEmpty'
|
|
4134
4157
|
}[condition]);
|
|
4135
|
-
|
|
4158
|
+
if (curColumn.table2?.id) {
|
|
4159
|
+
const {
|
|
4160
|
+
datasourceName,
|
|
4161
|
+
name
|
|
4162
|
+
} = curColumn.table2;
|
|
4163
|
+
quotes = curColumn.name + ' ' + cond + ' ' + datasourceName + '.' + name;
|
|
4164
|
+
} else {
|
|
4165
|
+
quotes = curColumn.name + ' ' + cond + ' ' + firstVal;
|
|
4166
|
+
}
|
|
4136
4167
|
}
|
|
4137
4168
|
return quotes;
|
|
4138
4169
|
}
|
|
4139
4170
|
function addFilter() {
|
|
4140
4171
|
if (disabled) return void 0;
|
|
4141
|
-
let quotes = generateQuotes(curVal);
|
|
4172
|
+
let quotes = generateQuotes(curVal, curColumn);
|
|
4142
4173
|
typeof onChange === 'function' && onChange({
|
|
4143
4174
|
...curColumn,
|
|
4144
4175
|
val: curVal,
|
|
4145
4176
|
// 选择结果 如果有两个 长度就为2
|
|
4177
|
+
isField: isField,
|
|
4178
|
+
//是否是选择字段
|
|
4146
4179
|
condition,
|
|
4147
4180
|
// 选择条件
|
|
4148
4181
|
quotes,
|
|
@@ -4154,11 +4187,17 @@ const SelectFilterColumn = ({
|
|
|
4154
4187
|
setCurColumn({
|
|
4155
4188
|
table: '',
|
|
4156
4189
|
// 表名
|
|
4190
|
+
tableId: '',
|
|
4191
|
+
// 表名
|
|
4157
4192
|
alias: '',
|
|
4158
4193
|
// 表的别名
|
|
4159
4194
|
name: '',
|
|
4160
4195
|
// 字段名
|
|
4196
|
+
id: '',
|
|
4197
|
+
// 字段名
|
|
4161
4198
|
sql: '',
|
|
4199
|
+
datasourceId: '',
|
|
4200
|
+
datasourceName: '',
|
|
4162
4201
|
database_type: '' // 字段类型
|
|
4163
4202
|
});
|
|
4164
4203
|
setCondition('');
|
|
@@ -4237,20 +4276,26 @@ const SelectFilterColumn = ({
|
|
|
4237
4276
|
return jsx("div", {
|
|
4238
4277
|
children: jsx(Dropdown, {
|
|
4239
4278
|
trigger: ['click'],
|
|
4240
|
-
|
|
4279
|
+
menu: {
|
|
4280
|
+
items: [{
|
|
4281
|
+
key: '天',
|
|
4282
|
+
label: __('filter.day')
|
|
4283
|
+
}, {
|
|
4284
|
+
key: '周',
|
|
4285
|
+
label: __('filter.week')
|
|
4286
|
+
}, {
|
|
4287
|
+
key: '月',
|
|
4288
|
+
label: __('filter.month')
|
|
4289
|
+
}, {
|
|
4290
|
+
key: '年',
|
|
4291
|
+
label: __('filter.year')
|
|
4292
|
+
}],
|
|
4241
4293
|
onClick: ({
|
|
4242
4294
|
key
|
|
4243
|
-
}) =>
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
children: __('filter.week')
|
|
4248
|
-
}, '\u5468'), jsx(Menu.Item, {
|
|
4249
|
-
children: __('filter.month')
|
|
4250
|
-
}, '\u6708'), jsx(Menu.Item, {
|
|
4251
|
-
children: __('filter.year')
|
|
4252
|
-
}, '\u5E74')]
|
|
4253
|
-
}),
|
|
4295
|
+
}) => {
|
|
4296
|
+
setVal([key]);
|
|
4297
|
+
}
|
|
4298
|
+
},
|
|
4254
4299
|
children: jsxs(Button, {
|
|
4255
4300
|
className: 'operator-btn',
|
|
4256
4301
|
style: {
|
|
@@ -4274,28 +4319,34 @@ const SelectFilterColumn = ({
|
|
|
4274
4319
|
}
|
|
4275
4320
|
}), jsx(Dropdown, {
|
|
4276
4321
|
trigger: ['click'],
|
|
4277
|
-
|
|
4322
|
+
menu: {
|
|
4323
|
+
items: [{
|
|
4324
|
+
key: '分',
|
|
4325
|
+
label: __('filter.minute')
|
|
4326
|
+
}, {
|
|
4327
|
+
key: '时',
|
|
4328
|
+
label: __('filter.hour')
|
|
4329
|
+
}, {
|
|
4330
|
+
key: '天',
|
|
4331
|
+
label: __('filter.day')
|
|
4332
|
+
}, {
|
|
4333
|
+
key: '周',
|
|
4334
|
+
label: __('filter.week')
|
|
4335
|
+
}, {
|
|
4336
|
+
key: '月',
|
|
4337
|
+
label: __('filter.month')
|
|
4338
|
+
}, {
|
|
4339
|
+
key: '年',
|
|
4340
|
+
label: __('filter.year')
|
|
4341
|
+
}],
|
|
4278
4342
|
onClick: ({
|
|
4279
4343
|
key
|
|
4280
4344
|
}) => {
|
|
4281
4345
|
let newVal = curVal.slice();
|
|
4282
4346
|
newVal[1] = key;
|
|
4283
4347
|
setVal(newVal);
|
|
4284
|
-
}
|
|
4285
|
-
|
|
4286
|
-
children: __('filter.minute')
|
|
4287
|
-
}, '\u5206'), jsx(Menu.Item, {
|
|
4288
|
-
children: __('filter.hour')
|
|
4289
|
-
}, '\u65F6'), jsx(Menu.Item, {
|
|
4290
|
-
children: __('filter.day')
|
|
4291
|
-
}, '\u5929'), jsx(Menu.Item, {
|
|
4292
|
-
children: __('filter.week')
|
|
4293
|
-
}, '\u5468'), jsx(Menu.Item, {
|
|
4294
|
-
children: __('filter.month')
|
|
4295
|
-
}, '\u6708'), jsx(Menu.Item, {
|
|
4296
|
-
children: __('filter.year')
|
|
4297
|
-
}, '\u5E74')]
|
|
4298
|
-
}),
|
|
4348
|
+
}
|
|
4349
|
+
},
|
|
4299
4350
|
children: jsxs(Button, {
|
|
4300
4351
|
className: 'operator-btn',
|
|
4301
4352
|
style: {
|
|
@@ -4339,42 +4390,67 @@ const SelectFilterColumn = ({
|
|
|
4339
4390
|
}
|
|
4340
4391
|
return null;
|
|
4341
4392
|
}
|
|
4393
|
+
const onRepeat = () => {
|
|
4394
|
+
setIsField(!isField);
|
|
4395
|
+
setVal([]);
|
|
4396
|
+
setCurColumn({
|
|
4397
|
+
...curColumn,
|
|
4398
|
+
table2: null
|
|
4399
|
+
});
|
|
4400
|
+
};
|
|
4342
4401
|
const nextPage = !!curColumn.name;
|
|
4402
|
+
const selectTable = e => {
|
|
4403
|
+
store.setClosable(false);
|
|
4404
|
+
store.setPopup2({
|
|
4405
|
+
visible: true,
|
|
4406
|
+
node: e.currentTarget,
|
|
4407
|
+
content: jsx(SelectJoinColumn, {
|
|
4408
|
+
data: [..._data],
|
|
4409
|
+
value: value,
|
|
4410
|
+
theme: ColumnsPopupThemeEnum.purple,
|
|
4411
|
+
didUpdate: didUpdate,
|
|
4412
|
+
onSelect: record => {
|
|
4413
|
+
setCurColumn({
|
|
4414
|
+
...curColumn,
|
|
4415
|
+
table2: record
|
|
4416
|
+
});
|
|
4417
|
+
store.setPopup2({
|
|
4418
|
+
visible: false
|
|
4419
|
+
});
|
|
4420
|
+
store.setClosable(true);
|
|
4421
|
+
}
|
|
4422
|
+
})
|
|
4423
|
+
});
|
|
4424
|
+
};
|
|
4343
4425
|
if (nextPage) {
|
|
4344
4426
|
let {
|
|
4345
4427
|
type,
|
|
4346
4428
|
conditions
|
|
4347
4429
|
} = getData(curColumn);
|
|
4348
|
-
const menu =
|
|
4349
|
-
|
|
4350
|
-
key
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
早于: 'filter.earlierThan',
|
|
4373
|
-
晚于: 'filter.laterThan',
|
|
4374
|
-
是空的: 'filter.isEmpty'
|
|
4375
|
-
}[v])
|
|
4376
|
-
}, v);
|
|
4377
|
-
})
|
|
4430
|
+
const menu = conditions.map(v => {
|
|
4431
|
+
return {
|
|
4432
|
+
key: v,
|
|
4433
|
+
label: __({
|
|
4434
|
+
等于: 'filter.equal',
|
|
4435
|
+
不等于: 'filter.notEqual',
|
|
4436
|
+
大于: 'filter.greaterThan',
|
|
4437
|
+
小于: 'filter.lessThan',
|
|
4438
|
+
介于之间: 'filter.inBetween',
|
|
4439
|
+
大于或等于: 'filter.greaterThanOrEqualTo',
|
|
4440
|
+
小于或等于: 'filter.lessThanOrEqualTo',
|
|
4441
|
+
为空: 'filter.empty',
|
|
4442
|
+
不为空: 'filter.notEmpty',
|
|
4443
|
+
是: 'filter.is',
|
|
4444
|
+
不是: 'filter.isNo',
|
|
4445
|
+
包含: 'filter.contain',
|
|
4446
|
+
不包含: 'filter.notInclude',
|
|
4447
|
+
'以...开始': 'filter.startWith',
|
|
4448
|
+
'以...结束': 'filter.endWith',
|
|
4449
|
+
早于: 'filter.earlierThan',
|
|
4450
|
+
晚于: 'filter.laterThan',
|
|
4451
|
+
是空的: 'filter.isEmpty'
|
|
4452
|
+
}[v])
|
|
4453
|
+
};
|
|
4378
4454
|
});
|
|
4379
4455
|
return jsxs("div", {
|
|
4380
4456
|
className: 'filter-page',
|
|
@@ -4389,7 +4465,17 @@ const SelectFilterColumn = ({
|
|
|
4389
4465
|
}), jsx("div", {
|
|
4390
4466
|
className: 'right-info',
|
|
4391
4467
|
children: jsx(Dropdown, {
|
|
4392
|
-
|
|
4468
|
+
menu: {
|
|
4469
|
+
items: menu,
|
|
4470
|
+
onClick: ({
|
|
4471
|
+
key
|
|
4472
|
+
}) => {
|
|
4473
|
+
setDefaultVal(key);
|
|
4474
|
+
}
|
|
4475
|
+
},
|
|
4476
|
+
// dropdownRender={() => {
|
|
4477
|
+
// return menu;
|
|
4478
|
+
// }}
|
|
4393
4479
|
trigger: ['click'],
|
|
4394
4480
|
children: jsxs(Button, {
|
|
4395
4481
|
className: 'operator-btn',
|
|
@@ -4419,9 +4505,27 @@ const SelectFilterColumn = ({
|
|
|
4419
4505
|
})
|
|
4420
4506
|
})
|
|
4421
4507
|
})]
|
|
4422
|
-
}),
|
|
4508
|
+
}), jsxs("div", {
|
|
4423
4509
|
className: 'content',
|
|
4424
|
-
children:
|
|
4510
|
+
children: [isField ? jsx("div", {
|
|
4511
|
+
className: cx(`Sqb-TableName`, {
|
|
4512
|
+
notSelected: !table2Selected
|
|
4513
|
+
}),
|
|
4514
|
+
onClick: selectTable,
|
|
4515
|
+
children: table2Selected ? `${curColumn.table2?.datasourceName}.${curColumn.table2?.name}` : __('SqlQueryBuilder.pickTable')
|
|
4516
|
+
}) : jsx("div", {
|
|
4517
|
+
className: 'content_l',
|
|
4518
|
+
children: renderFilter(type, condition)
|
|
4519
|
+
}), ~['是', '不是'].indexOf(condition) ? jsx(Tooltip, {
|
|
4520
|
+
title: __('SqlQueryBuilder.switch'),
|
|
4521
|
+
children: jsx(Button, {
|
|
4522
|
+
primary: true,
|
|
4523
|
+
ghost: true,
|
|
4524
|
+
className: 'ml-2 operator-icon',
|
|
4525
|
+
icon: jsx(Repeat, {}),
|
|
4526
|
+
onClick: onRepeat
|
|
4527
|
+
})
|
|
4528
|
+
}) : '']
|
|
4425
4529
|
}), jsx("div", {
|
|
4426
4530
|
className: 'footer',
|
|
4427
4531
|
children: jsx("div", {
|
|
@@ -4633,7 +4737,7 @@ const SelectSummarize = ({
|
|
|
4633
4737
|
})
|
|
4634
4738
|
}), jsx("div", {
|
|
4635
4739
|
onClick: e => e.stopPropagation(),
|
|
4636
|
-
children: jsx(Tooltip, {
|
|
4740
|
+
children: jsx(Tooltip$1, {
|
|
4637
4741
|
placement: 'rightTop',
|
|
4638
4742
|
title: __(localeMap[v.tip]),
|
|
4639
4743
|
children: jsx("span", {
|
|
@@ -4752,6 +4856,7 @@ const SelectTable = ({
|
|
|
4752
4856
|
datasourceId: '',
|
|
4753
4857
|
datasourceName: '',
|
|
4754
4858
|
name: '',
|
|
4859
|
+
id: '',
|
|
4755
4860
|
alias: ''
|
|
4756
4861
|
});
|
|
4757
4862
|
}
|
|
@@ -4780,6 +4885,7 @@ const SelectTable = ({
|
|
|
4780
4885
|
datasourceId: v.datasourceId,
|
|
4781
4886
|
datasourceName: v.datasourceName,
|
|
4782
4887
|
name: '',
|
|
4888
|
+
id: '',
|
|
4783
4889
|
alias: ''
|
|
4784
4890
|
});
|
|
4785
4891
|
getTables(v.datasourceId);
|
|
@@ -5258,7 +5364,7 @@ const NextDom = props => {
|
|
|
5258
5364
|
const Header = props => {
|
|
5259
5365
|
return jsxs("div", {
|
|
5260
5366
|
className: `Sqb-item--text ${props.className || ''}`,
|
|
5261
|
-
children: [props.title, props.onClose && jsx(Tooltip, {
|
|
5367
|
+
children: [props.title, props.onClose && jsx(Tooltip$1, {
|
|
5262
5368
|
placement: 'bottom',
|
|
5263
5369
|
title: __('data.del'),
|
|
5264
5370
|
children: jsx(CloseIcon2, {
|
|
@@ -5386,6 +5492,7 @@ const JoinData = props => {
|
|
|
5386
5492
|
function selectTable(e) {
|
|
5387
5493
|
let value = {
|
|
5388
5494
|
name: meta.table2.name,
|
|
5495
|
+
id: meta.table2.id,
|
|
5389
5496
|
alias: meta.table2.alias,
|
|
5390
5497
|
datasourceId: meta.table2.datasourceId,
|
|
5391
5498
|
datasourceName: meta.table2.datasourceName
|
|
@@ -5433,6 +5540,7 @@ const JoinData = props => {
|
|
|
5433
5540
|
name: tableName,
|
|
5434
5541
|
alias,
|
|
5435
5542
|
column: '',
|
|
5543
|
+
column_id: '',
|
|
5436
5544
|
datasourceId: data.datasourceId,
|
|
5437
5545
|
datasourceName: data.datasourceName
|
|
5438
5546
|
};
|
|
@@ -5476,9 +5584,13 @@ const JoinData = props => {
|
|
|
5476
5584
|
let data = [];
|
|
5477
5585
|
let value = {
|
|
5478
5586
|
name: meta[type].column,
|
|
5587
|
+
id: meta[type].column_id,
|
|
5479
5588
|
table: meta[type].name,
|
|
5589
|
+
tableId: meta[type].id,
|
|
5480
5590
|
alias: meta[type].alias,
|
|
5481
|
-
database_type: ''
|
|
5591
|
+
database_type: '',
|
|
5592
|
+
datasourceId: '',
|
|
5593
|
+
datasourceName: ''
|
|
5482
5594
|
};
|
|
5483
5595
|
let {
|
|
5484
5596
|
ExistAboveGroupBy,
|
|
@@ -5489,6 +5601,7 @@ const JoinData = props => {
|
|
|
5489
5601
|
if (ExistAboveGroupBy) {
|
|
5490
5602
|
let _data = {
|
|
5491
5603
|
table: prevGroupBy.alias,
|
|
5604
|
+
tableId: prevGroupBy.alias,
|
|
5492
5605
|
alias: prevGroupBy.alias,
|
|
5493
5606
|
datasourceId: '',
|
|
5494
5607
|
datasourceName: '',
|
|
@@ -5525,6 +5638,7 @@ const JoinData = props => {
|
|
|
5525
5638
|
return {
|
|
5526
5639
|
alias: v.table2.alias,
|
|
5527
5640
|
table: v.table2.name,
|
|
5641
|
+
tableId: v.table2.id,
|
|
5528
5642
|
datasourceId: v.table2.datasourceId,
|
|
5529
5643
|
datasourceName: v.table2.datasourceName,
|
|
5530
5644
|
columns: v.columns
|
|
@@ -5537,6 +5651,7 @@ const JoinData = props => {
|
|
|
5537
5651
|
mo.push({
|
|
5538
5652
|
alias: v.table.alias,
|
|
5539
5653
|
table: v.table.name,
|
|
5654
|
+
tableId: v.table.id,
|
|
5540
5655
|
columns: v.columns,
|
|
5541
5656
|
datasourceId: v.table.datasourceId,
|
|
5542
5657
|
datasourceName: v.table.datasourceName
|
|
@@ -5545,6 +5660,7 @@ const JoinData = props => {
|
|
|
5545
5660
|
mo.push({
|
|
5546
5661
|
alias: v.table2.alias,
|
|
5547
5662
|
table: v.table2.name,
|
|
5663
|
+
tableId: v.table2.id,
|
|
5548
5664
|
columns: v.columns,
|
|
5549
5665
|
datasourceId: v.table2.datasourceId,
|
|
5550
5666
|
datasourceName: v.table2.datasourceName
|
|
@@ -5557,6 +5673,7 @@ const JoinData = props => {
|
|
|
5557
5673
|
data = [{
|
|
5558
5674
|
alias: meta.table2.alias,
|
|
5559
5675
|
table: meta.table2.name,
|
|
5676
|
+
tableId: meta.table2.id,
|
|
5560
5677
|
datasourceId: meta.table2.datasourceId,
|
|
5561
5678
|
datasourceName: meta.table2.datasourceName,
|
|
5562
5679
|
columns: meta.columns
|
|
@@ -5610,9 +5727,14 @@ const JoinData = props => {
|
|
|
5610
5727
|
let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;
|
|
5611
5728
|
let value = {
|
|
5612
5729
|
name: meta.expressions[_ind][type],
|
|
5730
|
+
id: meta.expressions[_ind][`${type}_id`],
|
|
5613
5731
|
table: meta[table_type].name,
|
|
5732
|
+
tableId: meta[table_type].id,
|
|
5614
5733
|
alias: meta[table_type].alias,
|
|
5615
|
-
database_type: ''
|
|
5734
|
+
database_type: '',
|
|
5735
|
+
datasourceId: meta[table_type].datasourceId,
|
|
5736
|
+
// 数据源id
|
|
5737
|
+
datasourceName: meta[table_type].datasourceName // 数据源名
|
|
5616
5738
|
};
|
|
5617
5739
|
let data = [];
|
|
5618
5740
|
let {
|
|
@@ -5624,6 +5746,7 @@ const JoinData = props => {
|
|
|
5624
5746
|
if (ExistAboveGroupBy) {
|
|
5625
5747
|
let _data = {
|
|
5626
5748
|
table: prevGroupBy.alias,
|
|
5749
|
+
tableId: prevGroupBy.alias,
|
|
5627
5750
|
alias: prevGroupBy.alias,
|
|
5628
5751
|
datasourceId: '',
|
|
5629
5752
|
datasourceName: '',
|
|
@@ -5660,6 +5783,7 @@ const JoinData = props => {
|
|
|
5660
5783
|
return {
|
|
5661
5784
|
alias: v.table2.alias,
|
|
5662
5785
|
table: v.table2.name,
|
|
5786
|
+
tableId: v.table2.id,
|
|
5663
5787
|
datasourceId: v.table2.datasourceId,
|
|
5664
5788
|
datasourceName: v.table2.datasourceName,
|
|
5665
5789
|
columns: v.columns
|
|
@@ -5672,6 +5796,7 @@ const JoinData = props => {
|
|
|
5672
5796
|
mo.push({
|
|
5673
5797
|
alias: v.table.alias,
|
|
5674
5798
|
table: v.table.name,
|
|
5799
|
+
tableId: v.table.id,
|
|
5675
5800
|
columns: v.columns,
|
|
5676
5801
|
datasourceId: v.table.datasourceId,
|
|
5677
5802
|
datasourceName: v.table.datasourceName
|
|
@@ -5680,6 +5805,7 @@ const JoinData = props => {
|
|
|
5680
5805
|
mo.push({
|
|
5681
5806
|
alias: v.table2.alias,
|
|
5682
5807
|
table: v.table2.name,
|
|
5808
|
+
tableId: v.table2.id,
|
|
5683
5809
|
columns: v.columns,
|
|
5684
5810
|
datasourceId: v.table2.datasourceId,
|
|
5685
5811
|
datasourceName: v.table2.datasourceName
|
|
@@ -5697,6 +5823,7 @@ const JoinData = props => {
|
|
|
5697
5823
|
data = [{
|
|
5698
5824
|
alias: meta.table2.alias,
|
|
5699
5825
|
table: meta.table2.name,
|
|
5826
|
+
tableId: meta.table2.id,
|
|
5700
5827
|
datasourceId: meta.table2.datasourceId,
|
|
5701
5828
|
datasourceName: meta.table2.datasourceName,
|
|
5702
5829
|
columns: meta.columns
|
|
@@ -5800,8 +5927,11 @@ const JoinData = props => {
|
|
|
5800
5927
|
newMeta[index].isSubquery = !newMeta[index].isSubquery;
|
|
5801
5928
|
newMeta[index].table2 = {
|
|
5802
5929
|
column: '',
|
|
5930
|
+
column_id: '',
|
|
5803
5931
|
name: '',
|
|
5804
5932
|
// 表名
|
|
5933
|
+
id: '',
|
|
5934
|
+
// 表名
|
|
5805
5935
|
alias: '',
|
|
5806
5936
|
// 表别名
|
|
5807
5937
|
datasourceName: '',
|
|
@@ -5861,9 +5991,9 @@ const JoinData = props => {
|
|
|
5861
5991
|
}),
|
|
5862
5992
|
onClick: selectTable,
|
|
5863
5993
|
children: table2Selected ? `${meta.table2.datasourceName}.${meta.table2.name}` : __('SqlQueryBuilder.pickTable')
|
|
5864
|
-
}), store._showSubquery && jsx(Tooltip
|
|
5994
|
+
}), store._showSubquery && jsx(Tooltip, {
|
|
5865
5995
|
title: __('SqlQueryBuilder.switchSubQuery'),
|
|
5866
|
-
children: jsx(Button
|
|
5996
|
+
children: jsx(Button, {
|
|
5867
5997
|
disabled: meta.readonly,
|
|
5868
5998
|
primary: meta.isSubquery,
|
|
5869
5999
|
ghost: true,
|
|
@@ -5902,7 +6032,7 @@ const JoinData = props => {
|
|
|
5902
6032
|
children: [jsx("span", {
|
|
5903
6033
|
className: 'ml-2 mr-4 text-gray-500',
|
|
5904
6034
|
children: v.operator
|
|
5905
|
-
}), v.left_isString ? jsx(Input
|
|
6035
|
+
}), v.left_isString ? jsx(Input, {
|
|
5906
6036
|
disabled: meta.readonly,
|
|
5907
6037
|
className: ':Sqb-TableName-input',
|
|
5908
6038
|
value: v.left_string,
|
|
@@ -5922,9 +6052,9 @@ const JoinData = props => {
|
|
|
5922
6052
|
"v-index": i,
|
|
5923
6053
|
onClick: selectMoreJoinColumn,
|
|
5924
6054
|
children: v.left_column ? v.left_column : __('SqlQueryBuilder.pickTable')
|
|
5925
|
-
}), jsx(Tooltip
|
|
6055
|
+
}), jsx(Tooltip, {
|
|
5926
6056
|
title: __('SqlQueryBuilder.switch'),
|
|
5927
|
-
children: jsx(Button
|
|
6057
|
+
children: jsx(Button, {
|
|
5928
6058
|
disabled: meta.readonly,
|
|
5929
6059
|
primary: true,
|
|
5930
6060
|
ghost: true,
|
|
@@ -5937,7 +6067,7 @@ const JoinData = props => {
|
|
|
5937
6067
|
}), jsx("span", {
|
|
5938
6068
|
className: 'mr-2 text-gray-500',
|
|
5939
6069
|
children: "="
|
|
5940
|
-
}), v.right_isString ? jsx(Input
|
|
6070
|
+
}), v.right_isString ? jsx(Input, {
|
|
5941
6071
|
disabled: meta.readonly,
|
|
5942
6072
|
className: ':Sqb-TableName-input',
|
|
5943
6073
|
value: v.right_string,
|
|
@@ -5957,9 +6087,9 @@ const JoinData = props => {
|
|
|
5957
6087
|
"v-index": i,
|
|
5958
6088
|
onClick: selectMoreJoinColumn,
|
|
5959
6089
|
children: v.right_column ? v.right_column : __('SqlQueryBuilder.pickTable')
|
|
5960
|
-
}), jsx(Tooltip
|
|
6090
|
+
}), jsx(Tooltip, {
|
|
5961
6091
|
title: __('SqlQueryBuilder.switch'),
|
|
5962
|
-
children: jsx(Button
|
|
6092
|
+
children: jsx(Button, {
|
|
5963
6093
|
disabled: meta.readonly,
|
|
5964
6094
|
primary: true,
|
|
5965
6095
|
ghost: true,
|
|
@@ -5969,9 +6099,9 @@ const JoinData = props => {
|
|
|
5969
6099
|
onIsString('right_isString', i);
|
|
5970
6100
|
}
|
|
5971
6101
|
})
|
|
5972
|
-
}), jsx(Tooltip
|
|
6102
|
+
}), jsx(Tooltip, {
|
|
5973
6103
|
title: __('SqlQueryBuilder.add'),
|
|
5974
|
-
children: jsx(Button
|
|
6104
|
+
children: jsx(Button, {
|
|
5975
6105
|
disabled: meta.readonly,
|
|
5976
6106
|
primary: true,
|
|
5977
6107
|
ghost: true,
|
|
@@ -5994,9 +6124,9 @@ const JoinData = props => {
|
|
|
5994
6124
|
store.setMeta(newMeta);
|
|
5995
6125
|
}
|
|
5996
6126
|
})
|
|
5997
|
-
}), meta.expressions.length > 0 && jsx(Tooltip
|
|
6127
|
+
}), meta.expressions.length > 0 && jsx(Tooltip, {
|
|
5998
6128
|
title: __('SqlQueryBuilder.del'),
|
|
5999
|
-
children: jsx(Button
|
|
6129
|
+
children: jsx(Button, {
|
|
6000
6130
|
disabled: meta.readonly,
|
|
6001
6131
|
danger: true,
|
|
6002
6132
|
className: 'mr-2 operator-icon',
|
|
@@ -6010,9 +6140,9 @@ const JoinData = props => {
|
|
|
6010
6140
|
})
|
|
6011
6141
|
})]
|
|
6012
6142
|
}, i);
|
|
6013
|
-
}), meta.table1.column_id && meta.table2.column_id && (meta.expressions?.length || 0) < 1 && jsx(Tooltip
|
|
6143
|
+
}), meta.table1.column_id && meta.table2.column_id && (meta.expressions?.length || 0) < 1 && jsx(Tooltip, {
|
|
6014
6144
|
title: __('SqlQueryBuilder.add'),
|
|
6015
|
-
children: jsx(Button
|
|
6145
|
+
children: jsx(Button, {
|
|
6016
6146
|
disabled: meta.readonly,
|
|
6017
6147
|
primary: true,
|
|
6018
6148
|
ghost: true,
|
|
@@ -6201,11 +6331,16 @@ const Filter = props => {
|
|
|
6201
6331
|
prevList,
|
|
6202
6332
|
prevGroupBy
|
|
6203
6333
|
} = getHelper(store.metaList, meta);
|
|
6334
|
+
let newMeta = store.metaList.slice();
|
|
6335
|
+
let mainTable = newMeta[0];
|
|
6204
6336
|
let data;
|
|
6205
6337
|
if (ExistAboveGroupBy) {
|
|
6206
6338
|
let _data = {
|
|
6207
6339
|
table: prevGroupBy.alias,
|
|
6340
|
+
tableId: prevGroupBy.alias,
|
|
6208
6341
|
alias: prevGroupBy.alias,
|
|
6342
|
+
datasourceId: mainTable.table.datasourceId,
|
|
6343
|
+
datasourceName: mainTable.table.datasourceName,
|
|
6209
6344
|
columns: []
|
|
6210
6345
|
};
|
|
6211
6346
|
if (prevGroupBy?.group?.length) {
|
|
@@ -6247,7 +6382,10 @@ const Filter = props => {
|
|
|
6247
6382
|
return {
|
|
6248
6383
|
alias: v.table2.alias,
|
|
6249
6384
|
table: v.table2.name,
|
|
6250
|
-
|
|
6385
|
+
tableId: v.table2.id,
|
|
6386
|
+
columns: v.columns,
|
|
6387
|
+
datasourceId: mainTable.table.datasourceId,
|
|
6388
|
+
datasourceName: mainTable.table.datasourceName
|
|
6251
6389
|
};
|
|
6252
6390
|
}));
|
|
6253
6391
|
}
|
|
@@ -6258,13 +6396,19 @@ const Filter = props => {
|
|
|
6258
6396
|
return {
|
|
6259
6397
|
alias: v.table.alias,
|
|
6260
6398
|
table: v.table.name,
|
|
6261
|
-
|
|
6399
|
+
tableId: v.table.id,
|
|
6400
|
+
columns: v.columns,
|
|
6401
|
+
datasourceId: mainTable.table.datasourceId,
|
|
6402
|
+
datasourceName: mainTable.table.datasourceName
|
|
6262
6403
|
};
|
|
6263
6404
|
} else if (v.type === TypeEnum.joinData) {
|
|
6264
6405
|
return {
|
|
6265
6406
|
alias: v.table2.alias,
|
|
6266
6407
|
table: v.table2.name,
|
|
6267
|
-
|
|
6408
|
+
tableId: v.table2.id,
|
|
6409
|
+
columns: v.columns,
|
|
6410
|
+
datasourceId: mainTable.table.datasourceId,
|
|
6411
|
+
datasourceName: mainTable.table.datasourceName
|
|
6268
6412
|
};
|
|
6269
6413
|
} else {
|
|
6270
6414
|
return {
|
|
@@ -6298,17 +6442,24 @@ const Filter = props => {
|
|
|
6298
6442
|
let value = {
|
|
6299
6443
|
table: '',
|
|
6300
6444
|
// 表名
|
|
6445
|
+
tableId: '',
|
|
6446
|
+
// 表名
|
|
6301
6447
|
alias: '',
|
|
6302
6448
|
// 表的别名
|
|
6303
6449
|
name: '',
|
|
6304
6450
|
// 字段名
|
|
6451
|
+
id: '',
|
|
6452
|
+
// 字段名
|
|
6305
6453
|
database_type: '',
|
|
6306
6454
|
// 字段类型
|
|
6307
6455
|
condition: '',
|
|
6308
6456
|
// 选择条件
|
|
6309
6457
|
val: [],
|
|
6310
6458
|
// 选择结果 如果有两个 长度就为2
|
|
6311
|
-
quotes: ''
|
|
6459
|
+
quotes: '',
|
|
6460
|
+
// 前端显示用户看的文字
|
|
6461
|
+
datasourceId: '',
|
|
6462
|
+
datasourceName: ''
|
|
6312
6463
|
};
|
|
6313
6464
|
store.setPopup({
|
|
6314
6465
|
visible: true,
|
|
@@ -6506,12 +6657,18 @@ const GroupBy = props => {
|
|
|
6506
6657
|
let data = getColumns();
|
|
6507
6658
|
let value = {
|
|
6508
6659
|
table: '',
|
|
6660
|
+
tableId: '',
|
|
6509
6661
|
alias: '',
|
|
6510
6662
|
name: '',
|
|
6663
|
+
id: '',
|
|
6511
6664
|
sql: '',
|
|
6512
6665
|
database_type: '',
|
|
6513
6666
|
condition: '',
|
|
6514
|
-
quotes: ''
|
|
6667
|
+
quotes: '',
|
|
6668
|
+
datasourceId: '',
|
|
6669
|
+
datasourceName: '',
|
|
6670
|
+
column: '',
|
|
6671
|
+
column_id: ''
|
|
6515
6672
|
};
|
|
6516
6673
|
store.setPopup({
|
|
6517
6674
|
visible: true,
|
|
@@ -6596,6 +6753,7 @@ const SelectIndex = props => {
|
|
|
6596
6753
|
if (ExistAboveGroupBy) {
|
|
6597
6754
|
let _data = {
|
|
6598
6755
|
table: prevGroupBy.alias,
|
|
6756
|
+
tableId: prevGroupBy.alias,
|
|
6599
6757
|
alias: prevGroupBy.alias,
|
|
6600
6758
|
columns: []
|
|
6601
6759
|
};
|
|
@@ -6701,12 +6859,18 @@ const SelectIndex = props => {
|
|
|
6701
6859
|
let data = getColumns();
|
|
6702
6860
|
let value = {
|
|
6703
6861
|
table: '',
|
|
6862
|
+
tableId: '',
|
|
6704
6863
|
alias: '',
|
|
6705
6864
|
name: '',
|
|
6865
|
+
id: '',
|
|
6706
6866
|
sql: '',
|
|
6707
6867
|
database_type: '',
|
|
6708
6868
|
condition: '',
|
|
6709
|
-
quotes: ''
|
|
6869
|
+
quotes: '',
|
|
6870
|
+
datasourceId: '',
|
|
6871
|
+
datasourceName: '',
|
|
6872
|
+
column: '',
|
|
6873
|
+
column_id: ''
|
|
6710
6874
|
};
|
|
6711
6875
|
store.setPopup({
|
|
6712
6876
|
visible: true,
|
|
@@ -6830,6 +6994,7 @@ const Sort = props => {
|
|
|
6830
6994
|
if (ExistAboveGroupBy) {
|
|
6831
6995
|
let _data = {
|
|
6832
6996
|
table: prevGroupBy.alias,
|
|
6997
|
+
tableId: prevGroupBy.alias,
|
|
6833
6998
|
alias: prevGroupBy.alias,
|
|
6834
6999
|
columns: []
|
|
6835
7000
|
};
|
|
@@ -6891,9 +7056,14 @@ const Sort = props => {
|
|
|
6891
7056
|
let newMeta = store.metaList.slice();
|
|
6892
7057
|
let value = {
|
|
6893
7058
|
table: '',
|
|
7059
|
+
tableId: '',
|
|
6894
7060
|
alias: '',
|
|
6895
7061
|
name: '',
|
|
6896
|
-
|
|
7062
|
+
id: '',
|
|
7063
|
+
database_type: '',
|
|
7064
|
+
datasourceId: '',
|
|
7065
|
+
// 数据源id
|
|
7066
|
+
datasourceName: '' // 数据源名
|
|
6897
7067
|
};
|
|
6898
7068
|
let data = getColumns();
|
|
6899
7069
|
// ② 过滤掉已经选择的 排序参数
|
|
@@ -7091,6 +7261,7 @@ const PermissionTable = props => {
|
|
|
7091
7261
|
if (ExistAboveGroupBy) {
|
|
7092
7262
|
let _data = {
|
|
7093
7263
|
name: prevGroupBy.alias,
|
|
7264
|
+
id: prevGroupBy.alias,
|
|
7094
7265
|
alias: prevGroupBy.alias,
|
|
7095
7266
|
datasourceId: '',
|
|
7096
7267
|
datasourceName: ''
|
|
@@ -7102,6 +7273,7 @@ const PermissionTable = props => {
|
|
|
7102
7273
|
return {
|
|
7103
7274
|
alias: v.table2.alias,
|
|
7104
7275
|
name: v.table2.name,
|
|
7276
|
+
id: v.table2.id,
|
|
7105
7277
|
datasourceId: v.table2.datasourceId,
|
|
7106
7278
|
datasourceName: v.table2.datasourceName
|
|
7107
7279
|
};
|
|
@@ -7113,6 +7285,7 @@ const PermissionTable = props => {
|
|
|
7113
7285
|
mo.push({
|
|
7114
7286
|
alias: v.table.alias,
|
|
7115
7287
|
name: v.table.name,
|
|
7288
|
+
id: v.table.id,
|
|
7116
7289
|
datasourceId: v.table.datasourceId,
|
|
7117
7290
|
datasourceName: v.table.datasourceName
|
|
7118
7291
|
});
|
|
@@ -7120,6 +7293,7 @@ const PermissionTable = props => {
|
|
|
7120
7293
|
mo.push({
|
|
7121
7294
|
alias: v.table2.alias,
|
|
7122
7295
|
name: v.table2.name,
|
|
7296
|
+
id: v.table2.id,
|
|
7123
7297
|
datasourceId: v.table2.datasourceId,
|
|
7124
7298
|
datasourceName: v.table2.datasourceName
|
|
7125
7299
|
});
|
|
@@ -7196,6 +7370,14 @@ const Metabase = props => {
|
|
|
7196
7370
|
if (!visible) return null;
|
|
7197
7371
|
return content;
|
|
7198
7372
|
}, [store.popupData]);
|
|
7373
|
+
const popupContent2 = useMemo(() => {
|
|
7374
|
+
let {
|
|
7375
|
+
visible,
|
|
7376
|
+
content
|
|
7377
|
+
} = store.popupData2;
|
|
7378
|
+
if (!visible) return null;
|
|
7379
|
+
return content;
|
|
7380
|
+
}, [store.popupData2]);
|
|
7199
7381
|
return (
|
|
7200
7382
|
// @ts-ignore
|
|
7201
7383
|
jsx(VisualBox, {
|
|
@@ -7216,7 +7398,7 @@ const Metabase = props => {
|
|
|
7216
7398
|
meta: meta
|
|
7217
7399
|
}, metaKey);
|
|
7218
7400
|
})
|
|
7219
|
-
}), !readonly && typeof onOk === 'function' ? jsx(Button, {
|
|
7401
|
+
}), !readonly && typeof onOk === 'function' ? jsx(Button$1, {
|
|
7220
7402
|
type: 'primary',
|
|
7221
7403
|
className: `Sqb-btn`,
|
|
7222
7404
|
icon: saveLoading ? jsx(LoadingOutlined, {}) : null,
|
|
@@ -7242,6 +7424,18 @@ const Metabase = props => {
|
|
|
7242
7424
|
});
|
|
7243
7425
|
},
|
|
7244
7426
|
children: popupContent
|
|
7427
|
+
}), popupContainer.current && jsx(Popup, {
|
|
7428
|
+
container: popupContainer.current,
|
|
7429
|
+
visible: store.popupData2.visible,
|
|
7430
|
+
node: store.popupData2.node,
|
|
7431
|
+
closable: store.popupClosable2,
|
|
7432
|
+
hideVisible: () => {
|
|
7433
|
+
store.setClosable(true);
|
|
7434
|
+
store.setPopup2({
|
|
7435
|
+
visible: false
|
|
7436
|
+
});
|
|
7437
|
+
},
|
|
7438
|
+
children: popupContent2
|
|
7245
7439
|
})]
|
|
7246
7440
|
})
|
|
7247
7441
|
})
|