@ecan-bi/datav 1.0.41 → 1.0.44

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 (62) hide show
  1. package/dist/index.es.js +906 -255
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +906 -252
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +149 -86
  6. package/package.json +1 -1
  7. package/types/_utils/constant.d.ts +3 -1
  8. package/types/_utils/hooks/index.d.ts +2 -0
  9. package/types/_utils/hooks/useHrefParamsToGlobalVariables.d.ts +2 -0
  10. package/types/_utils/hooks/useIndicatorData.d.ts +4 -0
  11. package/types/container/border/Border.vue.d.ts +183 -54
  12. package/types/container/border/index.d.ts +130 -1
  13. package/types/container/border/props.d.ts +115 -55
  14. package/types/container/modal/Modal.vue.d.ts +1 -1
  15. package/types/container/modal/index.d.ts +1 -1
  16. package/types/control/button/Button.vue.d.ts +110 -0
  17. package/types/control/button/index.d.ts +111 -1
  18. package/types/control/button/props.d.ts +104 -44
  19. package/types/control/date-picker/props.d.ts +52 -52
  20. package/types/control/input/props.d.ts +48 -48
  21. package/types/control/range-picker/RangePicker.vue.d.ts +52 -52
  22. package/types/control/range-picker/props.d.ts +52 -52
  23. package/types/control/select/Select.vue.d.ts +50 -50
  24. package/types/control/select/props.d.ts +50 -50
  25. package/types/control/tabs/Tabs.vue.d.ts +42 -0
  26. package/types/control/tabs/index.d.ts +42 -0
  27. package/types/control/tabs/props.d.ts +24 -0
  28. package/types/graph/bar/Bar.vue.d.ts +128 -128
  29. package/types/graph/bar/index.d.ts +128 -128
  30. package/types/graph/bar/props.d.ts +65 -65
  31. package/types/graph/combo-graph/ComboGraph.vue.d.ts +155 -0
  32. package/types/graph/combo-graph/index.d.ts +155 -0
  33. package/types/graph/combo-graph/props.d.ts +72 -0
  34. package/types/graph/custom-graph/props.d.ts +48 -48
  35. package/types/graph/line/Line.vue.d.ts +155 -0
  36. package/types/graph/line/index.d.ts +155 -0
  37. package/types/graph/line/props.d.ts +72 -0
  38. package/types/graph/pie/Pie.vue.d.ts +155 -0
  39. package/types/graph/pie/index.d.ts +155 -0
  40. package/types/graph/pie/props.d.ts +72 -0
  41. package/types/graph/scatter/Scatter.vue.d.ts +155 -0
  42. package/types/graph/scatter/index.d.ts +155 -0
  43. package/types/graph/scatter/props.d.ts +72 -0
  44. package/types/map/map/props.d.ts +112 -112
  45. package/types/media/image/props.d.ts +52 -52
  46. package/types/setting/index.d.ts +1 -0
  47. package/types/setting/provider-config/ProviderConfig.vue.d.ts +36 -6
  48. package/types/setting/provider-config/index.d.ts +37 -7
  49. package/types/setting/provider-config/props.d.ts +21 -3
  50. package/types/setting/renderer/Renderer.vue.d.ts +22 -0
  51. package/types/setting/renderer/index.d.ts +23 -0
  52. package/types/setting/renderer/props.d.ts +17 -0
  53. package/types/table/table/Table.vue.d.ts +900 -79
  54. package/types/table/table/index.d.ts +899 -79
  55. package/types/table/table/props.d.ts +451 -39
  56. package/types/text/list/List.vue.d.ts +64 -64
  57. package/types/text/list/props.d.ts +64 -64
  58. package/types/text/proportion/Proportion.vue.d.ts +68 -68
  59. package/types/text/proportion/props.d.ts +68 -68
  60. package/types/text/text/Text.vue.d.ts +66 -66
  61. package/types/text/text/props.d.ts +66 -66
  62. package/types/text/time-display/props.d.ts +60 -60
package/dist/index.umd.js CHANGED
@@ -1383,7 +1383,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1383
1383
  }
1384
1384
  return target;
1385
1385
  };
1386
- const _sfc_main$p = vue.defineComponent({
1386
+ const _sfc_main$q = vue.defineComponent({
1387
1387
  props: {
1388
1388
  spinning: {
1389
1389
  type: Boolean,
@@ -1406,10 +1406,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1406
1406
  };
1407
1407
  }
1408
1408
  });
1409
- const _hoisted_1$b = { class: "spin-wrapper" };
1410
- function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
1409
+ const _hoisted_1$9 = { class: "spin-wrapper" };
1410
+ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
1411
1411
  const _component_a_spin = vue.resolveComponent("a-spin");
1412
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
1412
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
1413
1413
  _ctx.spinning ? (vue.openBlock(), vue.createBlock(_component_a_spin, {
1414
1414
  key: 0,
1415
1415
  class: "spin",
@@ -1419,8 +1419,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1419
1419
  }, null, 8, ["spinning", "indicator"])) : vue.renderSlot(_ctx.$slots, "default", { key: 1 })
1420
1420
  ]);
1421
1421
  }
1422
- var Spin = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
1423
- const _sfc_main$o = vue.defineComponent({
1422
+ var Spin = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$q]]);
1423
+ const _sfc_main$p = vue.defineComponent({
1424
1424
  name: "Skeleton",
1425
1425
  props: {
1426
1426
  loading: {
@@ -1432,7 +1432,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1432
1432
  ASkeleton: antDesignVue.Skeleton
1433
1433
  }
1434
1434
  });
1435
- function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
1435
+ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
1436
1436
  const _component_a_skeleton = vue.resolveComponent("a-skeleton");
1437
1437
  return vue.openBlock(), vue.createBlock(_component_a_skeleton, {
1438
1438
  active: "",
@@ -1444,7 +1444,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1444
1444
  _: 3
1445
1445
  }, 8, ["loading"]);
1446
1446
  }
