@touchvue/plugin 1.0.0-beta.4 → 1.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.mjs CHANGED
@@ -25689,6 +25689,10 @@ const echartsBarProps = {
25689
25689
  type: Boolean,
25690
25690
  default: false
25691
25691
  },
25692
+ d3dShape: {
25693
+ type: String,
25694
+ default: "cube"
25695
+ },
25692
25696
  isHorizontal: {
25693
25697
  type: Boolean,
25694
25698
  default: false
@@ -25761,6 +25765,14 @@ const echartsBarProps = {
25761
25765
  tipFontSize: {
25762
25766
  type: [String, Number],
25763
25767
  default: 1
25768
+ },
25769
+ smooth: {
25770
+ type: [Boolean, Number],
25771
+ default: false
25772
+ },
25773
+ interval: {
25774
+ type: Number,
25775
+ default: 0
25764
25776
  }
25765
25777
  };
25766
25778
  const echartsBarEmits = {
@@ -25824,7 +25836,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
25824
25836
  type: "category",
25825
25837
  data: isMultiSeries.value ? props.xAxisData : props.data.map((item) => item.name),
25826
25838
  axisLabel: {
25827
- interval: 0,
25839
+ interval: props.interval,
25828
25840
  rotate: props.rotate,
25829
25841
  fontSize: Number(props.fontSize) * currentEm.value,
25830
25842
  color: props.isHorizontal ? props.yAxisStyle.textColor : props.xAxisStyle.textColor
@@ -25973,7 +25985,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
25973
25985
  barGap: "-100%",
25974
25986
  z: 1,
25975
25987
  silent: true,
25976
- animation: false
25988
+ animation: false,
25989
+ smooth: item.smooth || props.smooth
25977
25990
  });
25978
25991
  }
25979
25992
  series.push({
@@ -25983,19 +25996,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
25983
25996
  barWidth: Number(props.barSize) * currentEm.value,
25984
25997
  itemStyle: {
25985
25998
  borderRadius: Number(props.borderRadius) * currentEm.value,
25986
- color: isArray(props.color) ? new echartsLib.graphic.LinearGradient(...props.isHorizontal ? [0, 0, 1, 0] : [0, 0, 0, 1], [
25987
- {
25988
- offset: 0,
25989
- color: props.color[i].start
25990
- },
25991
- {
25992
- offset: 1,
25993
- color: props.color[i].end
25994
- }
25995
- ]) : props.color
25999
+ color: getItemColor(item, i)
25996
26000
  },
26001
+ areaStyle: item.areaStyle ? item.areaStyle : null,
25997
26002
  label: getSeriesLabelConfig(),
25998
- z: 2
26003
+ z: 2,
26004
+ smooth: item.smooth || props.smooth
25999
26005
  });
26000
26006
  });
26001
26007
  } else {
@@ -26034,7 +26040,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
26034
26040
  barGap: "-100%",
26035
26041
  z: 1,
26036
26042
  silent: true,
26037
- animation: false
26043
+ animation: false,
26044
+ smooth: props.smooth
26038
26045
  });
26039
26046
  }
26040
26047
  series.push({
@@ -26043,7 +26050,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
26043
26050
  barWidth: Number(props.barSize) * currentEm.value,
26044
26051
  itemStyle: getItemStyle(),
26045
26052
  label: getSeriesLabelConfig(),
26046
- z: 2
26053
+ z: 2,
26054
+ smooth: props.smooth
26047
26055
  });
26048
26056
  }
26049
26057
  return series;
@@ -26051,6 +26059,18 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
26051
26059
  return get3dSeriesConfig();
26052
26060
  }
26053
26061
  });
26062
+ const getItemColor = (item, i) => {
26063
+ let color = null;
26064
+ if (isArray(props.color)) {
26065
+ color = props.color[i];
26066
+ } else {
26067
+ color = props.color;
26068
+ }
26069
+ if (item.linearGradient) {
26070
+ color = item.linearGradient;
26071
+ }
26072
+ return color;
26073
+ };
26054
26074
  const tooltipConfig = computed(() => {
26055
26075
  if (!props.showTooltip) {
26056
26076
  return { show: false };
@@ -26409,12 +26429,107 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
26409
26429
  });
26410
26430
  return series;
26411
26431
  };
