@gingkoo/pandora-metabase 1.0.93 → 1.0.95

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.
@@ -16,6 +16,7 @@ require("./index.less");
16
16
  var _formulaList = _interopRequireDefault(require("../formula-list"));
17
17
  var _icons = require("../../icons");
18
18
  var _utils = require("../formula-list/utils");
19
+ var _itemName = _interopRequireDefault(require("../../modules/components/item-name"));
19
20
  var _locale = require("../../../locale");
20
21
  var _utils2 = require("./utils");
21
22
  var _styledComponents = _interopRequireDefault(require("styled-components"));
@@ -134,36 +135,39 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
134
135
  children: "\u8BF7\u5148\u9009\u62E9\u516C\u5F0F\uFF0C\u5207\u6362\u516C\u5F0F\u65F6\u4F1A\u91CD\u7F6E\u53C2\u6570"
135
136
  }), (0, _jsxRuntime.jsx)("div", {
136
137
  className: 'Sqb-NotebookCell formula-name',
137
- children: (0, _jsxRuntime.jsx)(_pandora.Select, {
138
- triggerProps: {
139
- clickToClose: true
140
- },
141
- value: fun.id || fun.name,
142
- triggerElement: function triggerElement(value) {
143
- var _formulaList$fun$id;
144
- return (0, _jsxRuntime.jsx)("div", {
145
- className: (0, _classnames["default"])("Sqb-TableName Sqb-TableName-OPERATOR", {
146
- notSelected: !fun.name
147
- }),
148
- children: fun.id ? (_formulaList$fun$id = formulaList[fun.id]) === null || _formulaList$fun$id === void 0 ? void 0 : _formulaList$fun$id.name : (0, _locale.__)('customColumn.selectFormula')
149
- });
150
- },
151
- onChange: function onChange(val) {
152
- handleFunName(val);
153
- },
154
- children: (_store$formulaTemplat = store.formulaTemplates) === null || _store$formulaTemplat === void 0 ? void 0 : _store$formulaTemplat.map(function (options, index) {
155
- return (0, _jsxRuntime.jsx)(_pandora.Select.OptGroup, {
156
- label: options.name,
157
- children: Array.from(options.children || []).map(function (option, ind) {
158
- return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
159
- value: option.id,
160
- children: option.name
161
- }, option.id || String(option.name + ind));
162
- })
163
- }, index);
164
- // <Select.Option key={index} value={option.name}>
165
- // {option.name}
166
- // </Select.Option>
138
+ children: (0, _jsxRuntime.jsx)(_itemName["default"], {
139
+ isError: (0, _utils2.formulaIsError)(fun, formulaList),
140
+ message: '公式丢失',
141
+ children: (0, _jsxRuntime.jsx)(_pandora.Select, {
142
+ triggerProps: {
143
+ clickToClose: true
144
+ },
145
+ value: fun.id || fun.name,
146
+ triggerElement: function triggerElement(value) {
147
+ return (0, _jsxRuntime.jsx)("div", {
148
+ className: (0, _classnames["default"])("Sqb-TableName Sqb-TableName-OPERATOR", {
149
+ notSelected: !fun.name
150
+ }),
151
+ children: (0, _utils2.formulaName)(fun, formulaList) || (0, _locale.__)('customColumn.selectFormula')
152
+ });
153
+ },
154
+ onChange: function onChange(val) {
155
+ handleFunName(val);
156
+ },
157
+ children: (_store$formulaTemplat = store.formulaTemplates) === null || _store$formulaTemplat === void 0 ? void 0 : _store$formulaTemplat.map(function (options, index) {
158
+ return (0, _jsxRuntime.jsx)(_pandora.Select.OptGroup, {
159
+ label: options.name,
160
+ children: Array.from(options.children || []).map(function (option, ind) {
161
+ return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
162
+ value: option.id,
163
+ children: option.name
164
+ }, option.id || String(option.name + ind));
165
+ })
166
+ }, index);
167
+ // <Select.Option key={index} value={option.name}>
168
+ // {option.name}
169
+ // </Select.Option>
170
+ })
167
171
  })
168
172
  })
169
173
  }), fun.name && (0, _jsxRuntime.jsxs)("div", {
@@ -5,4 +5,6 @@ export declare function getParamActions(params: AtomsItem[], arity?: Arity): {
5
5
  canAdd: boolean;
6
6
  canDel: boolean;
7
7
  };
8
+ export declare const formulaName: (fun: any, formulaList: any) => any;
8
9
  export declare const getQuotes: (fun: any, _args: AtomsItem[], formulaList: any) => string;
10
+ export declare const formulaIsError: (fun: any, formulaList: any) => boolean;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getObjTem = void 0;
6
+ exports.getObjTem = exports.formulaName = exports.formulaIsError = void 0;
7
7
  exports.getParamActions = getParamActions;
8
8
  exports.getTemArgs = exports.getQuotes = void 0;
9
9
  var _types = require("../../../store/types");
@@ -64,8 +64,12 @@ function getParamActions(params, arity) {
64
64
  canDel: len > effectiveMin // 大于 min 才能删
65
65
  };
66
66
  }
67
+ // 获取公式名称 如果找不到 用传入的name
68
+ var formulaName = exports.formulaName = function formulaName(fun, formulaList) {
69
+ var obj = formulaList[fun.id] || formulaList[fun.name];
70
+ return (obj === null || obj === void 0 ? void 0 : obj.name) || fun.name;
71
+ };
67
72
  var getQuotes = exports.getQuotes = function getQuotes(fun, _args, formulaList) {
68
- var _formulaList$fun$id;
69
73
  var quotes = _args === null || _args === void 0 ? void 0 : _args.map(function (v) {
70
74
  var quotes = v.list.map(function (vv, i) {
71
75
  if (vv !== null && vv !== void 0 && vv.quotes) {
@@ -78,5 +82,10 @@ var getQuotes = exports.getQuotes = function getQuotes(fun, _args, formulaList)
78
82
  }).join(' ');
79
83
  return quotes;
80
84
  }).join(' , ');
81
- return ((_formulaList$fun$id = formulaList[fun.id]) === null || _formulaList$fun$id === void 0 ? void 0 : _formulaList$fun$id.name) + ' ( ' + quotes + ' ) ';
85
+ // let obj = formulaList[fun.id] || formulaList[fun.name];
86
+ return formulaName(fun, formulaList) + ' ( ' + quotes + ' ) ';
87
+ };
88
+ var formulaIsError = exports.formulaIsError = function formulaIsError(fun, formulaList) {
89
+ var obj = fun.id ? formulaList[fun.id] : formulaList[fun.name];
90
+ return !(obj !== null && obj !== void 0 && obj.name);
82
91
  };
@@ -40,7 +40,7 @@ var _excluded = ["notExistsToolbar", "toolbar"],
40
40
  _excluded2 = ["subToolbar", "notExistsColumns", "showFields", "isExit", "toolbar"]; // import './index.less';
41
41
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
42
42
  var FormulaList = (0, _react.forwardRef)(function (props, ref) {
43
- var _storage$_metabaseCop, _store$operatorList, _caseList2;
43
+ var _storage$_metabaseCop, _caseList2;
44
44
  // 响应 storage._metabaseCopyItems 变化,保证粘贴按钮能实时显示
45
45
  var _useState = (0, _react.useState)((_storage["default"] === null || _storage["default"] === void 0 || (_storage$_metabaseCop = _storage["default"]._metabaseCopyItems) === null || _storage$_metabaseCop === void 0 ? void 0 : _storage$_metabaseCop.length) || 0),
46
46
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -67,8 +67,6 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
67
67
  onChange = props.onChange,
68
68
  _props$customTypes = props.customTypes,
69
69
  _customTypes = _props$customTypes === void 0 ? _utils3.customTypes : _props$customTypes,
70
- _props$operatorList = props.operatorList,
71
- _operatorList = _props$operatorList === void 0 ? ((_store$operatorList = store.operatorList) === null || _store$operatorList === void 0 ? void 0 : _store$operatorList.length) > 0 ? store.operatorList : _utils3.operatorList : _props$operatorList,
72
70
  _props$isCustom = props.isCustom,
73
71
  isCustom = _props$isCustom === void 0 ? false : _props$isCustom,
74
72
  _props$showPreview = props.showPreview,
@@ -623,20 +621,23 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
623
621
  var itemDom = function itemDom(v, index) {
624
622
  var type = v.type;
625
623
  if (v.type === _types.AtomsTypeEnum.NOT_EXISTS || v.type === _types.AtomsTypeEnum.EXISTS) {
626
- return (0, _jsxRuntime.jsxs)("div", {
627
- className: "Sqb-TableName purple-name",
628
- onClick: function onClick(e) {
629
- return showNotExists(index);
630
- },
631
- children: [v.type, " ( * )", (0, _jsxRuntime.jsx)("span", {
632
- style: {
633
- fontSize: 0
634
- },
624
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
625
+ isError: (0, _utils2.isExistsError)(v.notExists, store.existsError),
626
+ children: (0, _jsxRuntime.jsxs)("div", {
627
+ className: "Sqb-TableName purple-name",
635
628
  onClick: function onClick(e) {
636
- return handleDel(e, index);
629
+ return showNotExists(index);
637
630
  },
638
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
639
- })]
631
+ children: [v.type, " ( * )", (0, _jsxRuntime.jsx)("span", {
632
+ style: {
633
+ fontSize: 0
634
+ },
635
+ onClick: function onClick(e) {
636
+ return handleDel(e, index);
637
+ },
638
+ children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
639
+ })]
640
+ }, index)
640
641
  }, index);
641
642
  } else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
642
643
  return (0, _jsxRuntime.jsxs)("div", {
@@ -746,7 +747,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
746
747
  onChange: function onChange(val) {
747
748
  handleConstant(val, index);
748
749
  },
749
- children: _operatorList.map(function (option, index) {
750
+ children: operatorList.map(function (option, index) {
750
751
  return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
751
752
  value: option,
752
753
  children: option
@@ -756,8 +757,8 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
756
757
  } else if (type === _types.AtomsTypeEnum.CONSTANT) {
757
758
  //常量
758
759
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
759
- isError: !(0, _utils3.getConstantLabel)(store.constantList, v.id || v.val),
760
- message: "\u5E38\u91CF\u5B57\u6BB5\u672A\u80FD\u6B63\u786E\u5BF9\u5E94",
760
+ isError: (v.id || v.val) && !(0, _utils3.getConstantLabel)(store.constantList, v.id || v.val),
761
+ message: "\u5E38\u91CF\u4E22\u5931",
761
762
  children: (0, _jsxRuntime.jsxs)("div", {
762
763
  className: (0, _classnames["default"])("Sqb-TableName", {
763
764
  notSelected: !v.val
@@ -777,7 +778,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
777
778
  })
778
779
  }, index);
779
780
  } else if (type === _types.AtomsTypeEnum.EXPRESSION) {
780
- if (v.condition === '早于' && v.rhs.length === 2) {
781
+ if (~['早于', '晚于', ''].indexOf(v.condition) && v.rhs.length > 1) {
781
782
  var _caseList$index$quote;
782
783
  var _caseList = caseList.slice();
783
784
  _caseList[index].rhs = [_caseList[index].rhs[0]];
@@ -808,7 +809,8 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
808
809
  } else if (type === _types.AtomsTypeEnum.FORMULA) {
809
810
  // 公式
810
811
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
811
- isError: (0, _utils2.isError)(v, data),
812
+ isError: (0, _utils2.isError)(v, data) || (0, _utils.formulaIsError)(v, formulaList),
813
+ message: (0, _utils.formulaIsError)(v, formulaList) ? '公式丢失' : '',
812
814
  children: (0, _jsxRuntime.jsxs)("div", {
813
815
  className: (0, _classnames["default"])("Sqb-TableName gray-name"),
814
816
  onClick: function onClick(e) {
@@ -191,10 +191,14 @@ var useStore = function useStore() {
191
191
  _useState66 = (0, _slicedToArray2["default"])(_useState65, 2),
192
192
  isMetabaseCopy = _useState66[0],
193
193
  setIsMetabaseCopy = _useState66[1]; // 是否开启勾选组复制
194
- var _useState67 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
194
+ var _useState67 = (0, _react.useState)([]),
195
195
  _useState68 = (0, _slicedToArray2["default"])(_useState67, 2),
196
- metabaseCopyModule = _useState68[0],
197
- setMetabaseCopyModule = _useState68[1]; // 复制的内容
196
+ existsError = _useState68[0],
197
+ setExistsError = _useState68[1]; // exists 的错误字段
198
+ var _useState69 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
199
+ _useState70 = (0, _slicedToArray2["default"])(_useState69, 2),
200
+ metabaseCopyModule = _useState70[0],
201
+ setMetabaseCopyModule = _useState70[1]; // 复制的内容
198
202
  var setFormulaTemplates = function setFormulaTemplates(data) {
199
203
  var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
200
204
  var children = v.children.map(function (vv) {
@@ -220,40 +224,69 @@ var useStore = function useStore() {
220
224
  var fetchColumnsFn = (0, _react.useRef)();
221
225
  var fetchChangeFn = (0, _react.useRef)();
222
226
  var fetchDiffFn = (0, _react.useRef)();
227
+ var fetchExistsError = (0, _react.useRef)();
223
228
  var setFetchChangeFn = function setFetchChangeFn(fn) {
224
229
  fetchChangeFn.current = fn;
225
230
  };
226
231
  var setFetchDiffFn = function setFetchDiffFn(fn) {
227
232
  fetchDiffFn.current = fn;
228
233
  };
234
+ var setExistsErrorFn = /*#__PURE__*/function () {
235
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(fn, value) {
236
+ var data;
237
+ return _regenerator["default"].wrap(function (_context) {
238
+ while (1) switch (_context.prev = _context.next) {
239
+ case 0:
240
+ if (!(!value || value.length < 1)) {
241
+ _context.next = 1;
242
+ break;
243
+ }
244
+ setExistsError([]);
245
+ return _context.abrupt("return");
246
+ case 1:
247
+ _context.next = 2;
248
+ return fn(value);
249
+ case 2:
250
+ data = _context.sent;
251
+ setExistsError(data || []);
252
+ case 3:
253
+ case "end":
254
+ return _context.stop();
255
+ }
256
+ }, _callee);
257
+ }));
258
+ return function setExistsErrorFn(_x, _x2) {
259
+ return _ref.apply(this, arguments);
260
+ };
261
+ }();
229
262
  // 获取所有数据表
230
263
  var getModuleDiffCode = /*#__PURE__*/function () {
231
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
264
+ var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
232
265
  var oldCode,
233
266
  newCode,
234
267
  data,
235
- _args = arguments;
236
- return _regenerator["default"].wrap(function (_context) {
237
- while (1) switch (_context.prev = _context.next) {
268
+ _args2 = arguments;
269
+ return _regenerator["default"].wrap(function (_context2) {
270
+ while (1) switch (_context2.prev = _context2.next) {
238
271
  case 0:
239
- oldCode = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
240
- newCode = _args.length > 1 ? _args[1] : undefined;
241
- _context.next = 1;
272
+ oldCode = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : [];
273
+ newCode = _args2.length > 1 ? _args2[1] : undefined;
274
+ _context2.next = 1;
242
275
  return fetchDiffFn.current({
243
276
  oldCode: oldCode,
244
277
  newCode: newCode
245
278
  });
246
279
  case 1:
247
- data = _context.sent;
248
- return _context.abrupt("return", data);
280
+ data = _context2.sent;
281
+ return _context2.abrupt("return", data);
249
282
  case 2:
250
283
  case "end":
251
- return _context.stop();
284
+ return _context2.stop();
252
285
  }
253
- }, _callee);
286
+ }, _callee2);
254
287
  }));
255
288
  return function getModuleDiffCode() {
256
- return _ref.apply(this, arguments);
289
+ return _ref2.apply(this, arguments);
257
290
  };
258
291
  }();
259
292
  var setFetchColumnsFn = function setFetchColumnsFn(fn) {
@@ -294,46 +327,46 @@ var useStore = function useStore() {
294
327
  }, [sourceList, isExit, tableFlat]);
295
328
  // 获取所有数据表
296
329
  var getSourceTable = /*#__PURE__*/function () {
297
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(source) {
330
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(source) {
298
331
  var results;
299
- return _regenerator["default"].wrap(function (_context3) {
300
- while (1) switch (_context3.prev = _context3.next) {
332
+ return _regenerator["default"].wrap(function (_context4) {
333
+ while (1) switch (_context4.prev = _context4.next) {
301
334
  case 0:
302
- _context3.next = 1;
335
+ _context4.next = 1;
303
336
  return Promise.all(source.map(/*#__PURE__*/function () {
304
- var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(v) {
337
+ var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(v) {
305
338
  var tables;
306
- return _regenerator["default"].wrap(function (_context2) {
307
- while (1) switch (_context2.prev = _context2.next) {
339
+ return _regenerator["default"].wrap(function (_context3) {
340
+ while (1) switch (_context3.prev = _context3.next) {
308
341
  case 0:
309
- _context2.next = 1;
342
+ _context3.next = 1;
310
343
  return fetchDataset(v.datasourceId);
311
344
  case 1:
312
- tables = _context2.sent;
313
- return _context2.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
345
+ tables = _context3.sent;
346
+ return _context3.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
314
347
  children: tables
315
348
  }));
316
349
  case 2:
317
350
  case "end":
318
- return _context2.stop();
351
+ return _context3.stop();
319
352
  }
320
- }, _callee2);
353
+ }, _callee3);
321
354
  }));
322
- return function (_x2) {
323
- return _ref3.apply(this, arguments);
355
+ return function (_x4) {
356
+ return _ref4.apply(this, arguments);
324
357
  };
325
358
  }()));
326
359
  case 1:
327
- results = _context3.sent;
360
+ results = _context4.sent;
328
361
  setSourceTable(results || []);
329
362
  case 2:
330
363
  case "end":
331
- return _context3.stop();
364
+ return _context4.stop();
332
365
  }
333
- }, _callee3);
366
+ }, _callee4);
334
367
  }));
335
- return function getSourceTable(_x) {
336
- return _ref2.apply(this, arguments);
368
+ return function getSourceTable(_x3) {
369
+ return _ref3.apply(this, arguments);
337
370
  };
338
371
  }();
339
372
  // const showMainColumn = useMemo(() => {
@@ -352,41 +385,41 @@ var useStore = function useStore() {
352
385
  return !!~toolbar.indexOf(name);
353
386
  };
354
387
  var fetchDataset = /*#__PURE__*/function () {
355
- var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(datasourceId) {
388
+ var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(datasourceId) {
356
389
  var tables, _tables;
357
- return _regenerator["default"].wrap(function (_context4) {
358
- while (1) switch (_context4.prev = _context4.next) {
390
+ return _regenerator["default"].wrap(function (_context5) {
391
+ while (1) switch (_context5.prev = _context5.next) {
359
392
  case 0:
360
393
  tables = getDataset(datasourceId);
361
394
  if (!tables.length) {
362
- _context4.next = 1;
395
+ _context5.next = 1;
363
396
  break;
364
397
  }
365
- return _context4.abrupt("return", tables);
398
+ return _context5.abrupt("return", tables);
366
399
  case 1:
367
- _context4.next = 2;
400
+ _context5.next = 2;
368
401
  return fetchDatasetFn.current(datasourceId, {
369
402
  isExit: isExit
370
403
  });
371
404
  case 2:
372
- _tables = _context4.sent;
405
+ _tables = _context5.sent;
373
406
  setDataset(datasourceId, _tables);
374
- return _context4.abrupt("return", _tables);
407
+ return _context5.abrupt("return", _tables);
375
408
  case 3:
376
409
  case "end":
377
- return _context4.stop();
410
+ return _context5.stop();
378
411
  }
379
- }, _callee4);
412
+ }, _callee5);
380
413
  }));
381
- return function fetchDataset(_x3) {
382
- return _ref4.apply(this, arguments);
414
+ return function fetchDataset(_x5) {
415
+ return _ref5.apply(this, arguments);
383
416
  };
384
417
  }();
385
418
  // 根据数据源id查询集合列表
386
419
  // fetchDataset():
387
420
  // 查询表字段
388
421
  var fetchColumns = /*#__PURE__*/function () {
389
- var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(table, datasourceId) {
422
+ var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(table, datasourceId) {
390
423
  var _columns2;
391
424
  var oldColumns,
392
425
  callback,
@@ -404,15 +437,15 @@ var useStore = function useStore() {
404
437
  tableName,
405
438
  columns,
406
439
  _columns,
407
- _args5 = arguments;
408
- return _regenerator["default"].wrap(function (_context5) {
409
- while (1) switch (_context5.prev = _context5.next) {
440
+ _args6 = arguments;
441
+ return _regenerator["default"].wrap(function (_context6) {
442
+ while (1) switch (_context6.prev = _context6.next) {
410
443
  case 0:
411
- oldColumns = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : [];
412
- callback = _args5.length > 3 ? _args5[3] : undefined;
413
- isSelect = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : isSelectFields;
414
- _isSubquery = _args5.length > 5 && _args5[5] !== undefined ? _args5[5] : isSubquery;
415
- _isExit = _args5.length > 6 && _args5[6] !== undefined ? _args5[6] : isExit;
444
+ oldColumns = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : [];
445
+ callback = _args6.length > 3 ? _args6[3] : undefined;
446
+ isSelect = _args6.length > 4 && _args6[4] !== undefined ? _args6[4] : isSelectFields;
447
+ _isSubquery = _args6.length > 5 && _args6[5] !== undefined ? _args6[5] : isSubquery;
448
+ _isExit = _args6.length > 6 && _args6[6] !== undefined ? _args6[6] : isExit;
416
449
  // 获取之前选中的数据
417
450
  oldObj = {};
418
451
  selectId = oldColumns.filter(function (v) {
@@ -431,15 +464,15 @@ var useStore = function useStore() {
431
464
  tableName = table.name;
432
465
  columns = getColumns(tableName);
433
466
  if (columns.length) {
434
- _context5.next = 2;
467
+ _context6.next = 2;
435
468
  break;
436
469
  }
437
- _context5.next = 1;
470
+ _context6.next = 1;
438
471
  return fetchColumnsFn.current(extra, datasourceId, {
439
472
  isExit: _isExit
440
473
  });
441
474
  case 1:
442
- columns = _context5.sent;
475
+ columns = _context6.sent;
443
476
  setColumns(tableName, columns);
444
477
  case 2:
445
478
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
@@ -454,26 +487,26 @@ var useStore = function useStore() {
454
487
  typeof callback === 'function' && callback(_columns);
455
488
  case 3:
456
489
  case "end":
457
- return _context5.stop();
490
+ return _context6.stop();
458
491
  }
459
- }, _callee5);
492
+ }, _callee6);
460
493
  }));
461
- return function fetchColumns(_x4, _x5) {
462
- return _ref5.apply(this, arguments);
494
+ return function fetchColumns(_x6, _x7) {
495
+ return _ref6.apply(this, arguments);
463
496
  };
464
497
  }();
465
498
  var setMeta = /*#__PURE__*/function () {
466
- var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(curData, groupInd) {
499
+ var _ref7 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(curData, groupInd) {
467
500
  var changeObj,
468
501
  _metaList,
469
502
  newMeta,
470
503
  isChange,
471
- _args6 = arguments;
472
- return _regenerator["default"].wrap(function (_context6) {
473
- while (1) switch (_context6.prev = _context6.next) {
504
+ _args7 = arguments;
505
+ return _regenerator["default"].wrap(function (_context7) {
506
+ while (1) switch (_context7.prev = _context7.next) {
474
507
  case 0:
475
- changeObj = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
476
- _metaList = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : metaList;
508
+ changeObj = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
509
+ _metaList = _args7.length > 3 && _args7[3] !== undefined ? _args7[3] : metaList;
477
510
  newMeta = (0, _cloneDeep["default"])(_metaList);
478
511
  if (newMeta[groupInd]) {
479
512
  newMeta[groupInd].list = curData;
@@ -481,29 +514,29 @@ var useStore = function useStore() {
481
514
  }
482
515
  // 过滤掉初始化
483
516
  if (!(changeObj === 'init')) {
484
- _context6.next = 1;
517
+ _context7.next = 1;
485
518
  break;
486
519
  }
487
- return _context6.abrupt("return");
520
+ return _context7.abrupt("return");
488
521
  case 1:
489
- _context6.next = 2;
522
+ _context7.next = 2;
490
523
  return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj, {
491
524
  isExit: isExit
492
525
  });
493
526
  case 2:
494
- isChange = _context6.sent;
527
+ isChange = _context7.sent;
495
528
  // 是否还原
496
529
  if (isChange === false) {
497
530
  _setMeta(_metaList);
498
531
  }
499
532
  case 3:
500
533
  case "end":
501
- return _context6.stop();
534
+ return _context7.stop();
502
535
  }
503
- }, _callee6);
536
+ }, _callee7);
504
537
  }));
505
- return function setMeta(_x6, _x7) {
506
- return _ref6.apply(this, arguments);
538
+ return function setMeta(_x8, _x9) {
539
+ return _ref7.apply(this, arguments);
507
540
  };
508
541
  }();
509
542
  // 回显
@@ -878,7 +911,9 @@ var useStore = function useStore() {
878
911
  isMetabaseCopy: isMetabaseCopy,
879
912
  setIsMetabaseCopy: setIsMetabaseCopy,
880
913
  operatorList: operatorList,
881
- setOperatorList: setOperatorList
914
+ setOperatorList: setOperatorList,
915
+ setExistsErrorFn: setExistsErrorFn,
916
+ existsError: existsError
882
917
  };
883
918
  };
884
919
  var _default = exports["default"] = useStore;
@@ -3,12 +3,6 @@ import './locale/en';
3
3
  import './locale/zh';
4
4
  import type { MetabaseProps, SqlVisionBuilderRef, DatasourceType } from './types';
5
5
  import type { MetaListType, ToolbarType } from './store/types';
6
- /**
7
- * 规则
8
- * 1、主表一换 下面全部删除
9
- * 2、关联如果动了表或者删除了 下面的关联都删除
10
- * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞
11
- */
12
6
  declare const SqlVisionBuilder: React.ForwardRefExoticComponent<MetabaseProps & React.RefAttributes<SqlVisionBuilderRef>>;
13
7
  export default SqlVisionBuilder;
14
8
  export { MetabaseProps, DatasourceType, MetaListType, ToolbarType, SqlVisionBuilderRef };
package/lib/cjs/index.js CHANGED
@@ -27,6 +27,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
27
27
  * 2、关联如果动了表或者删除了 下面的关联都删除
28
28
  * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞
29
29
  */
30
+ var EMPTY_ARRAY = [];
30
31
  var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
31
32
  var _props$loading = props.loading,
32
33
  loading = _props$loading === void 0 ? false : _props$loading,
@@ -36,6 +37,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
36
37
  getColumns = props.getColumns,
37
38
  onChange = props.onChange,
38
39
  getModuleDiffCode = props.getModuleDiffCode,
40
+ getExistsError = props.getExistsError,
39
41
  _props$tableNameTpl = props.tableNameTpl,
40
42
  tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
41
43
  _props$fieldNameTpl = props.fieldNameTpl,
@@ -43,11 +45,11 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
43
45
  _props$toolbar = props.toolbar,
44
46
  toolbar = _props$toolbar === void 0 ? ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit'] : _props$toolbar,
45
47
  _props$value = props.value,
46
- value = _props$value === void 0 ? [] : _props$value,
48
+ value = _props$value === void 0 ? EMPTY_ARRAY : _props$value,
47
49
  _props$sourceList = props.sourceList,
48
- sourceList = _props$sourceList === void 0 ? [] : _props$sourceList,
50
+ sourceList = _props$sourceList === void 0 ? EMPTY_ARRAY : _props$sourceList,
49
51
  _props$exitSourceList = props.exitSourceList,
50
- exitSourceList = _props$exitSourceList === void 0 ? [] : _props$exitSourceList,
52
+ exitSourceList = _props$exitSourceList === void 0 ? EMPTY_ARRAY : _props$exitSourceList,
51
53
  _props$showSubquery = props.showSubquery,
52
54
  showSubquery = _props$showSubquery === void 0 ? true : _props$showSubquery,
53
55
  _props$subShowSubquer = props.subShowSubquery,
@@ -80,7 +82,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
80
82
  _props$moduleCopy = props.moduleCopy,
81
83
  moduleCopy = _props$moduleCopy === void 0 ? false : _props$moduleCopy,
82
84
  _props$operatorList = props.operatorList,
83
- operatorList = _props$operatorList === void 0 ? [] : _props$operatorList;
85
+ operatorList = _props$operatorList === void 0 ? EMPTY_ARRAY : _props$operatorList;
84
86
  var store = (0, _useState["default"])();
85
87
  (0, _react.useEffect)(function () {
86
88
  getTables && store.setFetchDatasetFn(getTables);
@@ -96,6 +98,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
96
98
  var source_value = (0, _utils.patchData)(value);
97
99
  store.setPreData((0, _cloneDeep["default"])(_value), isSubquery, isExit);
98
100
  store.setSourceData(source_value);
101
+ getExistsError && store.setExistsErrorFn(getExistsError, value);
99
102
  }, [value]);
100
103
  (0, _react.useEffect)(function () {
101
104
  store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
@@ -122,7 +125,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
122
125
  store.setModuleDiff(moduleDiff);
123
126
  store.setIsSubquery(isSubquery);
124
127
  store.setModuleCopy(moduleCopy);
125
- store.setOperatorList(operatorList);
128
+ store.setOperatorList(operatorList || []);
126
129
  }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, copyType, metabaseCopy, moduleDiff, isSubquery, moduleCopy, operatorList]);
127
130
  _react["default"].useImperativeHandle(ref, function () {
128
131
  return {
@@ -59,6 +59,7 @@ export interface MetabaseProps {
59
59
  oldCode: string;
60
60
  newCode: string;
61
61
  }>;
62
+ getExistsError?: (params: MetaListType[]) => Promise<any[]>;
62
63
  operatorList?: any[];
63
64
  }
64
65
  export interface OptionItem {