1447
- var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
1447
+ var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
1448
1448
  const withInstall = (main, extra) => {
1449
1449
  main.install = (app) => {
1450
1450
  for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
@@ -1522,7 +1522,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1522
1522
  "backgroundSize",
1523
1523
  "textShadow",
1524
1524
  "justifyContent",
1525
- "alignItems"
1525
+ "alignItems",
1526
+ "zIndex"
1526
1527
  ];
1527
1528
  const usePickComponentStyle = (props2, excludeStyleList = []) => {
1528
1529
  const finalStyleList = lodashEs.without(styleList, ...excludeStyleList);
@@ -1532,9 +1533,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1532
1533
  const GLOBAL_CONFIG = "GLOBAL_CONFIG";
1533
1534
  const GLOBAL_MODEL = "GLOBAL_MODEL";
1534
1535
  const REQUEST_MODEL = "REQUEST_MODEL";
1535
- const UPLOAD_PATH = ((_a = window == null ? void 0 : window.config) == null ? void 0 : _a.uploadPath) || "/api";
1536
- const BASE_URL = ((_b = window == null ? void 0 : window.config) == null ? void 0 : _b.routerBaseURL) || "./";
1537
- const INDICATOR_URL = (_c = window == null ? void 0 : window.config) == null ? void 0 : _c.indicatorURL;
1536
+ const GLOBAL_TOKEN = "GLOBAL_TOKEN";
1537
+ const REFRESH_PAGE = "REFRESH_PAGE";
1538
+ const INDICATOR_URL = (_a = window == null ? void 0 : window.config) == null ? void 0 : _a.indicatorURL;
1539
+ const UPLOAD_PATH = ((_b = window == null ? void 0 : window.config) == null ? void 0 : _b.uploadPath) || "/api";
1540
+ const BASE_URL = ((_c = window == null ? void 0 : window.config) == null ? void 0 : _c.routerBaseURL) || "./";
1538
1541
  const useOnEvent = (props2, events) => {
1539
1542
  vue.watch(() => props2.id, (id, oldId) => {
1540
1543
  const eventBus = vue.inject(EVENT_BUS, {
@@ -1633,6 +1636,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1633
1636
  }
1634
1637
  return false;
1635
1638
  };
1639
+ const useVariablesInText = (text, data = {}) => {
1640
+ const config2 = window.config || {};
1641
+ data = __spreadValues(__spreadValues({}, config2), data);
1642
+ const variables = text.match(/\{.*?\}/g);
1643
+ if (variables == null || variables.length === 0)
1644
+ return text;
1645
+ for (let i = 0; i < variables.length; i++) {
1646
+ const variable = variables[i];
1647
+ const v = variable.slice(1, variable.length - 1);
1648
+ const usedVariable = data[v];
1649
+ if (usedVariable != null) {
1650
+ text = text.replace(variable, usedVariable);
1651
+ } else {
1652
+ text = text.replace(variable, "");
1653
+ }
1654
+ }
1655
+ return text;
1656
+ };
1636
1657
  const useRequestData = (props2, callBack = () => {
1637
1658
  }) => {
1638
1659
  const {
@@ -1670,23 +1691,25 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1670
1691
  }
1671
1692
  _params[key] = v;
1672
1693
  } else if (typeof value === "string") {
1673
- _params[key] = value;
1694
+ _params[key] = useVariablesInText(value);
1674
1695
  }
1675
1696
  });
1676
1697
  _params = __spreadValues(__spreadValues({}, _params), params);
1677
1698
  let urlParams = "";
1678
1699
  const keys = Object.keys(_params);
1679
1700
  const last = keys.length - 1;
1701
+ const keysLen = keys.length;
1680
1702
  keys.forEach((key, index2) => {
1681
- switch (index2) {
1682
- case 0:
1703
+ if (index2 === 0) {
1704
+ if (keysLen !== 1) {
1683
1705
  urlParams += `?${key}=${_params[key]}&`;
1684
- break;
1685
- case last:
1686
- urlParams += `${key}=${_params[key]}`;
1687
- break;
1688
- default:
1689
- urlParams += `${key}=${_params[key]}&`;
1706
+ } else {
1707
+ urlParams += `?${key}=${_params[key]}`;
1708
+ }
1709
+ } else if (index2 === last) {
1710
+ urlParams += `${key}=${_params[key]}`;
1711
+ } else {
1712
+ urlParams += `${key}=${_params[key]}&`;
1690
1713
  }
1691
1714
  });
1692
1715
  try {
@@ -1777,44 +1800,26 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1777
1800
  const usePageUrl = (pageMode, pageId) => {
1778
1801
  const envPageUrl = `/preview?pageId=${pageId}`;
1779
1802
  const proPageUrl = `${BASE_URL}${pageId}`;
1803
+ console.log(pageMode);
1780
1804
  return pageMode === "preview" ? envPageUrl : proPageUrl;
1781
1805
  };
1782
- const useVariablesInText = (text, data = {}) => {
1783
- var _a2;
1784
- const config = (_a2 = window.config) != null ? _a2 : {};
1785
- data = __spreadValues(__spreadValues({}, config), data);
1786
- const variables = text.match(/\{.*?\}/g);
1787
- if (variables == null || variables.length === 0)
1788
- return text;
1789
- for (let i = 0; i < variables.length; i++) {
1790
- const variable = variables[i];
1791
- const v = variable.slice(1, variable.length - 1);
1792
- const usedVariables = data[v];
1793
- if (usedVariables != null) {
1794
- text = text.replace(variable, usedVariables);
1795
- } else {
1796
- text = text.replace(variable, "");
1797
- }
1798
- }
1799
- return text;
1800
- };
1801
1806
  const request = axios__default["default"].create({
1802
1807
  timeout: 1e3 * 10
1803
1808
  });
1804
- request.interceptors.request.use((config) => {
1805
- return config;
1809
+ request.interceptors.request.use((config2) => {
1810
+ return config2;
1806
1811
  }, (error) => {
1807
1812
  return Promise.reject(error);
1808
1813
  });
1809
- request.interceptors.response.use((config) => {
1814
+ request.interceptors.response.use((config2) => {
1810
1815
  var _a2, _b2, _c2;
1811
- if (+((_a2 = config == null ? void 0 : config.data) == null ? void 0 : _a2.code) === 500) {
1816
+ if (+((_a2 = config2 == null ? void 0 : config2.data) == null ? void 0 : _a2.code) === 500) {
1812
1817
  antDesignVue.message.error({
1813
- content: ((_b2 = config == null ? void 0 : config.data) == null ? void 0 : _b2.msg) || ((_c2 = config == null ? void 0 : config.data) == null ? void 0 : _c2.message) || "\u670D\u52A1\u5668\u5F02\u5E38",
1818
+ content: ((_b2 = config2 == null ? void 0 : config2.data) == null ? void 0 : _b2.msg) || ((_c2 = config2 == null ? void 0 : config2.data) == null ? void 0 : _c2.message) || "\u670D\u52A1\u5668\u5F02\u5E38",
1814
1819
  key: "SERVER_ERROR"
1815
1820
  });
1816
1821
  }
1817
- return config;
1822
+ return config2;
1818
1823
  }, (error) => {
1819
1824
  if (error.message.includes("timeout")) {
1820
1825
  antDesignVue.message.error({
@@ -2173,7 +2178,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2173
2178
  };
2174
2179
  };
2175
2180
  const useValueFormatter = (formatter = "", value) => {
2176
- const variables = formatter.match(/\{.*?\}/g);
2181
+ const variables = formatter.match(/\{\w*\}/g);
2177
2182
  if (variables == null || variables.length === 0)
2178
2183
  return formatter;
2179
2184
  for (let i = 0; i < variables.length; i++) {
@@ -2188,8 +2193,221 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2188
2193
  }
2189
2194
  return formatter;
2190
2195
  };
2191
- var PageConfig_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "#container[data-v-836b53bc] {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config[data-v-836b53bc] {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n")();
2192
- const _sfc_main$n = vue.defineComponent({
2196
+ const useIndicatorData = (props2 = {}) => {
2197
+ const { requestToken } = vue.inject(GLOBAL_TOKEN, {
2198
+ requestToken: () => void 0
2199
+ });
2200
+ if (props2.dataType === "indicator") {
2201
+ requestToken();
2202
+ }
2203
+ const handleQueryColumn = (queryColumn = {}) => {
2204
+ const { label, name, location, show, indexCode } = queryColumn;
2205
+ return {
2206
+ label,
2207
+ columnName: name,
2208
+ location,
2209
+ show,
2210
+ calcType: "COLUMN",
2211
+ hrpIndexCode: indexCode
2212
+ };
2213
+ };
2214
+ const handleIndicator = (indicator = {}) => {
2215
+ const {
2216
+ label,
2217
+ name,
2218
+ location,
2219
+ show,
2220
+ indexCode,
2221
+ calcType = "COLUMN",
2222
+ builtInFormula,
2223
+ builtInValueSource,
2224
+ builtInCalcWay,
2225
+ formula
2226
+ } = indicator;
2227
+ return {
2228
+ label,
2229
+ columnName: name,
2230
+ location,
2231
+ show,
2232
+ calcType,
2233
+ hrpIndexCode: indexCode,
2234
+ aggregate: "SUM",
2235
+ builtInFormula,
2236
+ builtInValueSource,
2237
+ builtInCalcWay,
2238
+ formula
2239
+ };
2240
+ };
2241
+ const { getGlobalModel } = vue.inject(GLOBAL_MODEL, {
2242
+ getGlobalModel: (key) => void 0
2243
+ });
2244
+ const handleSqlConditions = (controlList = []) => {
2245
+ var _a2;
2246
+ const len = controlList.length;
2247
+ const sqlConditions = [];
2248
+ for (let i = 0; i < len; i++) {
2249
+ const control = controlList[i];
2250
+ const {
2251
+ id,
2252
+ conditionLabel,
2253
+ conditionKey,
2254
+ conditionValueType
2255
+ } = control;
2256
+ const sqlCondition = {
2257
+ rule: "NONE",
2258
+ label: conditionLabel,
2259
+ fieldName: conditionKey,
2260
+ fieldValue: "",
2261
+ valueType: conditionValueType
2262
+ };
2263
+ const model = getGlobalModel(id) || {};
2264
+ if (lowerCaseIncludes(model.type, "date")) {
2265
+ const { value, format } = model || {};
2266
+ sqlCondition.fieldValue = (_a2 = vue.unref(value)) == null ? void 0 : _a2.format(format);
2267
+ sqlCondition.dateFormat = format;
2268
+ }
2269
+ sqlConditions.push(sqlCondition);
2270
+ }
2271
+ return sqlConditions;
2272
+ };
2273
+ return async () => {
2274
+ var _a2, _b2;
2275
+ const { graphicConfig } = props2;
2276
+ const {
2277
+ source,
2278
+ dataViewId,
2279
+ plugin,
2280
+ layer,
2281
+ chartType,
2282
+ classificationList = [],
2283
+ seriesList = [],
2284
+ leftAxisList = [],
2285
+ rightAxisList = [],
2286
+ queryColumnList = [],
2287
+ indicators = [],
2288
+ controlList = [],
2289
+ dataSourceId,
2290
+ idxLibMode,
2291
+ preview = false
2292
+ } = graphicConfig || {};
2293
+ console.log("classificationList", classificationList);
2294
+ console.log("seriesList", seriesList);
2295
+ console.log("leftAxisList", leftAxisList);
2296
+ console.log("rightAxisList", rightAxisList);
2297
+ console.log("indicators", indicators);
2298
+ console.log("controlList", controlList);
2299
+ let classification;
2300
+ if (Array.isArray(classificationList) && classificationList.length > 0) {
2301
+ const len = classificationList.length;
2302
+ for (let i = 0; i < len; i++) {
2303
+ const item = classificationList[i] || {};
2304
+ const { label = "", name = "", show = false, sort, customGroup } = item;
2305
+ if (show) {
2306
+ classification = {
2307
+ label,
2308
+ columnName: name,
2309
+ show,
2310
+ sort,
2311
+ customGroup
2312
+ };
2313
+ break;
2314
+ }
2315
+ }
2316
+ }
2317
+ let series;
2318
+ if (Array.isArray(seriesList) && seriesList.length > 0) {
2319
+ const len = seriesList.length;
2320
+ for (let i = 0; i < len; i++) {
2321
+ const item = seriesList[i] || {};
2322
+ const { label = "", name = "", show = false, sort, customGroup } = item;
2323
+ if (show) {
2324
+ series = {
2325
+ label,
2326
+ columnName: name,
2327
+ show,
2328
+ sort,
2329
+ customGroup
2330
+ };
2331
+ break;
2332
+ }
2333
+ }
2334
+ }
2335
+ const queryColumns = [];
2336
+ queryColumnList == null ? void 0 : queryColumnList.forEach((queryColumn) => {
2337
+ queryColumns.push(handleQueryColumn(queryColumn));
2338
+ });
2339
+ const indicatorList = [];
2340
+ leftAxisList == null ? void 0 : leftAxisList.forEach((leftAxis) => {
2341
+ leftAxis.location = "LEFT";
2342
+ if (leftAxis.show) {
2343
+ indicatorList.push(handleIndicator(leftAxis));
2344
+ }
2345
+ });
2346
+ rightAxisList == null ? void 0 : rightAxisList.forEach((rightAxis) => {
2347
+ rightAxis.location = "RIGHT";
2348
+ if (rightAxis.show) {
2349
+ indicatorList.push(handleIndicator(rightAxis));
2350
+ }
2351
+ });
2352
+ indicators == null ? void 0 : indicators.forEach((indicator) => {
2353
+ indicator.location = "LEFT";
2354
+ if (indicator.show) {
2355
+ indicatorList.push(handleIndicator(indicator));
2356
+ }
2357
+ });
2358
+ if (layer === "1" && queryColumns.length === 0) {
2359
+ return;
2360
+ } else if (layer === "2" && indicatorList.length === 0) {
2361
+ return;
2362
+ }
2363
+ let sqlConditions;
2364
+ if ((graphicConfig == null ? void 0 : graphicConfig.pageMode) === "design") {
2365
+ sqlConditions = (_a2 = graphicConfig.sqlConditions) != null ? _a2 : [];
2366
+ } else {
2367
+ sqlConditions = handleSqlConditions(controlList);
2368
+ }
2369
+ try {
2370
+ const res = await request.post(`${INDICATOR_URL}/diagram`, {
2371
+ source,
2372
+ dataViewId,
2373
+ plugin,
2374
+ layer,
2375
+ chartType,
2376
+ classification,
2377
+ series,
2378
+ indicatorList,
2379
+ queryColumns,
2380
+ pageFlag: true,
2381
+ sqlConditions,
2382
+ dataSourceId,
2383
+ idxLibMode,
2384
+ preview
2385
+ }, {
2386
+ headers: {
2387
+ Authentication: (_b2 = window == null ? void 0 : window.config) == null ? void 0 : _b2.indicatorToken,
2388
+ operateContext: "ygt"
2389
+ }
2390
+ });
2391
+ return res;
2392
+ } catch (e) {
2393
+ console.error(e);
2394
+ }
2395
+ };
2396
+ };
2397
+ const useHrefParamsToGlobalVariables = () => {
2398
+ const search = window.location.search;
2399
+ const params = search.slice(1).split("&");
2400
+ const len = params.length;
2401
+ for (let i = 0; i < len; i++) {
2402
+ const param = params[i];
2403
+ const keyAndValue = param.split("=");
2404
+ const key = keyAndValue[0];
2405
+ const value = keyAndValue[1];
2406
+ window.config[key] = value;
2407
+ }
2408
+ };
2409
+ var PageConfig_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "#container[data-v-5d709a9a] {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config[data-v-5d709a9a] {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n")();
2410
+ const _sfc_main$o = vue.defineComponent({
2193
2411
  name: "EcanPageConfig",
2194
2412
  props: __spreadValues({}, pageConfigComponentProps),
2195
2413
  setup(props2) {
@@ -2283,12 +2501,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2283
2501
  };
2284
2502
  }
2285
2503
  });
2286
- const _hoisted_1$a = {
2504
+ const _hoisted_1$8 = {
2287
2505
  id: "container",
2288
2506
  ref: "container"
2289
2507
  };
2290
- function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
2291
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
2508
+ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
2509
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
2292
2510
  _ctx.ready ? (vue.openBlock(), vue.createElementBlock("div", {
2293
2511
  key: 0,
2294
2512
  class: "page-config",
@@ -2298,18 +2516,20 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2298
2516
  ], 4)) : vue.createCommentVNode("", true)
2299
2517
  ], 512);
2300
2518
  }
2301
- var PageConfig = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n], ["__scopeId", "data-v-836b53bc"]]);
2519
+ var PageConfig = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o], ["__scopeId", "data-v-5d709a9a"]]);
2302
2520
  const EcanPageConfig = withInstall(PageConfig);
2303
2521
  const providerConfig = {
2304
2522
  contextRequestUrl: "",
2305
2523
  pageMode: "normal",
2306
- theme: "light"
2524
+ theme: "light",
2525
+ containerMap: {}
2307
2526
  };
2308
2527
  const providerConfigComponentProps = transformToComponentProps(providerConfig);
2309
- const _sfc_main$m = vue.defineComponent({
2528
+ const _sfc_main$n = vue.defineComponent({
2310
2529
  name: "EcanProviderConfig",
2311
2530
  props: __spreadValues({}, providerConfigComponentProps),
2312
2531
  setup(props2, { expose }) {
2532
+ useHrefParamsToGlobalVariables();
2313
2533
  const providerConfig2 = vue.ref();
2314
2534
  const setTheme = () => {
2315
2535
  providerConfig2.value.setAttribute("datav-theme", props2.theme);
@@ -2359,6 +2579,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2359
2579
  offEvent,
2360
2580
  emitEvent
2361
2581
  });
2582
+ const tokenNum = vue.ref(0);
2583
+ const requestToken = () => {
2584
+ tokenNum.value = vue.unref(tokenNum) + 1;
2585
+ };
2586
+ vue.provide(GLOBAL_TOKEN, {
2587
+ requestToken
2588
+ });
2362
2589
  const requestModel = /* @__PURE__ */ new Map();
2363
2590
  const setRequest = (requestFn = () => {
2364
2591
  }, sortNum = 0) => {
@@ -2379,11 +2606,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2379
2606
  });
2380
2607
  });
2381
2608
  };
2609
+ const queryUserToken = async () => {
2610
+ var _a2;
2611
+ const res = await axios__default["default"].get(`${INDICATOR_URL}/user/anonymous?username=admin`, {
2612
+ headers: {
2613
+ systemCode: "F72FC50A3D97372514A6AC33333D28FD",
2614
+ current_context: "ygt"
2615
+ }
2616
+ });
2617
+ config.indicatorToken = (_a2 = res.data.data) == null ? void 0 : _a2.token;
2618
+ };
2382
2619
  const touchRequest = async () => {
2383
2620
  const requestModelArr = Array.from(requestModel);
2384
2621
  requestModelArr.sort((a, b) => b[0] - a[0]);
2385
2622
  const len = requestModelArr.length;
2386
2623
  try {
2624
+ if (props2.pageMode !== "design" && vue.unref(tokenNum) > 0) {
2625
+ await queryUserToken();
2626
+ }
2387
2627
  for (let i = 0; i < len; i++) {
2388
2628
  const requestFnList = requestModelArr[i][1];
2389
2629
  await handleRequestFnList(requestFnList);
@@ -2397,27 +2637,57 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2397
2637
  setRequest,
2398
2638
  touchRequest
2399
2639
  });
2640
+ const emitRefreshPage = () => {
2641
+ eventBus.emit(REFRESH_PAGE);
2642
+ };
2643
+ vue.provide(REFRESH_PAGE, {
2644
+ emitRefreshPage
2645
+ });
2646
+ const onRefreshPage = (callBack) => {
2647
+ eventBus.on(REFRESH_PAGE, () => callBack());
2648
+ vue.onMounted(() => {
2649
+ eventBus.off(REFRESH_PAGE);
2650
+ });
2651
+ };
2400
2652
  expose({
2401
- touchRequest
2653
+ touchRequest,
2654
+ getGlobalModel,
2655
+ onRefreshPage
2402
2656
  });
2403
2657
  return {
2404
2658
  providerConfig: providerConfig2
2405
2659
  };
2406
2660
  }
2407
2661
  });
2408
- const _hoisted_1$9 = {
2662
+ const _hoisted_1$7 = {
2409
2663
  id: "ProviderConfig",
2410
2664
  ref: "providerConfig"
2411
2665
  };
2412
- function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
2413
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
2666
+ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
2667
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
2414
2668
  vue.renderSlot(_ctx.$slots, "default")
2415
2669
  ], 512);
2416
2670
  }
