hamster-charts 0.6.2 → 0.6.3
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/dist/hamster-charts.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.h-panel[data-v-474190fc]{width:100%;height:100%;background-size:100% 100%;background-repeat:no-repeat}.h-header[data-v-b83cf769]{background-size:100% 100%;background-repeat:no-repeat;position:relative}.h-main[data-v-1025786b]{width:100%}.h-chart-title[data-v-412bbd72]{width:100%;background-size:100% 100%;background-repeat:no-repeat}.h-chart[data-v-0af49945]{display:flex;flex-direction:column;background-size:100% 100%;background-repeat:no-repeat}.h-chart .chart[data-v-0af49945]{position:relative;flex:1;min-height:0;width:100%}.chart-loading[data-v-0af49945]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00000080;z-index:10;gap:10px}.loading-icon[data-v-0af49945]{width:36px;height:36px;animation:h-chart-spin-0af49945 1s linear infinite}.loading-text[data-v-0af49945]{color:#fff;font-size:13px;opacity:.8}@keyframes h-chart-spin-0af49945{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.h-left[data-v-7d94e3d8],.h-right[data-v-8ef316d0]{height:100%}.h-top[data-v-ee9ecf79],.h-bottom[data-v-9fc5eff9]{width:100%}.h-item-chart[data-v-
|
|
1
|
+
.h-panel[data-v-474190fc]{width:100%;height:100%;background-size:100% 100%;background-repeat:no-repeat}.h-header[data-v-b83cf769]{background-size:100% 100%;background-repeat:no-repeat;position:relative}.h-main[data-v-1025786b]{width:100%}.h-chart-title[data-v-412bbd72]{width:100%;background-size:100% 100%;background-repeat:no-repeat}.h-chart[data-v-0af49945]{display:flex;flex-direction:column;background-size:100% 100%;background-repeat:no-repeat}.h-chart .chart[data-v-0af49945]{position:relative;flex:1;min-height:0;width:100%}.chart-loading[data-v-0af49945]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00000080;z-index:10;gap:10px}.loading-icon[data-v-0af49945]{width:36px;height:36px;animation:h-chart-spin-0af49945 1s linear infinite}.loading-text[data-v-0af49945]{color:#fff;font-size:13px;opacity:.8}@keyframes h-chart-spin-0af49945{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.h-left[data-v-7d94e3d8],.h-right[data-v-8ef316d0]{height:100%}.h-top[data-v-ee9ecf79],.h-bottom[data-v-9fc5eff9]{width:100%}.h-item-chart[data-v-097aca98]{position:relative;width:100%;height:100%;background-size:100% 100%;background-repeat:no-repeat}.h-item-chart-loading[data-v-097aca98]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00000080;z-index:10;gap:10px}.h-item-chart-loading-icon[data-v-097aca98]{width:36px;height:36px;animation:h-item-chart-spin-097aca98 1s linear infinite}.h-item-chart-loading-text[data-v-097aca98]{color:#fff;font-size:13px;opacity:.8}@keyframes h-item-chart-spin-097aca98{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-937cc59c]::-webkit-scrollbar{width:0px}[data-v-937cc59c]::-webkit-scrollbar-track{background:#31313181}[data-v-937cc59c]::-webkit-scrollbar-thumb{background:#444;border-radius:10px}[data-v-937cc59c]::-webkit-scrollbar-thumb:hover{background:#555}.h-list[data-v-937cc59c]{position:relative;overflow:hidden}.list-header[data-v-937cc59c]{display:flex;align-items:center;width:100%}.header-item[data-v-937cc59c]{flex:1;display:flex;justify-content:center;align-items:center;font-weight:700}.scroll-wrapper[data-v-937cc59c]{position:relative;width:100%;will-change:transform}.data-list[data-v-937cc59c]{width:100%}.data-list-item[data-v-937cc59c]{display:flex;transition:all .3s ease;border-bottom:1px solid rgba(255,255,255,.1)}.data-list-item[data-v-937cc59c]:hover{background:#ffffff0d}.data-item-cell[data-v-937cc59c]{flex:1;display:flex;justify-content:center;align-items:center;padding:8px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h-view[data-v-c79a990c]{background-size:100% 100%;background-repeat:no-repeat}.h-data-label[data-v-5b0fbecc]{background-repeat:no-repeat;background-size:100% 100%}.h-button[data-v-533f0ead]{outline:none;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;border:none}.h-grid[data-v-d4038f65]{background-size:100% 100%;background-repeat:no-repeat}.h-counter[data-v-fba32a26]{display:flex;align-items:center}.counter-digit[data-v-fba32a26]{position:relative;overflow:hidden}.digit-scroll[data-v-fba32a26]{display:flex;flex-direction:column;will-change:transform}.digit-item[data-v-fba32a26]{flex-shrink:0}.h-layout[data-v-957ea318]{height:100%}.h-flex[data-v-6ecd9f03]{background-size:100% 100%;background-repeat:no-repeat}.h-map-wrapper[data-v-7350dc12]{position:relative;width:100%;height:100%}.h-map[data-v-7350dc12]{width:100%;height:100%;background-size:100% 100%;background-repeat:no-repeat;overflow:hidden}.h-map-loading[data-v-7350dc12]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00000080;z-index:10;gap:10px}.h-map-loading-icon[data-v-7350dc12]{width:36px;height:36px;animation:h-map-spin-7350dc12 1s linear infinite}.h-map-loading-text[data-v-7350dc12]{color:#fff;font-size:13px;opacity:.8}@keyframes h-map-spin-7350dc12{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.h-loading[data-v-ae6739ea]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0a0a1e}.h-loading-box[data-v-ae6739ea]{display:flex;flex-direction:column;align-items:center;gap:14px}.h-loading-icon[data-v-ae6739ea]{width:48px;height:48px;animation:h-loading-spin-ae6739ea 1s linear infinite}.h-loading-text[data-v-ae6739ea]{color:#fff;font-size:14px;letter-spacing:1px;opacity:.85}.h-loading-fade-enter-active[data-v-ae6739ea],.h-loading-fade-leave-active[data-v-ae6739ea]{transition:opacity .25s ease}.h-loading-fade-enter-from[data-v-ae6739ea],.h-loading-fade-leave-to[data-v-ae6739ea]{opacity:0}@keyframes h-loading-spin-ae6739ea{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
package/dist/hamster-charts.js
CHANGED
|
@@ -777,7 +777,11 @@ const de = ["src"], pe = {
|
|
|
777
777
|
loadingText: { type: String, default: "" },
|
|
778
778
|
loadingMinDuration: { type: Number, default: 600 },
|
|
779
779
|
loadingIcon: { type: String, default: "" },
|
|
780
|
-
loadingBgColor: { type: String, default: "" }
|
|
780
|
+
loadingBgColor: { type: String, default: "" },
|
|
781
|
+
flex: {
|
|
782
|
+
type: Number,
|
|
783
|
+
default: 0.3
|
|
784
|
+
}
|
|
781
785
|
},
|
|
782
786
|
emits: [
|
|
783
787
|
"chart-ready",
|
|
@@ -791,7 +795,8 @@ const de = ["src"], pe = {
|
|
|
791
795
|
setup(e, { expose: t, emit: n }) {
|
|
792
796
|
const a = n, i = e, b = c(() => ({
|
|
793
797
|
backgroundImage: i.url ? `url(${i.url})` : "none",
|
|
794
|
-
height: i.height
|
|
798
|
+
height: i.height,
|
|
799
|
+
flex: i.flex
|
|
795
800
|
})), p = $(null);
|
|
796
801
|
let o = null;
|
|
797
802
|
const k = $(!1);
|
|
@@ -909,7 +914,7 @@ const de = ["src"], pe = {
|
|
|
909
914
|
], 4)) : A("", !0)
|
|
910
915
|
], 4));
|
|
911
916
|
}
|
|
912
|
-
}), ut = /* @__PURE__ */ x(fe, [["__scopeId", "data-v-
|
|
917
|
+
}), ut = /* @__PURE__ */ x(fe, [["__scopeId", "data-v-097aca98"]]);
|
|
913
918
|
ut.install = (e) => {
|
|
914
919
|
e.component(ut.name, ut);
|
|
915
920
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(f,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("echarts"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","echarts","@vueuse/core"],t):(f=typeof globalThis<"u"?globalThis:f||self,t(f.HamsterCharts={},f.Vue,f.echarts,f.VueUse))})(this,function(f,t,ht,E){"use strict";function _t(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(e,o,l.get?l:{enumerable:!0,get:()=>n[o]})}}return e.default=n,Object.freeze(e)}const dt=_t(ht),_=(n,e)=>{const o=n.__vccOpts||n;for(const[l,a]of e)o[l]=a;return o},F=_(Object.assign({name:"hPanel",chineseName:"面板",description:"页面主体容器"},{props:{url:{type:String,default:""},position:{type:String,default:"relative",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)}},setup(n){let e=n,o=t.computed(()=>({position:e.position,backgroundImage:e.url?`url(${e.url})`:"none"}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-panel",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-474190fc"]]);F.install=n=>{n.component(F.name,F)};const H=_(Object.assign({name:"hHeader",chineseName:"标题",description:"页面标题容器"},{props:{url:{type:String,default:""},width:{type:String,default:"100%"},height:{type:String,default:"70px"},text:{type:String,default:"测试标题"},fontSize:{type:String,default:"26px"},color:{type:String,default:"#fff"},showText:{type:Boolean,default:!0},textPosition:{type:String,default:"absolute",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)},textTop:{type:String,default:"50%"},textLeft:{type:String,default:"50%"},textTransform:{type:String,default:"translate(-50%, -50%)"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,backgroundImage:`url( ${e.url})`})),l=t.computed(()=>({color:e.color,fontSize:e.fontSize,position:e.textPosition,top:e.textTop,left:e.textLeft,transform:e.textTransform}));return(a,S)=>(t.openBlock(),t.createElementBlock("div",{class:"h-header",style:t.normalizeStyle(t.unref(o))},[t.unref(e).showText?(t.openBlock(),t.createElementBlock("span",{key:0,style:t.normalizeStyle(t.unref(l))},t.toDisplayString(t.unref(e).text),5)):t.createCommentVNode("",!0),t.renderSlot(a.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-b83cf769"]]);H.install=n=>{n.component(H.name,H)};const M=_(Object.assign({name:"hMain",chineseName:"主内容区",description:"页面主内容工作区"},{props:{height:{type:String,default:"200px"},display:{type:String,default:"flex"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"},padding:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({height:e.height!=="auto"||e.height!=="0"?`calc(100% - ${e.height})`:e.height,display:e.display,columnGap:e.columnGap,rowGap:e.rowGap,padding:e.padding}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-main",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-1025786b"]]);M.install=n=>{n.component(M.name,M)};const St={class:"def-text"},O=_(Object.assign({name:"hChartTitle",chineseName:"图表标题",description:"图表标题组件"},{props:{fontSize:{type:String,default:"16px"},url:{type:String,default:""},height:{type:String,default:"50px"},paddingLeft:{type:String,default:"auto"},paddingRight:{type:String,default:"auto"},paddingTop:{type:String,default:"auto"},paddingBottom:{type:String,default:"auto"},color:{type:String,default:"#fff"},text:{type:String,default:"测试标题"},display:{type:String,default:"block"},textAlign:{type:String,default:"start"},alignItems:{type:String,default:"center"},justifyContent:{type:String,default:"start"},position:{type:String,default:"relative"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,backgroundImage:`url(${e.url})`,fontSize:e.fontSize,paddingLeft:e.paddingLeft,paddingRight:e.paddingRight,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,color:e.color,display:e.display,textAlign:e.textAlign,alignItems:e.alignItems,justifyContent:e.justifyContent,position:e.position}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-chart-title",style:t.normalizeStyle(t.unref(o))},[t.createElementVNode("span",St,t.toDisplayString(t.unref(e).text),1),t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-412bbd72"]]),pt="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1780631644175'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1701'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M923.851581%20338.007247c-20.012799-47.313585-47.717791-90.324168-82.448804-128.128169%206.875594-13.544481%2010.753925-28.866445%2010.753925-45.096081%200-55.099922-44.667316-99.767238-99.767238-99.767238-29.051663%200-55.19816%2012.420891-73.431429%2032.237215-53.058426-21.390169-109.183701-32.237215-166.958546-32.237215-60.334133%200-118.873388%2011.821233-173.98866%2035.134195-53.232388%2022.51376-101.031021%2054.741765-142.073786%2095.78453-41.045835%2041.043788-73.272817%2088.844467-95.785553%20142.073786C76.837504%20393.126612%2065.014224%20451.665867%2065.014224%20512.001023c0%2060.33311%2011.82328%20118.873388%2035.134195%20173.989683%2022.51376%2053.230342%2054.741765%20101.029998%2095.785553%20142.073786%2041.041742%2041.043788%2088.841398%2073.27077%20142.073786%2095.785553%2055.116295%2023.311939%20113.65555%2035.134195%20173.989683%2035.134195s118.873388-11.822257%20173.992753-35.134195c53.229319-22.514783%20101.029998-54.742788%20142.072763-95.785553%2041.045835-41.043788%2073.272817-88.843444%2095.785553-142.073786%2023.309892-55.116295%2035.134195-113.656573%2035.134195-173.989683C958.985776%20451.665867%20947.161473%20393.127635%20923.851581%20338.007247zM887.891578%20670.783353c-20.545942%2048.575322-49.960879%2092.203982-87.430258%20129.676431-37.473473%2037.470403-81.100086%2066.88841-129.679501%2087.432305-50.28015%2021.263279-103.702873%2032.047904-158.783353%2032.047904-55.07741%200-108.500133-10.782577-158.785399-32.047904-48.575322-20.545942-92.203982-49.961902-129.676431-87.432305-37.47245-37.47245-66.88841-81.101109-87.430258-129.676431-21.267373-50.28015-32.050973-103.703897-32.050973-158.784376s10.783601-108.503203%2032.050973-158.783353c20.541849-48.575322%2049.958832-92.206028%2087.430258-129.676431%2037.47245-37.470403%2081.101109-66.887386%20129.676431-87.433328%2050.285267-21.266349%20103.70799-32.04995%20158.785399-32.04995%2050.600445%200%2099.797937%209.107425%20146.447397%2027.074635-3.767813%2010.514471-5.824659%2021.842471-5.824659%2033.653471%200%2055.099922%2044.667316%2099.767238%2099.767238%2099.767238%2024.573675%200%2047.065945-8.889461%2064.452941-23.620977%2029.737278%2033.372062%2053.603849%2071.037916%2071.050196%20112.285343%2021.266349%2050.28015%2032.04995%20103.702873%2032.04995%20158.783353S909.15895%20620.503203%20887.891578%20670.783353z'%20fill='%230066ff'%20p-id='1702'%3e%3c/path%3e%3c/svg%3e",xt=["src"],bt={key:0,class:"loading-text"},W=_(Object.assign({name:"hChart",chineseName:"图表",description:"基于 ECharts 的图表容器组件,支持自适应和事件交互"},{props:{height:{type:String,default:"auto"},showChart:{type:Boolean,default:!0},url:{type:String,default:""},flex:{type:Number,default:.3},option:{type:Object,required:!0},tooltipLoop:{type:[Boolean,Object],default:!1},title:{type:[String,Object],default:""},showTitle:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""}},emits:["chart-ready","chart-update","chart-resize","chart-click","chart-dblclick","chart-mouseover","chart-mouseout"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.computed(()=>({backgroundImage:a.url?`url(${a.url})`:"none",flex:a.flex,height:a.height})),d=t.ref(null);let i=null;const w=t.useSlots(),z=t.computed(()=>!!w.default),T=t.computed(()=>a.title?typeof a.title=="string"?{text:a.title}:a.title:null),x=t.ref(!1);let b=0;t.watch(()=>a.loading,s=>{if(s)x.value=!0,b=Date.now();else{const r=Date.now()-b,u=(a.loadingMinDuration||0)-r;u<=0?x.value=!1:setTimeout(()=>{x.value=!1},u)}},{immediate:!0});const h=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),c=t.computed(()=>{if(!a.tooltipLoop)return null;if(a.tooltipLoop===!0)return{interval:2e3,seriesIndex:0,loop:!0,pauseOnHover:!0};const s=a.tooltipLoop;return{interval:s.interval??2e3,seriesIndex:s.seriesIndex??0,loop:s.loop??!0,pauseOnHover:s.pauseOnHover??!0}});let y=null,g=0,B=!1,$=!0;const k=()=>{var s,r;try{const u=(s=a.option)==null?void 0:s.series;if(!u||!Array.isArray(u))return 0;const I=u[((r=c.value)==null?void 0:r.seriesIndex)??0];return I!=null&&I.data?I.data.length:0}catch{return 0}},A=()=>{if(!i||!c.value||B||!$)return;const s=k();s!==0&&(i.dispatchAction({type:"showTip",seriesIndex:c.value.seriesIndex,dataIndex:g}),g++,g>=s&&(c.value.loop?g=0:D()))},C=()=>{D(),!(!c.value||k()===0)&&(g=0,y=setInterval(A,c.value.interval))},D=()=>{y&&(clearInterval(y),y=null),i&&i.dispatchAction({type:"hideTip"})},st=()=>{B=!0},G=()=>{B=!1},L=E.useDebounceFn(()=>{i&&(i.resize(),l("chart-resize",{instance:i}))},100),ut=()=>{var r;if(!i)return;["click","dblclick","mouseover","mouseout"].forEach(u=>{i.on(u,I=>{l(`chart-${u}`,I)})}),(r=c.value)!=null&&r.pauseOnHover&&(i.on("mouseover",()=>{st()}),i.on("mouseout",()=>{G()}))},V=()=>{i&&(D(),["click","dblclick","mouseover","mouseout"].forEach(r=>{i.off(r)}),i.dispose(),i=null)},m=()=>{if(V(),!!d.value)try{const s=p(a.option);i=dt.init(d.value),i.setOption(s,{notMerge:!0}),ut(),l("chart-ready",{instance:i,dom:d.value}),C()}catch(s){console.error("ECharts initialization failed:",s)}},p=s=>{if(!s||typeof s!="object")return{series:[]};const r=JSON.parse(JSON.stringify(s));return r.series?Array.isArray(r.series)||(r.series=[r.series]):r.series=[],r.series=r.series.map(u=>{if(!u||typeof u!="object")return{type:"line"};const I={type:"line",...u,type:u.type||"line"};return I.type==="pie"&&I.data&&(I.data=I.data.map(ct=>typeof ct=="object"&&ct!==null?{type:"line",...ct,type:ct.type||"line"}:ct)),I}),r.xAxis?Array.isArray(r.xAxis)?r.xAxis=r.xAxis.map(u=>!u||typeof u!="object"?{type:"category"}:{type:"category",...u,type:u.type||"category"}):typeof r.xAxis=="object"?r.xAxis={type:"category",...r.xAxis,type:r.xAxis.type||"category"}:r.xAxis={type:"category"}:r.xAxis={type:"category"},r.yAxis?Array.isArray(r.yAxis)?r.yAxis=r.yAxis.map(u=>!u||typeof u!="object"?{type:"value"}:{type:"value",...u,type:u.type||"value"}):typeof r.yAxis=="object"?r.yAxis={type:"value",...r.yAxis,type:r.yAxis.type||"value"}:r.yAxis={type:"value"}:r.yAxis={type:"value"},r.legend&&(typeof r.legend=="object"&&!Array.isArray(r.legend)||Array.isArray(r.legend)&&(r.legend={data:r.legend})),r},N=()=>{L()};return t.onMounted(()=>{setTimeout(()=>{m()},0),window.addEventListener("resize",N),E.useResizeObserver(d,s=>{L()}),a.tooltipLoop&&E.useIntersectionObserver(d,([s])=>{$=s.isIntersecting,$?G():st()})}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",N),D(),V()}),t.watch(()=>a.option,(s,r)=>{if(s)try{const u=p(s);if(!i){m();return}i.clear(),i.setOption(u,{notMerge:!0}),C(),l("chart-update",{instance:i,option:u})}catch(u){console.error("更新图表配置时出错:",u),console.error(" 错误堆栈:",u.stack)}},{deep:!0}),t.watch(()=>a.showChart,s=>{i&&setTimeout(()=>{i.resize()},0)}),e({getInstance:()=>i,resize:()=>L(),dispatchAction:s=>i==null?void 0:i.dispatchAction(s),dispose:V,startLoop:C,stopLoop:D,pauseLoop:st,resumeLoop:G}),(s,r)=>(t.openBlock(),t.createElementBlock("div",{class:"h-chart",style:t.normalizeStyle(S.value)},[z.value?t.renderSlot(s.$slots,"default",{key:0},void 0,!0):T.value&&a.showTitle?(t.openBlock(),t.createBlock(O,t.normalizeProps(t.mergeProps({key:1},T.value)),null,16)):t.createCommentVNode("",!0),a.showChart?(t.openBlock(),t.createElementBlock("div",{key:2,class:"chart",ref_key:"charts",ref:d},[x.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"chart-loading",style:t.normalizeStyle(h.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"loading-icon",alt:"loading"},null,8,xt),a.loadingText?(t.openBlock(),t.createElementBlock("span",bt,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)],512)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-0af49945"]]);W.install=n=>{n.component(W.name,W)};const R=_(Object.assign({name:"hLeft",chineseName:"左侧",description:"页面左侧容器"},{props:{width:{type:String,default:"25%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-left",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-7d94e3d8"]]);R.install=n=>{n.component(R.name,R)};const P=_(Object.assign({name:"hRight",chineseName:"右侧",description:"页面右侧容器"},{props:{width:{type:String,default:"25%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-right",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-8ef316d0"]]);P.install=n=>{n.component(P.name,P)};const q=_(Object.assign({name:"hCenter",chineseName:"居中布局",description:"水平居中布局容器"},{props:{width:{type:String,default:"50%"},height:{type:String,default:"100%"},display:{type:String,default:"block"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-center",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-69a501ea"]]);q.install=n=>{n.component(q.name,q)};const J=_(Object.assign({name:"hTop",chineseName:"顶部",description:"页面顶部容器"},{props:{height:{type:String,default:"70%"},display:{type:String,default:"block"},position:{type:String,default:"relative"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,display:e.display,position:e.position}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-top",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-ee9ecf79"]]);J.install=n=>{n.component(J.name,J)};const U=_(Object.assign({name:"hBottom",chineseName:"底部",description:"页面底部容器"},{props:{height:{type:String,default:"30%"},display:{type:String,default:"flex"},gap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"},columnGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,display:e.display,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-bottom",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-9fc5eff9"]]);U.install=n=>{n.component(U.name,U)},O.install=n=>{n.component(O.name,O)};const kt=["src"],wt={key:0,class:"h-item-chart-loading-text"},Y=_(Object.assign({name:"hItemChart",chineseName:"独立图表",description:"独立的 ECharts 图表容器组件,支持 loading、tooltip 轮播,适用于大屏数据可视化展示"},{props:{height:{type:String,default:"200px"},url:{type:String,default:""},option:{type:Object,required:!0},tooltipLoop:{type:[Boolean,Object],default:!1},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""}},emits:["chart-ready","chart-update","chart-resize","chart-click","chart-dblclick","chart-mouseover","chart-mouseout"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.computed(()=>({backgroundImage:a.url?`url(${a.url})`:"none",height:a.height})),d=t.ref(null);let i=null;const w=t.ref(!1);let z=0;t.watch(()=>a.loading,m=>{if(m)w.value=!0,z=Date.now();else{const p=(a.loadingMinDuration||0)-(Date.now()-z);p<=0?w.value=!1:setTimeout(()=>{w.value=!1},p)}},{immediate:!0});const T=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),x=t.computed(()=>{if(!a.tooltipLoop)return null;if(a.tooltipLoop===!0)return{interval:2e3,seriesIndex:0,loop:!0,pauseOnHover:!0};const m=a.tooltipLoop;return{interval:m.interval??2e3,seriesIndex:m.seriesIndex??0,loop:m.loop??!0,pauseOnHover:m.pauseOnHover??!0}});let b=null,h=0,c=!1,y=!0;const g=()=>{var m,p,N;try{const s=(m=a.option)==null?void 0:m.series;if(!s||!Array.isArray(s))return 0;const r=s[((p=x.value)==null?void 0:p.seriesIndex)??0];return((N=r==null?void 0:r.data)==null?void 0:N.length)??0}catch{return 0}},B=()=>{if(!i||!x.value||c||!y)return;const m=g();m!==0&&(i.dispatchAction({type:"showTip",seriesIndex:x.value.seriesIndex,dataIndex:h}),h++,h>=m&&(x.value.loop?h=0:k()))},$=()=>{k(),!(!x.value||g()===0)&&(h=0,b=setInterval(B,x.value.interval))},k=()=>{b&&(clearInterval(b),b=null),i&&i.dispatchAction({type:"hideTip"})},A=()=>{c=!0},C=()=>{c=!1},D=E.useDebounceFn(()=>{i&&(i.resize(),l("chart-resize",{instance:i}))},100),st=()=>{var p;if(!i)return;["click","dblclick","mouseover","mouseout"].forEach(N=>i.on(N,s=>l(`chart-${N}`,s))),(p=x.value)!=null&&p.pauseOnHover&&(i.on("mouseover",()=>A()),i.on("mouseout",()=>C()))},G=()=>{i&&(k(),["click","dblclick","mouseover","mouseout"].forEach(p=>i.off(p)),i.dispose(),i=null)},L=()=>{if(G(),!!d.value)try{i=dt.init(d.value),i.setOption(ut(a.option),{notMerge:!0}),st(),l("chart-ready",{instance:i,dom:d.value}),$()}catch(m){console.error("[hItemChart] init:",m)}},ut=m=>{if(!m||typeof m!="object")return{series:[]};const p=JSON.parse(JSON.stringify(m));p.series?Array.isArray(p.series)||(p.series=[p.series]):p.series=[],p.series=p.series.map(s=>{if(!s||typeof s!="object")return{type:"line"};const r={type:"line",...s,type:s.type||"line"};return r.type==="pie"&&r.data&&(r.data=r.data.map(u=>typeof u=="object"&&u!==null?{value:u.value||0,name:u.name||""}:u)),r});const N=(s,r)=>{p[s]?Array.isArray(p[s])?p[s]=p[s].map(u=>({type:r,...u,type:u.type||r})):typeof p[s]=="object"?p[s]={type:r,...p[s],type:p[s].type||r}:p[s]={type:r}:p[s]={type:r}};return N("xAxis","category"),N("yAxis","value"),p.legend&&Array.isArray(p.legend)&&(p.legend={data:p.legend}),p},V=()=>D();return t.onMounted(()=>{setTimeout(()=>L(),0),window.addEventListener("resize",V),E.useResizeObserver(d,()=>D()),a.tooltipLoop&&E.useIntersectionObserver(d,([m])=>{y=m.isIntersecting,y?C():A()})}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",V),k(),G()}),t.watch(()=>a.option,m=>{if(m)try{if(!i){L();return}i.clear(),i.setOption(ut(m),{notMerge:!0}),$(),l("chart-update",{instance:i,option:m})}catch(p){console.error("[hItemChart] update:",p)}},{deep:!0}),e({getInstance:()=>i,resize:()=>D(),dispatchAction:m=>i==null?void 0:i.dispatchAction(m),dispose:G,startLoop:$,stopLoop:k,pauseLoop:A,resumeLoop:C}),(m,p)=>(t.openBlock(),t.createElementBlock("div",{class:"h-item-chart",ref_key:"itemCharts",ref:d,style:t.normalizeStyle(S.value)},[w.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-item-chart-loading",style:t.normalizeStyle(T.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"h-item-chart-loading-icon",alt:"loading"},null,8,kt),a.loadingText?(t.openBlock(),t.createElementBlock("span",wt,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-477585e0"]]);Y.install=n=>{n.component(Y.name,Y)};const K=_(Object.assign({name:"hList",chineseName:"滚动列表",description:"支持自动滚动的数据列表组件,适用于大屏数据展示"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"100%"},backgroundColor:{type:String,default:"transparent"},data:{type:Array,default:()=>[]},header:{type:Array,default:()=>[]},showHeader:{type:Boolean,default:!1},enableScroll:{type:Boolean,default:!0},headerHeight:{type:String,default:"40px"},headerBackground:{type:String,default:"rgba(255, 255, 255, 0.1)"},scrollDuration:{type:Number,default:2e3},scrollSpeed:{type:Number,default:500},highlightStyle:{type:Object,default:()=>({background:"rgba(0, 102, 255, 0.3)",color:"#fff",boxShadow:"0 0 10px rgba(0, 102, 255, 0.5)"})}},setup(n,{expose:e}){const o=n,l=t.ref(0),a=t.ref(null),S=t.ref(0),d=t.ref([]),i=t.ref(null),w=t.computed(()=>({width:o.width,height:o.height,backgroundColor:o.backgroundColor,position:"relative",overflow:"hidden"})),z=t.computed(()=>({height:o.headerHeight,display:"flex",alignItems:"center",background:o.headerBackground,position:"absolute",top:0,left:0,zIndex:10,width:"100%"})),T=t.computed(()=>({transform:`translateY(-${l.value*S.value}px)`,transition:`transform ${o.scrollSpeed}ms ease-in-out`,marginTop:o.showHeader?o.headerHeight:"0"})),x=g=>g===a.value?o.highlightStyle:{};t.watch(l,g=>{if(o.data.length>0){const B=g%o.data.length;a.value=B}});let b=null;const h=()=>{!o.enableScroll||o.data.length===0||(clearInterval(b),b=setInterval(()=>{l.value=(l.value+1)%o.data.length},o.scrollDuration))},c=()=>{b&&(clearInterval(b),b=null)},y=()=>{d.value&&d.value[0]&&(S.value=d.value[0].offsetHeight||40)};return t.onMounted(()=>{y(),h(),window.addEventListener("resize",y)}),t.onBeforeUnmount(()=>{c(),window.removeEventListener("resize",y)}),t.watch(()=>o.data,g=>{g.length>0?(l.value=0,a.value=null,setTimeout(()=>{y(),h()},100)):c()},{deep:!0}),t.watch(()=>o.enableScroll,g=>{g?h():(c(),l.value=0)}),e({startScroll:h,stopScroll:c,getCurrentIndex:()=>l.value,scrollTo:g=>{g>=0&&g<o.data.length&&(l.value=g)}}),(g,B)=>(t.openBlock(),t.createElementBlock("div",{class:"h-list",style:t.normalizeStyle(w.value)},[n.showHeader?(t.openBlock(),t.createElementBlock("div",{key:0,class:"list-header",style:t.normalizeStyle(z.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.header,($,k)=>(t.openBlock(),t.createElementBlock("p",{key:k,class:"header-item"},t.toDisplayString($),1))),128))],4)):t.createCommentVNode("",!0),n.enableScroll?(t.openBlock(),t.createElementBlock("div",{key:1,class:"scroll-wrapper",style:t.normalizeStyle(T.value)},[t.createElementVNode("div",{class:"data-list",ref_key:"listContainer",ref:i},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.data,($,k)=>(t.openBlock(),t.createElementBlock("div",{key:k,class:"data-list-item",style:t.normalizeStyle(x(k)),ref_for:!0,ref_key:"listItems",ref:d},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList($,(A,C)=>(t.openBlock(),t.createElementBlock("p",{key:C,class:"data-item-cell"},t.toDisplayString(A),1))),128))],4))),128))],512)],4)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-937cc59c"]]);K.install=n=>{n.component(K.name,K)};const Q=_(Object.assign({name:"hView",chineseName:"视图",description:"通用视图容器组件"},{props:{url:{type:String,default:""},height:{type:String,default:"200px"},width:{type:String,default:"100%"},display:{type:String,default:"block"},flexDirection:{type:String,default:"column"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},flex:{type:String,default:"0.2"},position:{type:String,default:"relative"},top:{type:String,default:"auto"},left:{type:String,default:"auto"},alignItems:{type:String,default:"center"},justifyContent:{type:String,default:"start"},padding:{type:String,default:"0"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,rowGap:e.rowGap,columnGap:e.columnGap,flex:e.flex,position:e.position,top:e.top,left:e.left,alignItems:e.alignItems,justifyContent:e.justifyContent,padding:e.padding,backgroundImage:e.url?`url(${e.url})`:"none"}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-view",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-c79a990c"]]);Q.install=n=>{n.component(Q.name,Q)};const X=_(Object.assign({name:"hDataLabel",chineseName:"数据标签",description:"数值与文本标签展示组件"},{props:{url:{type:String,default:""},num:{type:Number,default:12345},text:{type:String,default:"测试"},someText:{type:String,default:"测试"},show:{type:Boolean,default:!0},width:{type:String,default:"230px"},height:{type:String,default:"54px"},position:{type:String,default:"absolute"},left:{type:String,default:"0"},right:{type:String,default:""},top:{type:String,default:"0"},bottom:{type:String,default:""},zIndex:{type:String,default:"1"},display:{type:String,default:"flex"},border:{type:String,default:"none"},flexDirection:{type:String,default:"column"},justifyContent:{type:String,default:"center"},alignItems:{type:String,default:"center"},color:{type:String,default:"#fff"},numFontSize:{type:String,default:"20px"},numFontWeight:{type:String,default:"600"},numColor:{type:String,default:"#fff"},textFontSize:{type:String,default:"10px"},textFontWeight:{type:String,default:""},textColor:{type:String,default:"#fff"},titlelineHeight:{type:String,default:""},titletextAlign:{type:String,default:""},titleFontSize:{type:String,default:"10px"},titleFontWeight:{type:String,default:""},titleColor:{type:String,default:"#fff"},titleShow:{type:Boolean,default:!1}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,position:e.position,left:e.left,right:e.right,top:e.top,bottom:e.bottom,zIndex:e.zIndex,display:e.display,border:e.border,backgroundImage:e.url?`url(${e.url})`:"none",flexDirection:e.flexDirection,justifyContent:e.justifyContent,alignItems:e.alignItems,color:e.color})),l=t.computed(()=>({fontSize:e.numFontSize,fontWeight:e.numFontWeight,color:e.numColor})),a=t.computed(()=>({fontSize:e.textFontSize,fontWeight:e.textFontWeight,color:e.textColor})),S=t.computed(()=>({fontSize:e.titleFontSize,fontWeight:e.titleFontWeight,color:e.titleColor,lineHeight:e.titlelineHeight,textAlign:e.titletextAlign}));return(d,i)=>(t.openBlock(),t.createElementBlock("div",{class:"h-data-label",style:t.normalizeStyle(t.unref(o))},[n.show?(t.openBlock(),t.createElementBlock("span",{key:0,class:"h-data-label-num",style:t.normalizeStyle(t.unref(l))},t.toDisplayString(n.num),5)):t.createCommentVNode("",!0),n.show?(t.openBlock(),t.createElementBlock("span",{key:1,class:"h-data-label-text",style:t.normalizeStyle(t.unref(a))},t.toDisplayString(n.text),5)):t.createCommentVNode("",!0),n.titleShow?(t.openBlock(),t.createElementBlock("span",{key:2,class:"h-data-label-title",style:t.normalizeStyle(t.unref(S))},t.toDisplayString(n.someText),5)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-5b0fbecc"]]);X.install=n=>{n.component(X.name,X)};const Z=_(Object.assign({name:"hButton",chineseName:"按钮",description:"可自定义样式的按钮组件"},{props:{url:{type:String,default:""},padding:{type:String,default:"5px 15px"},margin:{type:String,default:""},width:{type:String,default:""},height:{type:String,default:""},fontSize:{type:String,default:""},fontWeight:{type:Number,default:400},color:{type:String,default:""},border:{type:String,default:""},text:{type:String,default:"测试按钮"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,padding:e.padding,margin:e.margin,border:e.border,backgroundImage:e.url?`url(${e.url})`:"none",fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.color}));return(l,a)=>(t.openBlock(),t.createElementBlock("button",{class:"h-button",style:t.normalizeStyle(t.unref(o))},t.toDisplayString(t.unref(e).text),5))}}),[["__scopeId","data-v-533f0ead"]]);Z.install=n=>{n.component(Z.name,Z)};const v=_(Object.assign({name:"hGrid",chineseName:"网格布局",description:"基于 CSS Grid 的网格布局容器"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"200px"},url:{type:String,default:""},display:{type:String,default:"grid"},gridTemplateColumns:{type:String,default:"repeat(3, 1fr)"},gridTemplateRows:{type:String,default:"auto"},gap:{type:String,default:"0"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},padding:{type:String,default:"0"},justifyItems:{type:String,default:""},alignItems:{type:String,default:""},justifyContent:{type:String,default:""},alignContent:{type:String,default:""},gridAutoFlow:{type:String,default:""},gridAutoRows:{type:String,default:""},gridAutoColumns:{type:String,default:""}},setup(n){let e=n,o=t.computed(()=>({display:e.display,width:e.width,height:e.height,backgroundImage:e.url?`url(${e.url})`:"none",gridTemplateColumns:e.gridTemplateColumns,gridTemplateRows:e.gridTemplateRows,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap,padding:e.padding,justifyItems:e.justifyItems||void 0,alignItems:e.alignItems||void 0,justifyContent:e.justifyContent||void 0,alignContent:e.alignContent||void 0,gridAutoFlow:e.gridAutoFlow||void 0,gridAutoRows:e.gridAutoRows||void 0,gridAutoColumns:e.gridAutoColumns||void 0}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-grid",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-d4038f65"]]);v.install=n=>{n.component(v.name,v)};const tt=_(Object.assign({name:"hCounter",chineseName:"数字计数器",description:"支持老虎机滚动动画的数字计数器组件,每个数字位独立从0滚动到目标值"},{props:{data:{type:[Number,String],default:123456},width:{type:String,default:"auto"},height:{type:String,default:"auto"},backgroundColor:{type:String,default:"transparent"},backgroundImage:{type:String,default:""},display:{type:String,default:"flex"},justifyContent:{type:String,default:"center"},alignItems:{type:String,default:"center"},gap:{type:String,default:"5px"},position:{type:String,default:"relative",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)},left:{type:String,default:""},right:{type:String,default:""},top:{type:String,default:""},bottom:{type:String,default:""},zIndex:{type:Number,default:1},digitWidth:{type:String,default:""},digitHeight:{type:String,default:""},digitBackgroundImage:{type:String,default:""},digitColor:{type:String,default:"#fff"},digitFontSize:{type:String,default:"32px"},digitFontWeight:{type:String,default:"bold"},digitBackgroundColor:{type:String,default:"transparent"},digitBorderRadius:{type:String,default:"4px"},showSeparator:{type:Boolean,default:!1},separator:{type:String,default:","},decimalPlaces:{type:Number,default:-1},prefix:{type:String,default:""},suffix:{type:String,default:""},enableAnimation:{type:Boolean,default:!0},animationDuration:{type:Number,default:2e3},digitDelay:{type:Number,default:100},transform:{type:String,default:"none"}},setup(n,{expose:e}){const o=n,l=t.ref([]),a=t.ref(!1),S=t.computed(()=>{let h=o.data;o.decimalPlaces>=0&&typeof h=="number"&&(h=h.toFixed(o.decimalPlaces));let c=String(h);if(o.showSeparator&&typeof o.data=="number"){const y=c.split(".");y[0]=y[0].replace(/\B(?=(\d{3})+(?!\d))/g,o.separator),c=y.join(".")}return o.prefix&&(c=o.prefix+c),o.suffix&&(c=c+o.suffix),c.split("")}),d=t.computed(()=>o.digitWidth?o.digitWidth:`${(parseInt(o.digitFontSize)||32)*1.2}px`),i=t.computed(()=>o.digitHeight?o.digitHeight:`${(parseInt(o.digitFontSize)||32)*1.5}px`),w=()=>{if(!o.enableAnimation){l.value=S.value.map(()=>0);return}a.value=!0,l.value=S.value.map(()=>0);const h=S.value;h.forEach((c,y)=>{if(isNaN(parseInt(c))){l.value[y]=c;return}const g=parseInt(c),B=y*o.digitDelay,$=o.animationDuration;setTimeout(()=>{let k=0;const A=$/(g+1),C=()=>{k<=g&&(l.value[y]=k,k++,k<=g?setTimeout(C,A):(y===h.length-1||h.slice(y+1).every(D=>isNaN(parseInt(D))))&&(a.value=!1))};C()},B)})},z=h=>{const c=l.value[h];if(isNaN(parseInt(c)))return{transform:"translateY(0)",transition:"none"};const y=parseInt(i.value)||60;return{transform:`translateY(${-parseInt(c)*y}px)`,transition:`transform ${o.animationDuration}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`}},T=t.computed(()=>({width:o.width,height:o.height,backgroundColor:o.backgroundColor,backgroundImage:o.backgroundImage?`url(${o.backgroundImage})`:"none",display:o.display,justifyContent:o.justifyContent,alignItems:o.alignItems,gap:o.gap,position:o.position,left:o.left||void 0,right:o.right||void 0,top:o.top||void 0,bottom:o.bottom||void 0,zIndex:o.zIndex,transform:o.transform||void 0})),x=t.computed(()=>({width:d.value,height:i.value,overflow:"hidden",position:"relative",borderRadius:o.digitBorderRadius,backgroundColor:o.digitBackgroundColor})),b=t.computed(()=>({width:"100%",height:i.value,color:o.digitColor,fontSize:o.digitFontSize,fontWeight:o.digitFontWeight,display:"flex",justifyContent:"center",alignItems:"center",textAlign:"center",flexShrink:0,lineHeight:"1"}));return t.watch(()=>o.data,()=>{w()}),t.onMounted(()=>{w()}),e({restart:w,getCurrentValue:()=>l.value.join("")}),(h,c)=>(t.openBlock(),t.createElementBlock("div",{class:"h-counter",style:t.normalizeStyle(T.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(S.value,(y,g)=>(t.openBlock(),t.createElementBlock("div",{key:g,class:"counter-digit",style:t.normalizeStyle(x.value)},[t.createElementVNode("div",{class:"digit-scroll",style:t.normalizeStyle(z(g))},[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(10,B=>t.createElementVNode("div",{key:B-1,class:"digit-item",style:t.normalizeStyle(b.value)},t.toDisplayString(B-1),5)),64))],4)],4))),128)),t.renderSlot(h.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-fba32a26"]]);tt.install=n=>{n.component(tt.name,tt)};const et=_(Object.assign({name:"hButtonGroup",chineseName:"按钮组",description:"按钮组容器,支持 flex 布局排列"},{props:{width:{type:String,default:""},height:{type:String,default:""},gap:{type:String,default:"5px"},rowGap:{type:String,default:"5px"},columnGap:{type:String,default:"5px"},position:{type:String,default:"relative"},left:{type:String,default:""},right:{type:String,default:""},top:{type:String,default:""},bottom:{type:String,default:""},display:{type:String,default:"flex"},flexWrap:{type:String,default:"nowrap"}},setup(n){let e=n,o=t.computed(()=>({position:e.position,left:e.left,right:e.right,top:e.top,bottom:e.bottom,display:e.display,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap,flexWrap:e.flexWrap,width:e.width,height:e.height}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-button-group",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-f90f2b62"]]);et.install=n=>{n.component(et.name,et)};const nt=_(Object.assign({name:"hText",chineseName:"文本",description:"用于显示文本内容"},{props:{text:{type:String,default:"测试文字"},fontSize:{type:String,default:"16px"},color:{type:String,default:"#fff"}},setup(n){let e=n,o=t.computed(()=>({fontSize:e.fontSize,color:e.color}));return(l,a)=>(t.openBlock(),t.createElementBlock("span",{class:"h-text",style:t.normalizeStyle(t.unref(o))},t.toDisplayString(t.unref(e).text),5))}}),[["__scopeId","data-v-7fb2fc92"]]);nt.install=n=>{n.component(nt.name,nt)};const ot=_(Object.assign({name:"hLayout",chineseName:"布局",description:"页面布局容器"},{props:{width:{type:String,default:"25%"},height:{type:String,default:"100%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-layout",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-957ea318"]]);ot.install=n=>{n.component(ot.name,ot)};const at=_(Object.assign({name:"hFlex",chineseName:"弹性布局",description:"基于 CSS Flexbox 的弹性布局容器"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"100px"},url:{type:String,default:""},display:{type:String,default:"flex"},flexDirection:{type:String,default:""},flexWrap:{type:String,default:"wrap"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},padding:{type:String,default:"0"}},setup(n){let e=n,o=t.computed(()=>({display:e.display,width:e.width,height:e.height,backgroundImage:e.url?`url(${e.url})`:"none",rowGap:e.rowGap,columnGap:e.columnGap,padding:e.padding,flexDirection:e.flexDirection,flexWrap:e.flexWrap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-flex",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-6ecd9f03"]]);at.install=n=>{n.component(at.name,at)};const Bt={class:"h-map-wrapper"},$t=["src"],Ct={key:0,class:"h-map-loading-text"},lt=_(Object.assign({name:"hMap",chineseName:"地图",description:"基于 ECharts 的高自定义地图组件,支持 GeoJSON 注册、多层 geo 叠加、散点标记等"},{props:{mapName:{type:String,required:!0},mapJson:{type:Object,required:!0},option:{type:Object,required:!0},roam:{type:[Boolean,String],default:!1},height:{type:String,default:"100%"},width:{type:String,default:"100%"},url:{type:String,default:""},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""}},emits:["chart-ready","chart-click","chart-dblclick"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.ref(null);let d=null;const i=t.computed(()=>({width:a.width,height:a.height,backgroundImage:a.url?`url(${a.url})`:"none",backgroundSize:"100% 100%",backgroundRepeat:"no-repeat"})),w=t.ref(!1);let z=0;t.watch(()=>a.loading,c=>{if(c)w.value=!0,z=Date.now();else{const y=Date.now()-z,g=(a.loadingMinDuration||0)-y;g<=0?w.value=!1:setTimeout(()=>{w.value=!1},g)}},{immediate:!0});const T=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),x=E.useDebounceFn(()=>{d&&!d.isDisposed()&&d.resize()},100),b=()=>{d&&(d.isDisposed()||(d.off("click"),d.off("dblclick"),d.dispose()),d=null)},h=()=>{if(b(),!!S.value)try{dt.registerMap(a.mapName,a.mapJson),d=dt.init(S.value),d.on("click",c=>{l("chart-click",c)}),d.on("dblclick",c=>{l("chart-dblclick",c)}),d.setOption(a.option,{notMerge:!0}),l("chart-ready",{instance:d,dom:S.value})}catch(c){console.error("[h-map] 初始化失败:",c)}};return t.watch(()=>a.mapJson,()=>{t.nextTick(()=>{h()})}),t.watch(()=>a.option,c=>{if(!(!c||!d||d.isDisposed()))try{d.setOption(c,{notMerge:!0})}catch(y){console.error("[h-map] 更新配置失败:",y)}},{deep:!0}),t.onMounted(()=>{t.nextTick(()=>{h()}),E.useResizeObserver(S,()=>{x()})}),t.onBeforeUnmount(()=>{b()}),e({getInstance:()=>d,resize:()=>x(),dispatchAction:c=>d==null?void 0:d.dispatchAction(c),dispose:b}),(c,y)=>(t.openBlock(),t.createElementBlock("div",Bt,[t.createElementVNode("div",{class:"h-map",ref_key:"mapContainer",ref:S,style:t.normalizeStyle(i.value)},null,4),w.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-map-loading",style:t.normalizeStyle(T.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"h-map-loading-icon",alt:"loading"},null,8,$t),a.loadingText?(t.openBlock(),t.createElementBlock("span",Ct,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-7350dc12"]]);lt.install=n=>{n.component(lt.name,lt)};const it=t.ref(!1),ft=t.ref(""),mt=t.ref(""),gt=t.ref("");let j=null,yt=0;function It(n){yt=n}function zt(){function n(o={}){ft.value=o.text??"加载中...",mt.value=o.icon??"",gt.value=o.bgColor??"",it.value=!0,j&&clearTimeout(j);const l=o.duration!==void 0?o.duration:yt;l>0&&(j=setTimeout(()=>{it.value=!1,j=null},l))}function e(){j&&(clearTimeout(j),j=null),it.value=!1}return{show:n,hide:e,visible:it}}const Dt={class:"h-loading-box"},Nt=["src"],Tt={key:0,class:"h-loading-text"},rt=_(Object.assign({name:"hLoading",chineseName:"全局加载",description:"页面级全屏 loading 遮罩,支持 router 跳转、页面刷新等场景,通过 useLoading() 全局控制"},{setup(n){const e=t.computed(()=>mt.value||pt),o=t.computed(()=>gt.value?{background:gt.value}:{});return(l,a)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"h-loading-fade"},{default:t.withCtx(()=>[t.unref(it)?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-loading",style:t.normalizeStyle(o.value)},[t.createElementVNode("div",Dt,[t.createElementVNode("img",{src:e.value,class:"h-loading-icon",alt:"loading"},null,8,Nt),t.unref(ft)?(t.openBlock(),t.createElementBlock("span",Tt,t.toDisplayString(t.unref(ft)),1)):t.createCommentVNode("",!0)])],4)):t.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-ae6739ea"]]);rt.install=n=>{n.component(rt.name,rt)};const At={install:n=>{n.use(F),n.use(H),n.use(ot),n.use(M),n.use(W),n.use(R),n.use(P),n.use(q),n.use(J),n.use(U),n.use(O),n.use(Y),n.use(K),n.use(Q),n.use(X),n.use(Z),n.use(v),n.use(tt),n.use(et),n.use(nt),n.use(at),n.use(lt),n.use(rt)}};f.default=At,f.hBottom=U,f.hButton=Z,f.hButtonGroup=et,f.hCenter=q,f.hChart=W,f.hChartTitle=O,f.hCounter=tt,f.hDataLabel=X,f.hFlex=at,f.hGrid=v,f.hHeader=H,f.hItemChart=Y,f.hLayout=ot,f.hLeft=R,f.hList=K,f.hLoading=rt,f.hMain=M,f.hMap=lt,f.hPanel=F,f.hRight=P,f.hText=nt,f.hTop=J,f.hView=Q,f.setDefaultDuration=It,f.useLoading=zt,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(f,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("echarts"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","echarts","@vueuse/core"],t):(f=typeof globalThis<"u"?globalThis:f||self,t(f.HamsterCharts={},f.Vue,f.echarts,f.VueUse))})(this,function(f,t,ht,E){"use strict";function _t(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(e,o,l.get?l:{enumerable:!0,get:()=>n[o]})}}return e.default=n,Object.freeze(e)}const dt=_t(ht),_=(n,e)=>{const o=n.__vccOpts||n;for(const[l,a]of e)o[l]=a;return o},F=_(Object.assign({name:"hPanel",chineseName:"面板",description:"页面主体容器"},{props:{url:{type:String,default:""},position:{type:String,default:"relative",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)}},setup(n){let e=n,o=t.computed(()=>({position:e.position,backgroundImage:e.url?`url(${e.url})`:"none"}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-panel",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-474190fc"]]);F.install=n=>{n.component(F.name,F)};const H=_(Object.assign({name:"hHeader",chineseName:"标题",description:"页面标题容器"},{props:{url:{type:String,default:""},width:{type:String,default:"100%"},height:{type:String,default:"70px"},text:{type:String,default:"测试标题"},fontSize:{type:String,default:"26px"},color:{type:String,default:"#fff"},showText:{type:Boolean,default:!0},textPosition:{type:String,default:"absolute",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)},textTop:{type:String,default:"50%"},textLeft:{type:String,default:"50%"},textTransform:{type:String,default:"translate(-50%, -50%)"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,backgroundImage:`url( ${e.url})`})),l=t.computed(()=>({color:e.color,fontSize:e.fontSize,position:e.textPosition,top:e.textTop,left:e.textLeft,transform:e.textTransform}));return(a,S)=>(t.openBlock(),t.createElementBlock("div",{class:"h-header",style:t.normalizeStyle(t.unref(o))},[t.unref(e).showText?(t.openBlock(),t.createElementBlock("span",{key:0,style:t.normalizeStyle(t.unref(l))},t.toDisplayString(t.unref(e).text),5)):t.createCommentVNode("",!0),t.renderSlot(a.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-b83cf769"]]);H.install=n=>{n.component(H.name,H)};const M=_(Object.assign({name:"hMain",chineseName:"主内容区",description:"页面主内容工作区"},{props:{height:{type:String,default:"200px"},display:{type:String,default:"flex"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"},padding:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({height:e.height!=="auto"||e.height!=="0"?`calc(100% - ${e.height})`:e.height,display:e.display,columnGap:e.columnGap,rowGap:e.rowGap,padding:e.padding}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-main",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-1025786b"]]);M.install=n=>{n.component(M.name,M)};const St={class:"def-text"},O=_(Object.assign({name:"hChartTitle",chineseName:"图表标题",description:"图表标题组件"},{props:{fontSize:{type:String,default:"16px"},url:{type:String,default:""},height:{type:String,default:"50px"},paddingLeft:{type:String,default:"auto"},paddingRight:{type:String,default:"auto"},paddingTop:{type:String,default:"auto"},paddingBottom:{type:String,default:"auto"},color:{type:String,default:"#fff"},text:{type:String,default:"测试标题"},display:{type:String,default:"block"},textAlign:{type:String,default:"start"},alignItems:{type:String,default:"center"},justifyContent:{type:String,default:"start"},position:{type:String,default:"relative"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,backgroundImage:`url(${e.url})`,fontSize:e.fontSize,paddingLeft:e.paddingLeft,paddingRight:e.paddingRight,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,color:e.color,display:e.display,textAlign:e.textAlign,alignItems:e.alignItems,justifyContent:e.justifyContent,position:e.position}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-chart-title",style:t.normalizeStyle(t.unref(o))},[t.createElementVNode("span",St,t.toDisplayString(t.unref(e).text),1),t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-412bbd72"]]),pt="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1780631644175'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1701'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M923.851581%20338.007247c-20.012799-47.313585-47.717791-90.324168-82.448804-128.128169%206.875594-13.544481%2010.753925-28.866445%2010.753925-45.096081%200-55.099922-44.667316-99.767238-99.767238-99.767238-29.051663%200-55.19816%2012.420891-73.431429%2032.237215-53.058426-21.390169-109.183701-32.237215-166.958546-32.237215-60.334133%200-118.873388%2011.821233-173.98866%2035.134195-53.232388%2022.51376-101.031021%2054.741765-142.073786%2095.78453-41.045835%2041.043788-73.272817%2088.844467-95.785553%20142.073786C76.837504%20393.126612%2065.014224%20451.665867%2065.014224%20512.001023c0%2060.33311%2011.82328%20118.873388%2035.134195%20173.989683%2022.51376%2053.230342%2054.741765%20101.029998%2095.785553%20142.073786%2041.041742%2041.043788%2088.841398%2073.27077%20142.073786%2095.785553%2055.116295%2023.311939%20113.65555%2035.134195%20173.989683%2035.134195s118.873388-11.822257%20173.992753-35.134195c53.229319-22.514783%20101.029998-54.742788%20142.072763-95.785553%2041.045835-41.043788%2073.272817-88.843444%2095.785553-142.073786%2023.309892-55.116295%2035.134195-113.656573%2035.134195-173.989683C958.985776%20451.665867%20947.161473%20393.127635%20923.851581%20338.007247zM887.891578%20670.783353c-20.545942%2048.575322-49.960879%2092.203982-87.430258%20129.676431-37.473473%2037.470403-81.100086%2066.88841-129.679501%2087.432305-50.28015%2021.263279-103.702873%2032.047904-158.783353%2032.047904-55.07741%200-108.500133-10.782577-158.785399-32.047904-48.575322-20.545942-92.203982-49.961902-129.676431-87.432305-37.47245-37.47245-66.88841-81.101109-87.430258-129.676431-21.267373-50.28015-32.050973-103.703897-32.050973-158.784376s10.783601-108.503203%2032.050973-158.783353c20.541849-48.575322%2049.958832-92.206028%2087.430258-129.676431%2037.47245-37.470403%2081.101109-66.887386%20129.676431-87.433328%2050.285267-21.266349%20103.70799-32.04995%20158.785399-32.04995%2050.600445%200%2099.797937%209.107425%20146.447397%2027.074635-3.767813%2010.514471-5.824659%2021.842471-5.824659%2033.653471%200%2055.099922%2044.667316%2099.767238%2099.767238%2099.767238%2024.573675%200%2047.065945-8.889461%2064.452941-23.620977%2029.737278%2033.372062%2053.603849%2071.037916%2071.050196%20112.285343%2021.266349%2050.28015%2032.04995%20103.702873%2032.04995%20158.783353S909.15895%20620.503203%20887.891578%20670.783353z'%20fill='%230066ff'%20p-id='1702'%3e%3c/path%3e%3c/svg%3e",xt=["src"],bt={key:0,class:"loading-text"},W=_(Object.assign({name:"hChart",chineseName:"图表",description:"基于 ECharts 的图表容器组件,支持自适应和事件交互"},{props:{height:{type:String,default:"auto"},showChart:{type:Boolean,default:!0},url:{type:String,default:""},flex:{type:Number,default:.3},option:{type:Object,required:!0},tooltipLoop:{type:[Boolean,Object],default:!1},title:{type:[String,Object],default:""},showTitle:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""}},emits:["chart-ready","chart-update","chart-resize","chart-click","chart-dblclick","chart-mouseover","chart-mouseout"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.computed(()=>({backgroundImage:a.url?`url(${a.url})`:"none",flex:a.flex,height:a.height})),d=t.ref(null);let i=null;const w=t.useSlots(),z=t.computed(()=>!!w.default),T=t.computed(()=>a.title?typeof a.title=="string"?{text:a.title}:a.title:null),x=t.ref(!1);let b=0;t.watch(()=>a.loading,s=>{if(s)x.value=!0,b=Date.now();else{const r=Date.now()-b,u=(a.loadingMinDuration||0)-r;u<=0?x.value=!1:setTimeout(()=>{x.value=!1},u)}},{immediate:!0});const h=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),c=t.computed(()=>{if(!a.tooltipLoop)return null;if(a.tooltipLoop===!0)return{interval:2e3,seriesIndex:0,loop:!0,pauseOnHover:!0};const s=a.tooltipLoop;return{interval:s.interval??2e3,seriesIndex:s.seriesIndex??0,loop:s.loop??!0,pauseOnHover:s.pauseOnHover??!0}});let y=null,g=0,B=!1,$=!0;const k=()=>{var s,r;try{const u=(s=a.option)==null?void 0:s.series;if(!u||!Array.isArray(u))return 0;const I=u[((r=c.value)==null?void 0:r.seriesIndex)??0];return I!=null&&I.data?I.data.length:0}catch{return 0}},A=()=>{if(!i||!c.value||B||!$)return;const s=k();s!==0&&(i.dispatchAction({type:"showTip",seriesIndex:c.value.seriesIndex,dataIndex:g}),g++,g>=s&&(c.value.loop?g=0:D()))},C=()=>{D(),!(!c.value||k()===0)&&(g=0,y=setInterval(A,c.value.interval))},D=()=>{y&&(clearInterval(y),y=null),i&&i.dispatchAction({type:"hideTip"})},st=()=>{B=!0},G=()=>{B=!1},L=E.useDebounceFn(()=>{i&&(i.resize(),l("chart-resize",{instance:i}))},100),ut=()=>{var r;if(!i)return;["click","dblclick","mouseover","mouseout"].forEach(u=>{i.on(u,I=>{l(`chart-${u}`,I)})}),(r=c.value)!=null&&r.pauseOnHover&&(i.on("mouseover",()=>{st()}),i.on("mouseout",()=>{G()}))},V=()=>{i&&(D(),["click","dblclick","mouseover","mouseout"].forEach(r=>{i.off(r)}),i.dispose(),i=null)},m=()=>{if(V(),!!d.value)try{const s=p(a.option);i=dt.init(d.value),i.setOption(s,{notMerge:!0}),ut(),l("chart-ready",{instance:i,dom:d.value}),C()}catch(s){console.error("ECharts initialization failed:",s)}},p=s=>{if(!s||typeof s!="object")return{series:[]};const r=JSON.parse(JSON.stringify(s));return r.series?Array.isArray(r.series)||(r.series=[r.series]):r.series=[],r.series=r.series.map(u=>{if(!u||typeof u!="object")return{type:"line"};const I={type:"line",...u,type:u.type||"line"};return I.type==="pie"&&I.data&&(I.data=I.data.map(ct=>typeof ct=="object"&&ct!==null?{type:"line",...ct,type:ct.type||"line"}:ct)),I}),r.xAxis?Array.isArray(r.xAxis)?r.xAxis=r.xAxis.map(u=>!u||typeof u!="object"?{type:"category"}:{type:"category",...u,type:u.type||"category"}):typeof r.xAxis=="object"?r.xAxis={type:"category",...r.xAxis,type:r.xAxis.type||"category"}:r.xAxis={type:"category"}:r.xAxis={type:"category"},r.yAxis?Array.isArray(r.yAxis)?r.yAxis=r.yAxis.map(u=>!u||typeof u!="object"?{type:"value"}:{type:"value",...u,type:u.type||"value"}):typeof r.yAxis=="object"?r.yAxis={type:"value",...r.yAxis,type:r.yAxis.type||"value"}:r.yAxis={type:"value"}:r.yAxis={type:"value"},r.legend&&(typeof r.legend=="object"&&!Array.isArray(r.legend)||Array.isArray(r.legend)&&(r.legend={data:r.legend})),r},N=()=>{L()};return t.onMounted(()=>{setTimeout(()=>{m()},0),window.addEventListener("resize",N),E.useResizeObserver(d,s=>{L()}),a.tooltipLoop&&E.useIntersectionObserver(d,([s])=>{$=s.isIntersecting,$?G():st()})}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",N),D(),V()}),t.watch(()=>a.option,(s,r)=>{if(s)try{const u=p(s);if(!i){m();return}i.clear(),i.setOption(u,{notMerge:!0}),C(),l("chart-update",{instance:i,option:u})}catch(u){console.error("更新图表配置时出错:",u),console.error(" 错误堆栈:",u.stack)}},{deep:!0}),t.watch(()=>a.showChart,s=>{i&&setTimeout(()=>{i.resize()},0)}),e({getInstance:()=>i,resize:()=>L(),dispatchAction:s=>i==null?void 0:i.dispatchAction(s),dispose:V,startLoop:C,stopLoop:D,pauseLoop:st,resumeLoop:G}),(s,r)=>(t.openBlock(),t.createElementBlock("div",{class:"h-chart",style:t.normalizeStyle(S.value)},[z.value?t.renderSlot(s.$slots,"default",{key:0},void 0,!0):T.value&&a.showTitle?(t.openBlock(),t.createBlock(O,t.normalizeProps(t.mergeProps({key:1},T.value)),null,16)):t.createCommentVNode("",!0),a.showChart?(t.openBlock(),t.createElementBlock("div",{key:2,class:"chart",ref_key:"charts",ref:d},[x.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"chart-loading",style:t.normalizeStyle(h.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"loading-icon",alt:"loading"},null,8,xt),a.loadingText?(t.openBlock(),t.createElementBlock("span",bt,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)],512)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-0af49945"]]);W.install=n=>{n.component(W.name,W)};const R=_(Object.assign({name:"hLeft",chineseName:"左侧",description:"页面左侧容器"},{props:{width:{type:String,default:"25%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-left",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-7d94e3d8"]]);R.install=n=>{n.component(R.name,R)};const P=_(Object.assign({name:"hRight",chineseName:"右侧",description:"页面右侧容器"},{props:{width:{type:String,default:"25%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-right",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-8ef316d0"]]);P.install=n=>{n.component(P.name,P)};const q=_(Object.assign({name:"hCenter",chineseName:"居中布局",description:"水平居中布局容器"},{props:{width:{type:String,default:"50%"},height:{type:String,default:"100%"},display:{type:String,default:"block"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-center",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-69a501ea"]]);q.install=n=>{n.component(q.name,q)};const J=_(Object.assign({name:"hTop",chineseName:"顶部",description:"页面顶部容器"},{props:{height:{type:String,default:"70%"},display:{type:String,default:"block"},position:{type:String,default:"relative"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,display:e.display,position:e.position}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-top",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-ee9ecf79"]]);J.install=n=>{n.component(J.name,J)};const U=_(Object.assign({name:"hBottom",chineseName:"底部",description:"页面底部容器"},{props:{height:{type:String,default:"30%"},display:{type:String,default:"flex"},gap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"},columnGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({height:e.height,display:e.display,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-bottom",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-9fc5eff9"]]);U.install=n=>{n.component(U.name,U)},O.install=n=>{n.component(O.name,O)};const kt=["src"],wt={key:0,class:"h-item-chart-loading-text"},Y=_(Object.assign({name:"hItemChart",chineseName:"独立图表",description:"独立的 ECharts 图表容器组件,支持 loading、tooltip 轮播,适用于大屏数据可视化展示"},{props:{height:{type:String,default:"200px"},url:{type:String,default:""},option:{type:Object,required:!0},tooltipLoop:{type:[Boolean,Object],default:!1},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""},flex:{type:Number,default:.3}},emits:["chart-ready","chart-update","chart-resize","chart-click","chart-dblclick","chart-mouseover","chart-mouseout"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.computed(()=>({backgroundImage:a.url?`url(${a.url})`:"none",height:a.height,flex:a.flex})),d=t.ref(null);let i=null;const w=t.ref(!1);let z=0;t.watch(()=>a.loading,m=>{if(m)w.value=!0,z=Date.now();else{const p=(a.loadingMinDuration||0)-(Date.now()-z);p<=0?w.value=!1:setTimeout(()=>{w.value=!1},p)}},{immediate:!0});const T=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),x=t.computed(()=>{if(!a.tooltipLoop)return null;if(a.tooltipLoop===!0)return{interval:2e3,seriesIndex:0,loop:!0,pauseOnHover:!0};const m=a.tooltipLoop;return{interval:m.interval??2e3,seriesIndex:m.seriesIndex??0,loop:m.loop??!0,pauseOnHover:m.pauseOnHover??!0}});let b=null,h=0,c=!1,y=!0;const g=()=>{var m,p,N;try{const s=(m=a.option)==null?void 0:m.series;if(!s||!Array.isArray(s))return 0;const r=s[((p=x.value)==null?void 0:p.seriesIndex)??0];return((N=r==null?void 0:r.data)==null?void 0:N.length)??0}catch{return 0}},B=()=>{if(!i||!x.value||c||!y)return;const m=g();m!==0&&(i.dispatchAction({type:"showTip",seriesIndex:x.value.seriesIndex,dataIndex:h}),h++,h>=m&&(x.value.loop?h=0:k()))},$=()=>{k(),!(!x.value||g()===0)&&(h=0,b=setInterval(B,x.value.interval))},k=()=>{b&&(clearInterval(b),b=null),i&&i.dispatchAction({type:"hideTip"})},A=()=>{c=!0},C=()=>{c=!1},D=E.useDebounceFn(()=>{i&&(i.resize(),l("chart-resize",{instance:i}))},100),st=()=>{var p;if(!i)return;["click","dblclick","mouseover","mouseout"].forEach(N=>i.on(N,s=>l(`chart-${N}`,s))),(p=x.value)!=null&&p.pauseOnHover&&(i.on("mouseover",()=>A()),i.on("mouseout",()=>C()))},G=()=>{i&&(k(),["click","dblclick","mouseover","mouseout"].forEach(p=>i.off(p)),i.dispose(),i=null)},L=()=>{if(G(),!!d.value)try{i=dt.init(d.value),i.setOption(ut(a.option),{notMerge:!0}),st(),l("chart-ready",{instance:i,dom:d.value}),$()}catch(m){console.error("[hItemChart] init:",m)}},ut=m=>{if(!m||typeof m!="object")return{series:[]};const p=JSON.parse(JSON.stringify(m));p.series?Array.isArray(p.series)||(p.series=[p.series]):p.series=[],p.series=p.series.map(s=>{if(!s||typeof s!="object")return{type:"line"};const r={type:"line",...s,type:s.type||"line"};return r.type==="pie"&&r.data&&(r.data=r.data.map(u=>typeof u=="object"&&u!==null?{value:u.value||0,name:u.name||""}:u)),r});const N=(s,r)=>{p[s]?Array.isArray(p[s])?p[s]=p[s].map(u=>({type:r,...u,type:u.type||r})):typeof p[s]=="object"?p[s]={type:r,...p[s],type:p[s].type||r}:p[s]={type:r}:p[s]={type:r}};return N("xAxis","category"),N("yAxis","value"),p.legend&&Array.isArray(p.legend)&&(p.legend={data:p.legend}),p},V=()=>D();return t.onMounted(()=>{setTimeout(()=>L(),0),window.addEventListener("resize",V),E.useResizeObserver(d,()=>D()),a.tooltipLoop&&E.useIntersectionObserver(d,([m])=>{y=m.isIntersecting,y?C():A()})}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",V),k(),G()}),t.watch(()=>a.option,m=>{if(m)try{if(!i){L();return}i.clear(),i.setOption(ut(m),{notMerge:!0}),$(),l("chart-update",{instance:i,option:m})}catch(p){console.error("[hItemChart] update:",p)}},{deep:!0}),e({getInstance:()=>i,resize:()=>D(),dispatchAction:m=>i==null?void 0:i.dispatchAction(m),dispose:G,startLoop:$,stopLoop:k,pauseLoop:A,resumeLoop:C}),(m,p)=>(t.openBlock(),t.createElementBlock("div",{class:"h-item-chart",ref_key:"itemCharts",ref:d,style:t.normalizeStyle(S.value)},[w.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-item-chart-loading",style:t.normalizeStyle(T.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"h-item-chart-loading-icon",alt:"loading"},null,8,kt),a.loadingText?(t.openBlock(),t.createElementBlock("span",wt,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-097aca98"]]);Y.install=n=>{n.component(Y.name,Y)};const K=_(Object.assign({name:"hList",chineseName:"滚动列表",description:"支持自动滚动的数据列表组件,适用于大屏数据展示"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"100%"},backgroundColor:{type:String,default:"transparent"},data:{type:Array,default:()=>[]},header:{type:Array,default:()=>[]},showHeader:{type:Boolean,default:!1},enableScroll:{type:Boolean,default:!0},headerHeight:{type:String,default:"40px"},headerBackground:{type:String,default:"rgba(255, 255, 255, 0.1)"},scrollDuration:{type:Number,default:2e3},scrollSpeed:{type:Number,default:500},highlightStyle:{type:Object,default:()=>({background:"rgba(0, 102, 255, 0.3)",color:"#fff",boxShadow:"0 0 10px rgba(0, 102, 255, 0.5)"})}},setup(n,{expose:e}){const o=n,l=t.ref(0),a=t.ref(null),S=t.ref(0),d=t.ref([]),i=t.ref(null),w=t.computed(()=>({width:o.width,height:o.height,backgroundColor:o.backgroundColor,position:"relative",overflow:"hidden"})),z=t.computed(()=>({height:o.headerHeight,display:"flex",alignItems:"center",background:o.headerBackground,position:"absolute",top:0,left:0,zIndex:10,width:"100%"})),T=t.computed(()=>({transform:`translateY(-${l.value*S.value}px)`,transition:`transform ${o.scrollSpeed}ms ease-in-out`,marginTop:o.showHeader?o.headerHeight:"0"})),x=g=>g===a.value?o.highlightStyle:{};t.watch(l,g=>{if(o.data.length>0){const B=g%o.data.length;a.value=B}});let b=null;const h=()=>{!o.enableScroll||o.data.length===0||(clearInterval(b),b=setInterval(()=>{l.value=(l.value+1)%o.data.length},o.scrollDuration))},c=()=>{b&&(clearInterval(b),b=null)},y=()=>{d.value&&d.value[0]&&(S.value=d.value[0].offsetHeight||40)};return t.onMounted(()=>{y(),h(),window.addEventListener("resize",y)}),t.onBeforeUnmount(()=>{c(),window.removeEventListener("resize",y)}),t.watch(()=>o.data,g=>{g.length>0?(l.value=0,a.value=null,setTimeout(()=>{y(),h()},100)):c()},{deep:!0}),t.watch(()=>o.enableScroll,g=>{g?h():(c(),l.value=0)}),e({startScroll:h,stopScroll:c,getCurrentIndex:()=>l.value,scrollTo:g=>{g>=0&&g<o.data.length&&(l.value=g)}}),(g,B)=>(t.openBlock(),t.createElementBlock("div",{class:"h-list",style:t.normalizeStyle(w.value)},[n.showHeader?(t.openBlock(),t.createElementBlock("div",{key:0,class:"list-header",style:t.normalizeStyle(z.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.header,($,k)=>(t.openBlock(),t.createElementBlock("p",{key:k,class:"header-item"},t.toDisplayString($),1))),128))],4)):t.createCommentVNode("",!0),n.enableScroll?(t.openBlock(),t.createElementBlock("div",{key:1,class:"scroll-wrapper",style:t.normalizeStyle(T.value)},[t.createElementVNode("div",{class:"data-list",ref_key:"listContainer",ref:i},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.data,($,k)=>(t.openBlock(),t.createElementBlock("div",{key:k,class:"data-list-item",style:t.normalizeStyle(x(k)),ref_for:!0,ref_key:"listItems",ref:d},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList($,(A,C)=>(t.openBlock(),t.createElementBlock("p",{key:C,class:"data-item-cell"},t.toDisplayString(A),1))),128))],4))),128))],512)],4)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-937cc59c"]]);K.install=n=>{n.component(K.name,K)};const Q=_(Object.assign({name:"hView",chineseName:"视图",description:"通用视图容器组件"},{props:{url:{type:String,default:""},height:{type:String,default:"200px"},width:{type:String,default:"100%"},display:{type:String,default:"block"},flexDirection:{type:String,default:"column"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},flex:{type:String,default:"0.2"},position:{type:String,default:"relative"},top:{type:String,default:"auto"},left:{type:String,default:"auto"},alignItems:{type:String,default:"center"},justifyContent:{type:String,default:"start"},padding:{type:String,default:"0"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,rowGap:e.rowGap,columnGap:e.columnGap,flex:e.flex,position:e.position,top:e.top,left:e.left,alignItems:e.alignItems,justifyContent:e.justifyContent,padding:e.padding,backgroundImage:e.url?`url(${e.url})`:"none"}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-view",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-c79a990c"]]);Q.install=n=>{n.component(Q.name,Q)};const X=_(Object.assign({name:"hDataLabel",chineseName:"数据标签",description:"数值与文本标签展示组件"},{props:{url:{type:String,default:""},num:{type:Number,default:12345},text:{type:String,default:"测试"},someText:{type:String,default:"测试"},show:{type:Boolean,default:!0},width:{type:String,default:"230px"},height:{type:String,default:"54px"},position:{type:String,default:"absolute"},left:{type:String,default:"0"},right:{type:String,default:""},top:{type:String,default:"0"},bottom:{type:String,default:""},zIndex:{type:String,default:"1"},display:{type:String,default:"flex"},border:{type:String,default:"none"},flexDirection:{type:String,default:"column"},justifyContent:{type:String,default:"center"},alignItems:{type:String,default:"center"},color:{type:String,default:"#fff"},numFontSize:{type:String,default:"20px"},numFontWeight:{type:String,default:"600"},numColor:{type:String,default:"#fff"},textFontSize:{type:String,default:"10px"},textFontWeight:{type:String,default:""},textColor:{type:String,default:"#fff"},titlelineHeight:{type:String,default:""},titletextAlign:{type:String,default:""},titleFontSize:{type:String,default:"10px"},titleFontWeight:{type:String,default:""},titleColor:{type:String,default:"#fff"},titleShow:{type:Boolean,default:!1}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,position:e.position,left:e.left,right:e.right,top:e.top,bottom:e.bottom,zIndex:e.zIndex,display:e.display,border:e.border,backgroundImage:e.url?`url(${e.url})`:"none",flexDirection:e.flexDirection,justifyContent:e.justifyContent,alignItems:e.alignItems,color:e.color})),l=t.computed(()=>({fontSize:e.numFontSize,fontWeight:e.numFontWeight,color:e.numColor})),a=t.computed(()=>({fontSize:e.textFontSize,fontWeight:e.textFontWeight,color:e.textColor})),S=t.computed(()=>({fontSize:e.titleFontSize,fontWeight:e.titleFontWeight,color:e.titleColor,lineHeight:e.titlelineHeight,textAlign:e.titletextAlign}));return(d,i)=>(t.openBlock(),t.createElementBlock("div",{class:"h-data-label",style:t.normalizeStyle(t.unref(o))},[n.show?(t.openBlock(),t.createElementBlock("span",{key:0,class:"h-data-label-num",style:t.normalizeStyle(t.unref(l))},t.toDisplayString(n.num),5)):t.createCommentVNode("",!0),n.show?(t.openBlock(),t.createElementBlock("span",{key:1,class:"h-data-label-text",style:t.normalizeStyle(t.unref(a))},t.toDisplayString(n.text),5)):t.createCommentVNode("",!0),n.titleShow?(t.openBlock(),t.createElementBlock("span",{key:2,class:"h-data-label-title",style:t.normalizeStyle(t.unref(S))},t.toDisplayString(n.someText),5)):t.createCommentVNode("",!0)],4))}}),[["__scopeId","data-v-5b0fbecc"]]);X.install=n=>{n.component(X.name,X)};const Z=_(Object.assign({name:"hButton",chineseName:"按钮",description:"可自定义样式的按钮组件"},{props:{url:{type:String,default:""},padding:{type:String,default:"5px 15px"},margin:{type:String,default:""},width:{type:String,default:""},height:{type:String,default:""},fontSize:{type:String,default:""},fontWeight:{type:Number,default:400},color:{type:String,default:""},border:{type:String,default:""},text:{type:String,default:"测试按钮"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,padding:e.padding,margin:e.margin,border:e.border,backgroundImage:e.url?`url(${e.url})`:"none",fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.color}));return(l,a)=>(t.openBlock(),t.createElementBlock("button",{class:"h-button",style:t.normalizeStyle(t.unref(o))},t.toDisplayString(t.unref(e).text),5))}}),[["__scopeId","data-v-533f0ead"]]);Z.install=n=>{n.component(Z.name,Z)};const v=_(Object.assign({name:"hGrid",chineseName:"网格布局",description:"基于 CSS Grid 的网格布局容器"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"200px"},url:{type:String,default:""},display:{type:String,default:"grid"},gridTemplateColumns:{type:String,default:"repeat(3, 1fr)"},gridTemplateRows:{type:String,default:"auto"},gap:{type:String,default:"0"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},padding:{type:String,default:"0"},justifyItems:{type:String,default:""},alignItems:{type:String,default:""},justifyContent:{type:String,default:""},alignContent:{type:String,default:""},gridAutoFlow:{type:String,default:""},gridAutoRows:{type:String,default:""},gridAutoColumns:{type:String,default:""}},setup(n){let e=n,o=t.computed(()=>({display:e.display,width:e.width,height:e.height,backgroundImage:e.url?`url(${e.url})`:"none",gridTemplateColumns:e.gridTemplateColumns,gridTemplateRows:e.gridTemplateRows,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap,padding:e.padding,justifyItems:e.justifyItems||void 0,alignItems:e.alignItems||void 0,justifyContent:e.justifyContent||void 0,alignContent:e.alignContent||void 0,gridAutoFlow:e.gridAutoFlow||void 0,gridAutoRows:e.gridAutoRows||void 0,gridAutoColumns:e.gridAutoColumns||void 0}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-grid",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-d4038f65"]]);v.install=n=>{n.component(v.name,v)};const tt=_(Object.assign({name:"hCounter",chineseName:"数字计数器",description:"支持老虎机滚动动画的数字计数器组件,每个数字位独立从0滚动到目标值"},{props:{data:{type:[Number,String],default:123456},width:{type:String,default:"auto"},height:{type:String,default:"auto"},backgroundColor:{type:String,default:"transparent"},backgroundImage:{type:String,default:""},display:{type:String,default:"flex"},justifyContent:{type:String,default:"center"},alignItems:{type:String,default:"center"},gap:{type:String,default:"5px"},position:{type:String,default:"relative",validator:n=>["static","relative","absolute","fixed","sticky"].includes(n)},left:{type:String,default:""},right:{type:String,default:""},top:{type:String,default:""},bottom:{type:String,default:""},zIndex:{type:Number,default:1},digitWidth:{type:String,default:""},digitHeight:{type:String,default:""},digitBackgroundImage:{type:String,default:""},digitColor:{type:String,default:"#fff"},digitFontSize:{type:String,default:"32px"},digitFontWeight:{type:String,default:"bold"},digitBackgroundColor:{type:String,default:"transparent"},digitBorderRadius:{type:String,default:"4px"},showSeparator:{type:Boolean,default:!1},separator:{type:String,default:","},decimalPlaces:{type:Number,default:-1},prefix:{type:String,default:""},suffix:{type:String,default:""},enableAnimation:{type:Boolean,default:!0},animationDuration:{type:Number,default:2e3},digitDelay:{type:Number,default:100},transform:{type:String,default:"none"}},setup(n,{expose:e}){const o=n,l=t.ref([]),a=t.ref(!1),S=t.computed(()=>{let h=o.data;o.decimalPlaces>=0&&typeof h=="number"&&(h=h.toFixed(o.decimalPlaces));let c=String(h);if(o.showSeparator&&typeof o.data=="number"){const y=c.split(".");y[0]=y[0].replace(/\B(?=(\d{3})+(?!\d))/g,o.separator),c=y.join(".")}return o.prefix&&(c=o.prefix+c),o.suffix&&(c=c+o.suffix),c.split("")}),d=t.computed(()=>o.digitWidth?o.digitWidth:`${(parseInt(o.digitFontSize)||32)*1.2}px`),i=t.computed(()=>o.digitHeight?o.digitHeight:`${(parseInt(o.digitFontSize)||32)*1.5}px`),w=()=>{if(!o.enableAnimation){l.value=S.value.map(()=>0);return}a.value=!0,l.value=S.value.map(()=>0);const h=S.value;h.forEach((c,y)=>{if(isNaN(parseInt(c))){l.value[y]=c;return}const g=parseInt(c),B=y*o.digitDelay,$=o.animationDuration;setTimeout(()=>{let k=0;const A=$/(g+1),C=()=>{k<=g&&(l.value[y]=k,k++,k<=g?setTimeout(C,A):(y===h.length-1||h.slice(y+1).every(D=>isNaN(parseInt(D))))&&(a.value=!1))};C()},B)})},z=h=>{const c=l.value[h];if(isNaN(parseInt(c)))return{transform:"translateY(0)",transition:"none"};const y=parseInt(i.value)||60;return{transform:`translateY(${-parseInt(c)*y}px)`,transition:`transform ${o.animationDuration}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`}},T=t.computed(()=>({width:o.width,height:o.height,backgroundColor:o.backgroundColor,backgroundImage:o.backgroundImage?`url(${o.backgroundImage})`:"none",display:o.display,justifyContent:o.justifyContent,alignItems:o.alignItems,gap:o.gap,position:o.position,left:o.left||void 0,right:o.right||void 0,top:o.top||void 0,bottom:o.bottom||void 0,zIndex:o.zIndex,transform:o.transform||void 0})),x=t.computed(()=>({width:d.value,height:i.value,overflow:"hidden",position:"relative",borderRadius:o.digitBorderRadius,backgroundColor:o.digitBackgroundColor})),b=t.computed(()=>({width:"100%",height:i.value,color:o.digitColor,fontSize:o.digitFontSize,fontWeight:o.digitFontWeight,display:"flex",justifyContent:"center",alignItems:"center",textAlign:"center",flexShrink:0,lineHeight:"1"}));return t.watch(()=>o.data,()=>{w()}),t.onMounted(()=>{w()}),e({restart:w,getCurrentValue:()=>l.value.join("")}),(h,c)=>(t.openBlock(),t.createElementBlock("div",{class:"h-counter",style:t.normalizeStyle(T.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(S.value,(y,g)=>(t.openBlock(),t.createElementBlock("div",{key:g,class:"counter-digit",style:t.normalizeStyle(x.value)},[t.createElementVNode("div",{class:"digit-scroll",style:t.normalizeStyle(z(g))},[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(10,B=>t.createElementVNode("div",{key:B-1,class:"digit-item",style:t.normalizeStyle(b.value)},t.toDisplayString(B-1),5)),64))],4)],4))),128)),t.renderSlot(h.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-fba32a26"]]);tt.install=n=>{n.component(tt.name,tt)};const et=_(Object.assign({name:"hButtonGroup",chineseName:"按钮组",description:"按钮组容器,支持 flex 布局排列"},{props:{width:{type:String,default:""},height:{type:String,default:""},gap:{type:String,default:"5px"},rowGap:{type:String,default:"5px"},columnGap:{type:String,default:"5px"},position:{type:String,default:"relative"},left:{type:String,default:""},right:{type:String,default:""},top:{type:String,default:""},bottom:{type:String,default:""},display:{type:String,default:"flex"},flexWrap:{type:String,default:"nowrap"}},setup(n){let e=n,o=t.computed(()=>({position:e.position,left:e.left,right:e.right,top:e.top,bottom:e.bottom,display:e.display,gap:e.gap,rowGap:e.rowGap,columnGap:e.columnGap,flexWrap:e.flexWrap,width:e.width,height:e.height}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-button-group",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-f90f2b62"]]);et.install=n=>{n.component(et.name,et)};const nt=_(Object.assign({name:"hText",chineseName:"文本",description:"用于显示文本内容"},{props:{text:{type:String,default:"测试文字"},fontSize:{type:String,default:"16px"},color:{type:String,default:"#fff"}},setup(n){let e=n,o=t.computed(()=>({fontSize:e.fontSize,color:e.color}));return(l,a)=>(t.openBlock(),t.createElementBlock("span",{class:"h-text",style:t.normalizeStyle(t.unref(o))},t.toDisplayString(t.unref(e).text),5))}}),[["__scopeId","data-v-7fb2fc92"]]);nt.install=n=>{n.component(nt.name,nt)};const ot=_(Object.assign({name:"hLayout",chineseName:"布局",description:"页面布局容器"},{props:{width:{type:String,default:"25%"},height:{type:String,default:"100%"},display:{type:String,default:"flex"},flexDirection:{type:String,default:"column"},columnGap:{type:String,default:"auto"},rowGap:{type:String,default:"auto"}},setup(n){let e=n,o=t.computed(()=>({width:e.width,height:e.height,display:e.display,flexDirection:e.flexDirection,columnGap:e.columnGap,rowGap:e.rowGap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-layout",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-957ea318"]]);ot.install=n=>{n.component(ot.name,ot)};const at=_(Object.assign({name:"hFlex",chineseName:"弹性布局",description:"基于 CSS Flexbox 的弹性布局容器"},{props:{width:{type:String,default:"100%"},height:{type:String,default:"100px"},url:{type:String,default:""},display:{type:String,default:"flex"},flexDirection:{type:String,default:""},flexWrap:{type:String,default:"wrap"},rowGap:{type:String,default:"0"},columnGap:{type:String,default:"0"},padding:{type:String,default:"0"}},setup(n){let e=n,o=t.computed(()=>({display:e.display,width:e.width,height:e.height,backgroundImage:e.url?`url(${e.url})`:"none",rowGap:e.rowGap,columnGap:e.columnGap,padding:e.padding,flexDirection:e.flexDirection,flexWrap:e.flexWrap}));return(l,a)=>(t.openBlock(),t.createElementBlock("div",{class:"h-flex",style:t.normalizeStyle(t.unref(o))},[t.renderSlot(l.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-6ecd9f03"]]);at.install=n=>{n.component(at.name,at)};const Bt={class:"h-map-wrapper"},$t=["src"],Ct={key:0,class:"h-map-loading-text"},lt=_(Object.assign({name:"hMap",chineseName:"地图",description:"基于 ECharts 的高自定义地图组件,支持 GeoJSON 注册、多层 geo 叠加、散点标记等"},{props:{mapName:{type:String,required:!0},mapJson:{type:Object,required:!0},option:{type:Object,required:!0},roam:{type:[Boolean,String],default:!1},height:{type:String,default:"100%"},width:{type:String,default:"100%"},url:{type:String,default:""},loading:{type:Boolean,default:!1},loadingText:{type:String,default:""},loadingMinDuration:{type:Number,default:600},loadingIcon:{type:String,default:""},loadingBgColor:{type:String,default:""}},emits:["chart-ready","chart-click","chart-dblclick"],setup(n,{expose:e,emit:o}){const l=o,a=n,S=t.ref(null);let d=null;const i=t.computed(()=>({width:a.width,height:a.height,backgroundImage:a.url?`url(${a.url})`:"none",backgroundSize:"100% 100%",backgroundRepeat:"no-repeat"})),w=t.ref(!1);let z=0;t.watch(()=>a.loading,c=>{if(c)w.value=!0,z=Date.now();else{const y=Date.now()-z,g=(a.loadingMinDuration||0)-y;g<=0?w.value=!1:setTimeout(()=>{w.value=!1},g)}},{immediate:!0});const T=t.computed(()=>a.loadingBgColor?{background:a.loadingBgColor}:{}),x=E.useDebounceFn(()=>{d&&!d.isDisposed()&&d.resize()},100),b=()=>{d&&(d.isDisposed()||(d.off("click"),d.off("dblclick"),d.dispose()),d=null)},h=()=>{if(b(),!!S.value)try{dt.registerMap(a.mapName,a.mapJson),d=dt.init(S.value),d.on("click",c=>{l("chart-click",c)}),d.on("dblclick",c=>{l("chart-dblclick",c)}),d.setOption(a.option,{notMerge:!0}),l("chart-ready",{instance:d,dom:S.value})}catch(c){console.error("[h-map] 初始化失败:",c)}};return t.watch(()=>a.mapJson,()=>{t.nextTick(()=>{h()})}),t.watch(()=>a.option,c=>{if(!(!c||!d||d.isDisposed()))try{d.setOption(c,{notMerge:!0})}catch(y){console.error("[h-map] 更新配置失败:",y)}},{deep:!0}),t.onMounted(()=>{t.nextTick(()=>{h()}),E.useResizeObserver(S,()=>{x()})}),t.onBeforeUnmount(()=>{b()}),e({getInstance:()=>d,resize:()=>x(),dispatchAction:c=>d==null?void 0:d.dispatchAction(c),dispose:b}),(c,y)=>(t.openBlock(),t.createElementBlock("div",Bt,[t.createElementVNode("div",{class:"h-map",ref_key:"mapContainer",ref:S,style:t.normalizeStyle(i.value)},null,4),w.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-map-loading",style:t.normalizeStyle(T.value)},[t.createElementVNode("img",{src:a.loadingIcon||t.unref(pt),class:"h-map-loading-icon",alt:"loading"},null,8,$t),a.loadingText?(t.openBlock(),t.createElementBlock("span",Ct,t.toDisplayString(a.loadingText),1)):t.createCommentVNode("",!0)],4)):t.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-7350dc12"]]);lt.install=n=>{n.component(lt.name,lt)};const it=t.ref(!1),ft=t.ref(""),mt=t.ref(""),gt=t.ref("");let j=null,yt=0;function It(n){yt=n}function zt(){function n(o={}){ft.value=o.text??"加载中...",mt.value=o.icon??"",gt.value=o.bgColor??"",it.value=!0,j&&clearTimeout(j);const l=o.duration!==void 0?o.duration:yt;l>0&&(j=setTimeout(()=>{it.value=!1,j=null},l))}function e(){j&&(clearTimeout(j),j=null),it.value=!1}return{show:n,hide:e,visible:it}}const Dt={class:"h-loading-box"},Nt=["src"],Tt={key:0,class:"h-loading-text"},rt=_(Object.assign({name:"hLoading",chineseName:"全局加载",description:"页面级全屏 loading 遮罩,支持 router 跳转、页面刷新等场景,通过 useLoading() 全局控制"},{setup(n){const e=t.computed(()=>mt.value||pt),o=t.computed(()=>gt.value?{background:gt.value}:{});return(l,a)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"h-loading-fade"},{default:t.withCtx(()=>[t.unref(it)?(t.openBlock(),t.createElementBlock("div",{key:0,class:"h-loading",style:t.normalizeStyle(o.value)},[t.createElementVNode("div",Dt,[t.createElementVNode("img",{src:e.value,class:"h-loading-icon",alt:"loading"},null,8,Nt),t.unref(ft)?(t.openBlock(),t.createElementBlock("span",Tt,t.toDisplayString(t.unref(ft)),1)):t.createCommentVNode("",!0)])],4)):t.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-ae6739ea"]]);rt.install=n=>{n.component(rt.name,rt)};const At={install:n=>{n.use(F),n.use(H),n.use(ot),n.use(M),n.use(W),n.use(R),n.use(P),n.use(q),n.use(J),n.use(U),n.use(O),n.use(Y),n.use(K),n.use(Q),n.use(X),n.use(Z),n.use(v),n.use(tt),n.use(et),n.use(nt),n.use(at),n.use(lt),n.use(rt)}};f.default=At,f.hBottom=U,f.hButton=Z,f.hButtonGroup=et,f.hCenter=q,f.hChart=W,f.hChartTitle=O,f.hCounter=tt,f.hDataLabel=X,f.hFlex=at,f.hGrid=v,f.hHeader=H,f.hItemChart=Y,f.hLayout=ot,f.hLeft=R,f.hList=K,f.hLoading=rt,f.hMain=M,f.hMap=lt,f.hPanel=F,f.hRight=P,f.hText=nt,f.hTop=J,f.hView=Q,f.setDefaultDuration=It,f.useLoading=zt,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|