@ecan-bi/datav 1.0.39 → 1.0.42

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 (55) hide show
  1. package/dist/index.es.js +701 -173
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +699 -171
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +132 -72
  6. package/package.json +1 -1
  7. package/types/_utils/constant.d.ts +2 -1
  8. package/types/_utils/hooks/index.d.ts +1 -0
  9. package/types/_utils/hooks/useIndicatorData.d.ts +4 -0
  10. package/types/common/echarts/Echarts.d.ts +418 -0
  11. package/types/common/echarts/index.d.ts +2 -2
  12. package/types/common/index.d.ts +1 -1
  13. package/types/common/skeleton/Skeleton.vue.d.ts +14 -0
  14. package/types/common/skeleton/index.d.ts +2 -0
  15. package/types/container/border/Border.vue.d.ts +54 -54
  16. package/types/container/border/props.d.ts +54 -54
  17. package/types/container/modal/Modal.vue.d.ts +1 -1
  18. package/types/container/modal/index.d.ts +1 -1
  19. package/types/control/button/Button.vue.d.ts +72 -0
  20. package/types/control/button/index.d.ts +72 -0
  21. package/types/control/button/props.d.ts +84 -44
  22. package/types/control/date-picker/props.d.ts +52 -52
  23. package/types/control/input/props.d.ts +48 -48
  24. package/types/control/range-picker/RangePicker.vue.d.ts +52 -52
  25. package/types/control/range-picker/props.d.ts +52 -52
  26. package/types/control/select/Select.vue.d.ts +50 -50
  27. package/types/control/select/props.d.ts +50 -50
  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/table/table/Table.vue.d.ts +900 -79
  47. package/types/table/table/index.d.ts +899 -79
  48. package/types/table/table/props.d.ts +451 -39
  49. package/types/text/list/List.vue.d.ts +64 -64
  50. package/types/text/list/props.d.ts +64 -64
  51. package/types/text/proportion/Proportion.vue.d.ts +68 -68
  52. package/types/text/proportion/props.d.ts +68 -68
  53. package/types/text/text/Text.vue.d.ts +66 -66
  54. package/types/text/text/props.d.ts +66 -66
  55. package/types/text/time-display/props.d.ts +60 -60
package/dist/index.umd.js CHANGED
@@ -143,7 +143,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
143
143
  const THEME_KEY = "ecTheme";
144
144
  const INIT_OPTIONS_KEY = "ecInitOptions";
145
145
  const UPDATE_OPTIONS_KEY = "ecUpdateOptions";