2417
- var ProviderConfig = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
2671
+ var ProviderConfig = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
2418
2672
  const EcanProviderConfig = withInstall(ProviderConfig);
2673
+ const renderer = {
2674
+ componentList: []
2675
+ };
2676
+ const rendererComponentProps = transformToComponentProps(renderer);
2677
+ const _sfc_main$m = vue.defineComponent({
2678
+ name: "EcanRenderer",
2679
+ props: __spreadValues({}, rendererComponentProps),
2680
+ setup() {
2681
+ }
2682
+ });
2683
+ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
2684
+ return vue.openBlock(), vue.createElementBlock("div");
2685
+ }
2686
+ var Renderer = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
2687
+ const EcanRenderer = withInstall(Renderer);
2419
2688
  const textProps = __spreadProps(__spreadValues({}, props), {
2420
- name: "\u57FA\u7840\u6587\u672C",
2689
+ name: "\u6587\u672C",
2690
+ keyName: "\u6587\u672C",
2421
2691
  type: "ecanText",
2422
2692
  width: "100px",
2423
2693
  height: "40px",
@@ -2435,7 +2705,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2435
2705
  });
2436
2706
  const textComponentProps = transformToComponentProps(textProps);
2437
2707
  const textEvents = ["refreshData", "click"];
2438
- var Text_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".skeleton-wrapper[data-v-04705f6f] {\n overflow: hidden;\n}\n.ecan-text[data-v-04705f6f] {\n overflow: hidden;\n display: flex;\n}\n")();
2708
+ var Text_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".skeleton-wrapper[data-v-e7487804] {\n overflow: hidden;\n}\n.ecan-text[data-v-e7487804] {\n overflow: hidden;\n display: flex;\n}\n")();
2439
2709
  const _sfc_main$l = vue.defineComponent({
2440
2710
  name: "EcanText",
2441
2711
  components: { Skeleton },
@@ -2504,7 +2774,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2504
2774
  };
2505
2775
  }
2506
2776
  });
2507
- const _hoisted_1$8 = ["innerHTML"];
2777
+ const _hoisted_1$6 = ["innerHTML"];
2508
2778
  function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
2509
2779
  const _component_skeleton = vue.resolveComponent("skeleton");
2510
2780
  return _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -2519,9 +2789,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2519
2789
  style: vue.normalizeStyle(_ctx.style),
2520
2790
  innerHTML: _ctx.myText,
2521
2791
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
2522
- }, null, 12, _hoisted_1$8));
2792
+ }, null, 12, _hoisted_1$6));
2523
2793
  }
2524
- var Text = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l], ["__scopeId", "data-v-04705f6f"]]);
2794
+ var Text = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l], ["__scopeId", "data-v-e7487804"]]);
2525
2795
  const EcanText = withInstall(Text);
2526
2796
  var ScrollText_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".red[data-v-0bb717eb] {\n color: red;\n}\n")();
2527
2797
  const _sfc_main$k = vue.defineComponent({
@@ -2533,9 +2803,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2533
2803
  };
2534
2804
  }
2535
2805
  });
2536
- const _hoisted_1$7 = { class: "red" };
2806
+ const _hoisted_1$5 = { class: "red" };
2537
2807
  function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
2538
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, vue.toDisplayString(_ctx.text), 1);
2808
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, vue.toDisplayString(_ctx.text), 1);
2539
2809
  }
2540
2810
  var ScrollText = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$k], ["__scopeId", "data-v-0bb717eb"]]);
2541
2811
  const EcanScrollText = withInstall(ScrollText);
@@ -2630,10 +2900,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2630
2900
  });
2631
2901
  const listComponentProps = transformToComponentProps(listProps);
2632
2902
  const listEvents = ["refreshData", "click"];
2633
- var List_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.ecan-list[data-v-766e4cb3] {
2903
+ var List_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.ecan-list[data-v-461dbe78] {
2634
2904
  overflow: hidden;
2635
2905
  }
2636
- .ecan-list-content[data-v-766e4cb3] {
2906
+ .ecan-list-content[data-v-461dbe78] {
2637
2907
  width: 100%;
2638
2908
  height: 100%;
2639
2909
  overflow: auto;
@@ -2641,7 +2911,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2641
2911
  align-content: flex-start;
2642
2912
  flex-wrap: wrap;
2643
2913
  }
2644
- .title[data-v-766e4cb3] {
2914
+ .title[data-v-461dbe78] {
2645
2915
  position: absolute;
2646
2916
  z-index: 9;
2647
2917
  display: flex;
@@ -2651,18 +2921,18 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2651
2921
  font-size: 16px;
2652
2922
  color: #ffffff;
2653
2923
  }
2654
- .title-inner[data-v-766e4cb3] {
2924
+ .title-inner[data-v-461dbe78] {
2655
2925
  padding-left: 28px;
2656
2926
  padding-right: 20px;
2657
2927
  flex: 1;
2658
2928
  display: flex;
2659
2929
  height: 100%;
2660
2930
  }
2661
- .title-placeholder[data-v-766e4cb3] {
2931
+ .title-placeholder[data-v-461dbe78] {
2662
2932
  width: 100%;
2663
2933
  height: 32px;
2664
2934
  }
2665
- .item[data-v-766e4cb3] {
2935
+ .item[data-v-461dbe78] {
2666
2936
  display: flex;
2667
2937
  align-items: center;
2668
2938
  height: 32px;
@@ -2672,13 +2942,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2672
2942
  font-size: 16px;
2673
2943
  color: #ffffff;
2674
2944
  }
2675
- .column[data-v-766e4cb3] {
2945
+ .column[data-v-461dbe78] {
2676
2946
  flex: 1;
2677
2947
  overflow: hidden;
2678
2948
  text-overflow: ellipsis;
2679
2949
  white-space: nowrap;
2680
2950
  }
2681
- .ranking[data-v-766e4cb3] {
2951
+ .ranking[data-v-461dbe78] {
2682
2952
  flex: 1;
2683
2953
  display: flex;
2684
2954
  align-items: center;
@@ -2687,28 +2957,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2687
2957
  text-overflow: ellipsis;
2688
2958
  white-space: nowrap;
2689
2959
  }
2690
- .icon[data-v-766e4cb3] {
2960
+ .icon[data-v-461dbe78] {
2691
2961
  width: 12px;
2692
2962
  height: 8px;
2693
2963
  background: #21BEF7;
2694
2964
  margin-right: 17px;
2695
2965
  opacity: 0.6;
2696
2966
  }
2697
- .item:nth-child(2) .icon[data-v-766e4cb3] {
2967
+ .item:nth-child(2) .icon[data-v-461dbe78] {
2698
2968
  opacity: 0.8;
2699
2969
  }
2700
- .item:first-child .icon[data-v-766e4cb3] {
2970
+ .item:first-child .icon[data-v-461dbe78] {
2701
2971
  opacity: 1;
2702
2972
  }
2703
- .sort[data-v-766e4cb3] {
2973
+ .sort[data-v-461dbe78] {
2704
2974
  font-weight: 600;
2705
2975
  }
2706
- .goUp[data-v-766e4cb3] {
2976
+ .goUp[data-v-461dbe78] {
2707
2977
  color: #FF512E;
2708
2978
  display: flex;
2709
2979
  align-items: center;
2710
2980
  }
2711
- .goUp[data-v-766e4cb3]:before {
2981
+ .goUp[data-v-461dbe78]:before {
2712
2982
  content: '';
2713
2983
  display: block;
2714
2984
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=");
@@ -2718,12 +2988,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2718
2988
  background-size: cover;
2719
2989
  margin-right: 2px;
2720
2990
  }
2721
- .goDown[data-v-766e4cb3] {
2991
+ .goDown[data-v-461dbe78] {
2722
2992
  color: #00F7B4;
2723
2993
  display: flex;
2724
2994
  align-items: center;
2725
2995
  }
2726
- .goDown[data-v-766e4cb3]:before {
2996
+ .goDown[data-v-461dbe78]:before {
2727
2997
  content: '';
2728
2998
  display: block;
2729
2999
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAaVBMVEUAAAAA+b0A+LwA+L0A/6AA+LwA+L0A+L0A+b0A+LwA/78A+LwA+L0A+LwA+LwA+b0A+LsA970A+LwA+r0A9boA/7YA+LwA+LwA+LwA+L0A97wA+bwA970A970A+bwA+bwA+LsA9rkA+LzcCa+5AAAAInRSTlMAd/uVAvjYxCsiDvPp37F7aWBMNBgK7s/NvKidh4NXUEcdp9A1SAAAAI5JREFUKM+l0UcOwzAMRFGqWZbcW3rl/Q8ZhUGKMN7lLedD4EKUi/3BEIrGsQu432pmPuF+1WnfRNjLipMz7HbHT3cIF9n3BLYSerzAooSgZNcWQiuhIdBI8JQblNISCqXU/BNG/mqzJ+az13MWluIdRspNmgV+Rvc6vkCwPu1uIhQq5o7WDOwtrToG+ssDeh4QPgfT2X0AAAAASUVORK5CYII=");
@@ -2733,7 +3003,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2733
3003
  background-size: cover;
2734
3004
  margin-right: 2px;
2735
3005
  }
2736
- .empty[data-v-766e4cb3] {
3006
+ .empty[data-v-461dbe78] {
2737
3007
  text-align: center;
2738
3008
  margin-top: 15%;
2739
3009
  }
@@ -2822,12 +3092,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2822
3092
  };
2823
3093
  }
2824
3094
  });
2825
- const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-766e4cb3"), n = n(), vue.popScopeId(), n);
2826
- const _hoisted_1$6 = {
3095
+ const _withScopeId$2 = (n) => (vue.pushScopeId("data-v-461dbe78"), n = n(), vue.popScopeId(), n);
3096
+ const _hoisted_1$4 = {
2827
3097
  key: 0,
2828
3098
  class: "title"
2829
3099
  };
2830
- const _hoisted_2$1 = {
3100
+ const _hoisted_2$2 = {
2831
3101
  key: 0,
2832
3102
  class: "ranking"
2833
3103
  };
@@ -2839,7 +3109,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2839
3109
  key: 0,
2840
3110
  class: "ranking"
2841
3111
  };
2842
- const _hoisted_5$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "icon" }, null, -1));
3112
+ const _hoisted_5$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "icon" }, null, -1));
2843
3113
  const _hoisted_6$1 = { class: "sort" };
2844
3114
  const _hoisted_7$1 = {
2845
3115
  key: 2,
@@ -2853,7 +3123,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2853
3123
  }, [
2854
3124
  vue.createVNode(_component_skeleton, { loading: _ctx.loading }, {
2855
3125
  default: vue.withCtx(() => [
2856
- _ctx.useTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
3126
+ _ctx.useTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
2857
3127
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.columnCount, (count) => {
2858
3128
  return vue.openBlock(), vue.createElementBlock("div", {
2859
3129
  class: "title-inner",
@@ -2865,7 +3135,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2865
3135
  }),
2866
3136
  key: count
2867
3137
  }, [
2868
- _ctx.useRanking ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1)) : vue.createCommentVNode("", true),
3138
+ _ctx.useRanking ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2)) : vue.createCommentVNode("", true),
2869
3139
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.columns, (column, i) => {
2870
3140
  return vue.openBlock(), vue.createElementBlock("div", {
2871
3141
  class: "column",
@@ -2922,7 +3192,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2922
3192
  }, 8, ["loading"])
2923
3193
  ], 4);
2924
3194
  }
2925
- var List = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i], ["__scopeId", "data-v-766e4cb3"]]);
3195
+ var List = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i], ["__scopeId", "data-v-461dbe78"]]);
2926
3196
  const EcanList = withInstall(List);
2927
3197
  const proportionProps = __spreadProps(__spreadValues({}, props), {
2928
3198
  name: "\u5360\u6BD4\u56FE",
@@ -2947,7 +3217,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2947
3217
  });
2948
3218
  const proportionComponentProps = transformToComponentProps(proportionProps);
2949
3219
  const proportionEvents = ["refreshData", "click"];
2950
- var Proportion_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-proportion[data-v-1a10ace9] {\n overflow: hidden;\n}\n.progress[data-v-1a10ace9] {\n width: 100%;\n height: 100%;\n}\n.format[data-v-1a10ace9] {\n margin: 0 auto;\n}\n")();
3220
+ var Proportion_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-proportion[data-v-02b500fa] {\n overflow: hidden;\n}\n.progress[data-v-02b500fa] {\n width: 100%;\n height: 100%;\n}\n.format[data-v-02b500fa] {\n margin: 0 auto;\n}\n")();
2951
3221
  const _sfc_main$h = vue.defineComponent({
2952
3222
  name: "EcanProportion",
2953
3223
  components: {
@@ -3080,7 +3350,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3080
3350
  }, 8, ["percent", "width", "type", "strokeColor", "strokeLinecap", "trailColor", "strokeWidth", "gapDegree", "onClick"])
3081
3351
  ], 4);
3082
3352
  }