26432
+ const getVerticalCylinder3dSeries = () => {
26433
+ if (!echartsLib)
26434
+ return [];
26435
+ const values = props.data.map((item) => item.value);
26436
+ const barWidth = Number(props.barSize) * currentEm.value * 1.25;
26437
+ const rx = barWidth / 2;
26438
+ const ry = Math.max(2, barWidth * 0.28);
26439
+ return [
26440
+ {
26441
+ type: "custom",
26442
+ renderItem: (params, api) => {
26443
+ const value = api.value(1);
26444
+ const coord = api.coord([api.value(0), value]);
26445
+ const x = coord[0];
26446
+ const yTop = coord[1];
26447
+ const yBottom = api.coord([api.value(0), 0])[1];
26448
+ const height = Math.abs(yBottom - yTop);
26449
+ const color = getItemStyle().color;
26450
+ const colorStops = typeof color === "object" && color.colorStops ? color.colorStops : [
26451
+ { offset: 0, color: "#4facfe" },
26452
+ { offset: 1, color: "#00f2fe" }
26453
+ ];
26454
+ const topMainColor = colorStops[0].color;
26455
+ const bottomMainColor = colorStops[colorStops.length - 1].color;
26456
+ const children = [];
26457
+ children.push({
26458
+ type: "rect",
26459
+ shape: { x: x - rx, y: yTop, width: rx * 2, height },
26460
+ style: { fill: new echartsLib.graphic.LinearGradient(0, 0, 0, 1, colorStops), opacity: 0.9 },
26461
+ z: 2
26462
+ });
26463
+ children.push({
26464
+ type: "rect",
26465
+ shape: { x: x - rx * 0.72, y: yTop, width: rx * 0.38, height },
26466
+ style: {
26467
+ fill: new echartsLib.graphic.LinearGradient(0, 0, 1, 0, [
26468
+ { offset: 0, color: "rgba(140,200,255,0.32)" },
26469
+ { offset: 1, color: "rgba(140,200,255,0.04)" }
26470
+ ])
26471
+ },
26472
+ z: 3
26473
+ });
26474
+ children.push({
26475
+ type: "ellipse",
26476
+ shape: { cx: x, cy: yTop, rx, ry },
26477
+ style: {
26478
+ fill: new echartsLib.graphic.RadialGradient(0.5, 0.42, 0.82, [
26479
+ { offset: 0, color: adjustSingleColor(topMainColor, 0.35) },
26480
+ { offset: 0.32, color: adjustSingleColor(topMainColor, 0.08) },
26481
+ { offset: 0.72, color: topMainColor },
26482
+ { offset: 1, color: adjustSingleColor(bottomMainColor, -0.22) }
26483
+ ]),
26484
+ lineWidth: 1,
26485
+ stroke: "rgba(170,200,255,0.55)"
26486
+ },
26487
+ z: 5
26488
+ });
26489
+ children.push({
26490
+ type: "ellipse",
26491
+ shape: { cx: x, cy: yBottom - ry * 0.15, rx: rx * 1.02, ry: ry * 1.05 },
26492
+ style: {
26493
+ fill: adjustSingleColor(bottomMainColor, 0.05),
26494
+ opacity: 0.9,
26495
+ lineWidth: 1,
26496
+ stroke: adjustSingleColor(bottomMainColor, 0.15)
26497
+ },
26498
+ z: 6
26499
+ });
26500
+ if (props.showValue) {
26501
+ children.push({
26502
+ type: "text",
26503
+ style: {
26504
+ text: String(value),
26505
+ textAlign: "center",
26506
+ textVerticalAlign: "bottom",
26507
+ fontSize: Number(props.fontSize) * currentEm.value,
26508
+ fill: "#fff",
26509
+ fontWeight: "bold",
26510
+ x,
26511
+ y: yTop - ry - 8,
26512
+ textShadowBlur: 4,
26513
+ textShadowColor: "rgba(0,0,0,0.5)"
26514
+ },
26515
+ z: 6
26516
+ });
26517
+ }
26518
+ return { type: "group", children };
26519
+ },
26520
+ data: values.map((val, index) => [index, val]),
26521
+ z: 1
26522
+ }
26523
+ ];
26524
+ };
26412
26525
  const get3dSeriesConfig = () => {
26413
26526
  if (props.isHorizontal) {
26414
26527
  return getHorizontal3dSeries();
26415
- } else {
26416
- return getVertical3dSeries();
26417
26528
  }
26529
+ if (props.d3dShape === "cylinder") {
26530
+ return getVerticalCylinder3dSeries();
26531
+ }
26532
+ return getVertical3dSeries();
26418
26533
  };