146
- var ECharts = vue.defineComponent({
146
+ var Echarts = vue.defineComponent({
147
147
  name: "echarts",
148
148
  props: __spreadValues(__spreadValues({
149
149
  option: Object,
@@ -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" };
1409
+ const _hoisted_1$9 = { class: "spin-wrapper" };
1410
1410
  function _sfc_render$p(_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",
@@ -1420,7 +1420,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1420
1420
  ]);
1421
1421
  }
1422
1422
  var Spin = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
1423
- vue.defineComponent({
1423
+ const _sfc_main$o = vue.defineComponent({
1424
1424
  name: "Skeleton",
1425
1425
  props: {
1426
1426
  loading: {
@@ -1432,6 +1432,19 @@ 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) {
1436
+ const _component_a_skeleton = vue.resolveComponent("a-skeleton");
1437
+ return vue.openBlock(), vue.createBlock(_component_a_skeleton, {
1438
+ active: "",
1439
+ loading: _ctx.loading
1440
+ }, {
1441
+ default: vue.withCtx(() => [
1442
+ vue.renderSlot(_ctx.$slots, "default")
1443
+ ]),
1444
+ _: 3
1445
+ }, 8, ["loading"]);
1446
+ }
1447
+ var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
1435
1448
  const withInstall = (main, extra) => {
1436
1449
  main.install = (app) => {
1437
1450
  for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
@@ -1519,9 +1532,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1519
1532
  const GLOBAL_CONFIG = "GLOBAL_CONFIG";
1520
1533
  const GLOBAL_MODEL = "GLOBAL_MODEL";
1521
1534
  const REQUEST_MODEL = "REQUEST_MODEL";
1522
- const UPLOAD_PATH = ((_a = window == null ? void 0 : window.config) == null ? void 0 : _a.uploadPath) || "/api";
1523
- const BASE_URL = ((_b = window == null ? void 0 : window.config) == null ? void 0 : _b.routerBaseURL) || "./";
1524
- const INDICATOR_URL = (_c = window == null ? void 0 : window.config) == null ? void 0 : _c.indicatorURL;
1535
+ const GLOBAL_TOKEN = "GLOBAL_TOKEN";
1536
+ const INDICATOR_URL = (_a = window == null ? void 0 : window.config) == null ? void 0 : _a.indicatorURL;
1537
+ const UPLOAD_PATH = ((_b = window == null ? void 0 : window.config) == null ? void 0 : _b.uploadPath) || "/api";
1538
+ const BASE_URL = ((_c = window == null ? void 0 : window.config) == null ? void 0 : _c.routerBaseURL) || "./";
1525
1539
  const useOnEvent = (props2, events) => {
1526
1540
  vue.watch(() => props2.id, (id, oldId) => {
1527
1541
  const eventBus = vue.inject(EVENT_BUS, {
@@ -1764,12 +1778,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1764
1778
  const usePageUrl = (pageMode, pageId) => {
1765
1779
  const envPageUrl = `/preview?pageId=${pageId}`;
1766
1780
  const proPageUrl = `${BASE_URL}${pageId}`;
1781
+ console.log(pageMode);
1767
1782
  return pageMode === "preview" ? envPageUrl : proPageUrl;
1768
1783
  };
1769
1784
  const useVariablesInText = (text, data = {}) => {
1770
1785
  var _a2;
1771
- const config = (_a2 = window.config) != null ? _a2 : {};
1772
- data = __spreadValues(__spreadValues({}, config), data);
1786
+ const config2 = (_a2 = window.config) != null ? _a2 : {};
1787
+ data = __spreadValues(__spreadValues({}, config2), data);
1773
1788
  const variables = text.match(/\{.*?\}/g);
1774
1789
  if (variables == null || variables.length === 0)
1775
1790
  return text;
@@ -1788,20 +1803,20 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1788
1803
  const request = axios__default["default"].create({
1789
1804
  timeout: 1e3 * 10
1790
1805
  });
1791
- request.interceptors.request.use((config) => {
1792
- return config;
1806
+ request.interceptors.request.use((config2) => {
1807
+ return config2;
1793
1808
  }, (error) => {
1794
1809
  return Promise.reject(error);
1795
1810
  });
1796
- request.interceptors.response.use((config) => {
1811
+ request.interceptors.response.use((config2) => {
1797
1812
  var _a2, _b2, _c2;
1798
- if (+((_a2 = config == null ? void 0 : config.data) == null ? void 0 : _a2.code) === 500) {
1813
+ if (+((_a2 = config2 == null ? void 0 : config2.data) == null ? void 0 : _a2.code) === 500) {
1799
1814
  antDesignVue.message.error({
1800
- 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",
1815
+ 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",
1801
1816
  key: "SERVER_ERROR"
1802
1817
  });
1803
1818
  }
1804
- return config;
1819
+ return config2;
1805
1820
  }, (error) => {
1806
1821
  if (error.message.includes("timeout")) {
1807
1822
  antDesignVue.message.error({
@@ -2175,8 +2190,209 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2175
2190
  }
2176
2191
  return formatter;
2177
2192
  };
2193
+ const useIndicatorData = (props2 = {}) => {
2194
+ const { requestToken } = vue.inject(GLOBAL_TOKEN, {
2195
+ requestToken: () => void 0
2196
+ });
2197
+ if (props2.dataType === "indicator") {
2198
+ requestToken();
2199
+ }
2200
+ const handleQueryColumn = (queryColumn = {}) => {
2201
+ const { label, name, location, show, indexCode } = queryColumn;
2202
+ return {
2203
+ label,
2204
+ columnName: name,
2205
+ location,
2206
+ show,
2207
+ calcType: "COLUMN",
2208
+ hrpIndexCode: indexCode
2209
+ };
2210
+ };
2211
+ const handleIndicator = (indicator = {}) => {
2212
+ const {
2213
+ label,
2214
+ name,
2215
+ location,
2216
+ show,
2217
+ indexCode,
2218
+ calcType = "COLUMN",
2219
+ builtInFormula,
2220
+ builtInValueSource,
2221
+ builtInCalcWay,
2222
+ formula
2223
+ } = indicator;
2224
+ return {
2225
+ label,
2226
+ columnName: name,
2227
+ location,
2228
+ show,
2229
+ calcType,
2230
+ hrpIndexCode: indexCode,
2231
+ aggregate: "SUM",
2232
+ builtInFormula,
2233
+ builtInValueSource,
2234
+ builtInCalcWay,
2235
+ formula
2236
+ };
2237
+ };
2238
+ const { getGlobalModel } = vue.inject(GLOBAL_MODEL, {
2239
+ getGlobalModel: (key) => void 0
2240
+ });
2241
+ const handleSqlConditions = (controlList = []) => {
2242
+ var _a2;
2243
+ const len = controlList.length;
2244
+ const sqlConditions = [];
2245
+ for (let i = 0; i < len; i++) {
2246
+ const control = controlList[i];
2247
+ const {
2248
+ id,
2249
+ conditionLabel,
2250
+ conditionKey,
2251
+ conditionValueType
2252
+ } = control;
2253
+ const sqlCondition = {
2254
+ rule: "NONE",
2255
+ label: conditionLabel,
2256
+ fieldName: conditionKey,
2257
+ fieldValue: "",
2258
+ valueType: conditionValueType
2259
+ };
2260
+ const model = getGlobalModel(id) || {};
2261
+ if (lowerCaseIncludes(model.type, "date")) {
2262
+ const { value, format } = model || {};
2263
+ sqlCondition.fieldValue = (_a2 = vue.unref(value)) == null ? void 0 : _a2.format(format);
2264
+ sqlCondition.dateFormat = format;
2265
+ }
2266
+ sqlConditions.push(sqlCondition);
2267
+ }
2268
+ return sqlConditions;
2269
+ };
2270
+ return async () => {
2271
+ var _a2, _b2;
2272
+ const { graphicConfig } = props2;
2273
+ const {
2274
+ source,
2275
+ dataViewId,
2276
+ plugin,
2277
+ layer,
2278
+ chartType,
2279
+ classificationList = [],
2280
+ seriesList = [],
2281
+ leftAxisList = [],
2282
+ rightAxisList = [],
2283
+ queryColumnList = [],
2284
+ indicators = [],
2285
+ controlList = [],
2286
+ dataSourceId,
2287
+ idxLibMode,
2288
+ preview = false
2289
+ } = graphicConfig || {};
2290
+ console.log("classificationList", classificationList);
2291
+ console.log("seriesList", seriesList);
2292
+ console.log("leftAxisList", leftAxisList);
2293
+ console.log("rightAxisList", rightAxisList);
2294
+ console.log("indicators", indicators);
2295
+ console.log("controlList", controlList);
2296
+ let classification;
2297
+ if (Array.isArray(classificationList) && classificationList.length > 0) {
2298
+ const len = classificationList.length;
2299
+ for (let i = 0; i < len; i++) {
2300
+ const item = classificationList[i] || {};
2301
+ const { label = "", name = "", show = false, sort, customGroup } = item;
2302
+ if (show) {
2303
+ classification = {
2304
+ label,
2305
+ columnName: name,
2306
+ show,
2307
+ sort,
2308
+ customGroup
2309
+ };
2310
+ break;
2311
+ }
2312
+ }
2313
+ }
2314
+ let series;
2315
+ if (Array.isArray(seriesList) && seriesList.length > 0) {
2316
+ const len = seriesList.length;
2317
+ for (let i = 0; i < len; i++) {
2318
+ const item = seriesList[i] || {};
2319
+ const { label = "", name = "", show = false, sort, customGroup } = item;
2320
+ if (show) {
2321
+ series = {
2322
+ label,
2323
+ columnName: name,
2324
+ show,
2325
+ sort,
2326
+ customGroup
2327
+ };
2328
+ break;
2329
+ }
2330
+ }
2331
+ }
2332
+ const queryColumns = [];
2333
+ queryColumnList == null ? void 0 : queryColumnList.forEach((queryColumn) => {
2334
+ queryColumns.push(handleQueryColumn(queryColumn));
2335
+ });
2336
+ const indicatorList = [];
2337
+ leftAxisList == null ? void 0 : leftAxisList.forEach((leftAxis) => {
2338
+ leftAxis.location = "LEFT";
2339
+ if (leftAxis.show) {
2340
+ indicatorList.push(handleIndicator(leftAxis));
2341
+ }
2342
+ });
2343
+ rightAxisList == null ? void 0 : rightAxisList.forEach((rightAxis) => {
2344
+ rightAxis.location = "RIGHT";
2345
+ if (rightAxis.show) {
2346
+ indicatorList.push(handleIndicator(rightAxis));
2347
+ }
2348
+ });
2349
+ indicators == null ? void 0 : indicators.forEach((indicator) => {
2350
+ indicator.location = "LEFT";
2351
+ if (indicator.show) {
2352
+ indicatorList.push(handleIndicator(indicator));
2353
+ }
2354
+ });
2355
+ if (layer === "1" && queryColumns.length === 0) {
2356
+ return;
2357
+ } else if (layer === "2" && indicatorList.length === 0) {
2358
+ return;
2359
+ }
2360
+ let sqlConditions;
2361
+ if ((graphicConfig == null ? void 0 : graphicConfig.pageMode) === "design") {
2362
+ sqlConditions = (_a2 = graphicConfig.sqlConditions) != null ? _a2 : [];
2363
+ } else {
2364
+ sqlConditions = handleSqlConditions(controlList);
2365
+ }
2366
+ try {
2367
+ const res = await request.post(`${INDICATOR_URL}/diagram`, {
2368
+ source,
2369
+ dataViewId,
2370
+ plugin,
2371
+ layer,
2372
+ chartType,
2373
+ classification,
2374
+ series,
2375
+ indicatorList,
2376
+ queryColumns,
2377
+ pageFlag: true,
2378
+ sqlConditions,
2379
+ dataSourceId,
2380
+ idxLibMode,
2381
+ preview
2382
+ }, {
2383
+ headers: {
2384
+ Authentication: (_b2 = window == null ? void 0 : window.config) == null ? void 0 : _b2.indicatorToken,
2385
+ operateContext: "ygt"
2386
+ }
2387
+ });
2388
+ return res;
2389
+ } catch (e) {
2390
+ console.error(e);
2391
+ }
2392
+ };
2393
+ };
2178
2394
  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")();
2179
- const _sfc_main$o = vue.defineComponent({
2395
+ const _sfc_main$n = vue.defineComponent({
2180
2396
  name: "EcanPageConfig",
2181
2397
  props: __spreadValues({}, pageConfigComponentProps),
2182
2398
  setup(props2) {
@@ -2270,12 +2486,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2270
2486
  };
2271
2487
  }
2272
2488
  });
2273
- const _hoisted_1$a = {
2489
+ const _hoisted_1$8 = {
2274
2490
  id: "container",
2275
2491
  ref: "container"
2276
2492
  };
2277
- function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
2278
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
2493
+ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
2494
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
2279
2495
  _ctx.ready ? (vue.openBlock(), vue.createElementBlock("div", {
2280
2496
  key: 0,
2281
2497
  class: "page-config",
@@ -2285,7 +2501,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2285
2501
  ], 4)) : vue.createCommentVNode("", true)
2286
2502
  ], 512);
2287
2503
  }
2288
- var PageConfig = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o], ["__scopeId", "data-v-836b53bc"]]);
2504
+ var PageConfig = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n], ["__scopeId", "data-v-836b53bc"]]);
2289
2505
  const EcanPageConfig = withInstall(PageConfig);
2290
2506
  const providerConfig = {
2291
2507
  contextRequestUrl: "",
@@ -2293,7 +2509,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2293
2509
  theme: "light"
2294
2510
  };
2295
2511
  const providerConfigComponentProps = transformToComponentProps(providerConfig);
2296
- const _sfc_main$n = vue.defineComponent({
2512
+ const _sfc_main$m = vue.defineComponent({
2297
2513
  name: "EcanProviderConfig",
2298
2514
  props: __spreadValues({}, providerConfigComponentProps),
2299
2515
  setup(props2, { expose }) {
@@ -2346,6 +2562,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2346
2562
  offEvent,
2347
2563
  emitEvent
2348
2564
  });
2565
+ const tokenNum = vue.ref(0);
2566
+ const requestToken = () => {
2567
+ tokenNum.value = vue.unref(tokenNum) + 1;
2568
+ };
2569
+ vue.provide(GLOBAL_TOKEN, {
2570
+ requestToken
2571
+ });
2349
2572
  const requestModel = /* @__PURE__ */ new Map();
2350
2573
  const setRequest = (requestFn = () => {
2351
2574
  }, sortNum = 0) => {
@@ -2366,11 +2589,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2366
2589
  });
2367
2590
  });
2368
2591
  };
2592
+ const queryUserToken = async () => {
2593
+ var _a2;
2594
+ const res = await axios__default["default"].get(`${INDICATOR_URL}/user/anonymous?username=admin`, {
2595
+ headers: {
2596
+ systemCode: "F72FC50A3D97372514A6AC33333D28FD",
2597
+ current_context: "ygt"
2598
+ }
2599
+ });
2600
+ config.indicatorToken = (_a2 = res.data.data) == null ? void 0 : _a2.token;
2601
+ };
2369
2602
  const touchRequest = async () => {
2370
2603
  const requestModelArr = Array.from(requestModel);
2371
2604
  requestModelArr.sort((a, b) => b[0] - a[0]);
2372
2605
  const len = requestModelArr.length;
2373
2606
  try {
2607
+ if (props2.pageMode !== "design" && vue.unref(tokenNum) > 0) {
2608
+ await queryUserToken();
2609
+ }
2374
2610
  for (let i = 0; i < len; i++) {
2375
2611
  const requestFnList = requestModelArr[i][1];
2376
2612
  await handleRequestFnList(requestFnList);
@@ -2392,19 +2628,20 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2392
2628
  };
2393
2629
  }
2394
2630
  });
2395
- const _hoisted_1$9 = {
2631
+ const _hoisted_1$7 = {
2396
2632
  id: "ProviderConfig",
2397
2633
  ref: "providerConfig"
2398
2634
  };
2399
- function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
2400
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
2635
+ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
2636
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
2401
2637
  vue.renderSlot(_ctx.$slots, "default")
2402
2638
  ], 512);
2403
2639
  }
2404
- var ProviderConfig = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
2640
+ var ProviderConfig = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
2405
2641
  const EcanProviderConfig = withInstall(ProviderConfig);
2406
2642
  const textProps = __spreadProps(__spreadValues({}, props), {
2407
- name: "\u57FA\u7840\u6587\u672C",
2643
+ name: "\u6587\u672C",
2644
+ keyName: "\u6587\u672C",
2408
2645
  type: "ecanText",
2409
2646
  width: "100px",
2410
2647
  height: "40px",
@@ -2422,32 +2659,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2422
2659
  });
2423
2660
  const textComponentProps = transformToComponentProps(textProps);
2424
2661
  const textEvents = ["refreshData", "click"];
2425
- const _sfc_main$m = vue.defineComponent({
2426
- name: "Skeleton",
2427
- props: {
2428
- loading: {
2429
- type: Boolean,
2430
- default: false
2431
- }
2432
- },
2433
- components: {
2434
- ASkeleton: antDesignVue.Skeleton
2435
- }
2436
- });
2437
- function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
2438
- const _component_a_skeleton = vue.resolveComponent("a-skeleton");
2439
- return vue.openBlock(), vue.createBlock(_component_a_skeleton, {
2440
- active: "",
2441
- loading: _ctx.loading
2442
- }, {
2443
- default: vue.withCtx(() => [
2444
- vue.renderSlot(_ctx.$slots, "default")
2445
- ]),
2446
- _: 3
2447
- }, 8, ["loading"]);
2448
- }
2449
- var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
2450
- 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")();
2662
+ 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")();
2451
2663
  const _sfc_main$l = vue.defineComponent({
2452
2664
  name: "EcanText",
2453
2665
  components: { Skeleton },
@@ -2516,7 +2728,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2516
2728
  };
2517
2729
  }
2518
2730
  });
2519
- const _hoisted_1$8 = ["innerHTML"];
2731
+ const _hoisted_1$6 = ["innerHTML"];
2520
2732
  function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
2521
2733
  const _component_skeleton = vue.resolveComponent("skeleton");
2522
2734
  return _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -2531,9 +2743,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2531
2743
  style: vue.normalizeStyle(_ctx.style),
2532
2744
  innerHTML: _ctx.myText,
2533
2745
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
2534
- }, null, 12, _hoisted_1$8));
2746
+ }, null, 12, _hoisted_1$6));
2535
2747
  }
2536
- var Text = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l], ["__scopeId", "data-v-04705f6f"]]);
2748
+ var Text = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l], ["__scopeId", "data-v-e7487804"]]);
2537
2749
  const EcanText = withInstall(Text);