3083
- var Proportion = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h], ["__scopeId", "data-v-1a10ace9"]]);
3353
+ var Proportion = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h], ["__scopeId", "data-v-02b500fa"]]);
3084
3354
  const EcanProportion = withInstall(Proportion);
3085
3355
  const inputProps = __spreadProps(__spreadValues({}, props), {
3086
3356
  width: "200px",
@@ -3211,7 +3481,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3211
3481
  });
3212
3482
  const selectComponentProps = transformToComponentProps(selectProps);
3213
3483
  const selectEvents = ["selectChange"];
3214
- var Select_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-select[data-v-2a771bb2] .ant-select-selector {\n height: 100% !important;\n}\n.select[data-v-2a771bb2] {\n width: 100%;\n height: 100%;\n}\n")();
3484
+ var Select_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-select[data-v-d70a9a94] .ant-select-selector {\n height: 100% !important;\n}\n.select[data-v-d70a9a94] {\n width: 100%;\n height: 100%;\n}\n")();
3215
3485
  var Select_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => "[datav-theme='light'] .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #d9d9d9;\n}\n[datav-theme='light'] .ant-select-dropdown {\n color: rgba(0, 0, 0, 0.85);\n background: #ffffff;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n[datav-theme='light'] .ant-empty-img-simple-g {\n stroke: #d9d9d9;\n}\n[datav-theme='light'] .ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n}\n[datav-theme='light'] .ant-empty-img-simple-path {\n fill: #f5f5f5;\n stroke: #d9d9d9;\n}\n[datav-theme='light'] .ant-empty-description {\n color: rgba(0, 0, 0, 0.25);\n}\n[datav-theme='light'] .anticon-down {\n color: #333;\n}\n[datav-theme='darkBlue'] .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n}\n[datav-theme='darkBlue'] .ant-select-dropdown {\n box-shadow: inset 0 0 10px #005efe;\n color: #fff;\n background-color: #05164c;\n}\n[datav-theme='darkBlue'] .ant-empty-img-simple-g {\n stroke: #69befa;\n}\n[datav-theme='darkBlue'] .ant-empty-img-simple-ellipse {\n fill-opacity: 0;\n}\n[datav-theme='darkBlue'] .ant-empty-img-simple-path {\n fill: #69befa;\n stroke: #69befa;\n}\n[datav-theme='darkBlue'] .ant-empty-description {\n color: #69befa;\n}\n[datav-theme='darkBlue'] .anticon-down {\n color: #ffffff;\n}\n[datav-theme='darkBlue'] .ant-select-item {\n color: #ffffff;\n}\n[datav-theme='darkBlue'] .ant-select-item-option-active {\n background: #1f63a3;\n}\n[datav-theme='darkBlue'] .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n background: #1f63a3;\n}\n")();
3216
3486
  const _sfc_main$e = vue.defineComponent({
3217
3487
  name: "EcanSelect",
@@ -3282,7 +3552,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3282
3552
  }, null, 8, ["value", "options", "getPopupContainer", "field-names", "onChange"])
3283
3553
  ], 4);
3284
3554
  }
3285
- var Select = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__scopeId", "data-v-2a771bb2"]]);
3555
+ var Select = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__scopeId", "data-v-d70a9a94"]]);
3286
3556
  const EcanSelect = withInstall(Select);
3287
3557
  const rangePickerProps = __spreadProps(__spreadValues({}, props), {
3288
3558
  name: "\u8303\u56F4\u9009\u62E9\u5668",
@@ -3297,7 +3567,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3297
3567
  });
3298
3568
  const rangePickerComponentProps = transformToComponentProps(rangePickerProps);
3299
3569
  const rangePickerEvents = ["dateChange"];
3300
- var RangePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".range-picker[data-v-11b582ae] {\n width: 100%;\n height: 100%;\n}\n")();
3570
+ var RangePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".range-picker[data-v-61322f3d] {\n width: 100%;\n height: 100%;\n}\n")();
3301
3571
  var RangePicker_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => "[datav-theme='light'] .ecan-range-picker .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n}\n[datav-theme='light'] .ecan-range-picker .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n}\n[datav-theme='light'] .ecan-range-picker .anticon-calendar {\n color: #333;\n}\n[datav-theme='light'] .ecan-range-picker .anticon-close-circle {\n color: #333;\n}\n[datav-theme='light'] .ecan-range-picker .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n}\n[datav-theme='light'] .ecan-range-picker .ant-picker-separator .anticon {\n color: #333;\n}\n[datav-theme='darkBlue'] .ecan-range-picker .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n}\n[datav-theme='darkBlue'] .ecan-range-picker .ant-picker-input > input {\n color: #ffffff;\n}\n[datav-theme='darkBlue'] .ecan-range-picker .anticon-calendar {\n color: #ffffff;\n}\n[datav-theme='darkBlue'] .ecan-range-picker .anticon-close-circle {\n color: #333;\n}\n[datav-theme='darkBlue'] .ecan-range-picker .ant-picker-separator .anticon {\n color: #fff;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-header button {\n color: #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-content th {\n color: #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-content td {\n color: #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-today-btn {\n color: #69befa;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-cell-disabled .ant-picker-cell-inner {\n color: #999;\n}\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown .ant-picker-cell-disabled::before {\n background: #333;\n}\n")();
3302
3572
  const _sfc_main$d = vue.defineComponent({
3303
3573
  name: "EcanRangePicker",
@@ -3362,17 +3632,23 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3362
3632
  }, null, 8, ["value", "format", "picker", "locale", "getPopupContainer", "onChange"])
3363
3633
  ], 4);
3364
3634
  }
3365
- var RangePicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-11b582ae"]]);
3635
+ var RangePicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-61322f3d"]]);
3366
3636
  const EcanRangePicker = withInstall(RangePicker);
3367
3637
  const buttonProps = __spreadProps(__spreadValues({}, props), {
3368
3638
  width: "200px",
3369
3639
  name: "\u6309\u94AE",
3370
3640
  keyName: "\u6309\u94AE",
3371
- type: "ecanButton"
3641
+ type: "ecanButton",
3642
+ text: "\u6309\u94AE",
3643
+ mode: "default",
3644
+ danger: false,
3645
+ shape: "default",
3646
+ href: "",
3647
+ target: "_self"
3372
3648
  });
3373
3649
  const buttonComponentProps = transformToComponentProps(buttonProps);
3374
3650
  const buttonEvents = ["click"];
3375
- var Button_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".button[data-v-f60a3514] {\n width: 100%;\n height: 100%;\n}\n")();
3651
+ var Button_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".ecan-button .ant-btn {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n")();
3376
3652
  const _sfc_main$c = vue.defineComponent({
3377
3653
  name: "EcanButton",
3378
3654
  components: {
@@ -3384,32 +3660,46 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3384
3660
  const events = props2.events;
3385
3661
  const emitEvent = useEmitEvent(events);
3386
3662
  const click = emitEvent("click");
3663
+ const myText = vue.computed(() => useVariablesInText(props2.text));
3664
+ const myHref = vue.computed(() => {
3665
+ const href = props2.href;
3666
+ if (href) {
3667
+ return useVariablesInText(href);
3668
+ }
3669
+ return void 0;
3670
+ });
3387
3671
  return {
3388
3672
  style: style2,
3389
- click
3673
+ click,
3674
+ myText,
3675
+ myHref
3390
3676
  };
3391
3677
  }
3392
3678
  });
3393
- const _hoisted_1$5 = /* @__PURE__ */ vue.createTextVNode(" \u6D4B\u8BD5 ");
3394
3679
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
3395
3680
  const _component_a_button = vue.resolveComponent("a-button");
3396
3681
  return vue.openBlock(), vue.createElementBlock("div", {
3397
- class: "ecan-input",
3682
+ class: "ecan-button",
3398
3683
  style: vue.normalizeStyle(_ctx.style)
3399
3684
  }, [
3400
3685
  vue.createVNode(_component_a_button, {
3401
- class: "button",
3402
3686
  block: "",
3403
- onClick: _ctx.click
3687
+ onClick: _ctx.click,
3688
+ type: _ctx.mode,
3689
+ danger: _ctx.danger,
3690
+ ghost: _ctx.ghost,
3691
+ shape: _ctx.shape,
3692
+ href: _ctx.myHref,
3693
+ target: _ctx.target
3404
3694
  }, {
3405
3695
  default: vue.withCtx(() => [
3406
- _hoisted_1$5
3696
+ vue.createTextVNode(vue.toDisplayString(_ctx.myText), 1)
3407
3697
  ]),
3408
3698
  _: 1
3409
- }, 8, ["onClick"])
3699
+ }, 8, ["onClick", "type", "danger", "ghost", "shape", "href", "target"])
3410
3700
  ], 4);
3411
3701
  }
3412
- var Button = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c], ["__scopeId", "data-v-f60a3514"]]);
3702
+ var Button = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
3413
3703
  const EcanButton = withInstall(Button);
3414
3704
  const tabsProps = __spreadProps(__spreadValues({}, props), {
3415
3705
  type: "ecanTabs",
@@ -3423,7 +3713,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3423
3713
  activeTabBackgroundImage: "",
3424
3714
  tabColor: "#333",
3425
3715
  tabBarGutter: "0px",
3716
+ tabHeight: "30px",
3426
3717
  value: "",
3718
+ activeKey: 0,
3719
+ contains: [],
3427
3720
  data: [
3428
3721
  {
3429
3722
  title: "\u6807\u7B7E1"
@@ -3438,7 +3731,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3438
3731
  });
3439
3732
  const tabsComponentProps = transformToComponentProps(tabsProps);
3440
3733
  const tabsEvents = ["tabChange"];
3441
- var Tabs_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-tabs[data-v-2e2bded0] {\n box-sizing: border-box;\n color: #333333;\n display: flex;\n}\n.tab[data-v-2e2bded0] {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n background-size: 100% 100%;\n background-repeat: no-repeat;\n}\n.tab[data-v-2e2bded0]:last-child {\n margin-right: 0 !important;\n}\n")();
3734
+ var Tabs_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-tabs[data-v-27b19b45] {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n.tabs-header[data-v-27b19b45] {\n color: #333333;\n display: flex;\n width: 100%;\n}\n.tab[data-v-27b19b45] {\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-size: 100% 100%;\n background-repeat: no-repeat;\n}\n.tab[data-v-27b19b45]:last-child {\n margin-right: 0 !important;\n}\n.tabs-content[data-v-27b19b45] {\n flex: 1;\n}\n")();
3442
3735
  const _sfc_main$b = vue.defineComponent({
3443
3736
  name: "EcanTabs",
3444
3737
  props: __spreadValues({}, tabsComponentProps),
@@ -3446,20 +3739,32 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3446
3739
  var _a2;
3447
3740
  const style2 = usePickComponentStyle(props2);
3448
3741
  const activeKey = vue.ref(0);
3742
+ vue.watch(() => props2.activeKey, (key) => {
3743
+ activeKey.value = key;
3744
+ }, {
3745
+ immediate: true
3746
+ });
3449
3747
  const myData = vue.ref(props2.data);
3450
3748
  const isActive = (index2) => activeKey.value === index2;
3451
3749
  const myValue = vue.ref(props2.value || vue.unref(myData)[0] && ((_a2 = vue.unref(myData)[0]) == null ? void 0 : _a2.value) || "");
3452
3750
  const events = props2.events;
3453
3751
  const emitEvent = useEmitEvent(events);
3454
- const tabChange = emitEvent("tabChange", (tab, index2) => {
3455
- myValue.value = (tab == null ? void 0 : tab.value) || "";
3456
- activeKey.value = index2;
3457
- });
3458
3752
  const { setGlobalModel } = vue.inject(GLOBAL_MODEL, {
3459
3753
  setGlobalModel: (key, value) => void 0
3460
3754
  });
3461
3755
  setGlobalModel(props2.id, {
3462
- value: myValue
3756
+ value: myValue,
3757
+ activeKey
3758
+ });
3759
+ const { emitRefreshPage } = vue.inject(REFRESH_PAGE, {
3760
+ emitRefreshPage: () => void 0
3761
+ });
3762
+ const tabChange = emitEvent("tabChange", (tab, index2) => {
3763
+ if (index2 !== vue.unref(activeKey)) {
3764
+ myValue.value = (tab == null ? void 0 : tab.value) || "";
3765
+ activeKey.value = index2;
3766
+ emitRefreshPage();
3767
+ }
3463
3768
  });
3464
3769
  useOnEvent(props2, {
3465
3770
  tabChange
@@ -3474,28 +3779,38 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3474
3779
  };
3475
3780
  }
3476
3781
  });
3477
- const _hoisted_1$4 = ["onClick"];
3782
+ const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-27b19b45"), n = n(), vue.popScopeId(), n);
3783
+ const _hoisted_1$3 = ["onClick"];
3784
+ const _hoisted_2$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "tabs-content" }, null, -1));
3478
3785
  function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
3479
3786
  return vue.openBlock(), vue.createElementBlock("div", {
3480
3787
  class: "ecan-tabs",
3481
3788
  style: vue.normalizeStyle(_ctx.style)
3482
3789
  }, [
3483
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.myData, (tab, index2) => {
3484
- return vue.openBlock(), vue.createElementBlock("div", {
3485
- class: vue.normalizeClass(["tab"]),
3486
- style: vue.normalizeStyle({
3487
- color: _ctx.isActive(index2) ? _ctx.activeTabColor : _ctx.tabColor,
3488
- backgroundImage: _ctx.isActive(index2) ? _ctx.useImagePath(_ctx.activeTabBackgroundImage, true) : _ctx.useImagePath(_ctx.tabBackgroundImage, true),
3489
- marginRight: _ctx.tabBarGutter,
3490
- fontSize: _ctx.tabFontSize
3491
- }),
3492
- key: index2,
3493
- onClick: ($event) => _ctx.tabChange(tab, index2)
3494
- }, vue.toDisplayString(tab.title), 13, _hoisted_1$4);
3495
- }), 128))
3790
+ vue.createElementVNode("div", {
3791
+ class: "tabs-header",
3792
+ style: vue.normalizeStyle({
3793
+ fontSize: _ctx.tabFontSize
3794
+ })
3795
+ }, [
3796
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.myData, (tab, index2) => {
3797
+ return vue.openBlock(), vue.createElementBlock("div", {
3798
+ class: "tab",
3799
+ style: vue.normalizeStyle({
3800
+ color: _ctx.isActive(index2) ? _ctx.activeTabColor : _ctx.tabColor,
3801
+ backgroundImage: _ctx.isActive(index2) ? _ctx.useImagePath(_ctx.activeTabBackgroundImage, true) : _ctx.useImagePath(_ctx.tabBackgroundImage, true),
3802
+ marginRight: _ctx.tabBarGutter,
3803
+ height: _ctx.tabHeight
3804
+ }),
3805
+ key: index2,
3806
+ onClick: vue.withModifiers(($event) => _ctx.tabChange(tab, index2), ["stop"])
3807
+ }, vue.toDisplayString(tab.title), 13, _hoisted_1$3);
3808
+ }), 128))
3809
+ ], 4),
3810
+ _hoisted_2$1
3496
3811
  ], 4);