26419
26534
  const initChart = (retry = 0) => {
26420
26535
  window.setTimeout(async () => {
@@ -26543,8 +26658,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
26543
26658
  };
26544
26659
  }
26545
26660
  });
26546
- const echartsBar_vue_vue_type_style_index_0_scoped_18b48726_lang = "";
26547
- const EchartsBar = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-18b48726"]]);
26661
+ const echartsBar_vue_vue_type_style_index_0_scoped_4f4fca0e_lang = "";
26662
+ const EchartsBar = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-4f4fca0e"]]);
26548
26663
  const ToEchartsBar = withInstall(EchartsBar);
26549
26664
  const DEFAULT_VIEW_CONTROL = {
26550
26665
  zoomSensitivity: 0,
@@ -26553,6 +26668,10 @@ const DEFAULT_VIEW_CONTROL = {
26553
26668
  distance: 100
26554
26669
  };
26555
26670
  const echartsMapProps = {
26671
+ nameMap: {
26672
+ type: Object,
26673
+ default: () => ({})
26674
+ },
26556
26675
  shadow: {
26557
26676
  type: String,
26558
26677
  default: ""
@@ -29222,7 +29341,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29222
29341
  show: true,
29223
29342
  color: props.fontColor,
29224
29343
  fontSize: Number(props.fontSize) * currentEm.value,
29225
- formatter: (e) => ` ${e.name} `
29344
+ formatter: (e) => {
29345
+ var _a3, _b;
29346
+ return ` ${(_b = (_a3 = props.nameMap) == null ? void 0 : _a3[e.name]) != null ? _b : e.name} `;
29347
+ }
29226
29348
  },
29227
29349
  itemStyle: {
29228
29350
  color: props.color || "#65bbff",
@@ -29261,7 +29383,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29261
29383
  show: true,
29262
29384
  color: props.fontColor,
29263
29385
  fontSize: Number(props.fontSize) * currentEm.value,
29264
- formatter: (e) => ` ${e.name} `
29386
+ formatter: (e) => {
29387
+ var _a3, _b;
29388
+ return ` ${(_b = (_a3 = props.nameMap) == null ? void 0 : _a3[e.name]) != null ? _b : e.name} `;
29389
+ }
29265
29390
  },
29266
29391
  itemStyle: {
29267
29392
  shadowBlur: itemShadowParts[0] ? Number(itemShadowParts[0]) * currentEm.value : 0,
@@ -29297,6 +29422,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29297
29422
  };
29298
29423
  };
29299
29424
  const getOption = (geoName, mapData) => {
29425
+ var _a2;
29300
29426
  const baseSeries = getBaseSeries(geoName, mapData);
29301
29427
  const shadowParts = parseShadow(props.shadow);
29302
29428
  const { min, max: max2 } = getMinMax(mapData);
@@ -29310,20 +29436,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29310
29436
  }
29311
29437
  },
29312
29438
  geo: {
29313
- show: true,
29439
+ // 轮廓线与底部阴影共用 geo:
29440
+ // - shadow:用 geo 的 areaColor 作为底部投影层
29441
+ // - showOutline:用 geo 的 borderColor/borderWidth 画最外围轮廓线
29442
+ show: Boolean(props.shadow) || props.showOutline,
29314
29443
  map: geoName,
29315
29444
  roam: false,
29316
- top: 0,
29317
- bottom: props.shadow ? shadowParts[0] ? Number(shadowParts[0]) * currentEm.value : currentEm.value : 0,
29445
+ top: props.shadow ? shadowParts[0] ? Number(shadowParts[0]) * currentEm.value : currentEm.value : 0,
29446
+ bottom: 0,
29447
+ silent: true,
29448
+ label: { show: false },
29318
29449
  itemStyle: {
29319
- areaColor: "transparent",
29450
+ areaColor: props.shadow ? (_a2 = shadowParts[1]) != null ? _a2 : "rgba(0,0,0,0.3)" : "transparent",
29320
29451
  borderColor: props.showOutline ? props.outlineColor : "transparent",
29321
29452
  borderWidth: props.showOutline ? Number(props.outlineWidth) : 0,
29322
29453
  // 避免粗描边在尖锐拐角处产生 miter 尖刺
29323
29454
  borderJoin: "round",
29324
29455
  borderMiterLimit: 2
29325
- },
29326
- silent: true
29456
+ }
29327
29457
  },
