@gingkoo/pandora-metabase 0.0.1-alpha.7 → 0.0.1-alpha.8

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,5 +1,5 @@
1
1
  /**
2
- * @gingkoo/pandora-metabase v0.0.1-alpha.7
2
+ * @gingkoo/pandora-metabase v0.0.1-alpha.8
3
3
  */
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
5
  import * as React from 'react';
@@ -2165,29 +2165,31 @@ configure({
2165
2165
  });
2166
2166
  let metaKey = 1;
2167
2167
  const SummarizeAlias = 'source';
2168
+ const defaultMetaList = [{
2169
+ metaKey,
2170
+ type: TypeEnum.data,
2171
+ table: {
2172
+ name: '',
2173
+ alias: '',
2174
+ datasourceId: '',
2175
+ datasourceName: ''
2176
+ },
2177
+ columns: []
2178
+ }];
2179
+ const defaultToolbar = ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit'];
2168
2180
  class SqlVisionStore {
2169
2181
  constructor() {
2170
2182
  makeAutoObservable(this);
2171
2183
  }
2172
- showFields = true; // 开启权限表
2184
+ showFields = true; // 显示字段
2173
2185
  //工具列表
2174
- toolbar = ['filter', 'summarize', 'joinData', 'permissionTable', 'customColumn', 'sort', 'rowLimit'];
2186
+ toolbar = defaultToolbar;
2175
2187
  fieldNameTpl = '${name}';
2176
2188
  tableNameTpl = '${name}';
2177
2189
  sourceList = []; // 数据源列表
2178
2190
  _cacheSource2TableMap = {}; // 数据源id 对应数据集列表
2179
2191
  _cacheColumnsMap = {};
2180
- metaList = [{
2181
- metaKey,
2182
- type: TypeEnum.data,
2183
- table: {
2184
- name: '',
2185
- alias: '',
2186
- datasourceId: '',
2187
- datasourceName: ''
2188
- },
2189
- columns: []
2190
- }];
2192
+ metaList = defaultMetaList;
2191
2193
  popupData = {
2192
2194
  visible: false,
2193
2195
  node: null,
@@ -2224,10 +2226,21 @@ class SqlVisionStore {
2224
2226
  return _tables;
2225
2227
  }
2226
2228
  // 查询表字段
2227
- async fetchColumns(tableName, datasourceId, callback) {
2229
+ async fetchColumns(table, datasourceId, callback) {
2230
+ let {
2231
+ alias,
2232
+ datasourceName,
2233
+ datasourceId: did,
2234
+ // @ts-ignore
2235
+ column,
2236
+ // @ts-ignore
2237
+ groupSql,
2238
+ ...extra
2239
+ } = table;
2240
+ let tableName = table.name;
2228
2241
  let columns = this.getColumns(tableName);
2229
2242
  if (!columns.length) {
2230
- columns = await this.fetchColumnsFn(tableName, datasourceId);
2243
+ columns = await this.fetchColumnsFn(extra, datasourceId);
2231
2244
  runInAction(() => {
2232
2245
  this.setColumns(tableName, columns);
2233
2246
  });
@@ -2240,10 +2253,8 @@ class SqlVisionStore {
2240
2253
  this.metaList = data.map((v, i) => {
2241
2254
  // 设置右侧column
2242
2255
  if (v.table2?.datasourceId && v.columns.length < 1) {
2243
- // let newMetaList = this.metaList.slice() as MetaData[];
2244
2256
  let newMeta = data.slice();
2245
- let tableName = newMeta[i].table2.name;
2246
- this.fetchColumns(tableName, newMeta[i].table2.datasourceId, columns => {
2257
+ this.fetchColumns(newMeta[i].table2, newMeta[i].table2.datasourceId, columns => {
2247
2258
  newMeta[i].columns = columns;
2248
2259
  this.setMeta(newMeta);
2249
2260
  });
@@ -2253,10 +2264,8 @@ class SqlVisionStore {
2253
2264
  }
2254
2265
  // 设置column
2255
2266
  if (v.table?.datasourceId && v.columns.length < 1) {
2256
- // let newMetaList = this.metaList.slice() as MetaData[];
2257
2267
  let newMeta = data.slice();
2258
- let tableName = newMeta[i].table.name;
2259
- this.fetchColumns(tableName, newMeta[i].table.datasourceId, columns => {
2268
+ this.fetchColumns(newMeta[i].table, newMeta[i].table.datasourceId, columns => {
2260
2269
  newMeta[i].columns = columns;
2261
2270
  this.setMeta(newMeta);
2262
2271
  });
@@ -2270,17 +2279,7 @@ class SqlVisionStore {
2270
2279
  });
2271
2280
  metaKey = Math.max.apply(null, this.metaList.map(v => Number(v.metaKey)));
2272
2281
  } else {
2273
- this.setMeta([{
2274
- metaKey,
2275
- type: TypeEnum.data,
2276
- table: {
2277
- name: '',
2278
- alias: '',
2279
- datasourceId: '',
2280
- datasourceName: ''
2281
- },
2282
- columns: []
2283
- }]);
2282
+ this.setMeta(defaultMetaList);
2284
2283
  }
2285
2284
  }
2286
2285
  setSourceList(list) {
@@ -2428,6 +2427,13 @@ class SqlVisionStore {
2428
2427
  setTableNameTpl(tpl) {
2429
2428
  this.tableNameTpl = tpl;
2430
2429
  }
2430
+ reset() {
2431
+ this.setSourceList([]);
2432
+ this.setMeta(defaultMetaList);
2433
+ this.setToolbar(defaultToolbar);
2434
+ this._cacheSource2TableMap = {};
2435
+ this._cacheColumnsMap = {};
2436
+ }
2431
2437
  }
2432
2438
  const sqlVisionStore = new SqlVisionStore();
2433
2439
  const Store = /*#__PURE__*/React__default.createContext(sqlVisionStore);
@@ -4692,9 +4698,8 @@ const TableData = props => {
4692
4698
  onChange: data => {
4693
4699
  if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
4694
4700
  let newMetaList = store.metaList.slice()[0];
4695
- let tableName = data.name;
4696
4701
  newMetaList.table = data;
4697
- store.fetchColumns(tableName, data.datasourceId, columns => {
4702
+ store.fetchColumns(data, data.datasourceId, columns => {
4698
4703
  newMetaList.columns = columns;
4699
4704
  // ① 主表动了 其他都得重新选
4700
4705
  store.setMeta([newMetaList]);
@@ -4831,7 +4836,7 @@ const JoinData = props => {
4831
4836
  alias = `${tableName}_2`;
4832
4837
  }
4833
4838
  }
4834
- newMeta[index].table2 = {
4839
+ let _table2 = {
4835
4840
  ...data,
4836
4841
  name: tableName,
4837
4842
  alias,
@@ -4839,7 +4844,8 @@ const JoinData = props => {
4839
4844
  datasourceId: data.datasourceId,
4840
4845
  datasourceName: data.datasourceName
4841
4846
  };
4842
- store.fetchColumns(tableName, data.datasourceId, columns => {
4847
+ newMeta[index].table2 = _table2;
4848
+ store.fetchColumns(_table2, data.datasourceId, columns => {
4843
4849
  newMeta[index].columns = columns;
4844
4850
  // 关联表变了 下面模块全部删除
4845
4851
  newMeta = newMeta.filter((v, i) => i <= index);
@@ -6712,10 +6718,9 @@ const SqlVisionBuilder = /*#__PURE__*/React__default.forwardRef((props, ref) =>
6712
6718
  getColumns,
6713
6719
  tableNameTpl = '${name}',
6714
6720
  fieldNameTpl = '${name}',
6715
- toolbar = ['filter', 'summarize', 'joinData', 'permissionTable', 'customColumn', 'sort', 'rowLimit']
6721
+ toolbar = ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit']
6716
6722
  } = props;
6717
6723
  const store = useStore();
6718
- const [preData, setPreData] = useState([]);
6719
6724
  useEffect(() => {
6720
6725
  getTables && store.setFetchDatasetFn(getTables);
6721
6726
  getColumns && store.setFetchColumnsFn(getColumns);
@@ -6732,10 +6737,9 @@ const SqlVisionBuilder = /*#__PURE__*/React__default.forwardRef((props, ref) =>
6732
6737
  },
6733
6738
  setPreData: data => {
6734
6739
  store.setPreData(data);
6735
- setPreData(data);
6736
6740
  },
6737
6741
  reset: () => {
6738
- store.setPreData(preData);
6742
+ store.reset();
6739
6743
  }
6740
6744
  }));
6741
6745
  // ② 表集合没有查出来前 不加载页面