3497
3812
  }
3498
- var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-2e2bded0"]]);
3813
+ var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-27b19b45"]]);
3499
3814
  const EcanTabs = withInstall(Tabs);
3500
3815
  const pieProps = __spreadProps(__spreadValues({}, props), {
3501
3816
  id: "",
@@ -3547,14 +3862,43 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3547
3862
  gridBottom: "10%",
3548
3863
  gridLeft: "2%",
3549
3864
  gridRight: "2%",
3550
- graphicConfig: {}
3865
+ graphicConfig: {},
3866
+ toolboxShow: false,
3867
+ toolboxOrient: "horizontal",
3868
+ toolboxItemSize: 16,
3869
+ toolboxItemGap: 8,
3870
+ toolboxLeft: "right",
3871
+ toolboxTop: "top",
3872
+ toolboxIconStyleBorderColor: "#666",
3873
+ toolboxDownloadUrl: "",
3874
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
3551
3875
  });
3552
3876
  const pieComponentProps = transformToComponentProps(pieProps);
3553
3877
  const pieEvents = ["click", "refreshData"];
3878
+ const useDownloadFile = async (downloadFileUrl) => {
3879
+ var _a2;
3880
+ const res = await request.post(downloadFileUrl, {}, {
3881
+ responseType: "blob"
3882
+ });
3883
+ const { data, headers } = res;
3884
+ const fileName = headers["content-disposition"].replace(/\w+;filename=(.*)/, "$1");
3885
+ const blob = new Blob([data]);
3886
+ const dom = document.createElement("a");
3887
+ const url = window.URL.createObjectURL(blob);
3888
+ dom.href = url;
3889
+ dom.download = decodeURI(fileName);
3890
+ dom.style.display = "none";
3891
+ document.body.appendChild(dom);
3892
+ dom.click();
3893
+ (_a2 = dom.parentNode) == null ? void 0 : _a2.removeChild(dom);
3894
+ window.URL.revokeObjectURL(url);
3895
+ };
3896
+ var Pie_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .ant-modal-body {\n padding: 45px 30px 0;\n}\n")();
3554
3897
  core.use([
3555
3898
  renderers.CanvasRenderer,
3556
3899
  charts.PieChart,
3557
3900
  components$1.TitleComponent,
3901
+ components$1.ToolboxComponent,
3558
3902
  components$1.TooltipComponent,
3559
3903
  components$1.LegendComponent
3560
3904
  ]);
@@ -3563,11 +3907,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3563
3907
  props: __spreadValues({}, pieComponentProps),
3564
3908
  components: {
3565
3909
  Spin,
3566
- Echarts
3910
+ Echarts,
3911
+ AModal: antDesignVue.Modal
3567
3912
  },
3568
3913
  setup(props2) {
3569
3914
  const style2 = usePickComponentStyle(props2);
3570
3915
  const dataset = vue.ref([]);
3916
+ const visible = vue.ref(false);
3917
+ const hideModal = () => {
3918
+ visible.value = false;
3919
+ };
3571
3920
  const option = vue.computed(() => {
3572
3921
  let { data = [] } = vue.unref(dataset)[0] || {};
3573
3922
  if (Array.isArray(props2.colors)) {
@@ -3578,6 +3927,42 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3578
3927
  }, item));
3579
3928
  }
3580
3929
  return {
3930
+ toolbox: {
3931
+ show: props2.toolboxShow,
3932
+ left: props2.toolboxLeft,
3933
+ top: props2.toolboxTop,
3934
+ itemSize: props2.toolboxItemSize,
3935
+ itemGap: props2.toolboxItemGap,
3936
+ feature: {
3937
+ myDownload: {
3938
+ show: true,
3939
+ title: "\u6570\u636E\u4E0B\u8F7D",
3940
+ icon: "path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z",
3941
+ onclick() {
3942
+ useDownloadFile(props2.toolboxDownloadUrl);
3943
+ }
3944
+ },
3945
+ myDataZoom: {
3946
+ show: true,
3947
+ title: "\u653E\u5927",
3948
+ icon: "path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z",
3949
+ onclick() {
3950
+ visible.value = true;
3951
+ }
3952
+ },
3953
+ myInfo: {
3954
+ show: true,
3955
+ title: "\u8BF4\u660E\u4FE1\u606F",
3956
+ icon: "path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z",
3957
+ onclick() {
3958
+ antDesignVue.Modal.info({
3959
+ title: "\u8BF4\u660E\u4FE1\u606F",
3960
+ content: props2.toolboxInfoText
3961
+ });
3962
+ }
3963
+ }
3964
+ }
3965
+ },
3581
3966
  title: {
3582
3967
  text: props2.titleText,
3583
3968
  subtext: props2.titleSubtext,
@@ -3732,13 +4117,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3732
4117
  option,
3733
4118
  style: style2,
3734
4119
  click,
3735
- loading
4120
+ loading,
4121
+ visible,
4122
+ hideModal
3736
4123
  };
3737
4124
  }
3738
4125
  });
3739
4126
  function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
3740
4127
  const _component_echarts = vue.resolveComponent("echarts");
3741
4128
  const _component_spin = vue.resolveComponent("spin");
4129
+ const _component_a_modal = vue.resolveComponent("a-modal");
3742
4130
  return vue.openBlock(), vue.createElementBlock("div", {
3743
4131
  style: vue.normalizeStyle(_ctx.style)
3744
4132
  }, [
@@ -3751,7 +4139,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3751
4139
  }, null, 8, ["option", "onClick"])
3752
4140
  ]),
3753
4141
  _: 1
3754
- }, 8, ["spinning"])
4142
+ }, 8, ["spinning"]),
4143
+ vue.createVNode(_component_a_modal, {
4144
+ "wrap-class-name": "full-modal",
4145
+ width: "100%",
4146
+ visible: _ctx.visible,
4147
+ footer: null,
4148
+ onCancel: _ctx.hideModal
4149
+ }, {
4150
+ default: vue.withCtx(() => [
4151
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4152
+ default: vue.withCtx(() => [
4153
+ vue.createVNode(_component_echarts, {
4154
+ option: _ctx.option,
4155
+ "update-options": { notMerge: true },
4156
+ autoresize: ""
4157
+ }, null, 8, ["option"])
4158
+ ]),
4159
+ _: 1
4160
+ }, 8, ["spinning"])
4161
+ ]),
4162
+ _: 1
4163
+ }, 8, ["visible", "onCancel"])
3755
4164
  ], 4);
3756
4165
  }
3757
4166
  var Pie = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);
@@ -3802,13 +4211,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3802
4211
  valueTypeDataFieldNames: { name: "name", value: "value", type: "type" },
3803
4212
  keyTypeDataFieldNames: { name: "name", types: [] },
3804
4213
  dataFieldConfigType: "value",
3805
- graphicConfig: {}
4214
+ graphicConfig: {},
4215
+ toolboxShow: false,
4216
+ toolboxOrient: "horizontal",
4217
+ toolboxItemSize: 16,
4218
+ toolboxItemGap: 8,
4219
+ toolboxLeft: "right",
4220
+ toolboxTop: "top",
4221
+ toolboxIconStyleBorderColor: "#666",
4222
+ toolboxDownloadUrl: "",
4223
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
3806
4224
  });
3807
4225
  const lineComponentProps = transformToComponentProps(lineProps);
3808
4226
  const lineEvents = ["click", "refreshData"];
4227
+ var Line_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .ant-modal-body {\n padding: 45px 30px 0;\n}\n")();
3809
4228
  core.use([
3810
4229
  renderers.CanvasRenderer,
3811
4230
  charts.LineChart,
4231
+ components$1.ToolboxComponent,
3812
4232
  components$1.TitleComponent,
3813
4233
  components$1.LegendComponent
3814
4234
  ]);
@@ -3817,13 +4237,54 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3817
4237
  props: __spreadValues({}, lineComponentProps),
3818
4238
  components: {
3819
4239
  Spin,
3820
- Echarts
4240
+ Echarts,
4241
+ AModal: antDesignVue.Modal
3821
4242
  },
3822
4243
  setup(props2) {
3823
4244
  const style2 = usePickComponentStyle(props2);
3824
4245
  const series = vue.ref([]);
3825
4246
  const dimensions = vue.ref([]);
4247
+ const visible = vue.ref(false);
4248
+ const hideModal = () => {
4249
+ visible.value = false;
4250
+ };
3826
4251
  const option = vue.computed(() => ({
4252
+ toolbox: {
4253
+ show: props2.toolboxShow,
4254
+ left: props2.toolboxLeft,
4255
+ top: props2.toolboxTop,
4256
+ itemSize: props2.toolboxItemSize,
4257
+ itemGap: props2.toolboxItemGap,
4258
+ feature: {
4259
+ myDownload: {
4260
+ show: true,
4261
+ title: "\u6570\u636E\u4E0B\u8F7D",
4262
+ icon: "path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z",
4263
+ onclick() {
4264
+ useDownloadFile(props2.toolboxDownloadUrl);
4265
+ }
4266
+ },
4267
+ myDataZoom: {
4268
+ show: true,
4269
+ title: "\u653E\u5927",
4270
+ icon: "path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z",
4271
+ onclick() {
4272
+ visible.value = true;
4273
+ }
4274
+ },
4275
+ myInfo: {
4276
+ show: true,
4277
+ title: "\u8BF4\u660E\u4FE1\u606F",
4278
+ icon: "path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z",
4279
+ onclick() {
4280
+ antDesignVue.Modal.info({
4281
+ title: "\u8BF4\u660E\u4FE1\u606F",
4282
+ content: props2.toolboxInfoText
4283
+ });
4284
+ }
4285
+ }
4286
+ }
4287
+ },
3827
4288
  title: {
3828
4289
  text: props2.titleText,
3829
4290
  subText: props2.titleSubtext,
@@ -4017,13 +4478,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4017
4478
  option,
4018
4479
  style: style2,
4019
4480
  click,
4020
- loading
4481
+ loading,
4482
+ visible,
4483
+ hideModal
4021
4484
  };
4022
4485
  }
4023
4486
  });
4024
4487
  function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
4025
4488
  const _component_echarts = vue.resolveComponent("echarts");
4026
4489
  const _component_spin = vue.resolveComponent("spin");
4490
+ const _component_a_modal = vue.resolveComponent("a-modal");
4027
4491
  return vue.openBlock(), vue.createElementBlock("div", {
4028
4492
  style: vue.normalizeStyle(_ctx.style)
4029
4493
  }, [
@@ -4036,7 +4500,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4036
4500
  }, null, 8, ["option", "onClick"])
4037
4501
  ]),
4038
4502
  _: 1
4039
- }, 8, ["spinning"])
4503
+ }, 8, ["spinning"]),
4504
+ vue.createVNode(_component_a_modal, {
4505
+ "wrap-class-name": "full-modal",
4506
+ width: "100%",
4507
+ visible: _ctx.visible,
4508
+ footer: null,
4509
+ onCancel: _ctx.hideModal
4510
+ }, {
4511
+ default: vue.withCtx(() => [
4512
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4513
+ default: vue.withCtx(() => [
4514
+ vue.createVNode(_component_echarts, {
4515
+ option: _ctx.option,
4516
+ "update-options": { notMerge: true },
4517
+ autoresize: ""
4518
+ }, null, 8, ["option"])
4519
+ ]),
4520
+ _: 1
4521
+ }, 8, ["spinning"])
4522
+ ]),
4523
+ _: 1
4524
+ }, 8, ["visible", "onCancel"])
4040
4525
  ], 4);