2538
2750
  var ScrollText_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".red[data-v-0bb717eb] {\n color: red;\n}\n")();
2539
2751
  const _sfc_main$k = vue.defineComponent({
@@ -2545,9 +2757,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2545
2757
  };
2546
2758
  }
2547
2759
  });
2548
- const _hoisted_1$7 = { class: "red" };
2760
+ const _hoisted_1$5 = { class: "red" };
2549
2761
  function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
2550
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, vue.toDisplayString(_ctx.text), 1);
2762
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, vue.toDisplayString(_ctx.text), 1);
2551
2763
  }
2552
2764
  var ScrollText = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$k], ["__scopeId", "data-v-0bb717eb"]]);
2553
2765
  const EcanScrollText = withInstall(ScrollText);
@@ -2642,10 +2854,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2642
2854
  });
2643
2855
  const listComponentProps = transformToComponentProps(listProps);
2644
2856
  const listEvents = ["refreshData", "click"];
2645
- var List_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.ecan-list[data-v-766e4cb3] {
2857
+ var List_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.ecan-list[data-v-461dbe78] {
2646
2858
  overflow: hidden;
2647
2859
  }
2648
- .ecan-list-content[data-v-766e4cb3] {
2860
+ .ecan-list-content[data-v-461dbe78] {
2649
2861
  width: 100%;
2650
2862
  height: 100%;
2651
2863
  overflow: auto;
@@ -2653,7 +2865,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2653
2865
  align-content: flex-start;
2654
2866
  flex-wrap: wrap;
2655
2867
  }
2656
- .title[data-v-766e4cb3] {
2868
+ .title[data-v-461dbe78] {
2657
2869
  position: absolute;
2658
2870
  z-index: 9;
2659
2871
  display: flex;
@@ -2663,18 +2875,18 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2663
2875
  font-size: 16px;
2664
2876
  color: #ffffff;
2665
2877
  }
2666
- .title-inner[data-v-766e4cb3] {
2878
+ .title-inner[data-v-461dbe78] {
2667
2879
  padding-left: 28px;
2668
2880
  padding-right: 20px;
2669
2881
  flex: 1;
2670
2882
  display: flex;
2671
2883
  height: 100%;
2672
2884
  }
2673
- .title-placeholder[data-v-766e4cb3] {
2885
+ .title-placeholder[data-v-461dbe78] {
2674
2886
  width: 100%;
2675
2887
  height: 32px;
2676
2888
  }
2677
- .item[data-v-766e4cb3] {
2889
+ .item[data-v-461dbe78] {
2678
2890
  display: flex;
2679
2891
  align-items: center;
2680
2892
  height: 32px;
@@ -2684,13 +2896,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2684
2896
  font-size: 16px;
2685
2897
  color: #ffffff;
2686
2898
  }
2687
- .column[data-v-766e4cb3] {
2899
+ .column[data-v-461dbe78] {
2688
2900
  flex: 1;
2689
2901
  overflow: hidden;
2690
2902
  text-overflow: ellipsis;
2691
2903
  white-space: nowrap;
2692
2904
  }
2693
- .ranking[data-v-766e4cb3] {
2905
+ .ranking[data-v-461dbe78] {
2694
2906
  flex: 1;
2695
2907
  display: flex;
2696
2908
  align-items: center;
@@ -2699,28 +2911,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2699
2911
  text-overflow: ellipsis;
2700
2912
  white-space: nowrap;
2701
2913
  }
2702
- .icon[data-v-766e4cb3] {
2914
+ .icon[data-v-461dbe78] {
2703
2915
  width: 12px;
2704
2916
  height: 8px;
2705
2917
  background: #21BEF7;
2706
2918
  margin-right: 17px;
2707
2919
  opacity: 0.6;
2708
2920
  }
2709
- .item:nth-child(2) .icon[data-v-766e4cb3] {
2921
+ .item:nth-child(2) .icon[data-v-461dbe78] {
2710
2922
  opacity: 0.8;
2711
2923
  }
2712
- .item:first-child .icon[data-v-766e4cb3] {
2924
+ .item:first-child .icon[data-v-461dbe78] {
2713
2925
  opacity: 1;
2714
2926
  }
2715
- .sort[data-v-766e4cb3] {
2927
+ .sort[data-v-461dbe78] {
2716
2928
  font-weight: 600;
2717
2929
  }
2718
- .goUp[data-v-766e4cb3] {
2930
+ .goUp[data-v-461dbe78] {
2719
2931
  color: #FF512E;
2720
2932
  display: flex;
2721
2933
  align-items: center;
2722
2934
  }
2723
- .goUp[data-v-766e4cb3]:before {
2935
+ .goUp[data-v-461dbe78]:before {
2724
2936
  content: '';
2725
2937
  display: block;
2726
2938
  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=");
@@ -2730,12 +2942,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2730
2942
  background-size: cover;
2731
2943
  margin-right: 2px;
2732
2944
  }
2733
- .goDown[data-v-766e4cb3] {
2945
+ .goDown[data-v-461dbe78] {
2734
2946
  color: #00F7B4;
2735
2947
  display: flex;
2736
2948
  align-items: center;
2737
2949
  }
2738
- .goDown[data-v-766e4cb3]:before {
2950
+ .goDown[data-v-461dbe78]:before {
2739
2951
  content: '';
2740
2952
  display: block;
2741
2953
  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=");
@@ -2745,7 +2957,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2745
2957
  background-size: cover;
2746
2958
  margin-right: 2px;
2747
2959
  }
2748
- .empty[data-v-766e4cb3] {
2960
+ .empty[data-v-461dbe78] {
2749
2961
  text-align: center;
2750
2962
  margin-top: 15%;
2751
2963
  }
@@ -2834,8 +3046,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2834
3046
  };
2835
3047
  }
2836
3048
  });
2837
- const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-766e4cb3"), n = n(), vue.popScopeId(), n);
2838
- const _hoisted_1$6 = {
3049
+ const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-461dbe78"), n = n(), vue.popScopeId(), n);
3050
+ const _hoisted_1$4 = {
2839
3051
  key: 0,
2840
3052
  class: "title"
2841
3053
  };
@@ -2865,7 +3077,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2865
3077
  }, [
2866
3078
  vue.createVNode(_component_skeleton, { loading: _ctx.loading }, {
2867
3079
  default: vue.withCtx(() => [
2868
- _ctx.useTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
3080
+ _ctx.useTitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
2869
3081
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.columnCount, (count) => {
2870
3082
  return vue.openBlock(), vue.createElementBlock("div", {
2871
3083
  class: "title-inner",
@@ -2934,7 +3146,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2934
3146
  }, 8, ["loading"])
2935
3147
  ], 4);
2936
3148
  }
2937
- var List = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i], ["__scopeId", "data-v-766e4cb3"]]);
3149
+ var List = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i], ["__scopeId", "data-v-461dbe78"]]);
2938
3150
  const EcanList = withInstall(List);
2939
3151
  const proportionProps = __spreadProps(__spreadValues({}, props), {
2940
3152
  name: "\u5360\u6BD4\u56FE",
@@ -2959,7 +3171,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2959
3171
  });
2960
3172
  const proportionComponentProps = transformToComponentProps(proportionProps);
2961
3173
  const proportionEvents = ["refreshData", "click"];
2962
- 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")();
3174
+ 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")();
2963
3175
  const _sfc_main$h = vue.defineComponent({
2964
3176
  name: "EcanProportion",
2965
3177
  components: {
@@ -3092,7 +3304,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3092
3304
  }, 8, ["percent", "width", "type", "strokeColor", "strokeLinecap", "trailColor", "strokeWidth", "gapDegree", "onClick"])
3093
3305
  ], 4);
3094
3306
  }
3095
- var Proportion = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h], ["__scopeId", "data-v-1a10ace9"]]);
3307
+ var Proportion = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h], ["__scopeId", "data-v-02b500fa"]]);
3096
3308
  const EcanProportion = withInstall(Proportion);
3097
3309
  const inputProps = __spreadProps(__spreadValues({}, props), {
3098
3310
  width: "200px",
@@ -3223,7 +3435,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3223
3435
  });
3224
3436
  const selectComponentProps = transformToComponentProps(selectProps);
3225
3437
  const selectEvents = ["selectChange"];
3226
- 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")();
3438
+ 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")();
3227
3439
  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")();
3228
3440
  const _sfc_main$e = vue.defineComponent({
3229
3441
  name: "EcanSelect",
@@ -3294,7 +3506,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3294
3506
  }, null, 8, ["value", "options", "getPopupContainer", "field-names", "onChange"])
3295
3507
  ], 4);