29328
29458
  visualMap: showVisualMap() ? {
29329
29459
  seriesIndex: [0],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchvue/plugin",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.5",
4
4
  "description": "Vue3 Plugin Library",
5
5
  "private": false,
6
6
  "type": "module",
package/style/style.css CHANGED
@@ -1 +1 @@
1
- .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{white-space:pre-wrap!important}.to-watermark[data-v-52e4c07e]{position:absolute;inset:0;pointer-events:none}.to-watermark-grid[data-v-52e4c07e]{display:grid;grid-template-columns:repeat(var(--v66af80a3),1fr);grid-template-rows:repeat(var(--v66afb8fd),1fr);width:100%;height:100%;gap:var(--v86b305f8)}.to-watermark-item[data-v-52e4c07e]{display:flex;align-items:center;justify-content:center}.to-watermark-content[data-v-52e4c07e]{pointer-events:none!important;transform-origin:center}.to-step-tree{white-space:nowrap}.to-step-tree-item{display:inline-block;position:relative}.to-step-tree-item:last-child>.to-step-tree-item-arrow{display:none}.to-step-item-line{position:absolute;width:0;top:100%;left:4em;height:4em;border-left:1px dashed #ccc}.to-step-tree-item-children{position:absolute;left:0}.to-step-tree-item-node{padding:.5em;box-sizing:border-box;text-align:center;white-space:normal;display:inline-block;vertical-align:top;width:8em}.to-step-tree-item-arrow{display:inline-block;margin-left:-.5em;margin-right:-.5em;position:relative;vertical-align:top;margin-top:1.5em}.to-step-tree-item-arrow:before{content:"";width:5em;height:1px;display:block;background:#ccc}.to-step-tree-item-arrow:after{position:absolute;right:-.3em;width:0;transform:translateY(-55%);height:0;border:.3em solid #ccc;content:"";border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000}.to-step-tree-item-arrow .to-step-tree-item-arrow-content{position:absolute;width:100%;left:0;text-align:center;top:0;transform:translateY(-50%)}.to-step-tree-item-arrow .to-step-tree-item-arrow-content-top{position:absolute;width:100%;left:0;text-align:center;bottom:.5em}.to-step-tree-item-arrow .to-step-tree-item-arrow-content-bottom{position:absolute;width:100%;left:0;text-align:center;top:.5em}.to-step-tree-item-icon{text-align:center;font-size:116.67%;padding:.5em;margin:0 auto;width:2em;height:2em;background:#d9d9d9;color:#fff;line-height:1em;font-weight:700;border-radius:50%}.to-step-tree-item-label{margin-top:.5em}.to-step-tree-item-state-current>.to-step-tree-item-node .to-step-tree-item-icon{background:#0085d0}.to-step-tree-item-state-finished>.to-step-tree-item-node .to-step-tree-item-icon{background:#cce099}.to-echarts-pie{position:relative;margin:0 auto;display:inline-flex;align-items:center;overflow:hidden}.to-echarts-pie-legend{flex:1}.to-echarts-pie-pic{position:relative;align-self:center;display:inline-block;overflow:hidden}.to-echarts-pie-pic-content{position:relative}.to-echarts-pie-pic-text{pointer-events:none;position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:100%}.to-echarts-pie-pic-value{font-size:2.4em}.to-echarts-pie-pic-label{font-size:1.5em}.to-echarts-pie.has-legend{display:flex;gap:1em;margin:0 auto}.to-echarts-pie.layout-v{flex-direction:column;align-items:inherit;text-align:center}.to-echarts-pie.side-top .to-echarts-pie-pic-text{bottom:0;transform:translate(-50%)}.to-echarts-pie.side-bottom .to-echarts-pie-pic-content{margin-top:-50%}.to-echarts-pie.side-bottom .to-echarts-pie-pic-text{top:0;transform:translate(-50%)}.to-echarts-bar[data-v-18b48726]{position:relative}.to-echarts-tooltip,.echarts-tooltip{z-index:3000000!important;pointer-events:none}.to-echarts-map.tip-custom>div:nth-child(2){padding:0!important;border:0 none!important;box-shadow:none!important;background:none!important;font-size:100%!important}.to-echarts-map.tip-custom>div:nth-child(2)>div:nth-child(2){display:none}
1
+ .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{white-space:pre-wrap!important}.to-watermark[data-v-52e4c07e]{position:absolute;inset:0;pointer-events:none}.to-watermark-grid[data-v-52e4c07e]{display:grid;grid-template-columns:repeat(var(--v66af80a3),1fr);grid-template-rows:repeat(var(--v66afb8fd),1fr);width:100%;height:100%;gap:var(--v86b305f8)}.to-watermark-item[data-v-52e4c07e]{display:flex;align-items:center;justify-content:center}.to-watermark-content[data-v-52e4c07e]{pointer-events:none!important;transform-origin:center}.to-step-tree{white-space:nowrap}.to-step-tree-item{display:inline-block;position:relative}.to-step-tree-item:last-child>.to-step-tree-item-arrow{display:none}.to-step-item-line{position:absolute;width:0;top:100%;left:4em;height:4em;border-left:1px dashed #ccc}.to-step-tree-item-children{position:absolute;left:0}.to-step-tree-item-node{padding:.5em;box-sizing:border-box;text-align:center;white-space:normal;display:inline-block;vertical-align:top;width:8em}.to-step-tree-item-arrow{display:inline-block;margin-left:-.5em;margin-right:-.5em;position:relative;vertical-align:top;margin-top:1.5em}.to-step-tree-item-arrow:before{content:"";width:5em;height:1px;display:block;background:#ccc}.to-step-tree-item-arrow:after{position:absolute;right:-.3em;width:0;transform:translateY(-55%);height:0;border:.3em solid #ccc;content:"";border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000}.to-step-tree-item-arrow .to-step-tree-item-arrow-content{position:absolute;width:100%;left:0;text-align:center;top:0;transform:translateY(-50%)}.to-step-tree-item-arrow .to-step-tree-item-arrow-content-top{position:absolute;width:100%;left:0;text-align:center;bottom:.5em}.to-step-tree-item-arrow .to-step-tree-item-arrow-content-bottom{position:absolute;width:100%;left:0;text-align:center;top:.5em}.to-step-tree-item-icon{text-align:center;font-size:116.67%;padding:.5em;margin:0 auto;width:2em;height:2em;background:#d9d9d9;color:#fff;line-height:1em;font-weight:700;border-radius:50%}.to-step-tree-item-label{margin-top:.5em}.to-step-tree-item-state-current>.to-step-tree-item-node .to-step-tree-item-icon{background:#0085d0}.to-step-tree-item-state-finished>.to-step-tree-item-node .to-step-tree-item-icon{background:#cce099}.to-echarts-pie{position:relative;margin:0 auto;display:inline-flex;align-items:center;overflow:hidden}.to-echarts-pie-legend{flex:1}.to-echarts-pie-pic{position:relative;align-self:center;display:inline-block;overflow:hidden}.to-echarts-pie-pic-content{position:relative}.to-echarts-pie-pic-text{pointer-events:none;position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:100%}.to-echarts-pie-pic-value{font-size:2.4em}.to-echarts-pie-pic-label{font-size:1.5em}.to-echarts-pie.has-legend{display:flex;gap:1em;margin:0 auto}.to-echarts-pie.layout-v{flex-direction:column;align-items:inherit;text-align:center}.to-echarts-pie.side-top .to-echarts-pie-pic-text{bottom:0;transform:translate(-50%)}.to-echarts-pie.side-bottom .to-echarts-pie-pic-content{margin-top:-50%}.to-echarts-pie.side-bottom .to-echarts-pie-pic-text{top:0;transform:translate(-50%)}.to-echarts-bar[data-v-4f4fca0e]{position:relative}.to-echarts-tooltip,.echarts-tooltip{z-index:3000000!important;pointer-events:none}.to-echarts-map.tip-custom>div:nth-child(2){padding:0!important;border:0 none!important;box-shadow:none!important;background:none!important;font-size:100%!important}.to-echarts-map.tip-custom>div:nth-child(2)>div:nth-child(2){display:none}