4041
4526
  }
4042
4527
  var Line = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9]]);
@@ -4100,11 +4585,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4100
4585
  gridLeft: "2%",
4101
4586
  gridRight: "2%",
4102
4587
  graphicConfig: {
4103
- chartType: "pie",
4588
+ chartType: "bar",
4104
4589
  plugin: "1",
4105
4590
  layer: "2"
4106
4591
  },
4107
- toolboxShow: true,
4592
+ toolboxShow: false,
4108
4593
  toolboxOrient: "horizontal",
4109
4594
  toolboxItemSize: 16,
4110
4595
  toolboxItemGap: 8,
@@ -4116,25 +4601,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4116
4601
  });
4117
4602
  const barComponentProps = transformToComponentProps(barProps);
4118
4603
  const barEvents = ["refreshData", "click"];
4119
- const useDownloadFile = async (downloadFileUrl) => {
4120
- var _a2;
4121
- const res = await request.post(downloadFileUrl, {}, {
4122
- responseType: "blob"
4123
- });
4124
- const { data, headers } = res;
4125
- const fileName = headers["content-disposition"].replace(/\w+;filename=(.*)/, "$1");
4126
- const blob = new Blob([data]);
4127
- const dom = document.createElement("a");
4128
- const url = window.URL.createObjectURL(blob);
4129
- dom.href = url;
4130
- dom.download = decodeURI(fileName);
4131
- dom.style.display = "none";
4132
- document.body.appendChild(dom);
4133
- dom.click();
4134
- (_a2 = dom.parentNode) == null ? void 0 : _a2.removeChild(dom);
4135
- window.URL.revokeObjectURL(url);
4136
- };
4137
- var Bar_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .modal-inner {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 20px;\n}\n")();
4604
+ var Bar_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .ant-modal-body {\n padding: 45px 30px 0;\n}\n")();
4138
4605
  core.use([
4139
4606
  renderers.CanvasRenderer,
4140
4607
  charts.BarChart,
@@ -4324,12 +4791,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4324
4791
  loading.value = false;
4325
4792
  }
4326
4793
  };
4327
- const requestDiagram = useRequestDiagramData(props2);
4794
+ const indicatorData = useIndicatorData(props2);
4328
4795
  const handleIndicatorData = async () => {
4329
4796
  var _a2, _b2;
4330
4797
  try {
4331
4798
  loading.value = true;
4332
- const res = await requestDiagram();
4799
+ const res = await indicatorData();
4333
4800
  const { columns = [], rows = [] } = (_b2 = (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.data) != null ? _b2 : {};
4334
4801
  let fieldNames;
4335
4802
  if (columns.length > 0) {
@@ -4393,7 +4860,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4393
4860
  };
4394
4861
  }
4395
4862
  });
4396
- const _hoisted_1$3 = { class: "modal-inner" };
4397
4863
  function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
4398
4864
  const _component_echarts = vue.resolveComponent("echarts");
4399
4865
  const _component_spin = vue.resolveComponent("spin");
@@ -4421,18 +4887,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4421
4887
  onCancel: _ctx.hideModal
4422
4888
  }, {
4423
4889
  default: vue.withCtx(() => [
4424
- vue.createElementVNode("div", _hoisted_1$3, [
4425
- vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4426
- default: vue.withCtx(() => [
4427
- vue.createVNode(_component_echarts, {
4428
- option: _ctx.option,
4429
- "update-options": { notMerge: true },
4430
- autoresize: ""
4431
- }, null, 8, ["option"])
4432
- ]),
4433
- _: 1
4434
- }, 8, ["spinning"])
4435
- ])
4890
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4891
+ default: vue.withCtx(() => [
4892
+ vue.createVNode(_component_echarts, {
4893
+ option: _ctx.option,
4894
+ "update-options": { notMerge: true },
4895
+ autoresize: ""
4896
+ }, null, 8, ["option"])
4897
+ ]),
4898
+ _: 1
4899
+ }, 8, ["spinning"])
4436
4900
  ]),
4437
4901
  _: 1
4438
4902
  }, 8, ["visible", "onCancel"])
@@ -4482,13 +4946,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4482
4946
  gridBottom: "10%",
4483
4947
  gridLeft: "2%",
4484
4948
  gridRight: "2%",
4485
- graphicConfig: void 0
4949
+ graphicConfig: void 0,
4950
+ toolboxShow: false,
4951
+ toolboxOrient: "horizontal",
4952
+ toolboxItemSize: 16,
4953
+ toolboxItemGap: 8,
4954
+ toolboxLeft: "right",
4955
+ toolboxTop: "top",
4956
+ toolboxIconStyleBorderColor: "#666",
4957
+ toolboxDownloadUrl: "",
4958
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
4486
4959
  });
4487
4960
  const scatterComponentProps = transformToComponentProps(scatterProps);
4488
4961
  const scatterEvents = ["click", "refreshData"];
4962
+ var Scatter_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .ant-modal-body {\n padding: 45px 30px 0;\n}\n")();
4489
4963
  core.use([
4490
4964
  renderers.CanvasRenderer,
4491
4965
  charts.ScatterChart,
4966
+ components$1.ToolboxComponent,
4492
4967
  components$1.TitleComponent,
4493
4968
  components$1.TooltipComponent,
4494
4969
  components$1.LegendComponent
@@ -4503,7 +4978,47 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4503
4978
  setup(props2) {
4504
4979
  const style2 = usePickComponentStyle(props2);
4505
4980
  const dataset = vue.ref([]);
4981
+ const visible = vue.ref(false);
4982
+ const hideModal = () => {
4983
+ visible.value = false;
4984
+ };
4506
4985
  const option = vue.computed(() => ({
4986
+ toolbox: {
4987
+ show: props2.toolboxShow,
4988
+ left: props2.toolboxLeft,
4989
+ top: props2.toolboxTop,
4990
+ itemSize: props2.toolboxItemSize,
4991
+ itemGap: props2.toolboxItemGap,
4992
+ feature: {
4993
+ myDownload: {
4994
+ show: true,
4995
+ title: "\u6570\u636E\u4E0B\u8F7D",
4996
+ icon: "path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z",
4997
+ onclick() {
4998
+ useDownloadFile(props2.toolboxDownloadUrl);
4999
+ }
5000
+ },
5001
+ myDataZoom: {
5002
+ show: true,
5003
+ title: "\u653E\u5927",
5004
+ icon: "path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z",
5005
+ onclick() {
5006
+ visible.value = true;
5007
+ }
5008
+ },
5009
+ myInfo: {
5010
+ show: true,
5011
+ title: "\u8BF4\u660E\u4FE1\u606F",
5012
+ icon: "path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z",
5013
+ onclick() {
5014
+ antDesignVue.Modal.info({
5015
+ title: "\u8BF4\u660E\u4FE1\u606F",
5016
+ content: props2.toolboxInfoText
5017
+ });
5018
+ }
5019
+ }
5020
+ }
5021
+ },
4507
5022
  title: {
4508
5023
  text: props2.titleText,
4509
5024
  subtext: props2.titleSubtext,
@@ -4638,13 +5153,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4638
5153
  option,
4639
5154
  style: style2,
4640
5155
  click,
4641
- loading
5156
+ loading,
5157
+ visible,
5158
+ hideModal
4642
5159
  };
4643
5160
  }
4644
5161
  });
4645
5162
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4646
5163
  const _component_echarts = vue.resolveComponent("echarts");
4647
5164
  const _component_spin = vue.resolveComponent("spin");
5165
+ const _component_a_modal = vue.resolveComponent("a-modal");
4648
5166
  return vue.openBlock(), vue.createElementBlock("div", {
4649
5167
  style: vue.normalizeStyle(_ctx.style)
4650
5168
  }, [
@@ -4657,7 +5175,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4657
5175
  }, null, 8, ["option", "onClick"])
4658
5176
  ]),
4659
5177
  _: 1
4660
- }, 8, ["spinning"])
5178
+ }, 8, ["spinning"]),
5179
+ vue.createVNode(_component_a_modal, {
5180
+ "wrap-class-name": "full-modal",
5181
+ width: "100%",
5182
+ visible: _ctx.visible,
5183
+ footer: null,
5184
+ onCancel: _ctx.hideModal
5185
+ }, {
5186
+ default: vue.withCtx(() => [
5187
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
5188
+ default: vue.withCtx(() => [
5189
+ vue.createVNode(_component_echarts, {
5190
+ option: _ctx.option,
5191
+ "update-options": { notMerge: true },
5192
+ autoresize: ""
5193
+ }, null, 8, ["option"])
5194
+ ]),
5195
+ _: 1
5196
+ }, 8, ["spinning"])
5197
+ ]),
5198
+ _: 1
5199
+ }, 8, ["visible", "onCancel"])
4661
5200
  ], 4);
4662
5201
  }
4663
5202
  var Scatter = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);
@@ -4799,35 +5338,87 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4799
5338
  gridBottom: "10%",
4800
5339
  gridLeft: "2%",
4801
5340
  gridRight: "2%",
4802
- graphicConfig: {}
5341
+ graphicConfig: {},
5342
+ toolboxShow: false,
5343
+ toolboxOrient: "horizontal",
5344
+ toolboxItemSize: 16,
5345
+ toolboxItemGap: 8,
5346
+ toolboxLeft: "right",
5347
+ toolboxTop: "top",
5348
+ toolboxIconStyleBorderColor: "#666",
5349
+ toolboxDownloadUrl: "",
5350
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
4803
5351
  });
4804
5352
  const comboGraphComponentProps = transformToComponentProps(comboGraphProps);
4805
5353
  const comboGraphEvents = ["refreshData", "click"];
5354
+ var ComboGraph_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.full-modal .ant-modal-body {\n flex: 1;\n}\n.full-modal .ant-modal-body {\n padding: 45px 30px 0;\n}\n")();
4806
5355
  core.use([
4807
5356
  renderers.CanvasRenderer,
4808
5357
  charts.BarChart,
4809
5358
  charts.LineChart,
4810
5359
  components$1.TitleComponent,
4811
5360
  components$1.LegendComponent,
4812
- components$1.DatasetComponent
5361
+ components$1.DatasetComponent,
5362
+ components$1.ToolboxComponent
4813
5363
  ]);
4814
5364
  const _sfc_main$5 = vue.defineComponent({
4815
5365
  name: "EcanComboGraph",
4816
5366
  props: __spreadValues({}, comboGraphComponentProps),
4817
5367
  components: {
4818
5368
  Spin,
4819
- Echarts
5369
+ Echarts,
5370
+ AModal: antDesignVue.Modal
4820
5371
  },
4821
5372
  setup(props2) {
4822
5373
  const style2 = usePickComponentStyle(props2);
4823
5374
  const series = vue.ref([]);
4824
5375
  const dimensions = vue.ref([]);
5376
+ const visible = vue.ref(false);
5377
+ const hideModal = () => {
5378
+ visible.value = false;
5379
+ };
4825
5380
  const option = vue.computed(() => ({
4826
5381
  title: {
4827
5382
  text: props2.titleText,
4828
5383
  subtext: props2.titleSubtext,
4829
5384
  left: "center"
4830
5385
  },
5386
+ toolbox: {
5387
+ show: props2.toolboxShow,
5388
+ left: props2.toolboxLeft,
5389
+ top: props2.toolboxTop,
5390
+ itemSize: props2.toolboxItemSize,
5391
+ itemGap: props2.toolboxItemGap,
5392
+ feature: {
5393
+ myDownload: {
5394
+ show: true,
5395
+ title: "\u6570\u636E\u4E0B\u8F7D",
5396
+ icon: "path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z",
5397
+ onclick() {
5398
+ useDownloadFile(props2.toolboxDownloadUrl);
5399
+ }
5400
+ },
5401
+ myDataZoom: {
5402
+ show: true,
5403
+ title: "\u653E\u5927",
5404
+ icon: "path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z",
5405
+ onclick() {
5406
+ visible.value = true;
5407
+ }
5408
+ },
5409
+ myInfo: {
5410
+ show: true,
5411
+ title: "\u8BF4\u660E\u4FE1\u606F",
5412
+ icon: "path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z",
5413
+ onclick() {
5414
+ antDesignVue.Modal.info({
5415
+ title: "\u8BF4\u660E\u4FE1\u606F",
5416
+ content: props2.toolboxInfoText
5417
+ });
5418
+ }
5419
+ }
5420
+ }
5421
+ },
4831
5422
  grid: {
4832
5423
  top: props2.gridTop,
4833
5424
  bottom: props2.gridBottom,
@@ -5028,13 +5619,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5028
5619
  style: style2,
5029
5620
  option,
5030
5621
  click,
5031
- loading
5622
+ loading,
5623
+ visible,
5624
+ hideModal
5032
5625
  };
5033
5626
  }
5034
5627
  });
5035
5628
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
5036
5629
  const _component_echarts = vue.resolveComponent("echarts");
5037
5630
  const _component_spin = vue.resolveComponent("spin");
5631
+ const _component_a_modal = vue.resolveComponent("a-modal");
5038
5632
  return vue.openBlock(), vue.createElementBlock("div", {
5039
5633
  style: vue.normalizeStyle(_ctx.style)
5040
5634
  }, [
@@ -5048,7 +5642,29 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5048
5642
  }, null, 8, ["option", "onClick"])
5049
5643
  ]),
5050
5644
  _: 1
5051
- }, 8, ["spinning"])
5645
+ }, 8, ["spinning"]),
5646
+ vue.createVNode(_component_a_modal, {
5647
+ "wrap-class-name": "full-modal",
5648
+ width: "100%",
5649
+ visible: _ctx.visible,
5650
+ footer: null,
5651
+ onCancel: _ctx.hideModal
5652
+ }, {
5653
+ default: vue.withCtx(() => [
5654
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
5655
+ default: vue.withCtx(() => [
5656
+ vue.createVNode(_component_echarts, {
5657
+ option: _ctx.option,
5658
+ "update-options": { notMerge: true },
5659
+ autoresize: "",
5660
+ onClick: _ctx.click
5661
+ }, null, 8, ["option", "onClick"])
5662
+ ]),
5663
+ _: 1
5664
+ }, 8, ["spinning"])
5665
+ ]),
5666
+ _: 1
5667
+ }, 8, ["visible", "onCancel"])
5052
5668
  ], 4);