3296
3508
  }
3297
- var Select = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__scopeId", "data-v-2a771bb2"]]);
3509
+ var Select = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__scopeId", "data-v-d70a9a94"]]);
3298
3510
  const EcanSelect = withInstall(Select);
3299
3511
  const rangePickerProps = __spreadProps(__spreadValues({}, props), {
3300
3512
  name: "\u8303\u56F4\u9009\u62E9\u5668",
@@ -3309,7 +3521,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3309
3521
  });
3310
3522
  const rangePickerComponentProps = transformToComponentProps(rangePickerProps);
3311
3523
  const rangePickerEvents = ["dateChange"];
3312
- 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")();
3524
+ 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")();
3313
3525
  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")();
3314
3526
  const _sfc_main$d = vue.defineComponent({
3315
3527
  name: "EcanRangePicker",
@@ -3374,17 +3586,21 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3374
3586
  }, null, 8, ["value", "format", "picker", "locale", "getPopupContainer", "onChange"])
3375
3587
  ], 4);
3376
3588
  }
3377
- var RangePicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-11b582ae"]]);
3589
+ var RangePicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-61322f3d"]]);
3378
3590
  const EcanRangePicker = withInstall(RangePicker);
3379
3591
  const buttonProps = __spreadProps(__spreadValues({}, props), {
3380
3592
  width: "200px",
3381
3593
  name: "\u6309\u94AE",
3382
3594
  keyName: "\u6309\u94AE",
3383
- type: "ecanButton"
3595
+ type: "ecanButton",
3596
+ text: "\u6309\u94AE",
3597
+ mode: "default",
3598
+ danger: false,
3599
+ shape: "default"
3384
3600
  });
3385
3601
  const buttonComponentProps = transformToComponentProps(buttonProps);
3386
3602
  const buttonEvents = ["click"];
3387
- var Button_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".button[data-v-f60a3514] {\n width: 100%;\n height: 100%;\n}\n")();
3603
+ var Button_vue_vue_type_style_index_0_lang = /* @__PURE__ */ (() => ".ecan-button .ant-btn {\n width: 100%;\n height: 100%;\n}\n")();
3388
3604
  const _sfc_main$c = vue.defineComponent({
3389
3605
  name: "EcanButton",
3390
3606
  components: {
@@ -3402,26 +3618,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3402
3618
  };
3403
3619
  }
3404
3620
  });
3405
- const _hoisted_1$5 = /* @__PURE__ */ vue.createTextVNode(" \u6D4B\u8BD5 ");
3406
3621
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
3407
3622
  const _component_a_button = vue.resolveComponent("a-button");
3408
3623
  return vue.openBlock(), vue.createElementBlock("div", {
3409
- class: "ecan-input",
3624
+ class: "ecan-button",
3410
3625
  style: vue.normalizeStyle(_ctx.style)
3411
3626
  }, [
3412
3627
  vue.createVNode(_component_a_button, {
3413
- class: "button",
3414
3628
  block: "",
3415
- onClick: _ctx.click
3629
+ onClick: _ctx.click,
3630
+ type: _ctx.mode,
3631
+ danger: _ctx.danger,
3632
+ ghost: _ctx.ghost,
3633
+ shape: _ctx.shape
3416
3634
  }, {
3417
3635
  default: vue.withCtx(() => [
3418
- _hoisted_1$5
3636
+ vue.createTextVNode(vue.toDisplayString(_ctx.text), 1)
3419
3637
  ]),
3420
3638
  _: 1
3421
- }, 8, ["onClick"])
3639
+ }, 8, ["onClick", "type", "danger", "ghost", "shape"])
3422
3640
  ], 4);
3423
3641
  }
3424
- var Button = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c], ["__scopeId", "data-v-f60a3514"]]);
3642
+ var Button = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
3425
3643
  const EcanButton = withInstall(Button);
3426
3644
  const tabsProps = __spreadProps(__spreadValues({}, props), {
3427
3645
  type: "ecanTabs",
@@ -3450,7 +3668,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3450
3668
  });
3451
3669
  const tabsComponentProps = transformToComponentProps(tabsProps);
3452
3670
  const tabsEvents = ["tabChange"];
3453
- 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")();
3671
+ var Tabs_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".ecan-tabs[data-v-5aeec0ae] {\n box-sizing: border-box;\n color: #333333;\n display: flex;\n}\n.tab[data-v-5aeec0ae] {\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-5aeec0ae]:last-child {\n margin-right: 0 !important;\n}\n")();
3454
3672
  const _sfc_main$b = vue.defineComponent({
3455
3673
  name: "EcanTabs",
3456
3674
  props: __spreadValues({}, tabsComponentProps),
@@ -3486,7 +3704,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3486
3704
  };
3487
3705
  }
3488
3706
  });
3489
- const _hoisted_1$4 = ["onClick"];
3707
+ const _hoisted_1$3 = ["onClick"];
3490
3708
  function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
3491
3709
  return vue.openBlock(), vue.createElementBlock("div", {
3492
3710
  class: "ecan-tabs",
@@ -3503,11 +3721,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3503
3721
  }),
3504
3722
  key: index2,
3505
3723
  onClick: ($event) => _ctx.tabChange(tab, index2)
3506
- }, vue.toDisplayString(tab.title), 13, _hoisted_1$4);
3724
+ }, vue.toDisplayString(tab.title), 13, _hoisted_1$3);
3507
3725
  }), 128))
3508
3726
  ], 4);
3509
3727
  }
3510
- var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-2e2bded0"]]);
3728
+ var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-5aeec0ae"]]);
3511
3729
  const EcanTabs = withInstall(Tabs);
3512
3730
  const pieProps = __spreadProps(__spreadValues({}, props), {
3513
3731
  id: "",
@@ -3559,14 +3777,43 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3559
3777
  gridBottom: "10%",
3560
3778
  gridLeft: "2%",
3561
3779
  gridRight: "2%",
3562
- graphicConfig: {}
3780
+ graphicConfig: {},
3781
+ toolboxShow: false,
3782
+ toolboxOrient: "horizontal",
3783
+ toolboxItemSize: 16,
3784
+ toolboxItemGap: 8,
3785
+ toolboxLeft: "right",
3786
+ toolboxTop: "top",
3787
+ toolboxIconStyleBorderColor: "#666",
3788
+ toolboxDownloadUrl: "",
3789
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
3563
3790
  });
3564
3791
  const pieComponentProps = transformToComponentProps(pieProps);
3565
3792
  const pieEvents = ["click", "refreshData"];
3793
+ const useDownloadFile = async (downloadFileUrl) => {
3794
+ var _a2;
3795
+ const res = await request.post(downloadFileUrl, {}, {
3796
+ responseType: "blob"
3797
+ });
3798
+ const { data, headers } = res;
3799
+ const fileName = headers["content-disposition"].replace(/\w+;filename=(.*)/, "$1");
3800
+ const blob = new Blob([data]);
3801
+ const dom = document.createElement("a");
3802
+ const url = window.URL.createObjectURL(blob);
3803
+ dom.href = url;
3804
+ dom.download = decodeURI(fileName);
3805
+ dom.style.display = "none";
3806
+ document.body.appendChild(dom);
3807
+ dom.click();
3808
+ (_a2 = dom.parentNode) == null ? void 0 : _a2.removeChild(dom);
3809
+ window.URL.revokeObjectURL(url);
3810
+ };
3811
+ 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")();
3566
3812
  core.use([
3567
3813
  renderers.CanvasRenderer,
3568
3814
  charts.PieChart,
3569
3815
  components$1.TitleComponent,
3816
+ components$1.ToolboxComponent,
3570
3817
  components$1.TooltipComponent,
3571
3818
  components$1.LegendComponent
3572
3819
  ]);