5053
5669
  }
5054
5670
  var ComboGraph = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5]]);
@@ -5064,102 +5680,125 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5064
5680
  fontFamily: "",
5065
5681
  fontWeight: 700,
5066
5682
  title: "\u6807\u9898",
5067
- mode: "top-title"
5683
+ mode: "only-border",
5684
+ borderColor: "#eee",
5685
+ borderRadius: "5px",
5686
+ borderStyle: "solid",
5687
+ borderWidth: "2px",
5688
+ backgroundColor: "",
5689
+ useBorderModify: false
5068
5690
  });
5069
5691
  const borderComponentProps = transformToComponentProps(borderProps);
5070
5692
  const borderEvents = ["click"];
5071
5693
  var _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=";
5072
5694
  var _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==";
5073
- var Border_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => '.top-title[data-v-f83231c0],\n.no-title[data-v-f83231c0] {\n border: 1px solid rgba(55, 85, 218, 0.3);\n background: rgba(7, 22, 85, 0.8);\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n.top-title .border-item[data-v-f83231c0],\n.no-title .border-item[data-v-f83231c0] {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n}\n.top-title .top-left[data-v-f83231c0],\n.no-title .top-left[data-v-f83231c0] {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n}\n.top-title .top-right[data-v-f83231c0],\n.no-title .top-right[data-v-f83231c0] {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n}\n.top-title .bottom-left[data-v-f83231c0],\n.no-title .bottom-left[data-v-f83231c0] {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n}\n.top-title .bottom-right[data-v-f83231c0],\n.no-title .bottom-right[data-v-f83231c0] {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n}\n.top-title .title-item-wrapper[data-v-f83231c0],\n.no-title .title-item-wrapper[data-v-f83231c0] {\n width: 100%;\n padding: 5px 0;\n background-image: url("data:image/png;base64,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");\n background-size: cover;\n display: grid;\n place-content: center;\n}\n.top-title .title-item[data-v-f83231c0],\n.no-title .title-item[data-v-f83231c0] {\n display: flex;\n align-items: center;\n}\n.top-title .title[data-v-f83231c0],\n.no-title .title[data-v-f83231c0] {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg, #01aaff, #00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.top-title .title-decoration-left[data-v-f83231c0],\n.no-title .title-decoration-left[data-v-f83231c0] {\n width: 58px;\n height: 14px;\n}\n.top-title .title-decoration-right[data-v-f83231c0],\n.no-title .title-decoration-right[data-v-f83231c0] {\n width: 58px;\n height: 14px;\n}\n.only-border[data-v-f83231c0] {\n border: 2px solid #375A8899;\n border-radius: 8px;\n width: 100%;\n height: 100%;\n}\n.left-title[data-v-f83231c0] {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 8px;\n}\n.left-title .title[data-v-f83231c0] {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url("data:image/png;base64,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");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n}\n.left-title .title span[data-v-f83231c0] {\n writing-mode: vertical-lr;\n}\n')();
5695
+ var Border_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => '.top-title[data-v-f913847e],\n.no-title[data-v-f913847e] {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n.top-title .border-item[data-v-f913847e],\n.no-title .border-item[data-v-f913847e] {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n}\n.top-title .top-left[data-v-f913847e],\n.no-title .top-left[data-v-f913847e] {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n}\n.top-title .top-right[data-v-f913847e],\n.no-title .top-right[data-v-f913847e] {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n}\n.top-title .bottom-left[data-v-f913847e],\n.no-title .bottom-left[data-v-f913847e] {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n}\n.top-title .bottom-right[data-v-f913847e],\n.no-title .bottom-right[data-v-f913847e] {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n}\n.top-title .title-item-wrapper[data-v-f913847e],\n.no-title .title-item-wrapper[data-v-f913847e] {\n width: 100%;\n padding: 5px 0;\n background-image: url("data:image/png;base64,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");\n background-size: cover;\n display: grid;\n place-content: center;\n}\n.top-title .title-item[data-v-f913847e],\n.no-title .title-item[data-v-f913847e] {\n display: flex;\n align-items: center;\n}\n.top-title .title[data-v-f913847e],\n.no-title .title[data-v-f913847e] {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg, #01aaff, #00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.top-title .title-decoration-left[data-v-f913847e],\n.no-title .title-decoration-left[data-v-f913847e] {\n width: 58px;\n height: 14px;\n}\n.top-title .title-decoration-right[data-v-f913847e],\n.no-title .title-decoration-right[data-v-f913847e] {\n width: 58px;\n height: 14px;\n}\n.left-title[data-v-f913847e] {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 0;\n}\n.left-title .title[data-v-f913847e] {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url("data:image/png;base64,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");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n}\n.left-title .title span[data-v-f913847e] {\n writing-mode: vertical-lr;\n}\n')();
5074
5696
  const _sfc_main$4 = vue.defineComponent({
5075
5697
  name: "EcanBorder",
5076
5698
  props: __spreadValues({}, borderComponentProps),
5077
5699
  setup(props2) {
5078
- const style2 = usePickComponentStyle(props2);
5700
+ const style2 = usePickComponentStyle(props2, ["background"]);
5701
+ const { theme } = vue.inject(GLOBAL_CONFIG, {
5702
+ theme: "light"
5703
+ });
5704
+ const borderStyle = vue.computed(() => {
5705
+ return {
5706
+ borderWidth: props2.borderWidth,
5707
+ borderStyle: props2.borderStyle,
5708
+ borderRadius: props2.borderRadius,
5709
+ borderColor: props2.borderColor,
5710
+ backgroundColor: props2.backgroundColor,
5711
+ width: "100%",
5712
+ height: "100%"
5713
+ };
5714
+ });
5079
5715
  const emitEvent = useEmitEvent(props2.events);
5080
5716
  const click = emitEvent("click", () => {
5081
5717
  });
5082
5718
  useOnEvent(props2, {
5083
5719
  click
5084
5720
  });
5721
+ const onDrag = (e) => {
5722
+ console.log(e);
5723
+ };
5085
5724
  return {
5086
5725
  style: style2,
5087
- click
5726
+ click,
5727
+ borderStyle,
5728
+ theme,
5729
+ onDrag
5088
5730
  };
5089
5731
  }
5090
5732
  });
5091
- const _withScopeId = (n) => (vue.pushScopeId("data-v-f83231c0"), n = n(), vue.popScopeId(), n);
5092
- const _hoisted_1$2 = {
5093
- key: 0,
5094
- class: "top-title"
5095
- };
5096
- const _hoisted_2 = { class: "title-item-wrapper" };
5097
- const _hoisted_3 = { class: "title-item" };
5098
- const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("img", {
5733
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-f913847e"), n = n(), vue.popScopeId(), n);
5734
+ const _hoisted_1$2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-left border-item" }, null, -1));
5735
+ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-right border-item" }, null, -1));
5736
+ const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-left border-item" }, null, -1));
5737
+ const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-right border-item" }, null, -1));
5738
+ const _hoisted_5 = { class: "title-item-wrapper" };
5739
+ const _hoisted_6 = { class: "title-item" };
5740
+ const _hoisted_7 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("img", {
5099
5741
  class: "title-decoration-left",
5100
5742
  src: _imports_0
5101
5743
  }, null, -1));
5102
- const _hoisted_5 = { class: "title" };
5103
- const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("img", {
5744
+ const _hoisted_8 = { class: "title" };
5745
+ const _hoisted_9 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("img", {
5104
5746
  class: "title-decoration-right",
5105
5747
  src: _imports_1
5106
5748
  }, null, -1));
5107
- const _hoisted_7 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-left border-item" }, null, -1));
5108
- const _hoisted_8 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-right border-item" }, null, -1));
5109
- const _hoisted_9 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-left border-item" }, null, -1));
5110
- const _hoisted_10 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-right border-item" }, null, -1));
5111
- const _hoisted_11 = {
5112
- key: 1,
5113
- class: "no-title"
5114
- };
5115
- const _hoisted_12 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-left border-item" }, null, -1));
5116
- const _hoisted_13 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-right border-item" }, null, -1));
5117
- const _hoisted_14 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-left border-item" }, null, -1));
5118
- const _hoisted_15 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-right border-item" }, null, -1));
5119
- const _hoisted_16 = [
5120
- _hoisted_12,
5121
- _hoisted_13,
5122
- _hoisted_14,
5123
- _hoisted_15
5124
- ];
5125
- const _hoisted_17 = {
5749
+ const _hoisted_10 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-left border-item" }, null, -1));
5750
+ const _hoisted_11 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "top-right border-item" }, null, -1));
5751
+ const _hoisted_12 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-left border-item" }, null, -1));
5752
+ const _hoisted_13 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "bottom-right border-item" }, null, -1));
5753
+ const _hoisted_14 = {
5126
5754
  key: 2,
5127
- class: "only-border"
5128
- };
5129
- const _hoisted_18 = {
5130
- key: 3,
5131
5755
  class: "left-title"
5132
5756
  };
5133
- const _hoisted_19 = { class: "title" };
5757
+ const _hoisted_15 = { class: "title" };
5134
5758
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
5135
5759
  return vue.openBlock(), vue.createElementBlock("div", {
5136
5760
  class: "ecan-border",
5137
5761
  style: vue.normalizeStyle(_ctx.style),
5138
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
5762
+ onClick: _cache[1] || (_cache[1] = (...args) => _ctx.click && _ctx.click(...args))
5139
5763
  }, [
5140
- _ctx.mode === "top-title" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
5141
- vue.createElementVNode("div", _hoisted_2, [
5142
- vue.createElementVNode("div", _hoisted_3, [
5143
- _hoisted_4,
5144
- vue.createElementVNode("div", _hoisted_5, vue.toDisplayString(_ctx.title), 1),
5145
- _hoisted_6
5764
+ _ctx.mode === "no-title" ? (vue.openBlock(), vue.createElementBlock("div", {
5765
+ key: 0,
5766
+ class: "no-title",
5767
+ style: vue.normalizeStyle(_ctx.borderStyle),
5768
+ onDrag: _cache[0] || (_cache[0] = (...args) => _ctx.onDrag && _ctx.onDrag(...args))
5769
+ }, [
5770
+ _ctx.useBorderModify ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
5771
+ _hoisted_1$2,
5772
+ _hoisted_2,
5773
+ _hoisted_3,
5774
+ _hoisted_4
5775
+ ], 64)) : vue.createCommentVNode("", true)
5776
+ ], 36)) : vue.createCommentVNode("", true),
5777
+ _ctx.mode === "top-title" ? (vue.openBlock(), vue.createElementBlock("div", {
5778
+ key: 1,
5779
+ class: "top-title",
5780
+ style: vue.normalizeStyle(_ctx.borderStyle)
5781
+ }, [
5782
+ vue.createElementVNode("div", _hoisted_5, [
5783
+ vue.createElementVNode("div", _hoisted_6, [
5784
+ _hoisted_7,
5785
+ vue.createElementVNode("div", _hoisted_8, vue.toDisplayString(_ctx.title), 1),
5786
+ _hoisted_9
5146
5787
  ])
5147
5788
  ]),
5148
- _hoisted_7,
5149
- _hoisted_8,
5150
- _hoisted_9,
5151
- _hoisted_10
5152
- ])) : vue.createCommentVNode("", true),
5153
- _ctx.mode === "no-title" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, _hoisted_16)) : vue.createCommentVNode("", true),
5154
- _ctx.mode === "only-border" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17)) : vue.createCommentVNode("", true),
5155
- _ctx.mode === "left-title" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18, [
5156
- vue.createElementVNode("div", _hoisted_19, [
5789
+ _hoisted_10,
5790
+ _hoisted_11,
5791
+ _hoisted_12,
5792
+ _hoisted_13
5793
+ ], 4)) : vue.createCommentVNode("", true),
5794
+ _ctx.mode === "left-title" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14, [
5795
+ vue.createElementVNode("div", _hoisted_15, [
5157
5796
  vue.createElementVNode("span", null, vue.toDisplayString(_ctx.title), 1)
5158
5797
  ])
5159
5798
  ])) : vue.createCommentVNode("", true)
5160
5799
  ], 4);
5161
5800
  }
5162
- var Border = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-f83231c0"]]);
5801
+ var Border = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-f913847e"]]);
5163
5802
  const EcanBorder = withInstall(Border);
5164
5803
  const modalProps = {
5165
5804
  id: "",
@@ -5182,7 +5821,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5182
5821
  };
5183
5822
  const modalComponentProps = transformToComponentProps(modalProps);
5184
5823
  const modalEvents = ["showModal"];
5185
- var Modal_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".contain[data-v-0b2fdae1] {\n position: relative;\n overflow: hidden;\n}\n.content[data-v-0b2fdae1] {\n transform-origin: left top;\n z-index: 999;\n}\n")();
5824
+ var Modal_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".contain[data-v-378919f0] {\n position: relative;\n overflow: hidden;\n}\n.content[data-v-378919f0] {\n transform-origin: left top;\n z-index: 999;\n}\n")();
5186
5825
  var Modal_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => ".ecan-modal .ant-modal-body {\n padding: 0;\n}\n.ecan-modal .ant-modal-header {\n padding: 0;\n border-bottom: none;\n background: none;\n}\n.ecan-full-width-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.ecan-full-width-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n}\n.ecan-full-width-modal .ant-modal-body {\n flex: 1;\n}\n.ecan-full-modal .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n.ecan-full-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n}\n.ecan-full-modal .ant-modal-body {\n flex: 1;\n}\n[datav-theme='darkBlue'] .ecan-modal .anticon-close > svg > path {\n fill: #fff;\n}\n")();
5187
5826
  const _sfc_main$3 = vue.defineComponent({
5188
5827
  name: "EcanModal",
@@ -5327,7 +5966,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5327
5966
  } : void 0
5328
5967
  ]), 1032, ["getContainer", "wrapClassName", "visible", "width", "destroyOnClose", "style", "onOk", "onCancel"]);
5329
5968
  }
5330
- var Modal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-0b2fdae1"]]);
5969
+ var Modal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-378919f0"]]);
5331
5970
  const EcanModal = withInstall(Modal);
5332
5971
  const imageProps = __spreadProps(__spreadValues({}, props), {
5333
5972
  name: "\u56FE\u7247",
@@ -5425,38 +6064,41 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5425
6064
  address: "\u798F\u5DDE\u8F6F\u4EF6\u56ED"
5426
6065
  }
5427
6066
  ],
5428
- graphicConfig: {}
6067
+ graphicConfig: {
6068
+ chartType: "table",
6069
+ plugin: "1",
6070
+ layer: "1"
6071
+ }
5429
6072
  });
5430
6073
  const tableComponentProps = transformToComponentProps(tableProps);
5431
6074
  const tableEvents = ["click", "refreshData"];
5432
- var Table_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.table[data-v-3c009dfc] {
6075
+ var Table_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.table[data-v-56b87792] {
5433
6076
  width: 100%;
5434
- height: 100%;
5435
6077
  }
5436
- .goUp[data-v-3c009dfc] {
6078
+ .goUp[data-v-56b87792] {
5437
6079
  color: #FF512E;
5438
6080
  display: flex;
5439
6081
  align-items: center;
5440
6082
  }
5441
- .goUp[data-v-3c009dfc]:before {
6083
+ .goUp[data-v-56b87792]:before {
5442
6084
  content: '';
5443
6085
  display: block;
5444
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=");
6086
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=");
5445
6087
  width: 12px;
5446
6088
  height: 12px;
5447
6089
  background-repeat: no-repeat;
5448
6090
  background-size: cover;
5449
6091
  margin-right: 2px;
5450
6092
  }
5451
- .goDown[data-v-3c009dfc] {
6093
+ .goDown[data-v-56b87792] {
5452
6094
  color: #00F7B4;
5453
6095
  display: flex;
5454
6096
  align-items: center;
5455
6097
  }
5456
- .goDown[data-v-3c009dfc]:before {
6098
+ .goDown[data-v-56b87792]:before {
5457
6099
  content: '';
5458
6100
  display: block;
5459
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAaVBMVEUAAAAA+b0A+LwA+L0A/6AA+LwA+L0A+L0A+b0A+LwA/78A+LwA+L0A+LwA+LwA+b0A+LsA970A+LwA+r0A9boA/7YA+LwA+LwA+LwA+L0A97wA+bwA970A970A+bwA+bwA+LsA9rkA+LzcCa+5AAAAInRSTlMAd/uVAvjYxCsiDvPp37F7aWBMNBgK7s/NvKidh4NXUEcdp9A1SAAAAI5JREFUKM+l0UcOwzAMRFGqWZbcW3rl/Q8ZhUGKMN7lLedD4EKUi/3BEIrGsQu432pmPuF+1WnfRNjLipMz7HbHT3cIF9n3BLYSerzAooSgZNcWQiuhIdBI8JQblNISCqXU/BNG/mqzJ+az13MWluIdRspNmgV+Rvc6vkCwPu1uIhQq5o7WDOwtrToG+ssDeh4QPgfT2X0AAAAASUVORK5CYII=");
6101
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAaVBMVEUAAAAA+b0A+LwA+L0A/6AA+LwA+L0A+L0A+b0A+LwA/78A+LwA+L0A+LwA+LwA+b0A+LsA970A+LwA+r0A9boA/7YA+LwA+LwA+LwA+L0A97wA+bwA970A970A+bwA+bwA+LsA9rkA+LzcCa+5AAAAInRSTlMAd/uVAvjYxCsiDvPp37F7aWBMNBgK7s/NvKidh4NXUEcdp9A1SAAAAI5JREFUKM+l0UcOwzAMRFGqWZbcW3rl/Q8ZhUGKMN7lLedD4EKUi/3BEIrGsQu432pmPuF+1WnfRNjLipMz7HbHT3cIF9n3BLYSerzAooSgZNcWQiuhIdBI8JQblNISCqXU/BNG/mqzJ+az13MWluIdRspNmgV+Rvc6vkCwPu1uIhQq5o7WDOwtrToG+ssDeh4QPgfT2X0AAAAASUVORK5CYII=");
5460
6102
  width: 12px;
5461
6103
  height: 12px;
5462
6104
  background-repeat: no-repeat;
@@ -5464,7 +6106,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5464
6106
  margin-right: 2px;
5465
6107
  }
5466
6108
  `)();
5467
- var Table_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => ".ecan-table *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n.ecan-table *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\n background-color: #c8c9ca !important;\n}\n.ecan-table *::-webkit-scrollbar-track {\n background-color: #fff;\n}\n.ecan-table .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n}\n.ecan-table .ant-table {\n color: rgba(0, 0, 0, 0.65);\n background: #ffffff;\n}\n.ecan-table .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, 0.85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n}\n.ecan-table .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ecan-table .ant-table-bordered .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n}\n.ecan-table .ant-table-bordered .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n}\n.ecan-table .ant-pagination-item-link {\n border: 1px solid #d9d9d9 !important;\n}\n.ecan-table .anticon {\n color: rgba(0, 0, 0, 0.65) !important;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-track {\n background-color: #192c70;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table {\n color: #e8e8e8;\n background: #071655;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n[datav-theme='darkBlue'] .ecan-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-bordered .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-bordered .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-pagination-item-link {\n background: #17338c !important;\n border: 1px solid #243c8e !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-pagination-item {\n background: #17338c !important;\n}\n[datav-theme='darkBlue'] .ecan-table .anticon {\n color: rgba(255, 255, 255, 0.65) !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n}\n")();
6109
+ var Table_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => ".ecan-table *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n.ecan-table *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\n background-color: #c8c9ca !important;\n}\n.ecan-table *::-webkit-scrollbar-track {\n background-color: #fff;\n}\n.ecan-table .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n}\n.ecan-table .ant-table {\n color: rgba(0, 0, 0, 0.65);\n background: #ffffff;\n}\n.ecan-table .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, 0.85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n}\n.ecan-table .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n}\n.ecan-table .ant-table-bordered .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n}\n.ecan-table .ant-table-bordered .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n}\n.ecan-table .anticon {\n color: rgba(0, 0, 0, 0.65) !important;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-track {\n background-color: #192c70;\n}\n[datav-theme='darkBlue'] .ecan-table *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table {\n color: #e8e8e8;\n background: #071655;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n[datav-theme='darkBlue'] .ecan-table .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-bordered .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-bordered .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-pagination-item-link {\n background: #17338c !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-pagination-item {\n background: #17338c !important;\n}\n[datav-theme='darkBlue'] .ecan-table .anticon {\n color: rgba(255, 255, 255, 0.65) !important;\n}\n[datav-theme='darkBlue'] .ecan-table .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n}\n")();
5468
6110
  const _sfc_main$1 = vue.defineComponent({
5469
6111
  name: "EcanTable",
5470
6112
  components: {
@@ -5475,7 +6117,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5475
6117
  ATableSummaryCell: antDesignVue.TableSummaryCell
5476
6118
  },
5477
6119
  props: __spreadValues({}, tableComponentProps),
5478
- setup(props2) {
6120
+ setup(props2, { expose }) {
5479
6121
  const style2 = usePickComponentStyle(props2);
5480
6122
  const splitY = vue.computed(() => {
5481
6123
  if (props2.paginationShow) {
@@ -5574,7 +6216,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5574
6216
  };
5575
6217
  const tableChange = ({ current }, _filters, _sorter) => {
5576
6218
  pageNum.value = current;
5577
- handleIndicatorData();
5578
6219
  };
5579
6220
  const pagination = vue.computed(() => {
5580
6221
  const simple = props2.simple;
@@ -5632,12 +6273,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5632
6273
  });
5633
6274
  dataSource.value = rows;
5634
6275
  };
5635
- const requestDiagram = useRequestDiagramData(props2);
6276
+ const indicatorData = useIndicatorData(props2);
5636
6277
  const handleIndicatorData = async () => {
5637
6278
  var _a2, _b2, _c2, _d;
5638
6279
  try {
5639
6280
  loading.value = true;
5640
- const res = await requestDiagram();
6281
+ const res = await indicatorData();
5641
6282
  handleIndicatorDataset((_b2 = (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.data) == null ? void 0 : _b2.columns, (_d = (_c2 = res == null ? void 0 : res.data) == null ? void 0 : _c2.data) == null ? void 0 : _d.rows);
5642
6283
  } catch (e) {
5643
6284
  console.error(e);
@@ -5653,6 +6294,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5653
6294
  })
5654
6295
  });
5655
6296
  const refreshData = () => {
6297
+ console.log(vue.unref(pageMode));
5656
6298
  if (vue.unref(pageMode) === "design")
5657
6299
  return;
5658
6300
  switch (props2.dataType) {
@@ -5706,6 +6348,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5706
6348
  setRequest: (requestFn, sortNum) => void 0
5707
6349
  });
5708
6350
  setRequest(refreshData, props2.requestSort);
6351
+ expose({
6352
+ refreshData
6353
+ });
5709
6354
  return {
5710
6355
  x,
5711
6356
  y,
@@ -5737,6 +6382,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5737
6382
  default: vue.withCtx(() => [
5738
6383
  vue.createVNode(_component_a_table, {
5739
6384
  class: "table",
6385
+ style: {
6386
+ height: "100%"
6387
+ },
5740
6388
  columns: _ctx.dataColumns.length > 0 ? _ctx.dataColumns : _ctx.myColumns,
5741
6389
  "data-source": _ctx.dataSource,
5742
6390
  bordered: _ctx.bordered,
@@ -5792,7 +6440,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5792
6440
  }, 8, ["loading"])
5793
6441
  ], 4);
5794
6442
  }
5795
- var Table = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-3c009dfc"]]);
6443
+ var Table = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-56b87792"]]);
5796
6444
  const EcanTable = withInstall(Table);
5797
6445
  const mapProps = __spreadProps(__spreadValues({}, props), {
5798
6446
  mapJson: null,
@@ -6005,6 +6653,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6005
6653
  providerConfig,
6006
6654
  providerConfigComponentProps,
6007
6655
  EcanProviderConfig,
6656
+ renderer,
6657
+ rendererComponentProps,
6658
+ EcanRenderer,
6008
6659
  textProps,
6009
6660
  textComponentProps,
6010
6661
  textEvents,
@@ -6114,6 +6765,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6114
6765
  exports2.EcanProportion = EcanProportion;
6115
6766
  exports2.EcanProviderConfig = EcanProviderConfig;
6116
6767
  exports2.EcanRangePicker = EcanRangePicker;
6768
+ exports2.EcanRenderer = EcanRenderer;
6117
6769
  exports2.EcanScatter = EcanScatter;
6118
6770
  exports2.EcanScrollText = EcanScrollText;
6119
6771
  exports2.EcanSelect = EcanSelect;
@@ -6167,6 +6819,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6167
6819
  exports2.rangePickerComponentProps = rangePickerComponentProps;
6168
6820
  exports2.rangePickerEvents = rangePickerEvents;
6169
6821
  exports2.rangePickerProps = rangePickerProps;
6822
+ exports2.renderer = renderer;
6823
+ exports2.rendererComponentProps = rendererComponentProps;
6170
6824
  exports2.scatterComponentProps = scatterComponentProps;
6171
6825
  exports2.scatterEvents = scatterEvents;
6172
6826
  exports2.scatterProps = scatterProps;