@@ -3575,11 +3822,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3575
3822
  props: __spreadValues({}, pieComponentProps),
3576
3823
  components: {
3577
3824
  Spin,
3578
- Echarts: ECharts
3825
+ Echarts,
3826
+ AModal: antDesignVue.Modal
3579
3827
  },
3580
3828
  setup(props2) {
3581
3829
  const style2 = usePickComponentStyle(props2);
3582
3830
  const dataset = vue.ref([]);
3831
+ const visible = vue.ref(false);
3832
+ const hideModal = () => {
3833
+ visible.value = false;
3834
+ };
3583
3835
  const option = vue.computed(() => {
3584
3836
  let { data = [] } = vue.unref(dataset)[0] || {};
3585
3837
  if (Array.isArray(props2.colors)) {
@@ -3590,6 +3842,42 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3590
3842
  }, item));
3591
3843
  }
3592
3844
  return {
3845
+ toolbox: {
3846
+ show: props2.toolboxShow,
3847
+ left: props2.toolboxLeft,
3848
+ top: props2.toolboxTop,
3849
+ itemSize: props2.toolboxItemSize,
3850
+ itemGap: props2.toolboxItemGap,
3851
+ feature: {
3852
+ myDownload: {
3853
+ show: true,
3854
+ title: "\u6570\u636E\u4E0B\u8F7D",
3855
+ 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",
3856
+ onclick() {
3857
+ useDownloadFile(props2.toolboxDownloadUrl);
3858
+ }
3859
+ },
3860
+ myDataZoom: {
3861
+ show: true,
3862
+ title: "\u653E\u5927",
3863
+ 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",
3864
+ onclick() {
3865
+ visible.value = true;
3866
+ }
3867
+ },
3868
+ myInfo: {
3869
+ show: true,
3870
+ title: "\u8BF4\u660E\u4FE1\u606F",
3871
+ 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",
3872
+ onclick() {
3873
+ antDesignVue.Modal.info({
3874
+ title: "\u8BF4\u660E\u4FE1\u606F",
3875
+ content: props2.toolboxInfoText
3876
+ });
3877
+ }
3878
+ }
3879
+ }
3880
+ },
3593
3881
  title: {
3594
3882
  text: props2.titleText,
3595
3883
  subtext: props2.titleSubtext,
@@ -3744,13 +4032,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3744
4032
  option,
3745
4033
  style: style2,
3746
4034
  click,
3747
- loading
4035
+ loading,
4036
+ visible,
4037
+ hideModal
3748
4038
  };
3749
4039
  }
3750
4040
  });
3751
4041
  function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
3752
4042
  const _component_echarts = vue.resolveComponent("echarts");
3753
4043
  const _component_spin = vue.resolveComponent("spin");
4044
+ const _component_a_modal = vue.resolveComponent("a-modal");
3754
4045
  return vue.openBlock(), vue.createElementBlock("div", {
3755
4046
  style: vue.normalizeStyle(_ctx.style)
3756
4047
  }, [
@@ -3763,7 +4054,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3763
4054
  }, null, 8, ["option", "onClick"])
3764
4055
  ]),
3765
4056
  _: 1
3766
- }, 8, ["spinning"])
4057
+ }, 8, ["spinning"]),
4058
+ vue.createVNode(_component_a_modal, {
4059
+ "wrap-class-name": "full-modal",
4060
+ width: "100%",
4061
+ visible: _ctx.visible,
4062
+ footer: null,
4063
+ onCancel: _ctx.hideModal
4064
+ }, {
4065
+ default: vue.withCtx(() => [
4066
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4067
+ default: vue.withCtx(() => [
4068
+ vue.createVNode(_component_echarts, {
4069
+ option: _ctx.option,
4070
+ "update-options": { notMerge: true },
4071
+ autoresize: ""
4072
+ }, null, 8, ["option"])
4073
+ ]),
4074
+ _: 1
4075
+ }, 8, ["spinning"])
4076
+ ]),
4077
+ _: 1
4078
+ }, 8, ["visible", "onCancel"])
3767
4079
  ], 4);
3768
4080
  }
3769
4081
  var Pie = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);
@@ -3814,13 +4126,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3814
4126
  valueTypeDataFieldNames: { name: "name", value: "value", type: "type" },
3815
4127
  keyTypeDataFieldNames: { name: "name", types: [] },
3816
4128
  dataFieldConfigType: "value",
3817
- graphicConfig: {}
4129
+ graphicConfig: {},
4130
+ toolboxShow: false,
4131
+ toolboxOrient: "horizontal",
4132
+ toolboxItemSize: 16,
4133
+ toolboxItemGap: 8,
4134
+ toolboxLeft: "right",
4135
+ toolboxTop: "top",
4136
+ toolboxIconStyleBorderColor: "#666",
4137
+ toolboxDownloadUrl: "",
4138
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
3818
4139
  });
3819
4140
  const lineComponentProps = transformToComponentProps(lineProps);
3820
4141
  const lineEvents = ["click", "refreshData"];
4142
+ 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")();
3821
4143
  core.use([
3822
4144
  renderers.CanvasRenderer,
3823
4145
  charts.LineChart,
4146
+ components$1.ToolboxComponent,
3824
4147
  components$1.TitleComponent,
3825
4148
  components$1.LegendComponent
3826
4149
  ]);
@@ -3829,13 +4152,54 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3829
4152
  props: __spreadValues({}, lineComponentProps),
3830
4153
  components: {
3831
4154
  Spin,
3832
- Echarts: ECharts
4155
+ Echarts,
4156
+ AModal: antDesignVue.Modal
3833
4157
  },
3834
4158
  setup(props2) {
3835
4159
  const style2 = usePickComponentStyle(props2);
3836
4160
  const series = vue.ref([]);
3837
4161
  const dimensions = vue.ref([]);
4162
+ const visible = vue.ref(false);
4163
+ const hideModal = () => {
4164
+ visible.value = false;
4165
+ };
3838
4166
  const option = vue.computed(() => ({
4167
+ toolbox: {
4168
+ show: props2.toolboxShow,
4169
+ left: props2.toolboxLeft,
4170
+ top: props2.toolboxTop,
4171
+ itemSize: props2.toolboxItemSize,
4172
+ itemGap: props2.toolboxItemGap,
4173
+ feature: {
4174
+ myDownload: {
4175
+ show: true,
4176
+ title: "\u6570\u636E\u4E0B\u8F7D",
4177
+ 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",
4178
+ onclick() {
4179
+ useDownloadFile(props2.toolboxDownloadUrl);
4180
+ }
4181
+ },
4182
+ myDataZoom: {
4183
+ show: true,
4184
+ title: "\u653E\u5927",
4185
+ 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",
4186
+ onclick() {
4187
+ visible.value = true;
4188
+ }
4189
+ },
4190
+ myInfo: {
4191
+ show: true,
4192
+ title: "\u8BF4\u660E\u4FE1\u606F",
4193
+ 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",
4194
+ onclick() {
4195
+ antDesignVue.Modal.info({
4196
+ title: "\u8BF4\u660E\u4FE1\u606F",
4197
+ content: props2.toolboxInfoText
4198
+ });
4199
+ }
4200
+ }
4201
+ }
4202
+ },
3839
4203
  title: {
3840
4204
  text: props2.titleText,
3841
4205
  subText: props2.titleSubtext,
@@ -4029,13 +4393,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4029
4393
  option,
4030
4394
  style: style2,
4031
4395
  click,
4032
- loading
4396
+ loading,
4397
+ visible,
4398
+ hideModal
4033
4399
  };
4034
4400
  }
4035
4401
  });
4036
4402
  function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
4037
4403
  const _component_echarts = vue.resolveComponent("echarts");
4038
4404
  const _component_spin = vue.resolveComponent("spin");
4405
+ const _component_a_modal = vue.resolveComponent("a-modal");
4039
4406
  return vue.openBlock(), vue.createElementBlock("div", {
4040
4407
  style: vue.normalizeStyle(_ctx.style)
4041
4408
  }, [
@@ -4048,7 +4415,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4048
4415
  }, null, 8, ["option", "onClick"])
4049
4416
  ]),
4050
4417
  _: 1
4051
- }, 8, ["spinning"])
4418
+ }, 8, ["spinning"]),
4419
+ vue.createVNode(_component_a_modal, {
4420
+ "wrap-class-name": "full-modal",
4421
+ width: "100%",
4422
+ visible: _ctx.visible,
4423
+ footer: null,
4424
+ onCancel: _ctx.hideModal
4425
+ }, {
4426
+ default: vue.withCtx(() => [
4427
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4428
+ default: vue.withCtx(() => [
4429
+ vue.createVNode(_component_echarts, {
4430
+ option: _ctx.option,
4431
+ "update-options": { notMerge: true },
4432
+ autoresize: ""
4433
+ }, null, 8, ["option"])
4434
+ ]),
4435
+ _: 1
4436
+ }, 8, ["spinning"])
4437
+ ]),
4438
+ _: 1
4439
+ }, 8, ["visible", "onCancel"])
4052
4440
  ], 4);
4053
4441
  }
4054
4442
  var Line = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9]]);
@@ -4112,11 +4500,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4112
4500
  gridLeft: "2%",
4113
4501
  gridRight: "2%",
4114
4502
  graphicConfig: {
4115
- chartType: "pie",
4503
+ chartType: "bar",
4116
4504
  plugin: "1",
4117
4505
  layer: "2"
4118
4506
  },
4119
- toolboxShow: true,
4507
+ toolboxShow: false,
4120
4508
  toolboxOrient: "horizontal",
4121
4509
  toolboxItemSize: 16,
4122
4510
  toolboxItemGap: 8,
@@ -4128,25 +4516,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4128
4516
  });
4129
4517
  const barComponentProps = transformToComponentProps(barProps);
4130
4518
  const barEvents = ["refreshData", "click"];
4131
- const useDownloadFile = async (downloadFileUrl) => {
4132
- var _a2;
4133
- const res = await request.post(downloadFileUrl, {}, {
4134
- responseType: "blob"
4135
- });
4136
- const { data, headers } = res;
4137
- const fileName = headers["content-disposition"].replace(/\w+;filename=(.*)/, "$1");
4138
- const blob = new Blob([data]);
4139
- const dom = document.createElement("a");
4140
- const url = window.URL.createObjectURL(blob);
4141
- dom.href = url;
4142
- dom.download = decodeURI(fileName);
4143
- dom.style.display = "none";
4144
- document.body.appendChild(dom);
4145
- dom.click();
4146
- (_a2 = dom.parentNode) == null ? void 0 : _a2.removeChild(dom);
4147
- window.URL.revokeObjectURL(url);
4148
- };
4149
- 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")();
4519
+ 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")();
4150
4520
  core.use([
4151
4521
  renderers.CanvasRenderer,
4152
4522
  charts.BarChart,
@@ -4160,7 +4530,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4160
4530
  props: __spreadValues({}, barComponentProps),
4161
4531
  components: {
4162
4532
  Spin,
4163
- Echarts: ECharts,
4533
+ Echarts,
4164
4534
  AModal: antDesignVue.Modal
4165
4535
  },
4166
4536
  setup(props2, { expose }) {
@@ -4336,12 +4706,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4336
4706
  loading.value = false;
4337
4707
  }
4338
4708
  };
4339
- const requestDiagram = useRequestDiagramData(props2);
4709
+ const indicatorData = useIndicatorData(props2);
4340
4710
  const handleIndicatorData = async () => {
4341
4711
  var _a2, _b2;
4342
4712
  try {
4343
4713
  loading.value = true;
4344
- const res = await requestDiagram();
4714
+ const res = await indicatorData();
4345
4715
  const { columns = [], rows = [] } = (_b2 = (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.data) != null ? _b2 : {};
4346
4716
  let fieldNames;
4347
4717
  if (columns.length > 0) {
@@ -4405,7 +4775,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4405
4775
  };
4406
4776
  }
4407
4777
  });
4408
- const _hoisted_1$3 = { class: "modal-inner" };
4409
4778
  function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
4410
4779
  const _component_echarts = vue.resolveComponent("echarts");
4411
4780
  const _component_spin = vue.resolveComponent("spin");
@@ -4433,18 +4802,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4433
4802
  onCancel: _ctx.hideModal
4434
4803
  }, {
4435
4804
  default: vue.withCtx(() => [
4436
- vue.createElementVNode("div", _hoisted_1$3, [
4437
- vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4438
- default: vue.withCtx(() => [
4439
- vue.createVNode(_component_echarts, {
4440
- option: _ctx.option,
4441
- "update-options": { notMerge: true },
4442
- autoresize: ""
4443
- }, null, 8, ["option"])
4444
- ]),
4445
- _: 1
4446
- }, 8, ["spinning"])
4447
- ])
4805
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
4806
+ default: vue.withCtx(() => [
4807
+ vue.createVNode(_component_echarts, {
4808
+ option: _ctx.option,
4809
+ "update-options": { notMerge: true },
4810
+ autoresize: ""
4811
+ }, null, 8, ["option"])
4812
+ ]),
4813
+ _: 1
4814
+ }, 8, ["spinning"])
4448
4815
  ]),
4449
4816
  _: 1
4450
4817
  }, 8, ["visible", "onCancel"])
@@ -4494,13 +4861,24 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4494
4861
  gridBottom: "10%",
4495
4862
  gridLeft: "2%",
4496
4863
  gridRight: "2%",
4497
- graphicConfig: void 0
4864
+ graphicConfig: void 0,
4865
+ toolboxShow: false,
4866
+ toolboxOrient: "horizontal",
4867
+ toolboxItemSize: 16,
4868
+ toolboxItemGap: 8,
4869
+ toolboxLeft: "right",
4870
+ toolboxTop: "top",
4871
+ toolboxIconStyleBorderColor: "#666",
4872
+ toolboxDownloadUrl: "",
4873
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
4498
4874
  });
4499
4875
  const scatterComponentProps = transformToComponentProps(scatterProps);
4500
4876
  const scatterEvents = ["click", "refreshData"];
4877
+ 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")();
4501
4878
  core.use([
4502
4879
  renderers.CanvasRenderer,
4503
4880
  charts.ScatterChart,
4881
+ components$1.ToolboxComponent,
4504
4882
  components$1.TitleComponent,
4505
4883
  components$1.TooltipComponent,
4506
4884
  components$1.LegendComponent
@@ -4510,12 +4888,52 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4510
4888
  props: __spreadValues({}, scatterComponentProps),
4511
4889
  components: {
4512
4890
  Spin,
4513
- Echarts: ECharts
4891
+ Echarts
4514
4892
  },
4515
4893
  setup(props2) {
4516
4894
  const style2 = usePickComponentStyle(props2);
4517
4895
  const dataset = vue.ref([]);
4896
+ const visible = vue.ref(false);
4897
+ const hideModal = () => {
4898
+ visible.value = false;
4899
+ };
4518
4900
  const option = vue.computed(() => ({
4901
+ toolbox: {
4902
+ show: props2.toolboxShow,
4903
+ left: props2.toolboxLeft,
4904
+ top: props2.toolboxTop,
4905
+ itemSize: props2.toolboxItemSize,
4906
+ itemGap: props2.toolboxItemGap,
4907
+ feature: {
4908
+ myDownload: {
4909
+ show: true,
4910
+ title: "\u6570\u636E\u4E0B\u8F7D",
4911
+ 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",
4912
+ onclick() {
4913
+ useDownloadFile(props2.toolboxDownloadUrl);
4914
+ }
4915
+ },
4916
+ myDataZoom: {
4917
+ show: true,
4918
+ title: "\u653E\u5927",
4919
+ 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",
4920
+ onclick() {
4921
+ visible.value = true;
4922
+ }
4923
+ },
4924
+ myInfo: {
4925
+ show: true,
4926
+ title: "\u8BF4\u660E\u4FE1\u606F",
4927
+ 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",
4928
+ onclick() {
4929
+ antDesignVue.Modal.info({
4930
+ title: "\u8BF4\u660E\u4FE1\u606F",
4931
+ content: props2.toolboxInfoText
4932
+ });
4933
+ }
4934
+ }
4935
+ }
4936
+ },
4519
4937
  title: {
4520
4938
  text: props2.titleText,
4521
4939
  subtext: props2.titleSubtext,
@@ -4650,13 +5068,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4650
5068
  option,
4651
5069
  style: style2,
4652
5070
  click,
4653
- loading
5071
+ loading,
5072
+ visible,
5073
+ hideModal
4654
5074
  };
4655
5075
  }
4656
5076
  });
4657
5077
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
4658
5078
  const _component_echarts = vue.resolveComponent("echarts");
4659
5079
  const _component_spin = vue.resolveComponent("spin");
5080
+ const _component_a_modal = vue.resolveComponent("a-modal");
4660
5081
  return vue.openBlock(), vue.createElementBlock("div", {
4661
5082
  style: vue.normalizeStyle(_ctx.style)
4662
5083
  }, [
@@ -4669,7 +5090,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4669
5090
  }, null, 8, ["option", "onClick"])
4670
5091
  ]),
4671
5092
  _: 1
4672
- }, 8, ["spinning"])
5093
+ }, 8, ["spinning"]),
5094
+ vue.createVNode(_component_a_modal, {
5095
+ "wrap-class-name": "full-modal",
5096
+ width: "100%",
5097
+ visible: _ctx.visible,
5098
+ footer: null,
5099
+ onCancel: _ctx.hideModal
5100
+ }, {
5101
+ default: vue.withCtx(() => [
5102
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
5103
+ default: vue.withCtx(() => [
5104
+ vue.createVNode(_component_echarts, {
5105
+ option: _ctx.option,
5106
+ "update-options": { notMerge: true },
5107
+ autoresize: ""
5108
+ }, null, 8, ["option"])
5109
+ ]),
5110
+ _: 1
5111
+ }, 8, ["spinning"])
5112
+ ]),
5113
+ _: 1
5114
+ }, 8, ["visible", "onCancel"])
4673
5115
  ], 4);
4674
5116
  }
4675
5117
  var Scatter = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);
@@ -4689,7 +5131,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4689
5131
  name: "EcanCustomGraph",
4690
5132
  props: __spreadValues({}, customGraphComponentProps),
4691
5133
  components: {
4692
- Echarts: ECharts
5134
+ Echarts
4693
5135
  },
4694
5136
  setup(props2) {
4695
5137
  const style2 = usePickComponentStyle(props2);
@@ -4811,35 +5253,87 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4811
5253
  gridBottom: "10%",
4812
5254
  gridLeft: "2%",
4813
5255
  gridRight: "2%",
4814
- graphicConfig: {}
5256
+ graphicConfig: {},
5257
+ toolboxShow: false,
5258
+ toolboxOrient: "horizontal",
5259
+ toolboxItemSize: 16,
5260
+ toolboxItemGap: 8,
5261
+ toolboxLeft: "right",
5262
+ toolboxTop: "top",
5263
+ toolboxIconStyleBorderColor: "#666",
5264
+ toolboxDownloadUrl: "",
5265
+ toolboxInfoText: "\u5F53\u524D\u65E0\u8BF4\u660E\u4FE1\u606F"
4815
5266
  });
4816
5267
  const comboGraphComponentProps = transformToComponentProps(comboGraphProps);
4817
5268
  const comboGraphEvents = ["refreshData", "click"];
5269
+ 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")();
4818
5270
  core.use([
4819
5271
  renderers.CanvasRenderer,
4820
5272
  charts.BarChart,
4821
5273
  charts.LineChart,
4822
5274
  components$1.TitleComponent,
4823
5275
  components$1.LegendComponent,
4824
- components$1.DatasetComponent
5276
+ components$1.DatasetComponent,
5277
+ components$1.ToolboxComponent
4825
5278
  ]);
4826
5279
  const _sfc_main$5 = vue.defineComponent({
4827
5280
  name: "EcanComboGraph",
4828
5281
  props: __spreadValues({}, comboGraphComponentProps),
4829
5282
  components: {
4830
5283
  Spin,
4831
- Echarts: ECharts
5284
+ Echarts,
5285
+ AModal: antDesignVue.Modal
4832
5286
  },
4833
5287
  setup(props2) {
4834
5288
  const style2 = usePickComponentStyle(props2);
4835
5289
  const series = vue.ref([]);
4836
5290
  const dimensions = vue.ref([]);
5291
+ const visible = vue.ref(false);
5292
+ const hideModal = () => {
5293
+ visible.value = false;
5294
+ };
4837
5295
  const option = vue.computed(() => ({
4838
5296
  title: {
4839
5297
  text: props2.titleText,
4840
5298
  subtext: props2.titleSubtext,
4841
5299
  left: "center"
4842
5300
  },
5301
+ toolbox: {
5302
+ show: props2.toolboxShow,
5303
+ left: props2.toolboxLeft,
5304
+ top: props2.toolboxTop,
5305
+ itemSize: props2.toolboxItemSize,
5306
+ itemGap: props2.toolboxItemGap,
5307
+ feature: {
5308
+ myDownload: {
5309
+ show: true,
5310
+ title: "\u6570\u636E\u4E0B\u8F7D",
5311
+ 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",
5312
+ onclick() {
5313
+ useDownloadFile(props2.toolboxDownloadUrl);
5314
+ }
5315
+ },
5316
+ myDataZoom: {
5317
+ show: true,
5318
+ title: "\u653E\u5927",
5319
+ 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",
5320
+ onclick() {
5321
+ visible.value = true;
5322
+ }
5323
+ },
5324
+ myInfo: {
5325
+ show: true,
5326
+ title: "\u8BF4\u660E\u4FE1\u606F",
5327
+ 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",
5328
+ onclick() {
5329
+ antDesignVue.Modal.info({
5330
+ title: "\u8BF4\u660E\u4FE1\u606F",
5331
+ content: props2.toolboxInfoText
5332
+ });
5333
+ }
5334
+ }
5335
+ }
5336
+ },
4843
5337
  grid: {
4844
5338
  top: props2.gridTop,
4845
5339
  bottom: props2.gridBottom,
@@ -5040,13 +5534,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5040
5534
  style: style2,
5041
5535
  option,
5042
5536
  click,
5043
- loading
5537
+ loading,
5538
+ visible,
5539
+ hideModal
5044
5540
  };
5045
5541
  }
5046
5542
  });
5047
5543
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
5048
5544
  const _component_echarts = vue.resolveComponent("echarts");
5049
5545
  const _component_spin = vue.resolveComponent("spin");
5546
+ const _component_a_modal = vue.resolveComponent("a-modal");
5050
5547
  return vue.openBlock(), vue.createElementBlock("div", {
5051
5548
  style: vue.normalizeStyle(_ctx.style)
5052
5549
  }, [
@@ -5060,7 +5557,29 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5060
5557
  }, null, 8, ["option", "onClick"])
5061
5558
  ]),
5062
5559
  _: 1
5063
- }, 8, ["spinning"])
5560
+ }, 8, ["spinning"]),
5561
+ vue.createVNode(_component_a_modal, {
5562
+ "wrap-class-name": "full-modal",
5563
+ width: "100%",
5564
+ visible: _ctx.visible,
5565
+ footer: null,
5566
+ onCancel: _ctx.hideModal
5567
+ }, {
5568
+ default: vue.withCtx(() => [
5569
+ vue.createVNode(_component_spin, { spinning: _ctx.loading }, {
5570
+ default: vue.withCtx(() => [
5571
+ vue.createVNode(_component_echarts, {
5572
+ option: _ctx.option,
5573
+ "update-options": { notMerge: true },
5574
+ autoresize: "",
5575
+ onClick: _ctx.click
5576
+ }, null, 8, ["option", "onClick"])
5577
+ ]),
5578
+ _: 1
5579
+ }, 8, ["spinning"])
5580
+ ]),
5581
+ _: 1
5582
+ }, 8, ["visible", "onCancel"])
5064
5583
  ], 4);
5065
5584
  }
5066
5585
  var ComboGraph = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5]]);
@@ -5082,7 +5601,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5082
5601
  const borderEvents = ["click"];
5083
5602
  var _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=";
5084
5603
  var _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==";
5085
- 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,iVBORw0KGgoAAAANSUhEUgAAAcgAAAAsCAMAAADW3dj4AAAAVFBMVEUIKbkAAAAAqv8IL70AovwAnfAAlvEGQsUIOcEAkewGfuQGR8gAg+YIPMMFd+AEadkEXtQAi+sEYtcGTcsFcd4INL8DWdEGUc4EbNsAiOkHVdAIK7o5DngbAAAAHHRSTlNmAAVmCxAVWmEaK1YmXjA8RR5BUjRjSU84IkxfPwrt7wAABlFJREFUeNrMmQtW20AMRWlrJ9R8TCgJ0O5/nxVHIRrNRSgTZwJvJs4C7rnWx1f/FuXug6zXcpmbKn9cng/5e8jO5aHMo8+MvLznyefeZapzW+a1yIb57bJCxg8zhPkZ50eeq6PyK8q2yPX2usqdpYZ7Q7IVWKLdlWhLqhVYItUQqCUgCqZA6UKYJc5BrrIEw7ej/4QoR556uoI0kgTpUBKm5ygXJOkoQYLjowM5H0DKOYDUYxzlGkXhOBUU5RxAyjGQcgqKwlEetZU1TOE1gqOilOgTLC9rpA9J1oGRGchdaKShnE8wcpILIadjjNwUGKnkWCkpGNVIvVQywCi/9yO3A0hJKqRxhJI33kln5HO7kcZSzlFG3sNIU9IbqUmNlMM6KQ8aSYbBe5VC9gdJkj5nNPKBRhrG5Ube1oGQcY00lqMeC2skcUYs9fQCuZVbJFFSj2FsNnKXGzmfYOQkP18jqWRuJJWkkYMqORKiCUmWANgDJLrWhhK5TrrWBiPDpvUlN9JjzJtWi+MY1kgo+amQA3WUv65G5t1OKKRyPKORzsmga30Ka2Ri5OseJY303Y6ct4u21VEMu1aFSCkBsDPI/NXKCrnIyGT+MIypklNoJF+tkZGG09fIVd3qyPG9jglpMJnuNRIYkxrZ3cj5yDnSKUkjo5erF3LjjURGq5Fc7pBlTvBCr1YEPl7KyGxbxxcrlIzmjyKRjxZ0rXpcIKT8UCMV53cYP9Z36RzpnAxXdET5iBrpMc7NRhpHdjty4znSMVxspNFUhh2bnYaNQLJGN4jJii43Mt2f5zXSMCZG0smkad0fubGS5LhXUm+PGukCklzseIw0csEcaUJiikzmyHTX2mYkx0i0rTQyZmhKXmhpnjc7+L6VbHYW1MjFu1YLSMZdq651YOQKRoKi3+wMgZJyu4FsWLYCY2uNpJFWJJfMkdzs1CXSL1vjOZJGYknHQVJhxl1rsRD4NkbWHH0aulYvJDY7MFLTstmZ+BUrN/LtmpU2RcZG5kXSEKqUX7/ZSedIJ2QGctdopKRpsxMtzRuNxKdlGsntHHNRI9nrNH79oJLtRs5yTUnsWi1djFyha02NpJJIIWTM8oLTRzpHuqRGgmObkYWS06lG8utHlVGPyxH78sEYQsjuIHOSbFmh5Ek1kigtMNKy0Mh8jFSEEBJzZCqknyS7g8yX5oGQ5zVyxvQRGgmU5MjNjhwn5MZPkUaSLGkkv34Qoz47G7lN363xFAkfF9RItq3pHJkaic1OViJpJNqdgSsBGhm3rfL/9a/W/92c3UrDQBSEQUK8EJTSCvb9X9RgL8bli7M7dk8NDnmDw8ecn9k8o5Qkcvumz5ECUkQCSZRydI484SAJjzRABl3rkTyylkhaJIk0y1aWMSRy3b1HMnsFj+xldmSNtpbFVyxp7Pgh/X6OFJKTiLzeQSQTyuBxjEjcP0rHD++RYjII0aVz5HDS/DKfyHW1a3PV06foFiK5fSVESvGu1a9aXybMkW/wyHSzw1qyaxWRLKVwZM68Z5LL/vlDMD5w/JBApAvRBfdIEum61vwe2RaxTyTDV+KR2vNIdazWJP+5R7ZN6/ZhjIwTAkDSEenjkB7JfvBqYkDZ1NED6SMC93ukZDYCtmvVkg5I2s2OiPRPBijRGBG56SDjh5CESc4gUsIcOZTZkfxmB12rAZLXDyJJKBeD5BGanV7S/Byt6AyQzfEj3uzkRApI+CS7Vk+kFB8kS/PJkUmeR5fmRJJEqpSzPZJEZkjyGgkg26YVEYH6OfIdQNZ5pCdSKiaSQJq+1RBpm52Gwz9fCHCOfIhHfniPlGKPzInUdq4VcGRB+wnlioCAP2NJFR5JJH3TKiJf8WK5nxAwXasjktVEzJxrgVoik1xrEZF8jDXUtV6C64cqeWKwlXlIAunjkFrs3D4IR6zae2R/ISAVECkBSJNr5WbHB5Q9jwTSeSRXrQ7IJzWtFUR+L6QnEik6IWm61tQj30bukUTSlBLnyD6RQtIQSSxdHW9IFhKZeCQHyeldKyM7d75Y5hmLRArJ/c3OOpRP9pX8QvIQ90i+/ZCqdq30yB+B9JmdK7tWEcmuVTwKSUdke1NemNghkizk7D+YkT3C5z0RZctMkbMjSZQciJJIlLo/vaKW/Rc8IhJAtgsBp08PATOql6UCVwAAAABJRU5ErkJggg==");\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')();
5604
+ var Border_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => '.top-title[data-v-3c3b861e],\n.no-title[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .border-item[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .top-left[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .top-right[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .bottom-left[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .bottom-right[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .title-item-wrapper[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .title-item[data-v-3c3b861e] {\n display: flex;\n align-items: center;\n}\n.top-title .title[data-v-3c3b861e],\n.no-title .title[data-v-3c3b861e] {\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-3c3b861e],\n.no-title .title-decoration-left[data-v-3c3b861e] {\n width: 58px;\n height: 14px;\n}\n.top-title .title-decoration-right[data-v-3c3b861e],\n.no-title .title-decoration-right[data-v-3c3b861e] {\n width: 58px;\n height: 14px;\n}\n.only-border[data-v-3c3b861e] {\n border: 2px solid #375A8899;\n border-radius: 8px;\n width: 100%;\n height: 100%;\n}\n.left-title[data-v-3c3b861e] {\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-3c3b861e] {\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-3c3b861e] {\n writing-mode: vertical-lr;\n}\n')();
5086
5605
  const _sfc_main$4 = vue.defineComponent({
5087
5606
  name: "EcanBorder",
5088
5607
  props: __spreadValues({}, borderComponentProps),
@@ -5100,7 +5619,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5100
5619
  };
5101
5620
  }
5102
5621
  });
5103
- const _withScopeId = (n) => (vue.pushScopeId("data-v-f83231c0"), n = n(), vue.popScopeId(), n);
5622
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-3c3b861e"), n = n(), vue.popScopeId(), n);
5104
5623
  const _hoisted_1$2 = {
5105
5624
  key: 0,
5106
5625
  class: "top-title"
@@ -5171,7 +5690,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5171
5690
  ])) : vue.createCommentVNode("", true)
5172
5691
  ], 4);
5173
5692
  }
5174
- var Border = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-f83231c0"]]);
5693
+ var Border = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-3c3b861e"]]);
5175
5694
  const EcanBorder = withInstall(Border);
5176
5695
  const modalProps = {
5177
5696
  id: "",
@@ -5437,38 +5956,41 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5437
5956
  address: "\u798F\u5DDE\u8F6F\u4EF6\u56ED"
5438
5957
  }
5439
5958
  ],
5440
- graphicConfig: {}
5959
+ graphicConfig: {
5960
+ chartType: "table",
5961
+ plugin: "1",
5962
+ layer: "1"
5963
+ }
5441
5964
  });
5442
5965
  const tableComponentProps = transformToComponentProps(tableProps);
5443
5966
  const tableEvents = ["click", "refreshData"];
5444
- var Table_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.table[data-v-3c009dfc] {
5967
+ var Table_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => `.table[data-v-56b87792] {
5445
5968
  width: 100%;
5446
- height: 100%;
5447
5969
  }
5448
- .goUp[data-v-3c009dfc] {
5970
+ .goUp[data-v-56b87792] {
5449
5971
  color: #FF512E;
5450
5972
  display: flex;
5451
5973
  align-items: center;
5452
5974
  }
5453
- .goUp[data-v-3c009dfc]:before {
5975
+ .goUp[data-v-56b87792]:before {
5454
5976
  content: '';
5455
5977
  display: block;
5456
- 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=");
5978
+ 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=");
5457
5979
  width: 12px;
5458
5980
  height: 12px;
5459
5981
  background-repeat: no-repeat;
5460
5982
  background-size: cover;
5461
5983
  margin-right: 2px;
5462
5984
  }
5463
- .goDown[data-v-3c009dfc] {
5985
+ .goDown[data-v-56b87792] {
5464
5986
  color: #00F7B4;
5465
5987
  display: flex;
5466
5988
  align-items: center;
5467
5989
  }
5468
- .goDown[data-v-3c009dfc]:before {
5990
+ .goDown[data-v-56b87792]:before {
5469
5991
  content: '';
5470
5992
  display: block;
5471
- 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=");
5993
+ 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=");
5472
5994
  width: 12px;
5473
5995
  height: 12px;
5474
5996
  background-repeat: no-repeat;
@@ -5476,7 +5998,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5476
5998
  margin-right: 2px;
5477
5999
  }
5478
6000
  `)();
5479
- 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")();
6001
+ 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")();
5480
6002
  const _sfc_main$1 = vue.defineComponent({
5481
6003
  name: "EcanTable",
5482
6004
  components: {
@@ -5487,7 +6009,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5487
6009
  ATableSummaryCell: antDesignVue.TableSummaryCell
5488
6010
  },
5489
6011
  props: __spreadValues({}, tableComponentProps),
5490
- setup(props2) {
6012
+ setup(props2, { expose }) {
5491
6013
  const style2 = usePickComponentStyle(props2);
5492
6014
  const splitY = vue.computed(() => {
5493
6015
  if (props2.paginationShow) {
@@ -5586,7 +6108,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5586
6108
  };
5587
6109
  const tableChange = ({ current }, _filters, _sorter) => {
5588
6110
  pageNum.value = current;
5589
- handleIndicatorData();
5590
6111
  };
5591
6112
  const pagination = vue.computed(() => {
5592
6113
  const simple = props2.simple;
@@ -5644,12 +6165,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5644
6165
  });
5645
6166
  dataSource.value = rows;
5646
6167
  };
5647
- const requestDiagram = useRequestDiagramData(props2);
6168
+ const indicatorData = useIndicatorData(props2);
5648
6169
  const handleIndicatorData = async () => {
5649
6170
  var _a2, _b2, _c2, _d;
5650
6171
  try {
5651
6172
  loading.value = true;
5652
- const res = await requestDiagram();
6173
+ const res = await indicatorData();
5653
6174
  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);
5654
6175
  } catch (e) {
5655
6176
  console.error(e);
@@ -5665,6 +6186,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5665
6186
  })
5666
6187
  });
5667
6188
  const refreshData = () => {
6189
+ console.log(vue.unref(pageMode));
5668
6190
  if (vue.unref(pageMode) === "design")
5669
6191
  return;
5670
6192
  switch (props2.dataType) {
@@ -5718,6 +6240,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5718
6240
  setRequest: (requestFn, sortNum) => void 0
5719
6241
  });
5720
6242
  setRequest(refreshData, props2.requestSort);
6243
+ expose({
6244
+ refreshData
6245
+ });
5721
6246
  return {
5722
6247
  x,
5723
6248
  y,
@@ -5749,6 +6274,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5749
6274
  default: vue.withCtx(() => [
5750
6275
  vue.createVNode(_component_a_table, {
5751
6276
  class: "table",
6277
+ style: {
6278
+ height: "100%"
6279
+ },
5752
6280
  columns: _ctx.dataColumns.length > 0 ? _ctx.dataColumns : _ctx.myColumns,
5753
6281
  "data-source": _ctx.dataSource,
5754
6282
  bordered: _ctx.bordered,
@@ -5804,7 +6332,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5804
6332
  }, 8, ["loading"])
5805
6333
  ], 4);
5806
6334
  }
5807
- var Table = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-3c009dfc"]]);
6335
+ var Table = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-56b87792"]]);
5808
6336
  const EcanTable = withInstall(Table);
5809
6337
  const mapProps = __spreadProps(__spreadValues({}, props), {
5810
6338
  mapJson: null,
@@ -5860,7 +6388,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5860
6388
  const _sfc_main = vue.defineComponent({
5861
6389
  name: "EcanMap",
5862
6390
  components: {
5863
- Echarts: ECharts
6391
+ Echarts
5864
6392
  },
5865
6393
  props: __spreadValues({}, mapComponentProps),
5866
6394
  setup(props2) {