diff --git a/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1785726778446.woff2 b/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1785858872961.woff2 similarity index 100% rename from docs/assets/AlibabaPuHuiTi-14435b65-balabala-1785726778446.woff2 rename to docs/assets/AlibabaPuHuiTi-14435b65-balabala-1785858872961.woff2 diff --git a/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785726778446.ttf b/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785858872961.ttf similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785726778446.ttf rename to docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785858872961.ttf diff --git a/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1785726778446.woff b/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1785858872961.woff similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1785726778446.woff rename to docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1785858872961.woff diff --git a/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785726778446.woff2 b/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785858872961.woff2 similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785726778446.woff2 rename to docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785858872961.woff2 diff --git a/docs/assets/FeatureInfoPanel-528fd437-balabala-1785726778446.css b/docs/assets/FeatureInfoPanel-528fd437-balabala-1785858872961.css similarity index 100% rename from docs/assets/FeatureInfoPanel-528fd437-balabala-1785726778446.css rename to docs/assets/FeatureInfoPanel-528fd437-balabala-1785858872961.css diff --git a/docs/assets/FeatureInfoPanel-e0a0d741-1785726778446.js b/docs/assets/FeatureInfoPanel-ca915481-1785858872961.js similarity index 99% rename from docs/assets/FeatureInfoPanel-e0a0d741-1785726778446.js rename to docs/assets/FeatureInfoPanel-ca915481-1785858872961.js index 06bebcb..09729e9 100644 --- a/docs/assets/FeatureInfoPanel-e0a0d741-1785726778446.js +++ b/docs/assets/FeatureInfoPanel-ca915481-1785858872961.js @@ -1,3 +1,3 @@ -var lt=Object.defineProperty,rt=Object.defineProperties;var ut=Object.getOwnPropertyDescriptors;var Mn=Object.getOwnPropertySymbols;var ot=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable;var Nn=(f,G,v)=>G in f?lt(f,G,{enumerable:!0,configurable:!0,writable:!0,value:v}):f[G]=v,Ue=(f,G)=>{for(var v in G||(G={}))ot.call(G,v)&&Nn(f,v,G[v]);if(Mn)for(var v of Mn(G))it.call(G,v)&&Nn(f,v,G[v]);return f},Oe=(f,G)=>rt(f,ut(G));import{g as _,o as t,c as s,j as m,F as x,y as j,a as u,t as o,K as L,n as N,q as ct,h as dt,w as qa,C as aa,B as I,x as za,f as Q,s as mn,H as Sn,e as xe,T as _t,d as ke}from"./index-1785726778446.js";import{K as ga,M as vt}from"./screen2Standard-f38b9a2d-1785726778446.js";import{_ as pt}from"./index-7b46d381-1785726778446.js";import{d as yt,e as Cn}from"./townshipBoundaries-8867fad4-1785726778446.js";const gt={key:0,class:"business-stat-empty"},ht=["data-chart-tooltip"],ft={class:"business-stat-rank"},bt={class:"business-stat-main"},xt={class:"business-stat-name"},kt={class:"business-stat-bar"},wt={class:"business-stat-value"},$t={key:0},Ln={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(f){const G=f,v=_(()=>{const C=G.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...C,1)});function He(C){const D=Number(C.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/v.value*100))}function we(C){const D=(C==null?void 0:C.value)===void 0||(C==null?void 0:C.value)===null||(C==null?void 0:C.value)===""?"--":C.value,g=(C==null?void 0:C.unit)||"",S=[`数值:${D}${g}`];return C!=null&&C.extra&&S.push(String(C.extra)),[(C==null?void 0:C.name)||"数据",...S].join(` +var lt=Object.defineProperty,rt=Object.defineProperties;var ut=Object.getOwnPropertyDescriptors;var Mn=Object.getOwnPropertySymbols;var ot=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable;var Nn=(f,G,v)=>G in f?lt(f,G,{enumerable:!0,configurable:!0,writable:!0,value:v}):f[G]=v,Ue=(f,G)=>{for(var v in G||(G={}))ot.call(G,v)&&Nn(f,v,G[v]);if(Mn)for(var v of Mn(G))it.call(G,v)&&Nn(f,v,G[v]);return f},Oe=(f,G)=>rt(f,ut(G));import{g as _,o as t,c as s,j as m,F as x,y as j,a as u,t as o,K as L,n as N,q as ct,h as dt,w as qa,C as aa,B as I,x as za,f as Q,s as mn,H as Sn,e as xe,T as _t,d as ke}from"./index-1785858872961.js";import{K as ga,M as vt}from"./screen2Standard-2d8b09ac-1785858872961.js";import{_ as pt}from"./index-8ffdff7e-1785858872961.js";import{d as yt,e as Cn}from"./townshipBoundaries-8867fad4-1785858872961.js";const gt={key:0,class:"business-stat-empty"},ht=["data-chart-tooltip"],ft={class:"business-stat-rank"},bt={class:"business-stat-main"},xt={class:"business-stat-name"},kt={class:"business-stat-bar"},wt={class:"business-stat-value"},$t={key:0},Ln={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(f){const G=f,v=_(()=>{const C=G.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...C,1)});function He(C){const D=Number(C.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/v.value*100))}function we(C){const D=(C==null?void 0:C.value)===void 0||(C==null?void 0:C.value)===null||(C==null?void 0:C.value)===""?"--":C.value,g=(C==null?void 0:C.unit)||"",S=[`数值:${D}${g}`];return C!=null&&C.extra&&S.push(String(C.extra)),[(C==null?void 0:C.name)||"数据",...S].join(` `)}return(C,D)=>(t(),s("div",{class:N(["business-stat-list",{"is-compact":f.compact,"is-dense":f.rows.length>10}])},[f.rows.length?m("",!0):(t(),s("div",gt,"暂无业务统计数据")),(t(!0),s(x,null,j(f.rows,(g,S)=>(t(),s("div",{key:g.key||g.name,class:"business-stat-row","data-chart-tooltip":we(g)},[u("div",ft,o(S+1),1),u("div",bt,[u("div",xt,o(g.name),1),u("div",kt,[u("span",{style:L({width:`${He(g)}%`})},null,4)])]),u("div",wt,[u("strong",null,o(g.value),1),u("em",null,o(g.unit),1),g.extra?(t(),s("span",$t,o(g.extra),1)):m("",!0)])],8,ht))),128))],2))}};const jt={key:0,class:"business-panel-empty"},Mt={key:2,class:"business-metrics"},Nt=["data-chart-tooltip"],mt={key:3,class:"business-icon-metrics"},St=["data-chart-tooltip"],Ct={class:"business-icon-metric-copy"},Lt={key:0},Tt={key:4,class:"business-spotlight"},At=["data-chart-tooltip"],Pt={class:"business-spotlight-side"},qt=["data-chart-tooltip"],zt={key:0},Ft={key:1,class:"business-panel-empty"},Vt={key:0,class:"business-ring-visual"},Bt={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Rt=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],Yt={class:"business-ring-inner"},It={key:1,class:"business-donut-visual"},Kt={class:"business-three-pie-center"},Gt={class:"business-donut-legend"},Wt=["data-chart-tooltip"],Dt={key:1,class:"business-panel-empty"},Ut={class:"business-rose-visual"},Ot={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Ht={class:"business-rose-guides"},Et=["x1","y1","x2","y2","stroke"],Xt={class:"business-rose-segments"},Zt=["d","fill","stroke","data-chart-tooltip"],Jt={class:"business-rose-labels"},Qt=["x","y","text-anchor"],es={class:"business-donut-legend business-rose-legend"},as=["data-chart-tooltip"],ns={key:1,class:"business-panel-empty"},ts={key:7,class:"business-structure"},ss={class:"business-structure-overview"},ls={class:"business-structure-band"},rs=["title","data-chart-tooltip"],us={class:"business-structure-list"},os=["data-chart-tooltip"],is={key:1,class:"business-panel-empty"},cs={key:8,class:"business-capacity"},ds=["data-chart-tooltip"],_s={class:"business-capacity-band"},vs=["title","data-chart-tooltip"],ps={class:"business-capacity-list"},ys=["data-chart-tooltip"],gs=["data-chart-tooltip"],hs={key:1,class:"business-panel-empty"},fs=["data-chart-tooltip"],bs={key:0,class:"business-bar-rank"},xs={class:"business-bar-name"},ks={class:"business-bar-track"},ws={key:0},$s={key:1},js={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},Ms=["points"],Ns=["points"],ms=["cx","cy"],Ss={key:1,class:"business-column-unit"},Cs=["data-hover-value","title","data-chart-tooltip"],Ls={class:"business-column-value"},Ts={key:0},As={key:0,class:"business-project-search"},Ps=["placeholder"],qs={class:"business-project-frame"},zs=["tabindex","onClick","onKeydown"],Fs=["title"],Vs={key:0},Bs={key:0},Rs=["onClick","onKeydown"],Ys={key:2},Is=["aria-label"],Ks={key:4},Gs={key:0,class:"business-project-empty"},Ws={key:12,class:"business-project-ledger"},Ds={class:"business-project-search"},Us=["placeholder"],Os={class:"business-project-ledger__summary"},Hs={class:"business-project-ledger__summary-main"},Es={key:0,class:"business-project-ledger__pager"},Xs=["disabled"],Zs=["disabled"],Js=["tabindex","onClick","onKeydown"],Qs={class:"business-project-ledger__info"},el=["title"],al=["title"],nl=["onClick","onKeydown"],tl={key:1,class:"business-project-ledger__unlocated"},sl={key:0,class:"business-project-empty"},ll={key:13,class:"business-spec-grid"},rl={class:"business-spec-grid__index"},ul=["title"],ol={class:"business-spec-grid__count"},il={key:0},cl={class:"business-spec-grid__specs"},dl=["title"],_l={key:0},vl={key:0,class:"business-support-matrix__note"},pl={class:"business-support-matrix__head"},yl={key:0},gl={class:"business-support-matrix__body"},hl=["title"],fl=["title"],bl={class:"business-table-head"},xl={class:"business-table-body"},kl=["data-chart-tooltip"],wl={class:"business-table-name"},$l={class:"business-table-value"},jl={key:0},Ml={class:"business-stack-legend"},Nl={key:0,class:"business-stack-unit"},ml={class:"business-stack-chart"},Sl=["data-hover-value","title","data-chart-tooltip"],Cl={key:0,class:"business-stack-total"},Ll={key:0},Tl={class:"business-stack-track"},Al=["data-chart-tooltip"],Pl={key:0,class:"business-column-unit business-peak-unit"},ql=["data-hover-value","title","data-chart-tooltip"],zl={key:0},Fl={key:0,class:"business-column-unit business-line-unit"},Vl={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},Bl=["points"],Rl=["points"],Yl=["x","y"],Il=["cx","cy"],Kl=["cx","cy","onMouseenter"],Gl=["onMouseenter"],Wl={key:0},Dl=["data-chart-tooltip"],Ul={class:"business-balance-gauge-head"},Ol={class:"business-balance-gauge-ring"},Hl={class:"business-balance-gauge-value"},El={key:0},Xl={class:"business-balance-gauge-name"},Zl={key:0,class:"business-balance-gauge-extra"},Jl=["data-chart-tooltip"],Ql={class:"business-gauge-visual"},er={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},ar=["stroke-dasharray"],nr={class:"business-gauge-value"},tr={key:0},sr={class:"business-gauge-name"},lr={key:0,class:"business-gauge-extra"},rr=["data-chart-tooltip"],ur={key:0},or={class:"business-split-band"},ir=["data-chart-tooltip"],cr={class:"business-split-list"},dr=["data-chart-tooltip"],_r="#43d9e8",Tn=3e3,Cr={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1},visualVersion:{type:String,default:"legacy"}},emits:["row-select"],setup(f,{emit:G}){const v=f,He=G,we=[ga.accentCyan,ga.accentMint,ga.accentWater,ga.accentOrange,"#16b6e8","#a8fbff"],C=["#43d9ff","#46e6ad","#f0c35a","#6ba7ff","#a78bfa","#ff8c78"],D=_(()=>v.visualVersion==="v21"?C:we),g=_(()=>{var e;return((e=v.panel)==null?void 0:e.type)||"rank"}),S=_(()=>{var e;return(((e=v.panel)==null?void 0:e.rows)||[]).filter(a=>a==null?void 0:a.name)}),W=_(()=>S.value.map(e=>Oe(Ue({},e),{value:z(e)})).filter(e=>e.value>0)),qe=_(()=>S.value.map(e=>z(e)).filter(e=>e>0)),Fa=_(()=>Math.max(...qe.value,1)),J=_(()=>qe.value.reduce((e,a)=>e+a,0)),de=_(()=>S.value.filter(e=>z(e)>0)),na=_(()=>{var e;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((e=v.panel)==null?void 0:e.variant)}),q=_(()=>g.value==="line"?S.value.filter(e=>(e==null?void 0:e.value)!==void 0&&(e==null?void 0:e.value)!==null&&(e==null?void 0:e.value)!==""):S.value.filter(e=>z(e)>0)),Ee=_(()=>q.value),ze=_(()=>g.value!=="column"?"":$a()),Xe=_(()=>g.value!=="peak"?"":$a()),Ze=_(()=>g.value!=="line"?"":$a()),pe=_(()=>S.value.filter(e=>z(e)>0)),Fe=_(()=>{var e;return q.value.slice(0,((e=v.panel)==null?void 0:e.limit)||8)}),Ve=_(()=>{var e;return S.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=v.panel)==null?void 0:e.limit)||6)}),ae=_(()=>{var e;return S.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=v.panel)==null?void 0:e.limit)||3)}),re=_(()=>{var e;return((e=v.panel)==null?void 0:e.segments)||[]}),_e=_(()=>S.value.filter(e=>{var a;return Le(e)>0||((a=v.panel)==null?void 0:a.showZero)===!0})),ta=_(()=>Math.max(..._e.value.map(e=>Le(e)),1)),E=ke(""),Be=ke(null),Z=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],Re=_(()=>{var a;return(Array.isArray((a=v.panel)==null?void 0:a.columns)&&v.panel.columns.length?v.panel.columns:Z).map((r,p)=>({key:r.key||r.field||`column-${p}`,label:r.label||r.title||r.name||"",field:r.field||r.dataIndex||r.key,fields:r.fields||[],width:r.width,align:r.align,strong:!!r.strong,unit:r.unit,unitField:r.unitField,fallback:r.fallback,format:r.format,icon:r.icon,action:r.action,className:r.className}))}),Je=_(()=>{var e;return((e=v.panel)==null?void 0:e.rowSelectOnClick)!==!1}),sa=_(()=>{var e;return((e=v.panel)==null?void 0:e.searchPlaceholder)||"搜索项目"}),la=_(()=>{var e;return((e=v.panel)==null?void 0:e.emptyText)||"无匹配项目"}),ra=_(()=>{var a;const e=Array.isArray((a=v.panel)==null?void 0:a.searchKeys)?v.panel.searchKeys:[];return e.length?e:[...Re.value.flatMap(r=>[r.field,...r.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),$e=_(()=>{const e=en(E.value);return e?S.value.filter(a=>en(Rn(a)).includes(e)):Yn(S.value)}),ue=ke(1),Ye=_(()=>{var e;return Math.max(1,Number((e=v.panel)==null?void 0:e.pageSize)||15)}),ua=_(()=>$e.value),U=_(()=>Math.max(1,Math.ceil(ua.value.length/Ye.value))),Ie=_(()=>{const e=Math.min(ue.value,U.value),a=Math.max(0,e-1)*Ye.value;return ua.value.slice(a,a+Ye.value)}),ha=_(()=>Math.max(1,Ie.value.length)),fa=_(()=>{var e;return((e=v.panel)==null?void 0:e.summaryValue)||O(S.value.length)}),ba=_(()=>{var e;return((e=v.panel)==null?void 0:e.summaryLabel)||"条建设台账"}),je=_(()=>S.value.filter(e=>e==null?void 0:e.canLocate).length),xa=_(()=>S.value.filter(e=>e==null?void 0:e.name)),Qe=_(()=>S.value.filter(e=>e==null?void 0:e.name)),ye=_(()=>{var e;return!!((e=v.panel)!=null&&e.showTotal)}),ne=_(()=>S.value.find(e=>["forage-total","wetland-yield-total"].includes(e.key))||S.value[0]),Ke=_(()=>S.value.filter(e=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(e.key))),Me=_(()=>S.value.find(e=>["forage-top-town","wetland-yield-top-town"].includes(e.key))),Ne=ke(0),ee=ke(null),me=ke(null),Se=ke(!0),oe=ke({visible:!1,x:0,y:0,title:"",lines:[]});let Ce=null,te=null;const ka=_(()=>{var e,a;return`${((e=v.panel)==null?void 0:e.key)||((a=v.panel)==null?void 0:a.title)||"pie"}-${W.value.map(r=>`${r.name}:${r.value}`).join("|")}`}),l=_(()=>{var e,a;return((e=v.panel)==null?void 0:e.fixedActiveIndex)===!0||((a=v.panel)==null?void 0:a.disableAutoLoop)===!0}),i=_(()=>{const p=typeof window=="undefined"?1920:window.innerWidth,y=typeof window=="undefined"?1080:window.innerHeight,h=Math.min(p-190-8,oe.value.x+14),M=Math.min(y-82-8,oe.value.y+14);return{left:`${Math.max(8,h)}px`,top:`${Math.max(8,M)}px`}}),c=_(()=>{const e=w.value;return!e||l.value?0:Ne.value%e}),w=_(()=>{var e;return g.value==="structure"?pe.value.length:g.value==="donut"||g.value==="rose"?W.value.length:g.value==="bar"&&((e=v.panel)==null?void 0:e.variant)==="capacity"?Ke.value.length:g.value==="bar"||g.value==="column"?q.value.length:g.value==="table"?Ee.value.length:g.value==="line"?q.value.length:g.value==="balanceGaugeGrid"?ae.value.length:g.value==="gauge"?Ve.value.length:g.value==="stackColumn"?_e.value.length:g.value==="split"?de.value.length:0}),k=_(()=>W.value[c.value]||W.value[0]);_(()=>pe.value[c.value]||pe.value[0]);const $=_(()=>S.value[0]),b=_(()=>{var e;return Math.max(1,Number((e=v.panel)==null?void 0:e.limit)||4)}),Y=_(()=>S.value.slice(0,b.value).map((e,a)=>Oe(Ue({},e),{icon:et(e,a)}))),K=_(()=>pe.value.map((e,a)=>Oe(Ue({},e),{displayIndex:a}))),X=_(()=>{var e;return g.value!=="donut"?"standard":((e=v.panel)==null?void 0:e.variant)==="ring"?"ring":"three"}),ge=_(()=>{const e=W.value,a=e.length;if(!a)return[];const r=52,p=2*Math.PI*r,y=e.reduce((T,F)=>T+z(F),0)||1,h=a>1?Math.min(12,Math.max(7,p*.028)):0;let M=0;return e.map((T,F)=>{const R=z(T)/y*p,le=a>1?Math.max(5,R-h):p,ve=M+(a>1?h/2:0);return M+=R,{key:T.key||T.name||F,index:F,item:T,color:B(F),dasharray:`${le.toFixed(2)} ${p.toFixed(2)}`,dashoffset:`${(-ve).toFixed(2)}`}})}),he=_(()=>{const e=W.value,a=e.length;if(!a)return[];const r=Math.max(...e.map(h=>z(h)),1),p=360/a,y=Math.min(8,p*.16);return e.map((h,M)=>{const T=z(h),F=M===c.value,P=36+Math.sqrt(T/r)*31+(F?5:0),R=17,le=-90+M*p+y/2,ve=-90+(M+1)*p-y/2,Pe=(le+ve)/2,va=Ae(75,75,P+3,Pe),pa=Ae(75,75,P+15,Pe),ya=Ae(75,75,P+20,Pe);return{key:h.key||h.name||M,index:M,item:h,color:B(M),path:Qn(75,75,R,P,le,ve),lineStart:va,lineEnd:pa,label:ya,anchor:Math.cos(Pe*Math.PI/180)>=0?"start":"end"}})});ct(()=>{nt(),Aa()}),dt(()=>{tt(),Pa()}),qa(()=>{var e;return[(e=v.panel)==null?void 0:e.key,S.value.length]},()=>{Ne.value=0,ee.value=null,E.value="",ue.value=1,Be.value=null,da(),Aa()}),qa(E,()=>{ue.value=1}),qa(Se,()=>{Aa()});const se=_(()=>{const e=q.value,a=18,r=284,p=66,y=10,h=e.length>1?r/(e.length-1):r,M=e.map(R=>z(R)).filter(R=>Number.isFinite(R)&&R>=0),T=M.length?Math.min(...M):0,F=M.length?Math.max(...M):1,P=Math.max(F-T,F*.08,1);return e.map((R,le)=>{const ve=z(R);return{x:Math.round(a+le*h),y:Math.round(y+p-(ve-T)/P*p),item:R}})}),Va=_(()=>se.value.map(e=>`${e.x},${e.y}`).join(" ")),An=_(()=>se.value.length?`0,86 ${Va.value} 320,86`:""),Ba=_(()=>{var e,a;return g.value==="column"&&(((e=v.panel)==null?void 0:e.lineOverlay)===!0||((a=v.panel)==null?void 0:a.variant)==="trendColumn")&&q.value.length>1}),wa=_(()=>{if(!Ba.value)return[];const e=q.value,a=e.map(P=>z(P)).filter(P=>Number.isFinite(P)&&P>=0),r=Math.max(...a,1),p=Math.min(...a,0),y=Math.max(r-p,r*.08,1),h=320,M=9,T=67,F=e.length>1?h/(e.length-1):0;return e.map((P,R)=>{const le=z(P);return{key:P.key||P.name||R,x:Number((R*F).toFixed(2)),y:Number((M+T-(le-p)/y*T).toFixed(2))}})}),Ra=_(()=>wa.value.map(e=>`${e.x},${e.y}`).join(" ")),Pn=_(()=>wa.value.length?`0,82 ${Ra.value} 320,82`:""),Ya=_(()=>q.value),Ia=_(()=>({gridTemplateColumns:`repeat(${Math.max(Ya.value.length,1)}, minmax(0, 1fr))`})),Ka=_(()=>Number.isInteger(ee.value)?se.value[ee.value]:null),Ga=_(()=>se.value.length?Number.isInteger(ee.value)?ee.value:c.value:0),Ge=_(()=>Ka.value?Ka.value:se.value[Ga.value]||se.value[0]),qn=_(()=>{const e=Ge.value;if(!e)return{};const a=e.x/320*100;return{left:`${Math.min(84,Math.max(16,a))}%`,top:"6px",transform:"translateX(-50%)"}});function z(e){const a=Number(e==null?void 0:e.value);if(!Number.isNaN(a)&&a>0)return a;const r=Number(e==null?void 0:e.percent);return Number.isNaN(r)?0:r}function Le(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return re.value.reduce((r,p)=>r+(Number(a[p.key])||0),0)}function Wa(e){const a=Le(e),r=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return a?re.value.map((p,y)=>{var T,F,P;const h=Number(r[p.key])||0,M=((T=v.panel)==null?void 0:T.variant)==="dual"||((F=v.panel)==null?void 0:F.variant)==="parkSlim"||((P=v.panel)==null?void 0:P.sharedScale)===!0?ta.value:a;return Oe(Ue({},p),{value:h,percent:Math.max(h>0?3:0,h/Math.max(M,1)*100),color:Da(p,y)})}):[]}function Da(e,a){var r;return(r=v.panel)!=null&&r.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:B(a)}function O(e){const a=Number(e);return Number.isNaN(a)?"--":Number.isInteger(a)?`${a}`:`${Number(a.toFixed(2))}`}function A(e){return(e==null?void 0:e.displayValue)!==void 0&&(e==null?void 0:e.displayValue)!==null&&(e==null?void 0:e.displayValue)!==""?e.displayValue:(e==null?void 0:e.value)===void 0||(e==null?void 0:e.value)===null||(e==null?void 0:e.value)===""?"--":O(e.value)}function fe(e){var p;const a=(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||"";if(!a)return"";const r=String((p=A(e))!=null?p:"");return r&&r.endsWith(String(a))?"":a}function $a(){const e=[...new Set(q.value.map(a=>(a==null?void 0:a.displayUnit)||(a==null?void 0:a.unit)).filter(Boolean))];return e.length===1?e[0]:""}function Ua(e){const a=fe(e);return a?ze.value===a?"":a:""}function Oa(e){const a=fe(e);return a?Xe.value===a?"":a:""}function be(e){return String(e||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function zn(e){return Array.from(be(e)).slice(0,3).join("")}function oa(e){var a;return((a=v.panel)==null?void 0:a.labelMode)==="horizontal"?be(e):v.columnLabelStandard?zn(e):be(e)}function ia(e){const a=be(e==null?void 0:e.name)||"数据",r=fe(e);return`${a}:${A(e)}${r}`}function ja(e,a=[]){return[be(e)||"数据",...a.filter(r=>r!=null&&String(r).trim()!=="").map(r=>String(r))].join(` `)}function H(e,a=[]){if(!e)return"";const r=fe(e),p=A(e),y=[];return p!=="--"&&y.push(`数值:${p}${r}`),e.extra&&y.push(String(e.extra)),ja(e.name,[...y,...a])}function ca(e){return H(e,[`占比:${La(e)}`])}function Ha(e){return H(e,[`占比:${Sa(e)}`])}function Ea(e){return H(e,[`占比:${Ca(e)}`])}function Fn(e){var y;const a=Te(e),r=Wa(e).filter(h=>h.value>0).map(h=>`${h.name}:${h.valuePrefix||""}${O(h.value)}${a}`),p=((y=v.panel)==null?void 0:y.totalLabel)||"合计";return ja(e==null?void 0:e.name,[`${p}:${Ma(e)}${O(Le(e))}${a}`,...r])}function Vn(e,a){const r=Te(e);return ja(`${be(e==null?void 0:e.name)} ${(a==null?void 0:a.name)||""}`,[`数值:${(a==null?void 0:a.valuePrefix)||""}${O((a==null?void 0:a.value)||0)}${r}`])}function Xa(e){return H(e,[`状态:${ma(e)}`])}function Za(e){const a=J.value?`${O(z(e)/J.value*100)}%`:"--";return H(e,[`占比:${a}`])}function Bn(e){var y,h,M;const a=(h=(y=e.target)==null?void 0:y.closest)==null?void 0:h.call(y,"[data-chart-tooltip], [data-hover-value]");if(!a||!((M=me.value)!=null&&M.contains(a))){da();return}const r=a.getAttribute("data-chart-tooltip")||a.getAttribute("data-hover-value")||"",p=String(r).split(/\n+/).map(T=>T.trim()).filter(Boolean);if(!p.length){da();return}oe.value={visible:!0,x:e.clientX,y:e.clientY,title:p[0],lines:p.slice(1)}}function da(){oe.value.visible&&(oe.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Ja(e){const a=be(e==null?void 0:e.name)||"数据",r=Te(e);return`${a}:${Ma(e)}${O(Le(e))}${r}`}function Te(e){var a;return(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||((a=v.panel)==null?void 0:a.unit)||""}function Ma(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return re.value.some(r=>(r==null?void 0:r.valuePrefix)&&Number(a[r.key])>0)?"≥":""}function Qa(){var e,a,r;return((e=v.panel)==null?void 0:e.showValue)===!0||((a=v.panel)==null?void 0:a.variant)==="dual"||((r=v.panel)==null?void 0:r.variant)==="parkSlim"}function en(e){return String(e||"").trim().toLowerCase()}function Rn(e){const a=ra.value.map(r=>an(e,{field:r})).filter(r=>r!=null);return[e==null?void 0:e.searchText,...a].filter(Boolean).join(" ")}function Yn(e=[]){var r;const a=Number((r=v.panel)==null?void 0:r.maxRows);return!Number.isFinite(a)||a<=0?e:e.slice(0,a)}function an(e,a){const r=[a==null?void 0:a.field,...(a==null?void 0:a.fields)||[]].filter(Boolean);for(const p of r){const y=String(p).split(".").reduce((h,M)=>h==null?void 0:h[M],e);if(y!=null&&y!=="")return y}}function ea(e,a){const r=an(e,a);if((a==null?void 0:a.format)==="townVillage"){const p=String((e==null?void 0:e.town)||"").trim(),y=String((e==null?void 0:e.village)||"").trim();return[p,y].filter(Boolean).join(" / ")||(a==null?void 0:a.fallback)||"--"}return r==null||r===""?(a==null?void 0:a.fallback)||"--":(a==null?void 0:a.format)==="number"?O(r):(a==null?void 0:a.format)==="displayValue"?A({value:r}):String(r)}function nn(e,a){return a!=null&&a.unitField&&(e!=null&&e[a.unitField])?e[a.unitField]:(a==null?void 0:a.unit)||""}function tn(e){return{"business-project-name":(e==null?void 0:e.key)==="name","business-project-locate":(e==null?void 0:e.key)==="locate","is-right":(e==null?void 0:e.align)==="right","is-center":(e==null?void 0:e.align)==="center","is-strong":e==null?void 0:e.strong}}function Na(e,a={}){(a==null?void 0:a.action)==="locate"&&ie(e,!0)}function ie(e,a=!1){!a&&!Je.value||(e==null?void 0:e.canLocate)!==!1&&(Be.value=(e==null?void 0:e.key)||(e==null?void 0:e.name)||null,He("row-select",e))}function sn(e=0){const a=ue.value+Number(e||0);ue.value=Math.max(1,Math.min(U.value,a))}function ln(e={}){return e.ledgerName||e.name||"--"}function rn(e={}){return e.ledgerLocation||[e.town,e.village].filter(Boolean).join(" · ")||"--"}function un(e={},a={}){var p,y,h,M;const r=Number((M=(h=(p=e==null?void 0:e.segments)==null?void 0:p[a.key])!=null?h:(y=e==null?void 0:e.values)==null?void 0:y[a.key])!=null?M:0);return!Number.isFinite(r)||r<=0?"—":`${(a==null?void 0:a.valuePrefix)||""}${O(r)}`}function on(e={}){const a=re.value.map(y=>{var h,M,T,F;return Number((F=(T=(h=e==null?void 0:e.segments)==null?void 0:h[y.key])!=null?T:(M=e==null?void 0:e.values)==null?void 0:M[y.key])!=null?F:0)}),r=a.reduce((y,h)=>y+(Number.isFinite(h)&&h>0?h:0),0);return r?`${re.value.some((y,h)=>(y==null?void 0:y.valuePrefix)&&a[h]>0)?"≥":""}${O(r)}`:"—"}function In(e){const a=e==null?void 0:e.currentTarget;if(!a||a.scrollWidth<=a.clientWidth)return;e.preventDefault();const r=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;a.scrollLeft+=r}function We(e){var h,M;const a=Number(e==null?void 0:e.scaleValue);if(!(g.value==="column"&&((h=v.panel)==null?void 0:h.variant)==="plain")&&!Number.isNaN(a)&&a>0)return Math.max(8,Math.min(100,Math.round(a)));const p=z(e);if(!p)return 8;const y=g.value==="column"&&((M=v.panel)==null?void 0:M.variant)==="plain"?Math.max(...qe.value,p):Fa.value;return Math.max(8,Math.round(p/y*100))}function Kn(e,a){const r=We(e),p=Math.max(.04,Math.min(.1,r/360));return{"--heat-color":B(a),"--heat-bg":De(B(a),p)}}function ce(e){const a=Number(e==null?void 0:e.value);return Number.isFinite(a)?a:0}function Gn(){var r;const e=Number((r=v.panel)==null?void 0:r.max);if(Number.isFinite(e)&&e>0)return e;const a=Math.max(...Ve.value.map(p=>ce(p)),100);return Math.max(a,100)}function cn(e){const a=ce(e),r=Gn();return!r||a<=0?0:Number(Math.min(100,a/r*100).toFixed(1))}function Wn(e){return Number((-180+cn(e)*1.8).toFixed(1))}function Dn(e,a){var r;return(r=v.panel)!=null&&r.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:B(a)}function Un(e){const a=Math.max(0,ce(e)),r=Math.max(5,...ae.value.map(p=>Math.max(0,ce(p))));return Math.max(6,Math.min(100,Number((a/r*100).toFixed(1))))}function On(e){const a=ce(e),r=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return a>20||/严重|重度|高超载/.test(r)?"#8bf7ff":a>10||/中度|预警/.test(r)?"#48cfff":a>5||/轻度/.test(r)?"#b9fbff":a<=0||/总体可控|合理|正常|达标|无超载/.test(r)?"#24f6c4":"#30dcff"}function Hn(e){return{"--balance-color":On(e),"--balance-progress":`${Un(e)}%`}}function ma(e){if(e!=null&&e.status||e!=null&&e.level)return e.status||e.level;const a=ce(e);return a<0?"合理":a<=5?"基本实现草畜平衡":a<=10?"轻度超载":a>100?"高超载":"超载预警"}function De(e,a=.2){const r=String(e||"").replace("#","");if(r.length!==6)return`rgba(48, 220, 255, ${a})`;const p=parseInt(r,16),y=p>>16&255,h=p>>8&255,M=p&255;return`rgba(${y}, ${h}, ${M}, ${a})`}function En(e){const a=se.value.length;if(!a)return;const r=e.currentTarget.getBoundingClientRect(),p=r.width?(e.clientX-r.left)/r.width:0,y=Math.min(a-1,Math.max(0,Math.round(p*(a-1))));ee.value=y}function Xn(e){const a=z(e);return!J.value||!a?0:Math.max(6,a/J.value*100)}function dn(e){const a=z(e);return!J.value||!a?0:Math.max(2,a/J.value*100)}function Sa(e){if(!e)return"--";if(e.extra)return e.extra;const a=z(e);return!J.value||!a?"--":`${O(a/J.value*100)}%`}function _n(){const e=z(ne.value);return e>0?e:Ke.value.reduce((a,r)=>a+z(r),0)}function Zn(e){const a=_n(),r=z(e);return!a||!r?0:Math.max(6,r/a*100)}function Ca(e){const a=_n(),r=z(e);return!a||!r?"--":`${O(r/a*100)}%`}function _a(e,a){return["forage-edible","wetland-yield-edible"].includes(e==null?void 0:e.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(e==null?void 0:e.key)?"#8bf7ff":B(a)}function La(e){const a=z(e),r=Number(e==null?void 0:e.count)||J.value;return!a||!r?"0%":`${O(a/r*100)}%`}function Jn(e){const a=z(e),r=Number(e==null?void 0:e.count)||J.value;return!a||!r?0:a/r*100}function Ae(e,a,r,p){const y=p*Math.PI/180;return{x:Number((e+r*Math.cos(y)).toFixed(2)),y:Number((a+r*Math.sin(y)).toFixed(2))}}function Qn(e,a,r,p,y,h){const M=Ae(e,a,p,y),T=Ae(e,a,p,h),F=Ae(e,a,r,h),P=Ae(e,a,r,y),R=h-y>180?1:0;return[`M ${M.x} ${M.y}`,`A ${p} ${p} 0 ${R} 1 ${T.x} ${T.y}`,`L ${F.x} ${F.y}`,`A ${r} ${r} 0 ${R} 0 ${P.x} ${P.y}`,"Z"].join(" ")}function B(e){return D.value[e%D.value.length]}function Ta(e,a={}){var r,p,y;return(r=v.panel)!=null&&r.preserveColors&&(a!=null&&a.color||a!=null&&a.fillColor)?a.color||a.fillColor:["bar","column","peak"].includes(g.value)&&((p=v.panel)==null?void 0:p.categoricalColors)!==!0?((y=v.panel)==null?void 0:y.color)||_r:B(e)}function et(e,a){if(e!=null&&e.icon)return String(e.icon).replace(/[^a-z0-9-]/gi,"");const r=String((e==null?void 0:e.name)||"");return r.includes("利用率")||r.includes("占比")?"rate":r.includes("重度")||r.includes("退化")?"risk":r.includes("可食")||r.includes("供给")?"leaf":r.includes("不可")?"stack":r.includes("产量")||r.includes("鲜草")?"yield":r.includes("乡镇")?"town":r.includes("面积")?"area":["yield","leaf","rate","risk"][a%4]}function at(){if(Pa(),l.value)return;const e=w.value;Se.value&&(e<2||(Ce=window.setInterval(()=>{Ne.value=(Ne.value+1)%e},Tn)))}function Aa(){Se.value?at():Pa()}function Pa(){Ce&&(window.clearInterval(Ce),Ce=null)}function nt(){vn(),!(!me.value||typeof window.IntersectionObserver!="function")&&(te=new IntersectionObserver(e=>{const a=e[0];Se.value=!!(a!=null&&a.isIntersecting)&&pn()}),te.observe(me.value),window.requestAnimationFrame(vn))}function tt(){var e;(e=te==null?void 0:te.disconnect)==null||e.call(te),te=null}function vn(){Se.value=pn()}function pn(){const e=me.value;return e?!!(e.offsetParent||e.getClientRects().length):!0}function yn(e,a={}){const r=Ta(e,a);return`linear-gradient(90deg, ${De(r,.14)} 0%, ${De(r,.68)} 58%, ${r} 100%)`}function st(e,a={}){const r=Ta(e,a);return`linear-gradient(180deg, ${De(r,.94)} 0%, ${De(r,.68)} 52%, ${De(r,.14)} 100%)`}return(e,a)=>{var r,p,y,h,M,T,F,P,R,le,ve,Pe,va,pa,ya,gn,hn,fn,bn,xn,kn,wn,$n,jn;return t(),s("div",{ref_key:"panelRef",ref:me,class:N(["business-panel",[`is-${g.value}`,`is-${X.value}`,`is-${f.visualVersion}`,{"is-compact":f.compact,"is-column-label-standard":f.columnLabelStandard,"is-column-label-horizontal":((r=v.panel)==null?void 0:r.labelMode)==="horizontal","is-icon-metric-extended":g.value==="iconMetric"&&Number(((p=v.panel)==null?void 0:p.limit)||4)>4}]]),onMousemove:Bn,onMouseleave:da},[S.value.length?g.value==="rank"?(t(),aa(Ln,{key:1,rows:S.value,compact:""},null,8,["rows"])):g.value==="metric"?(t(),s("div",Mt,[(t(!0),s(x,null,j(S.value.slice(0,4),n=>(t(),s("div",{key:n.key||n.name,class:"business-metric-item","data-chart-tooltip":H(n)},[u("span",null,o(n.name),1),u("strong",null,o(A(n)),1),u("em",null,o(n.unit),1)],8,Nt))),128))])):g.value==="iconMetric"?(t(),s("div",mt,[(t(!0),s(x,null,j(Y.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-icon-metric-item",`is-tone-${d%D.value.length}`]),"data-chart-tooltip":H(n)},[u("i",{class:N(["business-icon-metric-mark",`is-${n.icon}`])},[...a[6]||(a[6]=[u("span",null,null,-1)])],2),u("div",Ct,[u("span",null,o(n.name),1),u("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",Lt,o(n.unit),1)):m("",!0)])])],10,St))),128))])):g.value==="spotlight"?(t(),s("div",Tt,[$.value?(t(),s(x,{key:0},[u("div",{class:"business-spotlight-main","data-chart-tooltip":H($.value)},[u("span",null,o($.value.name),1),u("strong",null,[I(o(A($.value)),1),u("em",null,o($.value.unit),1)]),u("small",null,o($.value.extra||((y=f.panel)==null?void 0:y.note)||"核心业务指标"),1)],8,At),u("div",Pt,[(t(!0),s(x,null,j(S.value.slice(1,4),(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-spotlight-chip","data-chart-tooltip":H(n)},[u("i",{style:L({borderColor:B(d+1)})},null,4),u("span",null,o(n.name),1),u("strong",null,[I(o(A(n)),1),u("em",null,o(n.unit),1)]),n.extra?(t(),s("small",zt,o(n.extra),1)):m("",!0)],8,qt))),128))])],64)):(t(),s("div",Ft,"暂无业务统计数据"))])):g.value==="donut"?(t(),s("div",{key:5,class:N(["business-donut",[`is-variant-${X.value}`,{"is-dense":W.value.length>5}]])},[W.value.length?(t(),s(x,{key:0},[X.value==="ring"?(t(),s("div",Vt,[(t(),s("svg",Bt,[a[7]||(a[7]=u("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),a[8]||(a[8]=u("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(t(!0),s(x,null,j(ge.value,n=>(t(),s("circle",{key:n.key,class:N(["business-ring-segment",{"is-active":n.index===c.value}]),cx:"80",cy:"80",r:"52",stroke:n.color,"stroke-dasharray":n.dasharray,"stroke-dashoffset":n.dashoffset,style:L({color:n.color}),"data-chart-tooltip":ca(n.item)},null,14,Rt))),128))])),u("div",Yt,[u("strong",null,o(La(k.value)),1),u("span",null,o(((h=k.value)==null?void 0:h.name)||"结构占比"),1)])])):(t(),s("div",It,[(t(),aa(vt,{key:ka.value,data:W.value,delay:Tn,"auto-play":!l.value,colors:D.value,opacity:.62,class:"business-three-pie"},{default:za(({data:n})=>[u("div",Kt,[u("strong",null,o(La(n)),1),u("span",null,o((n==null?void 0:n.name)||"结构占比"),1)])]),_:1},8,["data","auto-play","colors"]))])),u("div",Gt,[(t(!0),s(x,null,j(W.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-donut-row",{"is-active":d===c.value}]),style:L({"--row-color":B(d),"--row-percent":`${Math.max(4,Jn(n))}%`}),"data-chart-tooltip":ca(n)},[u("i",{style:L({borderColor:B(d)})},null,4),u("span",null,o(n.name),1),u("strong",null,o(A(n)),1),u("em",null,o(n.unit),1)],14,Wt))),128))])],64)):(t(),s("div",Dt,"暂无业务统计数据"))],2)):g.value==="rose"?(t(),s("div",{key:6,class:N(["business-rose",{"is-dense":W.value.length>5}])},[W.value.length?(t(),s(x,{key:0},[u("div",Ut,[(t(),s("svg",Ot,[u("g",Ht,[(t(!0),s(x,null,j(he.value,n=>(t(),s("line",{key:`guide-${n.key}`,x1:n.lineStart.x,y1:n.lineStart.y,x2:n.lineEnd.x,y2:n.lineEnd.y,stroke:n.color},null,8,Et))),128))]),u("g",Xt,[(t(!0),s(x,null,j(he.value,n=>(t(),s("path",{key:n.key,class:N(["business-rose-segment",{"is-active":n.index===c.value}]),d:n.path,fill:n.color,stroke:n.color,"data-chart-tooltip":ca(n.item)},null,10,Zt))),128))]),a[9]||(a[9]=u("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),a[10]||(a[10]=u("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),u("g",Jt,[(t(!0),s(x,null,j(he.value,n=>(t(),s("text",{key:`label-${n.key}`,x:n.label.x,y:n.label.y,"text-anchor":n.anchor},o(n.item.name),9,Qt))),128))])]))]),u("div",es,[(t(!0),s(x,null,j(W.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-donut-row business-rose-row",{"is-active":d===c.value}]),"data-chart-tooltip":ca(n)},[u("i",{style:L({borderColor:B(d),background:B(d),color:B(d)})},null,4),u("span",null,o(n.name),1),u("strong",null,o(A(n)),1),u("em",null,o(n.unit),1)],10,as))),128))])],64)):(t(),s("div",ns,"暂无业务统计数据"))],2)):g.value==="structure"?(t(),s("div",ts,[pe.value.length?(t(),s(x,{key:0},[u("div",ss,[u("div",ls,[(t(!0),s(x,null,j(pe.value,(n,d)=>(t(),s("i",{key:n.key||n.name,class:N({"is-active":d===c.value}),style:L({width:`${dn(n)}%`,background:B(d),color:B(d)}),title:`${n.name}:${A(n)}${n.unit||""} ${Sa(n)}`,"data-chart-tooltip":Ha(n)},null,14,rs))),128))])]),u("div",us,[(t(!0),s(x,null,j(K.value,n=>(t(),s("div",{key:n.key||n.name,class:N(["business-structure-row",{"is-active":n.displayIndex===c.value}]),style:L({"--row-color":B(n.displayIndex),"--row-percent":`${Math.max(4,dn(n))}%`}),"data-chart-tooltip":Ha(n)},[u("i",{style:L({background:B(n.displayIndex),color:B(n.displayIndex)})},null,4),u("span",null,o(n.name),1),u("strong",null,[I(o(A(n)),1),u("em",null,o(n.unit),1)]),u("small",null,o(Sa(n)),1)],14,os))),128))])],64)):(t(),s("div",is,"暂无业务统计数据"))])):g.value==="bar"&&((M=f.panel)==null?void 0:M.variant)==="capacity"?(t(),s("div",cs,[ne.value?(t(),s(x,{key:0},[u("div",{class:"business-capacity-head","data-chart-tooltip":H(ne.value)},[u("span",null,o(ne.value.name),1),u("strong",null,[I(o(A(ne.value)),1),u("em",null,o(ne.value.unit),1)])],8,ds),u("div",_s,[(t(!0),s(x,null,j(Ke.value,(n,d)=>(t(),s("i",{key:n.key||n.name,class:N({"is-active":d===c.value}),style:L({width:`${Zn(n)}%`,background:_a(n,d),color:_a(n,d)}),title:`${n.name}:${A(n)}${n.unit||""} ${Ca(n)}`,"data-chart-tooltip":Ea(n)},null,14,vs))),128))]),u("div",ps,[(t(!0),s(x,null,j(Ke.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-capacity-row",{"is-active":d===c.value}]),"data-chart-tooltip":Ea(n)},[u("i",{style:L({background:_a(n,d),color:_a(n,d)})},null,4),u("span",null,o(n.name),1),u("strong",null,[I(o(A(n)),1),u("em",null,o(n.unit),1)]),u("small",null,o(Ca(n)),1)],10,ys))),128))]),Me.value?(t(),s("div",{key:0,class:"business-capacity-town","data-chart-tooltip":H(Me.value)},[u("span",null,o(Me.value.name),1),u("strong",null,[I(o(A(Me.value)),1),u("em",null,o(Me.value.unit),1)])],8,gs)):m("",!0)],64)):(t(),s("div",hs,"暂无业务统计数据"))])):g.value==="bar"?(t(),s("div",{key:9,class:N(["business-bars",{"is-dense":q.value.length>=5,"is-long":q.value.length>10,"is-scrollable":q.value.length>10,"is-single":((T=f.panel)==null?void 0:T.span)===1,"is-distribution":((F=f.panel)==null?void 0:F.variant)==="distribution","is-capacity":((P=f.panel)==null?void 0:P.variant)==="capacity","is-rank-bar":((R=f.panel)==null?void 0:R.variant)==="rankBar","is-park-bar":((le=f.panel)==null?void 0:le.variant)==="parkBar","is-race-bar":na.value,"is-few-rows":na.value&&q.value.length<=3,"is-degradation":((ve=f.panel)==null?void 0:ve.variant)==="degradation","is-race-nowrap":((Pe=f.panel)==null?void 0:Pe.variant)==="raceBarNoWrap","is-race-relaxed":((va=f.panel)==null?void 0:va.variant)==="raceBarRelaxed"}]),style:L({"--bar-row-count":Math.max(q.value.length,1)}),onWheel:a[0]||(a[0]=Q(()=>{},["stop"]))},[(t(!0),s(x,null,j(q.value,(n,d)=>{var V;return t(),s("div",{key:n.key||n.name,class:N(["business-bar-row",{"is-active":d===c.value}]),style:L({"--bar-color":Ta(d,n)}),"data-chart-tooltip":H(n)},[((V=f.panel)==null?void 0:V.variant)==="rankBar"?(t(),s("span",bs,o(d+1),1)):m("",!0),u("span",xs,o(n.name),1),u("div",ks,[u("i",{style:L({width:`${We(n)}%`,background:yn(d,n)})},null,4)]),u("strong",null,[I(o(A(n))+" ",1),n.unit?(t(),s("em",ws,o(n.unit),1)):m("",!0),n.extra?(t(),s("small",$s,o(n.extra),1)):m("",!0)])],14,fs)}),128))],38)):g.value==="column"?(t(),s("div",{key:10,class:N(["business-columns",[`is-variant-${((pa=f.panel)==null?void 0:pa.variant)||"solid"}`,{"is-dense":q.value.length>6,"is-scrollable":q.value.length>6&&((ya=f.panel)==null?void 0:ya.scrollable)!==!1,"has-unit-label":!!ze.value}]]),onWheel:Q(In,["stop"])},[Ba.value?(t(),s("svg",js,[u("polyline",{class:"business-column-trend-area",points:Pn.value},null,8,Ms),u("polyline",{class:"business-column-trend-line",points:Ra.value},null,8,Ns),(t(!0),s(x,null,j(wa.value,n=>(t(),s("circle",{key:n.key,class:"business-column-trend-dot",cx:n.x,cy:n.y,r:"2.3"},null,8,ms))),128))])):m("",!0),ze.value?(t(),s("small",Ss,"单位:"+o(ze.value),1)):m("",!0),(t(!0),s(x,null,j(q.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-column-item",{"is-active":d===c.value,"is-zero":(n==null?void 0:n.zero)===!0||(n==null?void 0:n.isZero)===!0}]),"data-hover-value":ia(n),title:ia(n),"data-chart-tooltip":H(n)},[u("div",{class:"business-column-track",style:L({"--column-percent":`${We(n)}%`})},[u("i",{style:L({height:`${We(n)}%`,background:st(d,n),"--column-load-delay":`${d*.075}s`})},null,4),u("strong",Ls,[I(o(A(n)),1),Ua(n)?(t(),s("em",Ts,o(Ua(n)),1)):m("",!0)])],4),u("span",null,o(oa(n.name)),1)],10,Cs))),128))],34)):g.value==="projectTable"?(t(),s("div",{key:11,class:N(["business-project-table",{"is-without-search":((gn=f.panel)==null?void 0:gn.showSearch)===!1,"is-fill-rows":((hn=f.panel)==null?void 0:hn.fillRows)===!0}])},[((fn=f.panel)==null?void 0:fn.showSearch)!==!1?(t(),s("div",As,[mn(u("input",{"onUpdate:modelValue":a[1]||(a[1]=n=>E.value=n),type:"search",placeholder:sa.value},null,8,Ps),[[Sn,E.value]])])):m("",!0),u("div",qs,[u("table",null,[u("colgroup",null,[(t(!0),s(x,null,j(Re.value,n=>(t(),s("col",{key:n.key,class:N(n.className),style:L({width:n.width||void 0})},null,6))),128))]),u("thead",null,[u("tr",null,[(t(!0),s(x,null,j(Re.value,n=>(t(),s("th",{key:n.key,class:N(tn(n))},o(n.label),3))),128))])]),u("tbody",null,[(t(!0),s(x,null,j($e.value,n=>(t(),s("tr",{key:n.key||n.name,class:N({"is-active":Be.value===(n.key||n.name)}),tabindex:Je.value?0:-1,onClick:d=>ie(n),onKeydown:[xe(Q(d=>ie(n),["prevent"]),["enter"]),xe(Q(d=>ie(n),["prevent"]),["space"])]},[(t(!0),s(x,null,j(Re.value,d=>(t(),s("td",{key:d.key,class:N(tn(d)),title:ea(n,d)},[d.strong?(t(),s("strong",Vs,[I(o(ea(n,d)),1),nn(n,d)?(t(),s("em",Bs,o(nn(n,d)),1)):m("",!0)])):d.action==="locate"&&n.canLocate?(t(),s("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:Q(V=>Na(n,d),["stop"]),onKeydown:[xe(Q(V=>Na(n,d),["stop","prevent"]),["enter"]),xe(Q(V=>Na(n,d),["stop","prevent"]),["space"])]},[...a[11]||(a[11]=[u("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Rs)):d.action==="locate"?(t(),s("span",Ys,"--")):d.icon&&ea(n,d)!=="--"?(t(),s("span",{key:3,class:N(["business-project-cell-icon",`business-project-cell-icon--${d.icon}`]),role:"img","aria-label":ea(n,d)},null,10,Is)):(t(),s("span",Ks,o(ea(n,d)),1))],10,Fs))),128))],42,zs))),128))])]),$e.value.length?m("",!0):(t(),s("div",Gs,o(la.value),1))])],2)):g.value==="projectLedger"?(t(),s("div",Ws,[u("div",Ds,[mn(u("input",{"onUpdate:modelValue":a[2]||(a[2]=n=>E.value=n),type:"search",placeholder:sa.value},null,8,Us),[[Sn,E.value]])]),u("div",Os,[u("div",Hs,[u("strong",null,o(fa.value),1),u("span",null,o(ba.value),1)]),u("small",null,"已定位 "+o(je.value)+" 处",1),U.value>1?(t(),s("div",Es,[u("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:ue.value<=1,onClick:a[3]||(a[3]=n=>sn(-1))},[...a[12]||(a[12]=[u("i",{"aria-hidden":"true"},null,-1)])],8,Xs),u("span",null,o(ue.value)+" / "+o(U.value),1),u("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:ue.value>=U.value,onClick:a[4]||(a[4]=n=>sn(1))},[...a[13]||(a[13]=[u("i",{"aria-hidden":"true"},null,-1)])],8,Zs)])):m("",!0)]),u("div",{class:"business-project-ledger__list business-project-frame",style:L({"--ledger-row-count":ha.value})},[(t(!0),s(x,null,j(Ie.value,n=>(t(),s("div",{key:n.key||n.name,class:N(["business-project-ledger__row",{"is-active":Be.value===(n.key||n.name),"is-locatable":n.canLocate,"is-unlocated":n.canLocate===!1}]),tabindex:n.canLocate?0:-1,onClick:d=>ie(n),onKeydown:[xe(Q(d=>ie(n),["prevent"]),["enter"]),xe(Q(d=>ie(n),["prevent"]),["space"])]},[u("div",Qs,[u("strong",{title:ln(n)},o(ln(n)),9,el),u("div",null,[u("span",{title:rn(n)},o(rn(n)),9,al)])]),n.canLocate?(t(),s("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:Q(d=>ie(n,!0),["stop"]),onKeydown:[xe(Q(d=>ie(n,!0),["stop","prevent"]),["enter"]),xe(Q(d=>ie(n,!0),["stop","prevent"]),["space"])]},[...a[14]||(a[14]=[u("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,nl)):(t(),s("span",tl,"暂无坐标"))],42,Js))),128)),Ie.value.length?m("",!0):(t(),s("div",sl,o(la.value),1))],4)])):g.value==="specGrid"?(t(),s("div",ll,[(t(!0),s(x,null,j(xa.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-spec-grid__row"},[u("span",rl,o(String(d+1).padStart(2,"0")),1),u("span",{class:"business-spec-grid__name",title:n.name},o(n.name),9,ul),u("strong",ol,[I(o(A(n)),1),n.unit?(t(),s("em",il,o(n.unit),1)):m("",!0)]),u("div",cl,[(t(!0),s(x,null,j(n.specs||[],V=>(t(),s("span",{key:V.label,title:`${V.label} ${O(V.value)}${V.unit||""}`},[u("small",null,o(V.label),1),u("strong",null,[I(o(O(V.value)),1),V.unit?(t(),s("em",_l,o(V.unit),1)):m("",!0)])],8,dl))),128))])]))),128))])):g.value==="supportMatrix"?(t(),s("div",{key:14,class:N(["business-support-matrix",{"is-with-total":ye.value}])},[(bn=f.panel)!=null&&bn.note?(t(),s("small",vl,o(f.panel.note),1)):m("",!0),u("div",pl,[a[15]||(a[15]=u("span",null,"乡镇",-1)),ye.value?(t(),s("span",yl,o(((xn=f.panel)==null?void 0:xn.totalLabel)||"合计"),1)):m("",!0),(t(!0),s(x,null,j(re.value,n=>(t(),s("span",{key:n.key},o(n.headerName||n.name),1))),128))]),u("div",gl,[(t(!0),s(x,null,j(Qe.value,n=>(t(),s("div",{key:n.key||n.name},[u("span",null,o(be(n.name)),1),ye.value?(t(),s("strong",{key:0,class:"business-support-matrix__total",title:on(n)},o(on(n)),9,hl)):m("",!0),(t(!0),s(x,null,j(re.value,d=>(t(),s("strong",{key:d.key,title:un(n,d)},o(un(n,d)),9,fl))),128))]))),128))])],2)):g.value==="table"?(t(),s("div",{key:15,class:N(["business-table",{"is-dense":Ee.value.length>8}])},[u("div",bl,[(t(),s(x,null,j(2,n=>u("div",{key:n,class:"business-table-head-group"},[...a[16]||(a[16]=[u("span",null,"乡镇",-1),u("span",null,"亩产",-1)])])),64))]),u("div",xl,[(t(!0),s(x,null,j(Ee.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-table-row",{"is-active":d===c.value}]),"data-chart-tooltip":H(n)},[u("span",wl,o(n.name),1),u("div",$l,[u("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",jl,o(n.unit),1)):m("",!0)]),u("i",null,[u("b",{style:L({width:`${We(n)}%`,background:yn(d)})},null,4)])])],10,kl))),128))])],2)):g.value==="stackColumn"?(t(),s("div",{key:16,class:N(["business-stack-columns",[`is-variant-${((kn=f.panel)==null?void 0:kn.variant)||"standard"}`,{"is-dense":_e.value.length>6,"is-with-values":Qa()}]])},[u("div",Ml,[(t(!0),s(x,null,j(re.value,(n,d)=>(t(),s("span",{key:n.key||n.name},[u("i",{style:L({background:Da(n,d)})},null,4),I(o(n.name),1)]))),128)),Te(_e.value[0])?(t(),s("small",Nl,"单位:"+o(Te(_e.value[0])),1)):m("",!0)]),u("div",ml,[(t(!0),s(x,null,j(_e.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-stack-item",{"is-active":d===c.value}]),"data-hover-value":Ja(n),title:Ja(n),"data-chart-tooltip":Fn(n)},[Qa()&&Le(n)>0?(t(),s("strong",Cl,[I(o(Ma(n))+o(O(Le(n))),1),Te(n)?(t(),s("em",Ll,o(Te(n)),1)):m("",!0)])):m("",!0),u("div",Tl,[(t(!0),s(x,null,j(Wa(n),(V,$r)=>(t(),s("i",{key:V.key||V.name,style:L({height:`${V.percent}%`,background:V.color,color:V.color}),"data-chart-tooltip":Vn(n,V)},null,12,Al))),128))]),u("span",null,o(oa(n.name)),1)],10,Sl))),128))])],2)):g.value==="peak"?(t(),s("div",{key:17,class:N(["business-peaks",{"is-dense":q.value.length>5}])},[Xe.value?(t(),s("small",Pl,"单位:"+o(Xe.value),1)):m("",!0),(t(!0),s(x,null,j(q.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-peak-item",style:L({"--peak-height":`${We(n)}%`,"--peak-color":B(d)}),"data-hover-value":ia(n),title:ia(n),"data-chart-tooltip":H(n)},[u("strong",null,[I(o(A(n)),1),Oa(n)?(t(),s("em",zl,o(Oa(n)),1)):m("",!0)]),a[17]||(a[17]=u("div",{class:"business-peak-stage"},[u("i")],-1)),u("span",null,o(oa(n.name)),1)],12,ql))),128))],2)):g.value==="line"?(t(),s("div",{key:18,class:N(["business-line",{"has-unit-label":!!Ze.value}])},[Ze.value?(t(),s("small",Fl,"单位:"+o(Ze.value),1)):m("",!0),u("div",{class:"business-line-chart",onMousemove:En,onMouseleave:a[5]||(a[5]=n=>ee.value=null)},[(t(),s("svg",Vl,[a[18]||(a[18]=u("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),u("polyline",{class:"business-line-area",points:An.value},null,8,Bl),u("polyline",{class:"business-line-stroke",points:Va.value},null,8,Rl),(t(!0),s(x,null,j(((wn=f.panel)==null?void 0:wn.showValues)===!0?se.value:[],(n,d)=>(t(),s("text",{key:`value-${d}`,x:n.x,y:n.y<22?n.y+15:n.y-6,class:"business-line-value"},o(A(n.item)),9,Yl))),128)),(t(!0),s(x,null,j(se.value,(n,d)=>(t(),s("circle",{key:d,cx:n.x,cy:n.y,r:"3",class:N(["business-line-dot",{"is-active":d===Ga.value}])},null,10,Il))),128)),(t(!0),s(x,null,j(se.value,(n,d)=>(t(),s("circle",{key:`hit-${d}`,cx:n.x,cy:n.y,r:"13",class:"business-line-hit",onMouseenter:V=>ee.value=d},null,40,Kl))),128))])),u("div",{class:"business-line-hover-zones",style:L(Ia.value)},[(t(!0),s(x,null,j(se.value,(n,d)=>(t(),s("i",{key:`zone-${d}`,onMouseenter:V=>ee.value=d},null,40,Gl))),128))],4),Ge.value&&((($n=f.panel)==null?void 0:$n.tooltipOnHoverOnly)!==!0||Number.isInteger(ee.value))?(t(),s("div",{key:0,class:"business-line-tooltip",style:L(qn.value)},[u("span",null,o(Ge.value.item.name),1),u("strong",null,[I(o(A(Ge.value.item)),1),Ge.value.item.unit?(t(),s("em",Wl,o(Ge.value.item.unit),1)):m("",!0)])],4)):m("",!0)],32),u("div",{class:"business-line-labels",style:L(Ia.value)},[(t(!0),s(x,null,j(Ya.value,n=>(t(),s("span",{key:n.key||n.name},o(oa(n.name)),1))),128))],4)],2)):g.value==="balanceGaugeGrid"?(t(),s("div",{key:19,class:N(["business-balance-gauge-grid",{"is-single":ae.value.length===1}])},[(t(!0),s(x,null,j(ae.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-balance-gauge-card",{"is-active":d===c.value}]),style:L(Hn(n)),"data-chart-tooltip":Xa(n)},[u("div",Ul,[u("strong",null,o(ma(n)),1)]),u("div",Ol,[u("div",Hl,[u("strong",null,o(A(n)),1),fe(n)?(t(),s("em",El,o(fe(n)),1)):m("",!0)])]),u("div",Xl,o(n.name),1),n.extra?(t(),s("div",Zl,o(n.extra),1)):m("",!0)],14,Dl))),128))],2)):g.value==="gauge"?(t(),s("div",{key:20,class:N(["business-gauges",{"is-dense":Ve.value.length>3}])},[(t(!0),s(x,null,j(Ve.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-gauge-item",{"is-active":d===c.value,"is-safe":ce(n)<=0,"is-low-rate":ce(n)>0&&ce(n)<5,"is-alert":ce(n)>100}]),style:L({"--gauge-color":Dn(n,d),"--needle-rotate":`${Wn(n)}deg`}),"data-chart-tooltip":Xa(n)},[u("div",Ql,[(t(),s("svg",er,[a[19]||(a[19]=u("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),u("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${cn(n)} 100`},null,8,ar),a[20]||(a[20]=u("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),a[21]||(a[21]=u("i",{class:"business-gauge-needle"},null,-1)),a[22]||(a[22]=u("b",{class:"business-gauge-pivot"},null,-1)),u("div",nr,[u("strong",null,[I(o(A(n)),1),fe(n)?(t(),s("em",tr,o(fe(n)),1)):m("",!0)]),u("small",null,o(ma(n)),1)])]),u("span",sr,o(n.name),1),n.extra?(t(),s("small",lr,o(n.extra),1)):m("",!0)],14,Jl))),128))],2)):g.value==="heat"?(t(),s("div",{key:21,class:N(["business-heat",{"is-dense":Fe.value.length>6,"is-four-column":Fe.value.length===8}])},[(t(!0),s(x,null,j(Fe.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-heat-cell",style:L(Kn(n,d)),"data-chart-tooltip":H(n)},[a[23]||(a[23]=u("i",null,null,-1)),u("span",null,o(n.name),1),u("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",ur,o(n.unit),1)):m("",!0)])],12,rr))),128))],2)):g.value==="split"?(t(),s("div",{key:22,class:N(["business-split",{"is-dense":de.value.length>8||((jn=f.panel)==null?void 0:jn.variant)==="compact"}])},[u("div",or,[(t(!0),s(x,null,j(de.value,(n,d)=>(t(),s("i",{key:n.key||n.name,style:L({width:`${Xn(n)}%`,background:B(d)}),"data-chart-tooltip":Za(n)},null,12,ir))),128))]),u("div",cr,[(t(!0),s(x,null,j(de.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-split-row","data-chart-tooltip":Za(n)},[u("span",null,[u("i",{style:L({background:B(d)})},null,4),I(o(n.name),1)]),u("strong",null,o(A(n))+o(n.unit),1)],8,dr))),128))])],2)):(t(),aa(Ln,{key:23,rows:S.value,compact:""},null,8,["rows"])):(t(),s("div",jt,"暂无业务统计数据")),(t(),aa(_t,{to:"body"},[oe.value.visible?(t(),s("div",{key:0,class:N(["business-chart-tooltip",`is-${f.visualVersion}`]),style:L(i.value)},[u("strong",null,o(oe.value.title),1),(t(!0),s(x,null,j(oe.value.lines,n=>(t(),s("span",{key:n},o(n),1))),128))],6)):m("",!0)]))],34)}}};const vr={class:"feature-info-actions"},pr={key:0},yr=["aria-label","title"],gr={class:"feature-info"},hr={key:0,class:"feature-info-state",role:"status","aria-live":"polite"},fr={key:1,class:"feature-info-state",role:"status"},br={key:2,class:"feature-info-state",role:"status"},xr={key:0,class:"feature-table"},kr=["title"],wr={key:1,class:"feature-info-state is-inline"},Lr={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},title:{type:String,default:"详情"},compactGrassland:{type:Boolean,default:!1},closable:{type:Boolean,default:!1},rows:{type:Array,default:()=>[]}},emits:["close"],setup(f,{emit:G}){const v=f,He=G,we=_(()=>v.title||"详情"),C=_(()=>we.value.replace(/详情$/,"")||"要素"),D=_(()=>`已选${C.value}`),g=_(()=>`关闭${we.value}`),S=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"图斑面积"]],W=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],qe=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草地面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],J={"artificial-grassland":[[["plot_code","plotNo","id","name"],"图斑编号"],[["town","town_name","townName"],"所在乡镇"],[["village","village_name","villageName"],"所在村"],[["area_mu","areaMu","area_m2","areaM2"],"图斑面积"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...S,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...W],grassland:[...qe,[["pastureName","pasture_name"],"所属牧场"],...S,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...W],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...S,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...W],ecological:[[["engineering_name"],"工程类型"],[["township_name"],"所在乡镇"],[["location_unit_name"],"所在村(单位)"],[["land_type"],"地类名称"],[["source_area_mu"],"候选面积"],[["altitude_m"],"海拔"],[["slope_class"],"坡度分级"],[["latest_same_type_project_year"],"最近同类工程年份"],[["latest_same_type_project_name"],"最近同类工程"],[["same_type_project_count"],"相交同类工程数"],[["latest_project_year"],"最近工程年份"],[["latest_project_name"],"最近工程"],[["reserve_name","natural_protected_area_name"],"自然保护地名称"],[["redline_name"],"红线名称"],[["redline_code"],"红线编码"],[["functional_zone","natural_protected_area_zone"],"功能分区"],[["type"],"管控分区"],[["redline_type","ecosystem_service_type"],"红线类型"],[["management_control_requirement"],"管控要求"],[["reserve_level","natural_protected_area_level"],"保护地级别"],[["reserve_type","natural_protected_area_type"],"保护地类型"],[["area_source_mj","area_mu","area_m2"],"图斑面积"],[["original_area_m2"],"原始面积"],[["adjusted_area_m2"],"调整面积"],[["remarks"],"备注"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},de={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},reserve_level:{1:"国家级",2:"省级",3:"市级",4:"县级"},natural_protected_area_level:{1:"国家级",2:"省级",3:"市级",4:"县级"},reserve_type:{ZZ_NR:"自然保护区"},natural_protected_area_type:{ZZ_NR:"自然保护区"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},na=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),q={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",reserve_name:"自然保护地名称",natural_protected_area_name:"自然保护地名称",reserve_level:"保护地级别",natural_protected_area_level:"保护地级别",reserve_type:"保护地类型",natural_protected_area_type:"保护地类型",reserve_zone:"自然保护地范围",functional_zone:"功能分区",natural_protected_area_zone:"功能分区",redline_name:"红线名称",redline_type:"红线类型",ecosystem_service_type:"生态系统服务类型",management_control_requirement:"管控要求",area_source_mj:"图斑面积",area_m2:"图斑面积",original_area_m2:"原始面积",adjusted_area_m2:"调整面积",remarks:"备注",province_name:"所在省",county_name:"所在县域",county_display_name:"所在县域",administrative_area_name:"行政区划",redline_code:"红线编码",source_identifier:"源标识码",prefecture_name:"所在州",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},Ee=new Set(Object.keys(q)),ze=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),Xe=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),Ze=new Set(["province_name","county_name","county_display_name","administrative_area_name","prefecture_name","source_identifier"]),pe=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),Fe=new Set(["areaWanMu","area_wan_mu","area_mu","source_area_mu","area_m2","acreage","area_source_mj","original_area_m2","adjusted_area_m2","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","area_square_meter"]),Ve=[...yt].sort((l,i)=>i.length-l.length),ae=_(()=>{var l;return((l=v.feature)==null?void 0:l.properties)||{}}),re=_(()=>{var l,i,c;return((i=(l=v.feature)==null?void 0:l.feature)==null?void 0:i.geometry)||((c=v.feature)==null?void 0:c.geometry)||null}),_e=_(()=>(Array.isArray(v.rows)?v.rows:[]).map((l,i)=>({key:l.key||l.sourceKey||l.label||l.name||`external-row-${i}`,sourceKey:l.sourceKey||l.key||`external-row-${i}`,label:l.label||l.name||"",value:l.value})).filter(l=>U(l.label)&&U(l.value))),ta=_(()=>{var c,w;const l=String(((w=(c=v.feature)==null?void 0:c.layer)==null?void 0:w.key)||"").toLowerCase(),i=ae.value;return l.includes("artificial-grassland")||String(i.stageKey||"")==="artificial-grassland"}),E=_(()=>{var w,k,$,b;const l=String(((k=(w=v.feature)==null?void 0:w.layer)==null?void 0:k.key)||"").toLowerCase(),i=String(((b=($=v.feature)==null?void 0:$.layer)==null?void 0:b.layerName)||"").toLowerCase(),c=`${l} ${i}`;return c.includes("ecological-redline")||c.includes("ecological_redline")||c.includes("natural-protected-area")||c.includes("natural_protected_area")}),Be=_(()=>{var i,c;return String(((c=(i=v.feature)==null?void 0:i.layer)==null?void 0:c.key)||"").toLowerCase().includes("engineering-suitability")||!!ae.value.engineering_name}),Z=_(()=>{var $,b,Y,K,X;const l=String((($=v.feature)==null?void 0:$.id)||"").toLowerCase(),i=String(((Y=(b=v.feature)==null?void 0:b.layer)==null?void 0:Y.key)||"").toLowerCase(),c=String(((X=(K=v.feature)==null?void 0:K.layer)==null?void 0:X.layerName)||"").toLowerCase(),w=`${i} ${c}`,k=ae.value;return ta.value?"artificial-grassland":E.value||w.includes("national-park")||w.includes("restoration")||w.includes("engineering-suitability")||k.engineering_name||k.project_name||k.project_category||k.totalAcreage?"ecological":k.dlmc||l.includes("woodland")||l.includes("t_woodland")||w.includes("woodland")?"woodland":w.includes("wetland")||w.includes("shidi")||l.includes("shidi")||k.land_type==="shidi"||k.landType==="shidi"||k.land_type==="湿地"||k.landType==="湿地"||k.land_type===2||k.landType===2||k.landType==="2"?"wetland":w.includes("grassland")||w.includes("caodi")||k.grassland_category_name||k.grasslandCategory||k.basic_type_name||l.includes("caodi")||k.land_type==="caodi"||k.landType==="caodi"||k.land_type===1||k.landType===1||k.landType==="1"?"grassland":"woodland"}),Re=_(()=>{const l=[],i=new Set,w=(Z.value==="grassland"||Z.value==="wetland")&&v.compactGrassland;(w?qe:J[Z.value]||J.woodland).forEach(([b,Y])=>{const K=ua(ae.value,b,ra(Y,b),i);K&&!l.some(X=>X.label===K.label)&&(l.push(K),i.add(K.sourceKey))});const $=Ye(Z.value);return!ta.value&&!Be.value&&!l.some(b=>b.label===$||$e(b.label))&&la(l,i,$,Se(re.value),"geometry-area"),w?l.slice(0,10):(Object.entries(ae.value).forEach(([b,Y])=>{if(i.has(b)||ee(b,Y))return;const K=Ie(b,Y);if(!U(K))return;const X=ra(q[b]||ka(b));l.some(ge=>ge.value===K||ge.label===X)||(l.push({key:`fallback-${b}`,sourceKey:b,label:X,value:K}),i.add(b))}),l)}),Je=_(()=>_e.value.length?_e.value:Re.value.map((l,i)=>Oe(Ue({},l),{displayOrder:sa(l,i)})).sort((l,i)=>l.displayOrder-i.displayOrder));function sa(l,i){const c=(l==null?void 0:l.label)||"",w=String((l==null?void 0:l.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","林地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(c)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(c)?i:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(c)?100+i:c.includes("产量")||c.includes("亩产")||c.includes("植被")||c.includes("优势草种")||c.includes("优势度")||c.includes("海拔")||c.includes("地貌")||c.includes("坡")||c.includes("土壤")||c.includes("郁闭度")||c.includes("树高")||c.includes("蓄积")||c.includes("生物量")||c.includes("碳储量")?200+i:c.includes("权属")||c.includes("所有权")||c.includes("使用权")||c.includes("经营权")||c.includes("调查")||c.includes("调整")||c.includes("划区")||c.includes("单位")||w.includes("owner")||w.includes("qsdw")||w.includes("zldw")?300+i:150+i}function la(l,i,c,w,k){!U(w)||l.some($=>$.label===c||$.value===w)||(l.push({key:`static-${k}`,sourceKey:k,label:c,value:w}),i.add(k))}function ra(l,i=[]){return Z.value==="ecological"&&E.value&&ue(l,i)?"图斑面积":$e(l)?Ye(Z.value):l}function $e(l){return["图斑面积","图斑地类面积","小班面积"].includes(String(l||""))}function ue(l,i=[]){return String(l||"")==="治理面积"||$e(l)?!0:i.some(c=>Fe.has(c))}function Ye(l){return l==="grassland"||l==="artificial-grassland"?"草地面积":l==="wetland"?"湿地面积":l==="woodland"?"林地面积":l==="ecological"&&E.value?"图斑面积":"面积"}function ua(l,i,c,w=new Set){for(const k of i)if(!(w.has(k)||Ne(k))&&U(l==null?void 0:l[k])){const $=Ie(k,l[k]);if(!U($))continue;return{key:`${c}-${k}`,sourceKey:k,label:c,value:$}}return null}function U(l){return l!=null&&l!==""&&l!==" "&&l!=="null"&&l!=="undefined"}function Ie(l,i){var k;if(!U(i))return"";if((k=de[l])!=null&&k[String(i)])return de[l][String(i)];if(pe.has(l))return ha(l,i);if(["cun","village_code"].includes(l)&&je(i))return"";if(["grassland_level","grasslandLevel","level"].includes(l)&&xa(i))return Z.value==="wetland"?`${Number(i)}级湿地`:`${Number(i)}级草原`;if(na.has(l)&&je(i)||me(l,i))return"";if(Ke(l))return Me(i);if(typeof i=="number"||/^-?\d+(\.\d+)?$/.test(String(i))){const $=Number(i);if(Fe.has(l)&&$===0||$===0&&ze.has(l))return"";const b=Number.isInteger($)?`${$}`:`${Number($.toFixed(2))}`;if(l==="area_source_mj")return`${ne($*15)} 万亩`;if(Z.value==="ecological"&&E.value&&["area_mu","acreage","mj"].includes(l))return`${ne($)} 万亩`;if(Z.value==="ecological"&&E.value&&["area_m2","original_area_m2","adjusted_area_m2"].includes(l))return`${ne($/666.6667)} 万亩`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(l))return`${ye($/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(l)){const K=(l.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:l.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(ge=>{var he;return(he=ae.value)==null?void 0:he[ge]}).find(U),X=U(K)&&Number.isFinite(Number(K))?`(${Number(Number(K).toFixed(2))}%)`:"";return`${b} 亩${X}`}return["acreage","mj","area_mu","source_area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(l)?`${ye($)} 亩`:l==="altitude_m"?`${Qe($)} 米`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(l)?`${b} 头`:["relatedPastureCount","related_pasture_count"].includes(l)?`${b} 个`:["length_meter"].includes(l)?`${b} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(l)?`${b} 万亩`:["cdScl","sdScl"].includes(l)?`${b} 万吨`:["areaWanMu","area_wan_mu"].includes(l)?`${ye($*1e4)} 亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(l)?`${b} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(l)?`${b} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(l)?`${b}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(l)?`${b} 米`:["po_du","slope"].includes(l)?`${b}°`:b}const w=String(i);return Z.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(l)?w.replace(/草原/g,"湿地"):w}function ha(l,i){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(l)){const c=ba(i);if(c)return c}return fa(i)}function fa(l){const i=String(l||"").trim();if(!i)return"";const c=i.replace(/\s+/g,""),w=Cn(c);if(w)return w;const k=Ve.find(Y=>c.includes(Y));if(k)return c.slice(c.indexOf(k));const $=c.indexOf("红原县");if($>=0)return c.slice($+3)||c;const b=c.match(/县(.+)$/);return(b==null?void 0:b[1])||i}function ba(l){const i=String(l||"").trim();if(!i)return"";const c=i.replace(/\D/g,""),w=Cn(c||i);return w||(je(i)?"":i)}function je(l){return/^[0-9A-Za-z_-]{1,12}$/.test(String(l).trim())}function xa(l){return/^-?\d+(\.\d+)?$/.test(String(l).trim())}function Qe(l){return Number.isInteger(l)?`${l}`:`${Number(l.toFixed(2))}`}function ye(l){const i=Number(l);return Number.isFinite(i)?i>0&&i<.01?"<0.01":Qe(i):""}function ne(l){const i=Number(l)/1e4;return Number.isFinite(i)?i>0&&i<.01?"<0.01":Qe(i):""}function Ke(l){return["survey_time","dc_rq","create_time","update_time"].includes(String(l))}function Me(l){const i=String(l);return/^\d{4}-\d{2}-\d{2}/.test(i)?i.slice(0,10):i}function Ne(l){const i=String(l).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(i)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(i)||["shape_leng","shape_length","length","perimeter"].includes(i)||["patch_no","land_number","plot_code","patch_code","tbybh"].includes(i)?!0:["xzqdm","area_code","town_code","redline_code","redline_type_code","reserve_code","source_code","administrative_area_code","county_code"].includes(i)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(i)||i.endsWith("_code")||i.endsWith("dm")||i.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(i)?!0:i.includes("geom")||i.includes("boundary")||i.includes("wkb")}function ee(l,i){var w;if(Ne(l)||!U(i))return!0;const c=String(l).toLowerCase();return!!(Z.value==="ecological"&&E.value&&Ze.has(c)||Xe.has(c)||c.includes("number")||c.includes("patch_no")||!Ee.has(l)||je(i)&&!((w=de[l])!=null&&w[String(i)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(l))}function me(l,i){var c;return!je(i)||(c=de[l])!=null&&c[String(i)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(l)}function Se(l){const i=oe(l);if(!i)return"";const c=i/666.6667;return Z.value==="ecological"&&E.value?`${ne(c)} 万亩`:`${ye(c)} 亩`}function oe(l){return l!=null&&l.coordinates?l.type==="Polygon"?Ce(l.coordinates):l.type==="MultiPolygon"?l.coordinates.reduce((i,c)=>i+Ce(c),0):0:0}function Ce(l=[]){if(!l.length)return 0;const[i,...c]=l,w=Math.abs(te(i)),k=c.reduce(($,b)=>$+Math.abs(te(b)),0);return Math.max(0,w-k)}function te(l=[]){if(l.length<3)return 0;const i=l.reduce(($,b)=>$+Number((b==null?void 0:b[1])||0),0)/l.length,c=111320,w=c*Math.cos(i*Math.PI/180);let k=0;for(let $=0;$i.toUpperCase())}return(l,i)=>(t(),aa(pt,{class:"feature-info-card",title:we.value,width:f.width,height:f.height},{extra:za(()=>[u("div",vr,[f.feature&&!f.loading?(t(),s("span",pr,o(D.value),1)):m("",!0),f.closable?(t(),s("button",{key:1,type:"button","aria-label":g.value,title:g.value,onClick:i[0]||(i[0]=Q(c=>He("close"),["stop"]))}," 关闭 ",8,yr)):m("",!0)])]),default:za(()=>[u("div",gr,[f.loading?(t(),s("div",hr,"正在查询"+o(C.value)+"信息",1)):f.empty?(t(),s("div",fr,"当前点击位置未查询到"+o(C.value),1)):f.feature?(t(),s(x,{key:3},[Je.value.length?(t(),s("div",xr,[(t(!0),s(x,null,j(Je.value,c=>(t(),s("div",{key:c.key,class:"feature-row"},[u("span",null,o(c.label),1),u("strong",{title:c.value},o(c.value),9,kr)]))),128))])):(t(),s("div",wr,"当前图斑暂无可展示的业务字段"))],64)):(t(),s("div",br,"点击地图图层查看"+o(C.value)+"信息",1))])]),_:1},8,["title","width","height"]))}};export{Lr as _,Cr as a}; diff --git a/docs/assets/LayerPanel-921f9e3d-1785726778446.js b/docs/assets/LayerPanel-5e7fd226-1785858872961.js similarity index 95% rename from docs/assets/LayerPanel-921f9e3d-1785726778446.js rename to docs/assets/LayerPanel-5e7fd226-1785858872961.js index 1269bab..33b9ed3 100644 --- a/docs/assets/LayerPanel-921f9e3d-1785726778446.js +++ b/docs/assets/LayerPanel-5e7fd226-1785858872961.js @@ -1 +1 @@ -import{g as o,o as s,C as z,x as I,a as i,n as g,c as r,F as k,y as m,f as L,t as b,K as w,j as h}from"./index-1785726778446.js";import{_ as R}from"./index-7b46d381-1785726778446.js";import{b as j}from"./townshipBoundaries-8867fad4-1785726778446.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],$=["onClick"],G={key:0,class:"layer-panel-empty"},J={key:1,class:"layer-panel-legend"},Q=["disabled","title","onClick"],U={class:"legend-name"},W={key:0,class:"legend-check"},X={key:1,class:"layer-panel-empty is-legend"},le={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:248},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(d,{emit:V}){const t=d,p=V,f=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),v=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),c=o(()=>Array.isArray(t.legends)?t.legends:[]),C=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),A=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),x=o(()=>c.value.filter(K).length>1),M=o(()=>c.value.length===1),O=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),T=o(()=>{const l=t.legendOnly?0:f.value.length+v.value.length,e=t.showLegend?Math.ceil(c.value.length/2):0,a=l?l*34+Math.max(0,l-1)*5:30,u=t.showLegend?c.value.length?30+Math.max(28,e*28):28:0,q=t.showLegend?172:108;return Math.max(q,Math.min(430,72+a+u))}),N=o(()=>t.compact?t.height||T.value:t.height?t.height:430);function F(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const u=new Set(C.value);u.has(l)?u.delete(l):u.add(l),p("update:modelValue",Array.from(u));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return C.value.includes(String(n))}function H(n,l){var a,u;(u=(a=n.currentTarget)==null?void 0:a.blur)==null||u.call(a);const e=new Set(A.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function _(n){return A.value.includes(String(n))}function B(n={}){const l=n.color||n.fillColor||n.strokeColor||"";return l?{"--layer-item-color":l}:null}function P(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),y(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function K(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function y(n){return x.value&&K(n)}return(n,l)=>(s(),z(R,{title:O.value,width:d.width,height:N.value},{default:I(()=>[i("div",{class:g(["layer-panel",{"is-legend-only":d.legendOnly,"is-compact":d.compact,"is-without-legend":!d.showLegend}])},[d.legendOnly?h("",!0):(s(),r("div",D,[(s(!0),r(k,null,m(f.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=L(()=>{},["prevent"])),onClick:a=>F(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,E))),128)),(s(!0),r(k,null,m(v.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":_(e.key),"is-checked":_(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=L(()=>{},["prevent"])),onClick:a=>H(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,$))),128)),!f.value.length&&!v.value.length?(s(),r("div",G,"暂无图层配置")):h("",!0)])),d.showLegend?(s(),r("div",J,[l[3]||(l[3]=i("div",{class:"layer-panel-section-title"},"图例",-1)),c.value.length?(s(),r("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":M.value}])},[(s(!0),r(k,null,m(c.value,e=>(s(),r("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":y(e)&&e.key===d.selectedLegendKey,"is-checkable":y(e),"is-disabled":!y(e)}]),type:"button",disabled:!y(e),title:e.name,onMousedown:l[2]||(l[2]=L(()=>{},["prevent"])),onClick:a=>P(a,e)},[i("span",{class:"legend-swatch",style:w({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),i("span",U,b(e.name),1),y(e)?(s(),r("i",W)):h("",!0)],42,Q))),128))],2)):(s(),r("div",X,"暂无图例"))])):h("",!0)],2)]),_:1},8,["title","width","height"]))}};export{le as _}; +import{g as o,o as s,C as z,x as I,a as i,n as g,c as r,F as k,y as m,f as L,t as b,K as w,j as h}from"./index-1785858872961.js";import{_ as R}from"./index-8ffdff7e-1785858872961.js";import{b as j}from"./townshipBoundaries-8867fad4-1785858872961.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],$=["onClick"],G={key:0,class:"layer-panel-empty"},J={key:1,class:"layer-panel-legend"},Q=["disabled","title","onClick"],U={class:"legend-name"},W={key:0,class:"legend-check"},X={key:1,class:"layer-panel-empty is-legend"},le={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:248},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(d,{emit:V}){const t=d,p=V,f=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),v=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),c=o(()=>Array.isArray(t.legends)?t.legends:[]),C=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),A=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),x=o(()=>c.value.filter(K).length>1),M=o(()=>c.value.length===1),O=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),T=o(()=>{const l=t.legendOnly?0:f.value.length+v.value.length,e=t.showLegend?Math.ceil(c.value.length/2):0,a=l?l*34+Math.max(0,l-1)*5:30,u=t.showLegend?c.value.length?30+Math.max(28,e*28):28:0,q=t.showLegend?172:108;return Math.max(q,Math.min(430,72+a+u))}),N=o(()=>t.compact?t.height||T.value:t.height?t.height:430);function F(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const u=new Set(C.value);u.has(l)?u.delete(l):u.add(l),p("update:modelValue",Array.from(u));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return C.value.includes(String(n))}function H(n,l){var a,u;(u=(a=n.currentTarget)==null?void 0:a.blur)==null||u.call(a);const e=new Set(A.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function _(n){return A.value.includes(String(n))}function B(n={}){const l=n.color||n.fillColor||n.strokeColor||"";return l?{"--layer-item-color":l}:null}function P(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),y(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function K(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function y(n){return x.value&&K(n)}return(n,l)=>(s(),z(R,{title:O.value,width:d.width,height:N.value},{default:I(()=>[i("div",{class:g(["layer-panel",{"is-legend-only":d.legendOnly,"is-compact":d.compact,"is-without-legend":!d.showLegend}])},[d.legendOnly?h("",!0):(s(),r("div",D,[(s(!0),r(k,null,m(f.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=L(()=>{},["prevent"])),onClick:a=>F(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,E))),128)),(s(!0),r(k,null,m(v.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":_(e.key),"is-checked":_(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=L(()=>{},["prevent"])),onClick:a=>H(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,$))),128)),!f.value.length&&!v.value.length?(s(),r("div",G,"暂无图层配置")):h("",!0)])),d.showLegend?(s(),r("div",J,[l[3]||(l[3]=i("div",{class:"layer-panel-section-title"},"图例",-1)),c.value.length?(s(),r("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":M.value}])},[(s(!0),r(k,null,m(c.value,e=>(s(),r("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":y(e)&&e.key===d.selectedLegendKey,"is-checkable":y(e),"is-disabled":!y(e)}]),type:"button",disabled:!y(e),title:e.name,onMousedown:l[2]||(l[2]=L(()=>{},["prevent"])),onClick:a=>P(a,e)},[i("span",{class:"legend-swatch",style:w({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),i("span",U,b(e.name),1),y(e)?(s(),r("i",W)):h("",!0)],42,Q))),128))],2)):(s(),r("div",X,"暂无图例"))])):h("",!0)],2)]),_:1},8,["title","width","height"]))}};export{le as _}; diff --git a/docs/assets/LayerPanel-60397a69-balabala-1785726778446.css b/docs/assets/LayerPanel-60397a69-balabala-1785858872961.css similarity index 100% rename from docs/assets/LayerPanel-60397a69-balabala-1785726778446.css rename to docs/assets/LayerPanel-60397a69-balabala-1785858872961.css diff --git a/docs/assets/SmartChartRenderer-d940c77a-1785726778446.js b/docs/assets/SmartChartRenderer-2248245e-1785858872961.js similarity index 97% rename from docs/assets/SmartChartRenderer-d940c77a-1785726778446.js rename to docs/assets/SmartChartRenderer-2248245e-1785858872961.js index 592670a..73452b2 100644 --- a/docs/assets/SmartChartRenderer-d940c77a-1785726778446.js +++ b/docs/assets/SmartChartRenderer-2248245e-1785858872961.js @@ -1,2 +1,2 @@ -var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,M as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1785726778446.js";import{H as j}from"./index.esm.min-4f309085-1785726778446.js";const G={class:"smart-chart-header"},M={key:0},I={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} +var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,M as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1785858872961.js";import{H as j}from"./index.esm.min-b7db2517-1785858872961.js";const G={class:"smart-chart-header"},M={key:0},I={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} {d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`
${e.extra}`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(g(),h("div",{class:E(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(g(),h("span",M,x(S.value),1)):_("",!0)]),a.chart.unit?(g(),h("em",I,x(a.chart.unit),1)):_("",!0)]),V(q(j),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default}; diff --git a/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1785726778446.css b/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1785858872961.css similarity index 100% rename from docs/assets/SmartChartRenderer-7a3a96b9-balabala-1785726778446.css rename to docs/assets/SmartChartRenderer-7a3a96b9-balabala-1785858872961.css diff --git a/docs/assets/TopicSwitcher-0aae51d1-1785726778446.js b/docs/assets/TopicSwitcher-12ae75fc-1785858872961.js similarity index 99% rename from docs/assets/TopicSwitcher-0aae51d1-1785726778446.js rename to docs/assets/TopicSwitcher-12ae75fc-1785858872961.js index 6ca94dc..0417044 100644 --- a/docs/assets/TopicSwitcher-0aae51d1-1785726778446.js +++ b/docs/assets/TopicSwitcher-12ae75fc-1785858872961.js @@ -1,2 +1,2 @@ -var Oe=Object.defineProperty,Ge=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var oe=Object.getOwnPropertySymbols;var Qe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var ae=(d,t,e)=>t in d?Oe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ce=(d,t)=>{for(var e in t||(t={}))Qe.call(t,e)&&ae(d,e,t[e]);if(oe)for(var e of oe(t))Pe.call(t,e)&&ae(d,e,t[e]);return d},le=(d,t)=>Ge(d,Fe(t));import{ao as He,ap as te,aq as Ie,z as Ae,w as O,ar as ie,as as H,p as V,C as M,at as y,au as ve,f as Ke,d as je,a as P,S as N,av as S,a6 as ye,a7 as Y,V as U,aw as Ve,ax as Ye,O as Se,ay as Be,az as Xe,aA as Je,v as be,aB as ke,R as se,m as We,aC as J,L as qe,h as Le,D as ze,aD as _e,aE as Ze,b as $e,aF as et,H as tt,E as st,a5 as nt,G as W,_ as rt,am as At,Z as it,aG as ot,aH as at,aI as ct,aJ as Me,aK as ue,a8 as De,N as lt,aL as ut,aM as dt,aN as ft,u as ht,aO as pt,aP as gt,aQ as mt,ad as Tt,aR as de,aS as fe,aT as he,aU as pe,aa as Et,af as Rt,aV as wt,aW as Ct}from"./screen2Standard-f38b9a2d-1785726778446.js";import{f as ge}from"./townshipBoundaries-8867fad4-1785726778446.js";import{g as xt,o as v,c as K,a as q,F as It,y as yt,n as z,K as St,t as me,j as Bt}from"./index-1785726778446.js";class bt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Rs(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new Ae;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new os(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[l]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+l+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Lt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Mt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Vt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Yt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Xt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,l=s.byteStride,u=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,l,u,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*l);return n.decodeGltfBuffer(new Uint8Array(f),c,l,u,s.mode,s.filter),f})})}else return null}}class Jt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),l=c.isGroup?c.children:[c],u=a[0].count,f=[];for(const h of l){const g=new Y,p=new U,m=new De,E=new U(1,1,1),w=new Ve(h.geometry,h.material,u);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const is=new Y;class os{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Lt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new Be(this.options.manager):this.textureLoader=new Xe(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new V(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return D(A,o,s),L(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(b,B[x*i+1]),i>=3&&p.setZ(b,B[x*i+2]),i>=4&&p.setW(b,B[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const u=(A.samplers||{})[n.sampler]||{};return c.magFilter=we[u.magFilter]||be,c.minFilter=we[u.minFilter]||ke,c.wrapS=Ce[u.wrapS]||se,c.wrapT=Ce[u.wrapT]||se,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(l=>l.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(l){a=!0;const u=new Blob([l],{type:n.mimeType});return i=o.createObjectURL(u),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(l){return new Promise(function(u,f){let h=u;e.isImageBitmapLoader===!0&&(h=function(g){const p=new de(g);p.needsUpdate=!0,u(p)}),e.load(H.resolveURL(l,A.path),h,void 0,f)})}).then(function(l){return a===!0&&o.revokeObjectURL(i),l.userData.mimeType=n.mimeType||As(n.uri),l}).catch(function(l){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),l});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new We,J.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new qe,J.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return Le}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const l=s[T.KHR_MATERIALS_UNLIT];n=l.getMaterialType(),a.push(l.extendParams(o,A,e))}else{const l=A.pbrMetallicRoughness||{};if(o.color=new M(1,1,1),o.opacity=1,Array.isArray(l.baseColorFactor)){const u=l.baseColorFactor;o.color.setRGB(u[0],u[1],u[2],y),o.opacity=u[3]}l.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",l.baseColorTexture,N)),o.metalness=l.metallicFactor!==void 0?l.metallicFactor:1,o.roughness=l.roughnessFactor!==void 0?l.roughnessFactor:1,l.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",l.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",l.metallicRoughnessTexture))),n=this._invokeOne(function(u){return u.getMaterialType&&u.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(u){return u.extendMaterialParams&&u.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=ze);const c=A.alphaMode||Z.OPAQUE;if(c===Z.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===Z.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==P&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new ye(1,1),A.normalTexture.scale!==void 0)){const l=A.normalTexture.scale;o.normalScale.set(l,l)}if(A.occlusionTexture!==void 0&&n!==P&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==P){const l=A.emissiveFactor;o.emissive=new M().setRGB(l[0],l[1],l[2],y)}return A.emissiveTexture!==void 0&&n!==P&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,N)),Promise.all(a).then(function(){const l=new n(o);return A.name&&(l.name=A.name),L(l,A),e.associations.set(l,{materials:t}),A.extensions&&D(s,l,A),l})}createUniqueName(t){const e=_e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return xe(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&ns(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),L(m,A),p.extensions&&D(s,m,p),e.assignFinalMaterial(m),l.push(m)}for(let f=0,h=l.length;f1?c=new W:a.length===1?c=a[0]:c=new Se,c!==a[0])for(let l=0,u=a.length;l{const l=new Map;for(const[u,f]of s.associations)(u instanceof J||u instanceof de)&&l.set(u,f);return c.traverse(u=>{const f=s.associations.get(u);f!=null&&l.set(u,f)}),l};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];k[A.path]===k.weights?t.traverse(function(u){u.morphTargetInfluences&&i.push(u.name?u.name:u.uuid)}):i.push(o);let a;switch(k[A.path]){case k.weights:a=he;break;case k.rotation:a=pe;break;case k.position:case k.scale:a=fe;break;default:switch(r.itemSize){case 1:a=he;break;case 2:case 3:default:a=fe;break}break}const c=s.interpolation!==void 0?es[s.interpolation]:Me,l=this._getArrayFromAccessor(r);for(let u=0,f=i.length;u{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,N).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if(ee.has(t)){const i=ee.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),ee.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new Ae;t.index&&e.setIndex(new O(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ls.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const l=c.draco,u=new l.Decoder;try{const f=e(l,u,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{l.destroy(u)}});break}};function e(n,o,i,a){const c=a.attributeIDs,l=a.attributeTypes;let u,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)u=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,u);else if(h===n.POINT_CLOUD)u=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,u);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||u.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[l[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(u,w);else{if(w=o.GetAttributeId(u,n[c[p]]),w===-1)continue;E=o.GetAttribute(u,w)}const R=s(n,o,u,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,u)),n.destroy(u),g}function r(n,o,i){const c=i.num_faces()*3,l=c*4,u=n._malloc(l);o.GetTrianglesUInt32Array(i,l,u);const f=new Uint32Array(n.HEAPF32.buffer,u,c).slice();return n._free(u),{array:f,itemSize:1}}function s(n,o,i,a,c,l){const u=l.num_components(),h=i.num_points()*u,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,l,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:u}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let j={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const us=Object.values(j);class ws extends bt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new Ct;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:kt,name:"GLTFLoader"},{loader:Be,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new cs;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&j[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof ie&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[j[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(le(ce({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:us.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===j.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Cs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",xs=""+new URL("pathLine2-d4134d4b-balabala-1785726778446.png",import.meta.url).href,Is="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ys="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ss=""+new URL("ocean-bg-8c848b8f-balabala-1785726778446.png",import.meta.url).href,Bs=""+new URL("rotationBorder1-2ce8e0ef-balabala-1785726778446.png",import.meta.url).href,bs=""+new URL("rotationBorder2-7496b968-balabala-1785726778446.png",import.meta.url).href,ks=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1785726778446.png",import.meta.url).href,Ls="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Ms="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Ds=""+new URL("huiguang-3c5dfda5-balabala-1785726778446.png",import.meta.url).href,Ns="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Gs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",Fs=""+new URL("focus_bg-b6803e2d-balabala-1785726778446.png",import.meta.url).href,Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",Ps=""+new URL("focus_move_bg-cf41417a-balabala-1785726778446.png",import.meta.url).href;const ds={class:"topic-switcher-menu"},fs=["aria-selected","onPointerup","onClick"],hs={class:"topic-title"},ps={key:0},Hs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>ge},compact:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=xt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:ge});function o(i,a){var l,u;if((u=(l=i.currentTarget)==null?void 0:l.blur)==null||u.call(l),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(v(),K("div",{class:z(["topic-switcher",{"is-compact":d.compact}]),role:"tablist","aria-label":"专题切换"},[q("div",ds,[(v(!0),K(It,null,yt(n.value,c=>(v(),K("button",{key:c.key,class:z(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:St({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",role:"tab","aria-selected":c.key===d.modelValue,onPointerup:l=>o(l,c.key),onClick:l=>o(l,c.key)},[q("span",{class:z(["topic-name",{"has-sub-name":c.subName}])},[q("span",hs,me(c.name),1),c.subName?(v(),K("small",ps,me(c.subName),1)):Bt("",!0)],2)],46,fs))),128))])],2))}};export{bt as E,ws as R,Hs as _,bs as a,Cs as b,ks as c,Is as d,Ms as e,Ns as f,Ls as g,Ds as h,Us as i,Os as j,Gs as k,Fs as l,Qs as m,Ps as n,Ss as o,xs as p,Rs as q,Bs as r,ys as s}; +var Oe=Object.defineProperty,Ge=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var oe=Object.getOwnPropertySymbols;var Qe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var ae=(d,t,e)=>t in d?Oe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ce=(d,t)=>{for(var e in t||(t={}))Qe.call(t,e)&&ae(d,e,t[e]);if(oe)for(var e of oe(t))Pe.call(t,e)&&ae(d,e,t[e]);return d},le=(d,t)=>Ge(d,Fe(t));import{ao as He,ap as te,aq as Ie,z as Ae,w as O,ar as ie,as as H,p as V,C as M,at as y,au as ve,f as Ke,d as je,a as P,S as N,av as S,a6 as ye,a7 as Y,V as U,aw as Ve,ax as Ye,O as Se,ay as Be,az as Xe,aA as Je,v as be,aB as ke,R as se,m as We,aC as J,L as qe,h as Le,D as ze,aD as _e,aE as Ze,b as $e,aF as et,H as tt,E as st,a5 as nt,G as W,_ as rt,am as At,Z as it,aG as ot,aH as at,aI as ct,aJ as Me,aK as ue,a8 as De,N as lt,aL as ut,aM as dt,aN as ft,u as ht,aO as pt,aP as gt,aQ as mt,ad as Tt,aR as de,aS as fe,aT as he,aU as pe,aa as Et,af as Rt,aV as wt,aW as Ct}from"./screen2Standard-2d8b09ac-1785858872961.js";import{f as ge}from"./townshipBoundaries-8867fad4-1785858872961.js";import{g as xt,o as v,c as K,a as q,F as It,y as yt,n as z,K as St,t as me,j as Bt}from"./index-1785858872961.js";class bt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Rs(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new Ae;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new os(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[l]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+l+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Lt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Mt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Vt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Yt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Xt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,l=s.byteStride,u=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,l,u,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*l);return n.decodeGltfBuffer(new Uint8Array(f),c,l,u,s.mode,s.filter),f})})}else return null}}class Jt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),l=c.isGroup?c.children:[c],u=a[0].count,f=[];for(const h of l){const g=new Y,p=new U,m=new De,E=new U(1,1,1),w=new Ve(h.geometry,h.material,u);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const is=new Y;class os{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Lt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new Be(this.options.manager):this.textureLoader=new Xe(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new V(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return D(A,o,s),L(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(b,B[x*i+1]),i>=3&&p.setZ(b,B[x*i+2]),i>=4&&p.setW(b,B[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const u=(A.samplers||{})[n.sampler]||{};return c.magFilter=we[u.magFilter]||be,c.minFilter=we[u.minFilter]||ke,c.wrapS=Ce[u.wrapS]||se,c.wrapT=Ce[u.wrapT]||se,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(l=>l.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(l){a=!0;const u=new Blob([l],{type:n.mimeType});return i=o.createObjectURL(u),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(l){return new Promise(function(u,f){let h=u;e.isImageBitmapLoader===!0&&(h=function(g){const p=new de(g);p.needsUpdate=!0,u(p)}),e.load(H.resolveURL(l,A.path),h,void 0,f)})}).then(function(l){return a===!0&&o.revokeObjectURL(i),l.userData.mimeType=n.mimeType||As(n.uri),l}).catch(function(l){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),l});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new We,J.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new qe,J.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return Le}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const l=s[T.KHR_MATERIALS_UNLIT];n=l.getMaterialType(),a.push(l.extendParams(o,A,e))}else{const l=A.pbrMetallicRoughness||{};if(o.color=new M(1,1,1),o.opacity=1,Array.isArray(l.baseColorFactor)){const u=l.baseColorFactor;o.color.setRGB(u[0],u[1],u[2],y),o.opacity=u[3]}l.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",l.baseColorTexture,N)),o.metalness=l.metallicFactor!==void 0?l.metallicFactor:1,o.roughness=l.roughnessFactor!==void 0?l.roughnessFactor:1,l.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",l.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",l.metallicRoughnessTexture))),n=this._invokeOne(function(u){return u.getMaterialType&&u.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(u){return u.extendMaterialParams&&u.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=ze);const c=A.alphaMode||Z.OPAQUE;if(c===Z.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===Z.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==P&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new ye(1,1),A.normalTexture.scale!==void 0)){const l=A.normalTexture.scale;o.normalScale.set(l,l)}if(A.occlusionTexture!==void 0&&n!==P&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==P){const l=A.emissiveFactor;o.emissive=new M().setRGB(l[0],l[1],l[2],y)}return A.emissiveTexture!==void 0&&n!==P&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,N)),Promise.all(a).then(function(){const l=new n(o);return A.name&&(l.name=A.name),L(l,A),e.associations.set(l,{materials:t}),A.extensions&&D(s,l,A),l})}createUniqueName(t){const e=_e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return xe(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&ns(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),L(m,A),p.extensions&&D(s,m,p),e.assignFinalMaterial(m),l.push(m)}for(let f=0,h=l.length;f1?c=new W:a.length===1?c=a[0]:c=new Se,c!==a[0])for(let l=0,u=a.length;l{const l=new Map;for(const[u,f]of s.associations)(u instanceof J||u instanceof de)&&l.set(u,f);return c.traverse(u=>{const f=s.associations.get(u);f!=null&&l.set(u,f)}),l};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];k[A.path]===k.weights?t.traverse(function(u){u.morphTargetInfluences&&i.push(u.name?u.name:u.uuid)}):i.push(o);let a;switch(k[A.path]){case k.weights:a=he;break;case k.rotation:a=pe;break;case k.position:case k.scale:a=fe;break;default:switch(r.itemSize){case 1:a=he;break;case 2:case 3:default:a=fe;break}break}const c=s.interpolation!==void 0?es[s.interpolation]:Me,l=this._getArrayFromAccessor(r);for(let u=0,f=i.length;u{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,N).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if(ee.has(t)){const i=ee.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),ee.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new Ae;t.index&&e.setIndex(new O(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ls.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const l=c.draco,u=new l.Decoder;try{const f=e(l,u,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{l.destroy(u)}});break}};function e(n,o,i,a){const c=a.attributeIDs,l=a.attributeTypes;let u,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)u=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,u);else if(h===n.POINT_CLOUD)u=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,u);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||u.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[l[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(u,w);else{if(w=o.GetAttributeId(u,n[c[p]]),w===-1)continue;E=o.GetAttribute(u,w)}const R=s(n,o,u,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,u)),n.destroy(u),g}function r(n,o,i){const c=i.num_faces()*3,l=c*4,u=n._malloc(l);o.GetTrianglesUInt32Array(i,l,u);const f=new Uint32Array(n.HEAPF32.buffer,u,c).slice();return n._free(u),{array:f,itemSize:1}}function s(n,o,i,a,c,l){const u=l.num_components(),h=i.num_points()*u,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,l,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:u}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let j={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const us=Object.values(j);class ws extends bt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new Ct;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:kt,name:"GLTFLoader"},{loader:Be,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new cs;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&j[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof ie&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[j[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(le(ce({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:us.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===j.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Cs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",xs=""+new URL("pathLine2-d4134d4b-balabala-1785858872961.png",import.meta.url).href,Is="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ys="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ss=""+new URL("ocean-bg-8c848b8f-balabala-1785858872961.png",import.meta.url).href,Bs=""+new URL("rotationBorder1-2ce8e0ef-balabala-1785858872961.png",import.meta.url).href,bs=""+new URL("rotationBorder2-7496b968-balabala-1785858872961.png",import.meta.url).href,ks=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1785858872961.png",import.meta.url).href,Ls="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Ms="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Ds=""+new URL("huiguang-3c5dfda5-balabala-1785858872961.png",import.meta.url).href,Ns="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Gs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",Fs=""+new URL("focus_bg-b6803e2d-balabala-1785858872961.png",import.meta.url).href,Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",Ps=""+new URL("focus_move_bg-cf41417a-balabala-1785858872961.png",import.meta.url).href;const ds={class:"topic-switcher-menu"},fs=["aria-selected","onPointerup","onClick"],hs={class:"topic-title"},ps={key:0},Hs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>ge},compact:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=xt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:ge});function o(i,a){var l,u;if((u=(l=i.currentTarget)==null?void 0:l.blur)==null||u.call(l),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(v(),K("div",{class:z(["topic-switcher",{"is-compact":d.compact}]),role:"tablist","aria-label":"专题切换"},[q("div",ds,[(v(!0),K(It,null,yt(n.value,c=>(v(),K("button",{key:c.key,class:z(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:St({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",role:"tab","aria-selected":c.key===d.modelValue,onPointerup:l=>o(l,c.key),onClick:l=>o(l,c.key)},[q("span",{class:z(["topic-name",{"has-sub-name":c.subName}])},[q("span",hs,me(c.name),1),c.subName?(v(),K("small",ps,me(c.subName),1)):Bt("",!0)],2)],46,fs))),128))])],2))}};export{bt as E,ws as R,Hs as _,bs as a,Cs as b,ks as c,Is as d,Ms as e,Ns as f,Ls as g,Ds as h,Us as i,Os as j,Gs as k,Fs as l,Qs as m,Ps as n,Ss as o,xs as p,Rs as q,Bs as r,ys as s}; diff --git a/docs/assets/TopicSwitcher-b6474311-balabala-1785726778446.css b/docs/assets/TopicSwitcher-b6474311-balabala-1785858872961.css similarity index 100% rename from docs/assets/TopicSwitcher-b6474311-balabala-1785726778446.css rename to docs/assets/TopicSwitcher-b6474311-balabala-1785858872961.css diff --git a/docs/assets/area-b57940eb-balabala-1785726778446.png b/docs/assets/area-b57940eb-balabala-1785858872961.png similarity index 100% rename from docs/assets/area-b57940eb-balabala-1785726778446.png rename to docs/assets/area-b57940eb-balabala-1785858872961.png diff --git a/docs/assets/assets-5661f996-1785726778446.js b/docs/assets/assets-0c374c8c-1785858872961.js similarity index 85% rename from docs/assets/assets-5661f996-1785726778446.js rename to docs/assets/assets-0c374c8c-1785858872961.js index 9cafe8c..c238771 100644 --- a/docs/assets/assets-5661f996-1785726778446.js +++ b/docs/assets/assets-0c374c8c-1785858872961.js @@ -1 +1 @@ -var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-f38b9a2d-1785726778446.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{g as n,a as h,H as q,C as G}from"./index-7b548b42-1785726778446.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; +var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-2d8b09ac-1785858872961.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{g as n,a as h,H as q,C as G}from"./index-1891ee64-1785858872961.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; diff --git a/docs/assets/balanceApi-994e7f98-1785726778446.js b/docs/assets/balanceApi-a2c0a6b6-1785858872961.js similarity index 94% rename from docs/assets/balanceApi-994e7f98-1785726778446.js rename to docs/assets/balanceApi-a2c0a6b6-1785858872961.js index 6a3e5ef..15cf2cf 100644 --- a/docs/assets/balanceApi-994e7f98-1785726778446.js +++ b/docs/assets/balanceApi-a2c0a6b6-1785858872961.js @@ -1 +1 @@ -var u=(r,t,e)=>new Promise((i,c)=>{var a=n=>{try{s(e.next(n))}catch(f){c(f)}},A=n=>{try{s(e.throw(n))}catch(f){c(f)}},s=n=>n.done?i(n.value):Promise.resolve(n.value).then(a,A);s((e=e.apply(r,t)).next())});import{r as g,n as w}from"./index-e33f4373-1785726778446.js";const l=b("/jsyApi"),y="/openApi";function v(r,t){return/^https?:\/\//.test(t)?t:`${r}${t.startsWith("/")?t:`/${t}`}`}function b(r){const t=String(r||"/jsyApi").replace(/\/+$/,"");return t.endsWith("/api")?t:`${t}/api`}function h(r){if((r==null?void 0:r.success)===!1||(r==null?void 0:r.code)!==void 0&&![0,200,"0","200"].includes(r.code)){const e=new Error((r==null?void 0:r.msg)||(r==null?void 0:r.message)||"接口请求失败");throw e.code=r==null?void 0:r.code,e}return w(r)}function o(r,t,e,i={}){return g(v(r,t),{params:e,timeout:i.timeout||16e3}).then(h)}function m(r){return Array.isArray(r)?r:Array.isArray(r==null?void 0:r.rows)?r.rows:Array.isArray(r==null?void 0:r.list)?r.list:Array.isArray(r==null?void 0:r.data)?r.data:[]}function _(r){return Array.isArray(r)?r.length>0:!r||typeof r!="object"?r!=null&&r!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(e=>r[e]!==void 0&&r[e]!==null&&r[e]!=="")}function R(){return u(this,arguments,function*({areaCode:r}={}){const t={areaCode:r},e=[()=>o(l,"/ai/livestockBalance",t,{timeout:18e3}),()=>o(y,"/ai/balance/advice",t,{timeout:18e3})];let i;for(const c of e)try{const a=yield c();if(_(a))return a}catch(a){i=a}throw i||new Error("草畜平衡接口不可用")})}function B(){return u(this,null,function*(){const r=[()=>o(l,"/ai/livestockBalanceRows",{},{timeout:18e3}),()=>o(y,"/ai/balance/areaRows",{},{timeout:18e3})];let t;for(const e of r)try{const i=m(yield e());if(i.length)return i}catch(i){t=i}if(t)throw t;return[]})}function C(r){return u(this,null,function*(){const t=[()=>o(l,"/area/children",{areaCode:r},{timeout:12e3}),()=>o(l,"/map/areaCode",{areaCode:r},{timeout:12e3})];let e,i=!1;for(const c of t)try{const a=m(yield c());if(a.length)return a;i=!0}catch(a){e=a}if(i)return[];throw e||new Error("区划接口不可用")})}export{C as a,R as b,B as g}; +var u=(r,t,e)=>new Promise((i,c)=>{var a=n=>{try{s(e.next(n))}catch(f){c(f)}},A=n=>{try{s(e.throw(n))}catch(f){c(f)}},s=n=>n.done?i(n.value):Promise.resolve(n.value).then(a,A);s((e=e.apply(r,t)).next())});import{r as g,n as w}from"./index-d6700f13-1785858872961.js";const l=b("/jsyApi"),y="/openApi";function v(r,t){return/^https?:\/\//.test(t)?t:`${r}${t.startsWith("/")?t:`/${t}`}`}function b(r){const t=String(r||"/jsyApi").replace(/\/+$/,"");return t.endsWith("/api")?t:`${t}/api`}function h(r){if((r==null?void 0:r.success)===!1||(r==null?void 0:r.code)!==void 0&&![0,200,"0","200"].includes(r.code)){const e=new Error((r==null?void 0:r.msg)||(r==null?void 0:r.message)||"接口请求失败");throw e.code=r==null?void 0:r.code,e}return w(r)}function o(r,t,e,i={}){return g(v(r,t),{params:e,timeout:i.timeout||16e3}).then(h)}function m(r){return Array.isArray(r)?r:Array.isArray(r==null?void 0:r.rows)?r.rows:Array.isArray(r==null?void 0:r.list)?r.list:Array.isArray(r==null?void 0:r.data)?r.data:[]}function _(r){return Array.isArray(r)?r.length>0:!r||typeof r!="object"?r!=null&&r!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(e=>r[e]!==void 0&&r[e]!==null&&r[e]!=="")}function R(){return u(this,arguments,function*({areaCode:r}={}){const t={areaCode:r},e=[()=>o(l,"/ai/livestockBalance",t,{timeout:18e3}),()=>o(y,"/ai/balance/advice",t,{timeout:18e3})];let i;for(const c of e)try{const a=yield c();if(_(a))return a}catch(a){i=a}throw i||new Error("草畜平衡接口不可用")})}function B(){return u(this,null,function*(){const r=[()=>o(l,"/ai/livestockBalanceRows",{},{timeout:18e3}),()=>o(y,"/ai/balance/areaRows",{},{timeout:18e3})];let t;for(const e of r)try{const i=m(yield e());if(i.length)return i}catch(i){t=i}if(t)throw t;return[]})}function C(r){return u(this,null,function*(){const t=[()=>o(l,"/area/children",{areaCode:r},{timeout:12e3}),()=>o(l,"/map/areaCode",{areaCode:r},{timeout:12e3})];let e,i=!1;for(const c of t)try{const a=m(yield c());if(a.length)return a;i=!0}catch(a){e=a}if(i)return[];throw e||new Error("区划接口不可用")})}export{C as a,R as b,B as g}; diff --git a/docs/assets/bg-3acb94e3-balabala-1785726778446.png b/docs/assets/bg-3acb94e3-balabala-1785858872961.png similarity index 100% rename from docs/assets/bg-3acb94e3-balabala-1785726778446.png rename to docs/assets/bg-3acb94e3-balabala-1785858872961.png diff --git a/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1785726778446.svg b/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1785858872961.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-big-180b7071-balabala-1785726778446.svg rename to docs/assets/bottom-menu-arrow-big-180b7071-balabala-1785858872961.svg diff --git a/docs/assets/bottom-menu-arrow-small-19304179-balabala-1785726778446.svg b/docs/assets/bottom-menu-arrow-small-19304179-balabala-1785858872961.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-small-19304179-balabala-1785726778446.svg rename to docs/assets/bottom-menu-arrow-small-19304179-balabala-1785858872961.svg diff --git a/docs/assets/bottom-menu-bg-b465793d-balabala-1785726778446.png b/docs/assets/bottom-menu-bg-b465793d-balabala-1785858872961.png similarity index 100% rename from docs/assets/bottom-menu-bg-b465793d-balabala-1785726778446.png rename to docs/assets/bottom-menu-bg-b465793d-balabala-1785858872961.png diff --git a/docs/assets/bottom-menu-btn-ee5c8064-balabala-1785726778446.png b/docs/assets/bottom-menu-btn-ee5c8064-balabala-1785858872961.png similarity index 100% rename from docs/assets/bottom-menu-btn-ee5c8064-balabala-1785726778446.png rename to docs/assets/bottom-menu-btn-ee5c8064-balabala-1785858872961.png diff --git a/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1785726778446.png b/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1785858872961.png similarity index 100% rename from docs/assets/bottom-menu-btn-hover-df33e514-balabala-1785726778446.png rename to docs/assets/bottom-menu-btn-hover-df33e514-balabala-1785858872961.png diff --git a/docs/assets/chartTheme-330b271e-1785726778446.js b/docs/assets/chartTheme-96368571-1785858872961.js similarity index 97% rename from docs/assets/chartTheme-330b271e-1785726778446.js rename to docs/assets/chartTheme-96368571-1785858872961.js index 69d59ef..eb53ed2 100644 --- a/docs/assets/chartTheme-330b271e-1785726778446.js +++ b/docs/assets/chartTheme-96368571-1785858872961.js @@ -1 +1 @@ -var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{M as w}from"./index-1785726778446.js";import{U as B,K as c,W as d}from"./screen2Standard-f38b9a2d-1785726778446.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,M=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:M,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},k(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},k(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function k(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:M}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,M as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; +var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{M as w}from"./index-1785858872961.js";import{U as B,K as c,W as d}from"./screen2Standard-2d8b09ac-1785858872961.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,M=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:M,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},k(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},k(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function k(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:M}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,M as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; diff --git a/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1785726778446.png b/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1785858872961.png similarity index 100% rename from docs/assets/chinaBlurLine-1a2cbc0f-balabala-1785726778446.png rename to docs/assets/chinaBlurLine-1a2cbc0f-balabala-1785858872961.png diff --git a/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1785726778446.svg b/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1785858872961.svg similarity index 100% rename from docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1785726778446.svg rename to docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1785858872961.svg diff --git a/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1785726778446.svg b/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1785858872961.svg similarity index 100% rename from docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1785726778446.svg rename to docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1785858872961.svg diff --git a/docs/assets/content-middle-line-162bc0d5-balabala-1785726778446.svg b/docs/assets/content-middle-line-162bc0d5-balabala-1785858872961.svg similarity index 100% rename from docs/assets/content-middle-line-162bc0d5-balabala-1785726778446.svg rename to docs/assets/content-middle-line-162bc0d5-balabala-1785858872961.svg diff --git a/docs/assets/data-e7a95cad-1785726778446.js b/docs/assets/data-33173954-1785858872961.js similarity index 97% rename from docs/assets/data-e7a95cad-1785726778446.js rename to docs/assets/data-33173954-1785858872961.js index 5b8eb98..9b96b96 100644 --- a/docs/assets/data-e7a95cad-1785726778446.js +++ b/docs/assets/data-33173954-1785858872961.js @@ -1 +1 @@ -var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1785726778446.js";import{c as T}from"./data-56996d99-1785726778446.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; +var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1785858872961.js";import{c as T}from"./data-56996d99-1785858872961.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; diff --git a/docs/assets/data-56996d99-1785726778446.js b/docs/assets/data-56996d99-1785858872961.js similarity index 100% rename from docs/assets/data-56996d99-1785726778446.js rename to docs/assets/data-56996d99-1785858872961.js diff --git a/docs/assets/data-aa09e6f1-1785726778446.js b/docs/assets/data-6a941f14-1785858872961.js similarity index 99% rename from docs/assets/data-aa09e6f1-1785726778446.js rename to docs/assets/data-6a941f14-1785858872961.js index f89bf75..8c72cbe 100644 --- a/docs/assets/data-aa09e6f1-1785726778446.js +++ b/docs/assets/data-6a941f14-1785858872961.js @@ -1 +1 @@ -var H=Object.defineProperty,I=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var P=(e,a,n)=>a in e?H(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,g=(e,a)=>{for(var n in a||(a={}))q.call(a,n)&&P(e,n,a[n]);if($)for(var n of $(a))U.call(a,n)&&P(e,n,a[n]);return e},w=(e,a)=>I(e,Z(a));import{d as J,N as R}from"./townshipBoundaries-8867fad4-1785726778446.js";import{g as X,h as V}from"./data-56996d99-1785726778446.js";const d=(e,a)=>e.reduce((n,o)=>n+Number(o[a]||0),0),t=(e,a=2)=>Number(Number(e||0).toFixed(a)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},E=["ecological-redline","natural-protected-area"];function N(e=[]){let a=e;if(a&&typeof a=="object"&&!Array.isArray(a)&&"value"in a&&(a=a.value),typeof a=="string")try{a=JSON.parse(a)}catch(n){a=[]}return(Array.isArray(a)?a:[]).map((n,o)=>({key:n.key||`${n.name||"统计项"}-${o}`,name:n.name||`统计项${o+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function G(e,a,n,o,r=""){return{key:e,name:a,value:t(n,o==="%"?1:2),unit:o,extra:r}}function K(e=[],a=d(e,"value")){return e.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(a,1)*100,1)}%`}))}function ee(e=[],a=!1){const n=new Map(J.map((o,r)=>[o,r]));return[...e].sort((o,r)=>{if(a)return Number(r.value||0)-Number(o.value||0);const u=n.has(o.name)?n.get(o.name):999,s=n.has(r.name)?n.get(r.name):999;return u-s||Number(r.value||0)-Number(o.value||0)})}function W(e={},a,n,o="万亩",r={}){const u=ee(N(e[a]),r.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||o}));if(u.length)return r.withPercent===!1?u:K(u);const s=Number(e[n]||0);return s>0?[G(`${a}-total`,"全县合计",s,o)]:[]}function k(e={},a,n,o,r="万亩",u=6){const s=N(e[a]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||r}));if(s.length)return K(s);const i=Number(e[n]||0);return i>0?[G(`${a}-total`,o,i,r)]:[]}function z(e){return((e==null?void 0:e.rows)||[]).some(a=>Number(a.value)>0)}const ae=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function ne(e="ecological-redline"){const a=e==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ae[a])}function Y(e={},a="ecological-redline"){const n=ne(a),r=Number(e.scopeAreaWanMu)>0||Number(e.grasslandAreaWanMu)>0||Number(e.wetlandAreaWanMu)>0||Number(e.woodlandAreaWanMu)>0?g(g({},n),e):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{N(r[u]).length||(r[u]=n[u])}),r}function Me(e={},a="ecological-redline"){e=Y(e,a);const n=W(e,"grasslandDistribution","grasslandAreaWanMu","万亩"),o=W(e,"wetlandDistribution","wetlandAreaWanMu","万亩"),r=W(e,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=W(e,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=k(e,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=k(e,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=k(e,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=K([{key:`${a}-scope-grassland`,name:"草地资源",value:Number(e.grasslandAreaWanMu||0),unit:"万亩"},{key:`${a}-scope-wetland`,name:"湿地资源",value:Number(e.wetlandAreaWanMu||0),unit:"万亩"},{key:`${a}-scope-woodland`,name:"林地资源",value:Number(e.woodlandAreaWanMu||0),unit:"万亩"}].filter(_=>Number(_.value)>0));return{left:[{key:`${a}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${a}-wetland-distribution`,title:"湿地面积",type:"rank",labelMode:"horizontal",scrollable:!1,span:1,rows:o},{key:`${a}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:r},{key:`${a}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(z),right:[{key:`${a}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${a}-grassland-level`,title:"草原级占比",type:"rose",span:1,rows:i},{key:`${a}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${a}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(z)}}function be(e={},a="ecological-redline"){return e=Y(e,a),[{zh:`${a==="natural-protected-area"?"保护地":"红线"}面积`,value:t(e.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(e.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(e.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(e.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((e,a)=>e+String(a.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const We=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(e=>({key:e.name,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${e.grasslandAreaWanMu} / 湿地 ${e.wetlandAreaWanMu}`}));p.map(e=>({key:`${e.name}-town`,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",extra:e.villages}));const te=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:R.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:R.general.fillColor}],f=43.66,x=12.48,oe=t(f*(192.26/297.29),2),re=new Map(X.map(e=>[e.name,e])),ue={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(e=>w(g({},e),{value:e.protectedAreaWanMu,unit:"万亩",segments:{core:e.coreProtectionAreaWanMu,general:e.generalControlAreaWanMu},householdCount:Number(e.householdCount||0),edibleGrasslandWanTon:t(Number(e.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*oe,2)})),S=l.householdCount-d(c,"householdCount");S&&c[0]&&(c[0].householdCount+=S);c.forEach(e=>{const a=re.get(e.name),n=Number(a==null?void 0:a.bearingCapacity)||0,o=Number(a==null?void 0:a.livestockCapacity)||Number(e.livestockCount||e.yakCount||0),r=o-n,u=n?r/n*100:0,s=V(u);e.balanceAreaRange=Number(a==null?void 0:a.areaRange)||0,e.bearingCapacity=n,e.livestockCapacity=o,e.overloadCount=r,e.usageRate=n?t(o/n*100,6):0,e.overloadRate=t(u,6),e.balanceLevel=s.label,e.balanceScenarioVersion=(a==null?void 0:a.scenarioVersion)||"2026-sim-070",e.searchText=[e.name,`划定面积${e.protectedAreaWanMu}万亩`,`牦牛${e.yakCount}头`,`牧户${e.householdCount}户`,`超载率${e.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),T=d(c,"livestockCapacity"),j=T-b;l.balanceOverloadRate=b?t((T-b)/b*100,2):0;const h=[...c].sort((e,a)=>Number(a.overloadRate||0)-Number(e.overloadRate||0))[0],F=(e,a=d(e,"value"))=>e.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(a,1)*100,1)}%`}));F([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:e,weightKey:a,unit:n="万亩",decimals:o=2,sortByValue:r=!0})=>{const u=c.flatMap(i=>(ue[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${e}`,name:M.name,town:i.name,value:t(Number(i[e]||0)*Number(M[a]||0),o),unit:n}))).filter(i=>Number(i.value)>0),s=r?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return F(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const le=["瓦切镇","麦洼乡","色地镇"],v=e=>le.map(a=>e.find(n=>n.name===a)).filter(Boolean),se=v(c).map(e=>({key:`${e.name}-area`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",extra:`核心 ${e.coreProtectionAreaWanMu} / 一般 ${e.generalControlAreaWanMu}`}));v(c).map(e=>({key:`${e.name}-zoning`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",segments:{core:e.coreProtectionAreaWanMu,general:e.generalControlAreaWanMu}}));const ce=v(c).map(e=>({key:`${e.name}-grass-wet-area`,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:e.grasslandAreaWanMu,wetland:e.wetlandAreaWanMu}})),ie=v(c).map(e=>({key:`${e.name}-grass-wet-productivity`,name:e.name,value:t(e.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*f+e.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*x,2),unit:"万吨",segments:{grassland:t(e.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*f,2),wetland:t(e.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*x,2)}})),me=v(c).map(e=>({key:`${e.name}-yak`,name:e.name,value:e.yakCount,unit:"头",extra:`${t(e.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),pe=v(c).map(e=>({key:`${e.name}-household`,name:e.name,value:e.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:e.ecologyJobs,peopleCount:e.peopleCount,extra:`公益岗位 ${e.ecologyJobs}户`}));v(c).map(e=>({key:`${e.name}-balance`,name:e.name,value:e.overloadRate,unit:"%",status:e.balanceLevel,extra:`载畜 ${e.livestockCapacity}头`}));const de=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:V(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(T/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ge=v(c).map(e=>({key:`${e.name}-job`,name:e.name,value:e.ecologyJobs,unit:"户",color:e.name==="麦洼乡"?"#24f6c4":e.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${e.householdCount}户`}));v(c).map(e=>w(g({},e),{key:`${e.name}-ledger`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,D,B;const ye=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(e=>e.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((D=c.find(e=>e.name==="麦洼乡"))==null?void 0:D.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((B=c.find(e=>e.name==="色地镇"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],he=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ke=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function je(e){return E.includes(e)?[]:e==="engineering-analysis"?[]:(e==="restoration"?he:ye.slice(0,5)).map((n,o)=>g({icon:n.icon||(o%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const Ae={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ce},{key:"park-town-productivity",title:"草地湿地生产力",type:"line",fixedType:!0,labelMode:"horizontal",showValues:!0,unit:"万吨",rows:ie},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:me},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:de}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:F(te)},{key:"park-town-household",title:"牧户分布",type:"split",rows:pe},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ge}]},A=new Map((m.townships||[]).filter(e=>/[乡镇]$/.test(String(e.name||""))).map(e=>[e.name,e])),O=J.map(e=>{var a,n,o;return{name:e,areaWanMu:((a=A.get(e))==null?void 0:a.areaWanMu)||0,lengthKm:((n=A.get(e))==null?void 0:n.lengthKm)||0,projectCount:((o=A.get(e))==null?void 0:o.projectCount)||0}}),Q=(m.projects||[]).map((e,a)=>{const n=Number(e.areaWanMu)>0,o=Number(e.lengthKm)>0,r=n?{value:t(e.areaWanMu,2),unit:"万亩",metric:"治理面积"}:o?{value:t(e.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:e.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(e.measureTypes||[]).join("、"),s=(e.townships||[]).join("、");return{key:e.id||e.projectName,index:a+1,name:e.projectName,projectName:e.projectName,category:e.projectCategory,year:e.year||"未知",areaWanMu:t(e.areaWanMu,4),lengthKm:t(e.lengthKm,2),measure:u,townships:s,subjectFeatureCount:e.subjectFeatureCount||0,value:r.value,unit:r.unit,metric:r.metric,extra:[e.year||"未知",u].filter(Boolean).join(" / "),searchText:[e.projectName,e.projectCategory,e.year,u,s].filter(Boolean).join(" ")}}),fe=Q.map((e,a)=>{const n=a%6,o=Math.floor(a/6),r=102.42+n*.045,u=32.55+o*.035,s=.018+Math.min(.024,Number(e.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:e.projectName,project_category:e.category,year:e.year,areaWanMu:e.areaWanMu,lengthKm:e.lengthKm,townships:e.townships,measure:e.measure},geometry:{type:"Polygon",coordinates:[[[r,u],[r+s,u+s*.22],[r+s*.82,u+s],[r-s*.16,u+s*.72],[r,u]]]}}}),Ne={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(e=>({key:e.name,name:`${e.name}`,value:t(e.areaWanMu,2),unit:"万亩",extra:`${e.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,rows:O.map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu,2),unit:"万亩",extra:`${t(e.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu||e.lengthKm||e.subjectFeatureCount,2),unit:e.areaWanMu?"万亩":e.lengthKm?"公里":"个",extra:`${e.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"bar",variant:"rankBar",labelMode:"horizontal",rows:(m.years||[]).filter(e=>Number(e.lengthKm)>0).map(e=>({key:e.name,name:`${e.name}`,value:t(e.lengthKm,2),unit:"公里",extra:`${e.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu||e.lengthKm||e.subjectFeatureCount,2),unit:e.areaWanMu?"万亩":e.lengthKm?"公里":"个",extra:`${e.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"heat",labelMode:"horizontal",rows:(m.years||[]).filter(e=>e.name!=="未知").map(e=>({key:e.name,name:`${e.name}`,value:e.projectCount,unit:"个",extra:`${t(e.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:Q}]},Ke={left:[],right:[]};function Te(e){return E.includes(e)?{status:"success",title:e==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:e==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:O.map(a=>({name:a.name,value:t(a.areaWanMu,2),unit:"万亩"}))}:e==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:se.map(a=>({name:a.name,value:a.value,unit:a.unit,metricLabel:"划定面积"}))}}export{Ke as a,Me as b,be as c,je as d,E as e,ye as f,Te as g,We as h,p as i,he as j,ke as k,fe as l,Ae as p,Ne as r}; +var H=Object.defineProperty,I=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var P=(e,a,n)=>a in e?H(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,g=(e,a)=>{for(var n in a||(a={}))q.call(a,n)&&P(e,n,a[n]);if($)for(var n of $(a))U.call(a,n)&&P(e,n,a[n]);return e},w=(e,a)=>I(e,Z(a));import{d as J,N as R}from"./townshipBoundaries-8867fad4-1785858872961.js";import{g as X,h as V}from"./data-56996d99-1785858872961.js";const d=(e,a)=>e.reduce((n,o)=>n+Number(o[a]||0),0),t=(e,a=2)=>Number(Number(e||0).toFixed(a)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},E=["ecological-redline","natural-protected-area"];function N(e=[]){let a=e;if(a&&typeof a=="object"&&!Array.isArray(a)&&"value"in a&&(a=a.value),typeof a=="string")try{a=JSON.parse(a)}catch(n){a=[]}return(Array.isArray(a)?a:[]).map((n,o)=>({key:n.key||`${n.name||"统计项"}-${o}`,name:n.name||`统计项${o+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function G(e,a,n,o,r=""){return{key:e,name:a,value:t(n,o==="%"?1:2),unit:o,extra:r}}function K(e=[],a=d(e,"value")){return e.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(a,1)*100,1)}%`}))}function ee(e=[],a=!1){const n=new Map(J.map((o,r)=>[o,r]));return[...e].sort((o,r)=>{if(a)return Number(r.value||0)-Number(o.value||0);const u=n.has(o.name)?n.get(o.name):999,s=n.has(r.name)?n.get(r.name):999;return u-s||Number(r.value||0)-Number(o.value||0)})}function W(e={},a,n,o="万亩",r={}){const u=ee(N(e[a]),r.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||o}));if(u.length)return r.withPercent===!1?u:K(u);const s=Number(e[n]||0);return s>0?[G(`${a}-total`,"全县合计",s,o)]:[]}function k(e={},a,n,o,r="万亩",u=6){const s=N(e[a]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||r}));if(s.length)return K(s);const i=Number(e[n]||0);return i>0?[G(`${a}-total`,o,i,r)]:[]}function z(e){return((e==null?void 0:e.rows)||[]).some(a=>Number(a.value)>0)}const ae=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function ne(e="ecological-redline"){const a=e==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ae[a])}function Y(e={},a="ecological-redline"){const n=ne(a),r=Number(e.scopeAreaWanMu)>0||Number(e.grasslandAreaWanMu)>0||Number(e.wetlandAreaWanMu)>0||Number(e.woodlandAreaWanMu)>0?g(g({},n),e):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{N(r[u]).length||(r[u]=n[u])}),r}function Me(e={},a="ecological-redline"){e=Y(e,a);const n=W(e,"grasslandDistribution","grasslandAreaWanMu","万亩"),o=W(e,"wetlandDistribution","wetlandAreaWanMu","万亩"),r=W(e,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=W(e,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=k(e,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=k(e,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=k(e,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=K([{key:`${a}-scope-grassland`,name:"草地资源",value:Number(e.grasslandAreaWanMu||0),unit:"万亩"},{key:`${a}-scope-wetland`,name:"湿地资源",value:Number(e.wetlandAreaWanMu||0),unit:"万亩"},{key:`${a}-scope-woodland`,name:"林地资源",value:Number(e.woodlandAreaWanMu||0),unit:"万亩"}].filter(_=>Number(_.value)>0));return{left:[{key:`${a}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${a}-wetland-distribution`,title:"湿地面积",type:"rank",labelMode:"horizontal",scrollable:!1,span:1,rows:o},{key:`${a}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:r},{key:`${a}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(z),right:[{key:`${a}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${a}-grassland-level`,title:"草原级占比",type:"rose",span:1,rows:i},{key:`${a}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${a}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(z)}}function be(e={},a="ecological-redline"){return e=Y(e,a),[{zh:`${a==="natural-protected-area"?"保护地":"红线"}面积`,value:t(e.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(e.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(e.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(e.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((e,a)=>e+String(a.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const We=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(e=>({key:e.name,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${e.grasslandAreaWanMu} / 湿地 ${e.wetlandAreaWanMu}`}));p.map(e=>({key:`${e.name}-town`,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",extra:e.villages}));const te=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:R.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:R.general.fillColor}],f=43.66,x=12.48,oe=t(f*(192.26/297.29),2),re=new Map(X.map(e=>[e.name,e])),ue={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(e=>w(g({},e),{value:e.protectedAreaWanMu,unit:"万亩",segments:{core:e.coreProtectionAreaWanMu,general:e.generalControlAreaWanMu},householdCount:Number(e.householdCount||0),edibleGrasslandWanTon:t(Number(e.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*oe,2)})),S=l.householdCount-d(c,"householdCount");S&&c[0]&&(c[0].householdCount+=S);c.forEach(e=>{const a=re.get(e.name),n=Number(a==null?void 0:a.bearingCapacity)||0,o=Number(a==null?void 0:a.livestockCapacity)||Number(e.livestockCount||e.yakCount||0),r=o-n,u=n?r/n*100:0,s=V(u);e.balanceAreaRange=Number(a==null?void 0:a.areaRange)||0,e.bearingCapacity=n,e.livestockCapacity=o,e.overloadCount=r,e.usageRate=n?t(o/n*100,6):0,e.overloadRate=t(u,6),e.balanceLevel=s.label,e.balanceScenarioVersion=(a==null?void 0:a.scenarioVersion)||"2026-sim-070",e.searchText=[e.name,`划定面积${e.protectedAreaWanMu}万亩`,`牦牛${e.yakCount}头`,`牧户${e.householdCount}户`,`超载率${e.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),T=d(c,"livestockCapacity"),j=T-b;l.balanceOverloadRate=b?t((T-b)/b*100,2):0;const h=[...c].sort((e,a)=>Number(a.overloadRate||0)-Number(e.overloadRate||0))[0],F=(e,a=d(e,"value"))=>e.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(a,1)*100,1)}%`}));F([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:e,weightKey:a,unit:n="万亩",decimals:o=2,sortByValue:r=!0})=>{const u=c.flatMap(i=>(ue[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${e}`,name:M.name,town:i.name,value:t(Number(i[e]||0)*Number(M[a]||0),o),unit:n}))).filter(i=>Number(i.value)>0),s=r?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return F(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const le=["瓦切镇","麦洼乡","色地镇"],v=e=>le.map(a=>e.find(n=>n.name===a)).filter(Boolean),se=v(c).map(e=>({key:`${e.name}-area`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",extra:`核心 ${e.coreProtectionAreaWanMu} / 一般 ${e.generalControlAreaWanMu}`}));v(c).map(e=>({key:`${e.name}-zoning`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",segments:{core:e.coreProtectionAreaWanMu,general:e.generalControlAreaWanMu}}));const ce=v(c).map(e=>({key:`${e.name}-grass-wet-area`,name:e.name,value:t(e.grasslandAreaWanMu+e.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:e.grasslandAreaWanMu,wetland:e.wetlandAreaWanMu}})),ie=v(c).map(e=>({key:`${e.name}-grass-wet-productivity`,name:e.name,value:t(e.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*f+e.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*x,2),unit:"万吨",segments:{grassland:t(e.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*f,2),wetland:t(e.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*x,2)}})),me=v(c).map(e=>({key:`${e.name}-yak`,name:e.name,value:e.yakCount,unit:"头",extra:`${t(e.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),pe=v(c).map(e=>({key:`${e.name}-household`,name:e.name,value:e.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:e.ecologyJobs,peopleCount:e.peopleCount,extra:`公益岗位 ${e.ecologyJobs}户`}));v(c).map(e=>({key:`${e.name}-balance`,name:e.name,value:e.overloadRate,unit:"%",status:e.balanceLevel,extra:`载畜 ${e.livestockCapacity}头`}));const de=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:V(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(T/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ge=v(c).map(e=>({key:`${e.name}-job`,name:e.name,value:e.ecologyJobs,unit:"户",color:e.name==="麦洼乡"?"#24f6c4":e.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${e.householdCount}户`}));v(c).map(e=>w(g({},e),{key:`${e.name}-ledger`,name:e.name,value:e.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,D,B;const ye=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(e=>e.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((D=c.find(e=>e.name==="麦洼乡"))==null?void 0:D.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((B=c.find(e=>e.name==="色地镇"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],he=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ke=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function je(e){return E.includes(e)?[]:e==="engineering-analysis"?[]:(e==="restoration"?he:ye.slice(0,5)).map((n,o)=>g({icon:n.icon||(o%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const Ae={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ce},{key:"park-town-productivity",title:"草地湿地生产力",type:"line",fixedType:!0,labelMode:"horizontal",showValues:!0,unit:"万吨",rows:ie},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:me},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:de}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:F(te)},{key:"park-town-household",title:"牧户分布",type:"split",rows:pe},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ge}]},A=new Map((m.townships||[]).filter(e=>/[乡镇]$/.test(String(e.name||""))).map(e=>[e.name,e])),O=J.map(e=>{var a,n,o;return{name:e,areaWanMu:((a=A.get(e))==null?void 0:a.areaWanMu)||0,lengthKm:((n=A.get(e))==null?void 0:n.lengthKm)||0,projectCount:((o=A.get(e))==null?void 0:o.projectCount)||0}}),Q=(m.projects||[]).map((e,a)=>{const n=Number(e.areaWanMu)>0,o=Number(e.lengthKm)>0,r=n?{value:t(e.areaWanMu,2),unit:"万亩",metric:"治理面积"}:o?{value:t(e.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:e.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(e.measureTypes||[]).join("、"),s=(e.townships||[]).join("、");return{key:e.id||e.projectName,index:a+1,name:e.projectName,projectName:e.projectName,category:e.projectCategory,year:e.year||"未知",areaWanMu:t(e.areaWanMu,4),lengthKm:t(e.lengthKm,2),measure:u,townships:s,subjectFeatureCount:e.subjectFeatureCount||0,value:r.value,unit:r.unit,metric:r.metric,extra:[e.year||"未知",u].filter(Boolean).join(" / "),searchText:[e.projectName,e.projectCategory,e.year,u,s].filter(Boolean).join(" ")}}),fe=Q.map((e,a)=>{const n=a%6,o=Math.floor(a/6),r=102.42+n*.045,u=32.55+o*.035,s=.018+Math.min(.024,Number(e.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:e.projectName,project_category:e.category,year:e.year,areaWanMu:e.areaWanMu,lengthKm:e.lengthKm,townships:e.townships,measure:e.measure},geometry:{type:"Polygon",coordinates:[[[r,u],[r+s,u+s*.22],[r+s*.82,u+s],[r-s*.16,u+s*.72],[r,u]]]}}}),Ne={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(e=>({key:e.name,name:`${e.name}`,value:t(e.areaWanMu,2),unit:"万亩",extra:`${e.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,rows:O.map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu,2),unit:"万亩",extra:`${t(e.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu||e.lengthKm||e.subjectFeatureCount,2),unit:e.areaWanMu?"万亩":e.lengthKm?"公里":"个",extra:`${e.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"bar",variant:"rankBar",labelMode:"horizontal",rows:(m.years||[]).filter(e=>Number(e.lengthKm)>0).map(e=>({key:e.name,name:`${e.name}`,value:t(e.lengthKm,2),unit:"公里",extra:`${e.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(e=>({key:e.name,name:e.name,value:t(e.areaWanMu||e.lengthKm||e.subjectFeatureCount,2),unit:e.areaWanMu?"万亩":e.lengthKm?"公里":"个",extra:`${e.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"heat",labelMode:"horizontal",rows:(m.years||[]).filter(e=>e.name!=="未知").map(e=>({key:e.name,name:`${e.name}`,value:e.projectCount,unit:"个",extra:`${t(e.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:Q}]},Ke={left:[],right:[]};function Te(e){return E.includes(e)?{status:"success",title:e==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:e==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:O.map(a=>({name:a.name,value:t(a.areaWanMu,2),unit:"万亩"}))}:e==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:se.map(a=>({name:a.name,value:a.value,unit:a.unit,metricLabel:"划定面积"}))}}export{Ke as a,Me as b,be as c,je as d,E as e,ye as f,Te as g,We as h,p as i,he as j,ke as k,fe as l,Ae as p,Ne as r}; diff --git a/docs/assets/data-0d4a0513-1785726778446.js b/docs/assets/data-7f9dd12a-1785858872961.js similarity index 98% rename from docs/assets/data-0d4a0513-1785726778446.js rename to docs/assets/data-7f9dd12a-1785858872961.js index 3f5db70..52241cf 100644 --- a/docs/assets/data-0d4a0513-1785726778446.js +++ b/docs/assets/data-7f9dd12a-1785858872961.js @@ -1 +1 @@ -var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1785726778446.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; +var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1785858872961.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; diff --git a/docs/assets/data-112f1d11-1785726778446.js b/docs/assets/data-9964a7a8-1785858872961.js similarity index 99% rename from docs/assets/data-112f1d11-1785726778446.js rename to docs/assets/data-9964a7a8-1785858872961.js index fa75114..c43a68e 100644 --- a/docs/assets/data-112f1d11-1785726778446.js +++ b/docs/assets/data-9964a7a8-1785858872961.js @@ -1,4 +1,4 @@ -var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-f38b9a2d-1785726778446.js";import{E as lt,q as Xt}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1785726778446.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` +var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-2d8b09ac-1785858872961.js";import{E as lt,q as Xt}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1785858872961.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` varying vec3 vPosition; void main(){ vPosition = position; diff --git a/docs/assets/data-6350cbbd-1785726778446.js b/docs/assets/data-c85702ea-1785858872961.js similarity index 87% rename from docs/assets/data-6350cbbd-1785726778446.js rename to docs/assets/data-c85702ea-1785858872961.js index 369561d..2187c76 100644 --- a/docs/assets/data-6350cbbd-1785726778446.js +++ b/docs/assets/data-c85702ea-1785858872961.js @@ -1,4 +1,4 @@ -var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnPropertyDescriptors;var Mn=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Re=Object.prototype.propertyIsEnumerable;var On=Math.pow,Gn=(n,e,a)=>e in n?we(n,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[e]=a,d=(n,e)=>{for(var a in e||(e={}))Ye.call(e,a)&&Gn(n,a,e[a]);if(Mn)for(var a of Mn(e))Re.call(e,a)&&Gn(n,a,e[a]);return n},g=(n,e)=>be(n,ke(e));import{f as Ee}from"./familyPastureData-f64283c3-1785726778446.js";import{d as Pe,c as b}from"./livestockData-36ec0ae2-1785726778446.js";import{y as qn,h as Fe,H as nn}from"./townshipBoundaries-8867fad4-1785726778446.js";const Ue=`{ +var Ke=Object.defineProperty,De=Object.defineProperties;var Be=Object.getOwnPropertyDescriptors;var Bn=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable;var jn=Math.pow,Hn=(n,e,a)=>e in n?Ke(n,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[e]=a,i=(n,e)=>{for(var a in e||(e={}))He.call(e,a)&&Hn(n,a,e[a]);if(Bn)for(var a of Bn(e))je.call(e,a)&&Hn(n,a,e[a]);return n},d=(n,e)=>De(n,Be(e));import{f as ze}from"./familyPastureData-f64283c3-1785858872961.js";import{d as Ve,c as k}from"./livestockData-36ec0ae2-1785858872961.js";import{y as ie,h as We,H as an}from"./townshipBoundaries-8867fad4-1785858872961.js";const $e=`{ "datasetName": "红原牦牛产业全链分类数据草稿", "generatedAt": "2026-07-01T19:47:37", "privacy": { @@ -5429,7 +5429,7 @@ var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnProp } ] } -`,Ie=`{ +`,Qe=`{ "generatedAt": "2026-07-22T15:08:31.239272+00:00", "sources": { "milkSourceStations": "/Users/mocker/Documents/hy/数据清单 2/2026.7.3/2026年奶源站站名.xlsx", @@ -7338,7 +7338,7 @@ var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnProp "slaughterhouseCount": 4, "forageTradeCenterCount": 1 } -}`,Le=`{ +}`,qe=`{ "generatedAt": "2026-07-23T16:09:27.188Z", "sourceLabel": "21.95万亩种草矢量数据", "statusLabel": "待核定", @@ -9713,7 +9713,7 @@ var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnProp } ] } -`,_e=`{ +`,Xe=`{ "generatedAt": "2026-07-22T14:18:02.331645+00:00", "sourceLabel": "各乡镇实测种草面积汇总表2023-7-25.xlsx", "sourceSheet": "Sheet1", @@ -10166,7 +10166,7 @@ var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnProp } ] } -`,Me=`{ +`,Je=`{ "source": "汇总 红原信用村、信用户评定结果.et", "generatedAt": "2026-08-02T14:33:46.219Z", "totals": { @@ -10537,4 +10537,4 @@ var we=Object.defineProperty,be=Object.defineProperties;var ke=Object.getOwnProp } ] } -`,Ge=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1785726778446.png",import.meta.url).href,Oe="industry-overview",_=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126,iconType:"pasture"},{key:"artificial-grassland",name:"人工种草",color:"#22f6b8",unit:"万亩",metricLabel:"种草面积",width:112,iconType:"grass"},{key:"scale-breeding",name:"规模化养殖基地",color:"#ffd166",unit:"个",metricLabel:"基地",width:132,iconType:"breeding"},{key:"breeding-selection",name:"选育/扩繁基地",color:"#a78bfa",unit:"个",metricLabel:"基地",width:132,iconType:"gene"},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#ff8c78",unit:"吨",metricLabel:"库容",width:126,iconType:"storage"},{key:"milk-source-station",name:"奶源站",color:"#6ba7ff",unit:"个",metricLabel:"站点",width:112,iconType:"milk"},{key:"slaughter-processing",name:"屠宰与加工",color:"#43d9ff",unit:"万元",metricLabel:"产值",width:112,iconType:"factory"},{key:"farm-equipment",name:"农机装备",color:"#30DCFF",unit:"个",metricLabel:"装备",width:112,iconType:"equipment"},{key:"forage-trade",name:"牧草交易",color:"#46e6ad",unit:"个",metricLabel:"点位",width:112,iconType:"trade"},{key:"social-service",name:"社会化服务",subName:"信用/金融/疫病/保险/培训",color:"#f0c35a",unit:"户",metricLabel:"信用户",width:132,iconType:"service"}],sn=_.filter(n=>n.key!=="farm-equipment"),un=(qn["yak-industry-chain"]||[]).find(n=>n.key==="yak-industry-points");(qn["yak-industry-chain"]||[]).find(n=>n.key==="artificial-grassland-plots");new Map(((un==null?void 0:un.legends)||[]).map(n=>{var a;const e=((a=n.match)==null?void 0:a.value)||String(n.key||"").replace(/^yak-industry-/,"");return e?[e,n.name]:null}).filter(Boolean));const v=Pe.map(n=>n.zoneName),Ke=new Map(Fe.map(n=>[n.name,n.center])),Xn=JSON.parse(Ue),Tn=JSON.parse(Ie),Jn=JSON.parse(Ee),De=JSON.parse(Le),Y=JSON.parse(_e),K=JSON.parse(Me),xn=Oa(Xn.categories||[],Tn.categories||[]),Be=new Map(xn.map(n=>[n.categoryCode,n])),Cn=(Jn.records||[]).map(n=>g(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),He=new Map(Cn.map(n=>[Number(n.matchedPointNo||n.markerNo||0),n]).filter(([n])=>Number.isFinite(n)&&n>0)),an=(Jn.markerPoints||[]).map(Na),Kn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),je=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),ze=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ve=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],We=new Set(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),fn=xn.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Cn:n.items||[]).map(e=>{var s;const a=e.categoryCode||n.categoryCode,t=pe(n,e);return g(d({},e),{categoryCode:a,categoryName:e.categoryName||n.categoryName,stageKey:t,stageName:((s=R(t))==null?void 0:s.name)||e.stageName||n.categoryName})})),rn=fn.filter(f),Dn=new Map(fn.map(n=>[String(n.id),n])),z=N("YC-FAMILY-PASTURE"),q=N(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),pn=N(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=N("YC-DISASTER-FORAGE-STORAGE"),w=N("YC-PROCESSING-PLANT"),P=N("YC-SLAUGHTERHOUSE"),Zn=N("YC-FARM-EQUIPMENT"),G=N("YC-MILK-SOURCE-STATION"),ne=N("YC-FORAGE-TRADE-CENTER"),$e=N("YC-DISEASE-CONTROL"),An=N("YC-TECH-TRAINING"),vn=N("YC-SERVICE-FINANCE"),ee=N("YC-SERVICE-INSURANCE"),ae=A(z),X=an.length||ae,tn=y(z,n=>l(n,["标准化暖棚 (㎡)"])),te=y(z,n=>l(n,["管理用房 (㎡)"])),wn=y(z,n=>l(n,["饲草料库 (㎡)"])),se=y(z,n=>l(n,["活动场地及通道 (㎡)"]));A(pn);const B=A(k),bn=A(q),re=y(q,n=>l(n,["设计存栏量 (头)"]));A(w);A(P);const ln=A(Zn),oe=A(G),cn=G.filter(n=>f(n)&&Ln(n)).length,ue=L(G,p),le=A(ne),dn=A($e),ie=A(An),kn=A(vn),ce=A(ee);xn.filter(n=>N(n.categoryCode).some(f)).length;rn.length;new Set(rn.map(p).filter(Boolean)).size||v.length;const Qe=Math.max(ln,b.reduce((n,e)=>n+Number(e.devices||0),0));y(pn,n=>l(n,["种植面积 (亩)","acreage"])||j(n.scale));const M=y(k,n=>l(n,["总库容 (吨)"]));y(N("YC-BREEDING-BASE"),n=>l(n,["设计存栏量 (头)"]));y(N("YC-BREEDING-BASE"),n=>l(n,["年出栏量 (头)"]));const de=y(w,n=>l(n,["年产值 (万元)"])),Yn=y(w,n=>l(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),Rn=y(w,n=>l(n,["带动本地农户数"])),En=y(P,n=>l(n,["年总产值 (万元)"])),on=y(P,n=>l(n,["年屠宰总量 (头)"])),me=y(P,n=>l(n,["冷冻库容量 (吨)"])),J=de+En,Q=_n(vn,n=>l(n,["最高单户贷款额度 (万元)"])),qe=_n(vn,n=>l(n,["服务覆盖乡镇数"])),mn=_n(ee,n=>l(n,["服务覆盖乡镇数"])),Xe=y(An,n=>l(n,["年培训场次"])),gn=y(An,n=>l(n,["年培训人次"]));var $n;const T=(($n=Tn.forageTrade)==null?void 0:$n.metrics)||{};var Qn;(Qn=Tn.forageTrade)!=null&&Qn.rows;N("YC-BREEDING-BASE");const Je=new Set(["YC-BREEDING-BASE"]),Bn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Ge,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],ge=Ea([...pn,...k]),S=Y.summary||{};Y.projectRows;const Hn=Y.yearRows||[],Ze=Y.typeRows||[];Y.operationRows;Y.disturbanceRows;const na=[...Y.townRows||[]].sort(F),ye=[...Y.townAreaRows||[]].sort(F);Y.investmentRows;const ea=De.plotRows||[];Pa();b.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${C(n.count)}头识别样本`})).filter(n=>n.value>0).sort(F);b.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${C(n.devices)}套设备`})).filter(n=>n.value>0).sort(F);const aa=xa();Xn.generatedAt;const ja=k.map(Un),za=[...w,...P].map(Un),Va=rn.map(Un),en=rn.map(pa).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN")),jn=an.map(Ta).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||Number(n.markerNo||0)-Number(e.markerNo||0));Fa();function Wa(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return Bn.find(t=>t.key===e)||null;const a=[n.name,n.fullName].filter(Boolean).map(t=>String(t));return Bn.find(t=>t.aliases.some(s=>a.some(r=>r===s||r.includes(s)||s.includes(r))))||null}sn.reduce((n,e)=>n+E(e.key),0);const ta=new Set(sn.flatMap(n=>D(n.key).map(e=>e.town)).filter(Boolean)).size||v.length,yn=I(),$a=[{zh:"生态牧场",name:"生态牧场",value:X,unit:"处",icon:"leaf"},{zh:"人工种草",name:"人工种草",value:h(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",decimals:2,icon:"area"},{zh:"规模养殖",name:"规模养殖",value:yn.baseCount,unit:"个",icon:"town"},{zh:"选育扩繁",name:"选育扩繁",value:bn,unit:"个",icon:"project"},{zh:"防灾储备",name:"防灾储备",value:M,unit:"吨",icon:"stack"},{zh:"产业产值",name:"产业产值",value:h(J,1),unit:"万元",decimals:1,icon:"certificate"}];function sa(n){const e=ma(n),a=I();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:X,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:tn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:wn,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:se,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:h(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:S.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:S.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:S.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:a.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:a.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:a.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:a.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:bn,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:re,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:L(q,p),unit:"个"},{zh:"育种等级",name:"育种等级",value:Pn.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:B,unit:"个"},{zh:"总库容",name:"总库容",value:M,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:L(k,p),unit:"个"},{zh:"草种类型",name:"草种类型",value:ge.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:oe,unit:"个"},{zh:"已定位点位",name:"已定位点位",value:cn,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:ue,unit:"个"},{zh:"覆盖村",name:"覆盖村",value:L(G,s=>s.village),unit:"个"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:E("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:h(J,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:on,unit:"头"},{zh:"带动农户",name:"带动农户",value:Rn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:E("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:b.reduce((s,r)=>s+Number(r.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:b.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:b.reduce((s,r)=>s+Number(r.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易中心",name:"交易中心",value:le,unit:"个"},{zh:"销售主体",name:"销售主体",value:T.sellerCount||0,unit:"家"},{zh:"种草面积",name:"种草面积",value:T.plantAreaMu||0,unit:"亩"},{zh:"销售金额",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元"}],"social-service":[{zh:"评定信用户",name:"评定信用户",value:K.totals.householdCount,unit:"户"},{zh:"信用村",name:"信用村",value:K.totals.villageCount,unit:"个"},{zh:"已授信",name:"已授信",value:K.totals.authorizedCount,unit:"户"},{zh:"授信率",name:"授信率",value:K.totals.authorizationRate,unit:"%",decimals:1}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(s=>({zh:s.label,name:s.label,value:s.value,unit:s.unit}))]).filter(s=>s.value!==void 0&&s.value!==null&&s.value!=="").slice(0,4)}const Qa=[{key:"chain-family",name:"生态牧场",value:X,unit:"处",icon:"project",extra:`${ta}个乡镇覆盖`},{key:"chain-grass",name:"人工种草",value:h(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area",extra:`${S.projectCount||0}项建设项目`},{key:"chain-breeding",name:"规模养殖",value:yn.baseCount,unit:"个",icon:"town",extra:`设计存栏${C(yn.designStock)}头`},{key:"chain-selection",name:"选育扩繁",value:bn,unit:"个",icon:"project",extra:`设计存栏${C(re)}头`},{key:"chain-storage",name:"防灾储备",value:M,unit:"吨",icon:"stack",extra:`${B}个储备库`},{key:"chain-output",name:"产业产值",value:h(J,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"}],qa=sn.map(n=>({key:n.key,name:n.name,value:E(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),zn=[{key:"family-pasture",name:"家庭生态牧场",value:X,unit:"处",capacity:h(tn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:h(tn/1e4,2),unit:"万㎡"},{label:"管理用房",value:h(te/1e4,2),unit:"万㎡"},{label:"饲草料库",value:h(wn/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:h(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:S.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:h(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:S.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:S.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:I().baseCount,unit:"个",capacity:I().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:I().designStock,unit:"头"},{label:"年出栏",value:I().annualOutput,unit:"头"},{label:"覆盖乡镇",value:I().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:B,unit:"个",capacity:M,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:B,unit:"个"},{label:"总库容",value:M,unit:"吨"},{label:"覆盖乡镇",value:L(k,p),unit:"个"}]},{key:"milk-source-station",name:"奶源站",value:oe,unit:"个",capacity:cn,capacityUnit:"个",note:"2026年奶源站站名表按村界生成点位",fields:[{label:"已定位点位",value:cn,unit:"个"},{label:"覆盖乡镇",value:ue,unit:"个"},{label:"覆盖村",value:L(G,n=>n.village),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:E("slaughter-processing"),unit:"个",capacity:h(J,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:de,unit:"万元"},{label:"屠宰产值",value:h(En,1),unit:"万元"},{label:"年屠宰量",value:on,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:E("farm-equipment"),unit:"个",capacity:Qe,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:E("farm-equipment"),unit:"个"},{label:"识别设备",value:b.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:b.length,unit:"个"}]},{key:"forage-trade",name:"牧草交易",value:le,unit:"个",capacity:T.salesAmountWanYuan||0,capacityUnit:"万元",note:"2025年草种销售、采购情况",fields:[{label:"销售主体",value:T.sellerCount||0,unit:"家"},{label:"种草面积",value:T.plantAreaMu||0,unit:"亩"},{label:"饲草销售",value:T.salesForageTon||0,unit:"吨"}]},{key:"social-service",name:"社会化服务",value:E("social-service"),unit:"个",capacity:Q,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:kn,unit:"家"},{label:"最高授信",value:Q,unit:"万元"},{label:"培训人次",value:gn,unit:"人次"}]}],Pn=wa(),he=H(k,p,n=>l(n,["总库容 (吨)"])).map(n=>g(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Se=[{key:"milk-processing",name:"乳品加工",value:y(w.filter(Ia),n=>l(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:y(w.filter(La),n=>l(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:h(En,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Xa=[{key:"raw-capacity",name:"年加工原料",value:Yn,unit:"吨",extra:`${w.filter(f).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:on,unit:"头",extra:`${P.filter(f).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:Rn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:me,unit:"吨",extra:"屠宰冷链"}],Ja=[{key:"finance",name:"金融服务",value:W(qe,10),count:kn,unit:"家",extra:`最高${C(Q)}万元`},{key:"insurance",name:"保险服务",value:W(mn,10),count:ce,unit:"家",extra:`覆盖${C(mn)}乡镇`},{key:"training",name:"技术培训",value:W(gn,200),count:ie,unit:"家",extra:`${C(gn)}人次`},{key:"disease",name:"疫病防控",value:W(dn,4),count:dn,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:W(ln,3),count:ln,unit:"个",extra:"服务主体"}];function Ne(n){return sa(n).map((e,a)=>({key:e.key||`${n}-metric-${a}`,name:e.name||e.zh||`指标${a+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function ra(n){return i(`${n}-right-metrics`,"环节核心指标","metric",Ne(n))}function oa(n,e=Ae(n)){return n==="milk-source-station"?[Vn(n),g(d({},e),{span:2,keepSpanHeight:!0})]:[Vn(n),ua(n),g(d({},e),{span:2,keepSpanHeight:!0})]}function Vn(n){const e=R(n);if(n==="scale-breeding")return i("scale-breeding-town-distribution","规模化养殖基地分布","column",Fn("baseCount","个","养殖基地"),{variant:"slim",lineOverlay:!0,scrollable:!1});if(n==="artificial-grassland")return i("artificial-grassland-town-area","各乡镇种草面积","column",ye,{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="milk-source-station")return i("milk-source-town-distribution","奶源站乡镇分布","column",hn(G,"奶源站"),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="slaughter-processing")return i("slaughter-processing-town-distribution","屠宰加工乡镇分布","column",hn([...w,...P],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="forage-trade")return i("forage-trade-town-amount","牧草交易金额分布","column",Ra(ne,["销售金额 (万元)"],{unit:"万元",extra:"销售金额"}),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="social-service")return i("social-service-credit-town","乡镇信用评定分布","column",K.townshipRows,{variant:"townCompact",scrollable:!1,uniformColor:!0,hasMore:!0});const a=n==="family-pasture"?"家庭牧场分布":`${e.metricLabel}镇域分布`;return i(`${n}-town-distribution`,a,"column",Te(n),{variant:"townCompact",scrollable:!1,uniformColor:!0})}function ua(n){const e=ra(n),a={"family-pasture":i("family-pasture-facility","牧场配套设施","iconMetric",Sa()),"artificial-grassland":Wn(Hn)?i("artificial-grassland-year","年度项目建设面积","line",Hn,{fixedType:!0}):i("artificial-grassland-type","建设类型面积","structure",Ze),"scale-breeding":i("scale-breeding-stock-rank","设计存栏规模排名","bar",ya("designStock","头","设计存栏"),{variant:"rankBar"}),"breeding-selection":i("breeding-selection-level-detail","选育/扩繁基地结构","structure",Pn),"forage-storage":i("forage-storage-grass-type","储备草种结构","structure",ge),"milk-source-station":i("milk-source-core","奶源站覆盖指标","iconMetric",Ne(n)),"slaughter-processing":i("slaughter-processing-value","产值结构","donut",Se,{variant:"ring"}),"forage-trade":i("forage-trade-core","牧草交易数据","forageTradeDashboard",ca,{renderer:"forageTradeDashboard"}),"social-service":i("social-service-credit-grade","信用户等级分布","donut",K.userRatingRows,{variant:"ring",hasMore:!0})}[n]||e;return Wn(a==null?void 0:a.rows)?a:e}function la(n){const e=R(n),a=Ae(n);return g(d({},a),{key:`${n}-bottom-list`,title:`${e.name}列表`,position:"right",height:466,span:2,keepSpanHeight:!0,fillRows:!1,maxRows:0,searchPlaceholder:`搜索${e.name}、乡镇或村`,emptyText:`无匹配${e.name}点位`,columns:ia(),searchKeys:["name","fullName","ledgerName","stageName","categoryName","town","village","address","valueText","extra","sourceSheet","searchText"]})}function ia(){return[{key:"name",label:"名称",field:"ledgerName",fields:["name","fullName"],width:"47%",className:"business-project-col-name"},{key:"region",label:"所属区域",field:"town",width:"40%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"13%",align:"center",fallback:"定位",action:"locate"}]}function Wn(n=[]){return Array.isArray(n)&&n.some(e=>{if(!e||e.zero||e.isZero||e.value===void 0||e.value===null||e.value==="")return!1;const a=Number(e.value);return Number.isFinite(a)?a>0:String(e.value).trim()!==""})}function Za(n){return{left:[],right:oa(n,la(n))}}const nt=[{key:"support-capacity",name:"饲草储备能力",value:M,unit:"吨",extra:`${B}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Yn,unit:"吨",extra:`${w.filter(f).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:h(J,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:Q,unit:"万元",extra:"金融服务"}];h(Number(S.actualAreaMu||0)/1e4,2),S.projectCount,`${S.constructionYearCount||0}`,S.coveredTownCount,h(S.investmentWanYuan||0,1),`${S.investmentRecordCount||0}`;`${L(k,p)}`,k.filter(n=>f(n)&&/正常/.test(n.status||"")).length;const ca=[{key:"forage-trade-sales-amount",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元",icon:"certificate",extra:`${T.sellerCount||0}家销售主体`},{key:"forage-trade-plant-area",name:"种草面积",value:T.plantAreaMu||0,unit:"亩",icon:"area",extra:"2025年销售侧"},{key:"forage-trade-forage-ton",name:"饲草销售",value:T.salesForageTon||0,unit:"吨",icon:"yield",extra:"销售品种"},{key:"forage-trade-purchase-amount",name:"采购金额",value:T.purchaseAmountWanYuan||0,unit:"万元",icon:"stack",extra:`${T.buyerCount||0}类采购主体`}],da=[{key:"forage-trade-sales-fund",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元",extra:`${T.sellerCount||0}家销售主体`},{key:"forage-trade-purchase-fund",name:"采购金额",value:T.purchaseAmountWanYuan||0,unit:"万元",extra:`${T.buyerCount||0}类采购主体`}].filter(n=>Number(n.value||0)>0);function et(){return{left:[i("industry-family-town-overview","家庭牧场分布","column",Te("family-pasture"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),i("industry-artificial-grassland-town-area","各乡镇种草面积","donut",ye,{variant:"ring"}),i("industry-scale-breeding-base","规模化养殖基地","column",Fn("baseCount","个","养殖基地"),{variant:"slim",lineOverlay:!0,scrollable:!1}),i("industry-milk-source-town","奶源站分布","column",hn(G,"奶源站"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[i("industry-breeding-selection-level","选育/扩繁基地","structure",Pn),i("industry-forage-storage-capacity","防灾库容分布","bar",he,{variant:"rankBar"}),i("industry-forage-trade-fund","牧草交易资金","bar",da,{variant:"rankBar"}),i("industry-value-structure","产业产值结构","donut",Se,{variant:"ring"})]}}function R(n){return _.find(e=>e.key===n)||_[0]}function ma(n){return zn.find(e=>e.key===n)||zn[0]}function Te(n){if(n==="family-pasture")return ha();if(n==="artificial-grassland")return na;if(n==="breeding-selection"){const e=H(q,p,()=>1).map(a=>g(d({},a),{unit:"个",extra:"选育/扩繁基地"}));return $(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=H(N("YC-BREEDING-BASE"),p,a=>l(a,["设计存栏量 (头)"])).map(a=>g(d({},a),{unit:"头",extra:`${a.count}个基地`}));return $(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?$(he,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...w,...P].filter(f).map(e=>({key:e.id,name:Nn(e.name),value:l(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(F).slice(0,7):n==="farm-equipment"?Zn.filter(f).map(e=>{var a;return{key:e.id,name:Nn(e.name),value:1,unit:"个",extra:((a=e.attributes)==null?void 0:a.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:kn,unit:"家",extra:`最高${C(Q)}万元`},{key:"insurance",name:"保险服务网点",value:ce,unit:"家",extra:`覆盖${C(mn)}乡镇`},{key:"training",name:"技术培训机构",value:ie,unit:"家",extra:`${C(Xe)}场`},{key:"disease",name:"疫病防控主体",value:dn,unit:"个",extra:"防疫服务"}]:[]}function ga(){const n=new Map(v.map((e,a)=>[e,{key:e,name:e,sourceIndex:a,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return In().forEach(e=>{const a=n.get(e.town);a&&(a.segments.baseCount+=1,a.segments.designStock+=Number(e.numericValue||e.value||0),a.segments.annualOutput+=Number(e.annualOutput||0))}),v.map(e=>n.get(e))}function Fn(n,e,a){return ga().map((t,s)=>{var u;const r=Number(((u=t.segments)==null?void 0:u[n])||0),o=r>0;return{key:`${t.key}-${n}`,name:t.name,rawValue:r,value:o?r:.001,displayValue:o?r:"0",unit:e,extra:a,zero:!o,sourceIndex:s}})}function ya(n,e,a){return Fn(n,e,a).filter(t=>t.rawValue>0).map(t=>g(d({},t),{value:t.rawValue,displayValue:t.rawValue})).sort(F)}function ha(){const n=an.length?an:z,e=new Map;return n.forEach(t=>{const s=p(t)||"未识别乡镇",r=e.get(s)||0;e.set(s,r+1)}),[...v,...[...e.keys()].filter(t=>t&&!v.includes(t)).sort((t,s)=>String(t).localeCompare(String(s),"zh-CN"))].map((t,s)=>{const r=Number(e.get(t)||0),o=r>0;return{key:t,name:t,value:o?r:.001,displayValue:o?r:"0",unit:"处",extra:"家庭生态牧场",zero:!o,sourceIndex:s}})}function Sa(){return[{key:"family-greenhouse",name:"标准化暖棚",value:tn,unit:"㎡",icon:"area",extra:`${C(ae)}处建设台账`},{key:"family-management",name:"生产管理用房",value:te,unit:"㎡",icon:"town",extra:"标准化配套"},{key:"family-fodder",name:"饲草料库",value:wn,unit:"㎡",icon:"stack",extra:"饲草保障配套"},{key:"family-activity",name:"活动场地及通道",value:se,unit:"㎡",icon:"yield",extra:"养殖活动配套"}]}function at(n={}){const e=[],a=(u,c,x="",U={})=>{ve(c)||e.push(d({label:u,value:Ga(c,x)},U))};if(n.categoryCode==="YC-FAMILY-PASTURE"&&(n.markerOnly===!0||n.coordinateMatchLevel==="markerOnly")||n.categoryCode==="YC-MILK-SOURCE-STATION")return a("所在村",n.village||n.address),e;const s=_a(n);if(!s)return a("所在村",n.village||n.address),e;const r=s.metrics||{},o=s.attributes||{};return s.categoryCode==="YC-FAMILY-PASTURE"?(a("户主",s.owner||o.户主),a("建设年份",s.constructionYear,"年"),a("所在村",s.village),a("标准化暖棚",r["标准化暖棚 (㎡)"],"㎡"),a("管理用房",r["管理用房 (㎡)"],"㎡"),a("饲草料库",r["饲草料库 (㎡)"],"㎡"),a("活动场地",r["活动场地及通道 (㎡)"],"㎡"),a("草料配套",s.grassSupportText||o.草料配套,"",{wide:!0}),e):s.categoryCode==="YC-MILK-SOURCE-STATION"?(a("所在村",s.village||s.address),e):s.categoryCode==="YC-FORAGE-TRADE-CENTER"?(a("种草面积",r["种草面积 (亩)"],"亩"),a("饲草销售量",r["饲草销售量 (吨)"],"吨"),a("草种销售量",r["草种销售量 (吨)"],"吨"),a("销售金额",r["销售金额 (万元)"],"万元"),a("采购金额",r["采购金额 (万元)"],"万元"),a("销售主体数",o.销售主体数,"家"),e):(a("运营单位",o.运营单位),a("育种等级",o.育种等级),a("育种方向",o.主要育种方向),a("设计存栏",r["设计存栏量 (头)"],"头"),a("年出栏量",r["年出栏量 (头)"],"头"),a("种植面积",r["种植面积 (亩)"]||s.scale,s.scale?"":"亩"),a("总库容",r["总库容 (吨)"],"吨"),a("年产值",r["年产值 (万元)"]||r["年总产值 (万元)"],"万元"),a("年加工量",r["年加工鲜奶总量 (吨)"]||r["年加工原料肉总量 (吨)"],"吨"),a("年屠宰量",r["年屠宰总量 (头)"],"头"),a("服务覆盖",r.服务覆盖乡镇数,"个乡镇"),a("最高授信",r["最高单户贷款额度 (万元)"],"万元"),a("主要产品",o.主要产品),a("主要草种",o.主要草种||o.储备草种),e.slice(0,8))}function N(n){return(Array.isArray(n)?n:[n]).flatMap(a=>{const t=Be.get(a);return(a==="YC-FAMILY-PASTURE"?Cn:(t==null?void 0:t.items)||[]).map(r=>{var c;const o=r.categoryCode||t.categoryCode,u=pe(t,r);return g(d({},r),{categoryCode:o,categoryName:r.categoryName||t.categoryName,stageKey:u,stageName:((c=R(u))==null?void 0:c.name)||r.stageName||t.categoryName})})})}function D(n){return n==="family-pasture"?jn.length?jn:en.filter(e=>e.stageKey===n&&e.canLocate):n==="artificial-grassland"?ea:n==="farm-equipment"?aa:n==="scale-breeding"?In():n==="breeding-selection"?en.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>g(d({},e),{stageKey:n,stageName:R(n).name,stageOrder:_.findIndex(a=>a.key===n)})):en.filter(e=>e.stageKey===n&&e.canLocate)}function E(n){return n==="family-pasture"?X:D(n).length}function Na(n={}){var x,U,V,Z;const e=Number(n.markerNo||n.matchedPointNo||0),a=He.get(e),t=m(n.name)||(e?`地图标记${e}号点`:"地图标记点"),s=m((a==null?void 0:a.town)||n.town)||"未识别乡镇",r=m((a==null?void 0:a.village)||n.village),o=m(a==null?void 0:a.name)||t,u=m(a==null?void 0:a.pointName)||t,c=a?a.coordinateMatchText:`地图原始标记点(未匹配建设台账)${[s,r].filter(Boolean).length?`:${[s,r].filter(Boolean).join(" · ")}`:""}`;return g(d(d({},n),a||{}),{id:(a==null?void 0:a.id)||n.id||(e?`YC-FAMILY-PASTURE-MARKER-${String(e).padStart(3,"0")}`:t),key:e?`family-marker-${e}`:n.id||t,name:o,fullName:o,town:s,areaName:s,village:r,address:r||s,markerNo:e,pointName:u,matchedPointNo:(a==null?void 0:a.matchedPointNo)||e,matchedPointTown:(a==null?void 0:a.matchedPointTown)||n.town||"",matchedPointVillage:(a==null?void 0:a.matchedPointVillage)||n.village||"",categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场",capacity:1,capacityUnit:"处",value:1,unit:"处",numericValue:1,valueText:"1处",longitude:(U=(x=n.longitude)!=null?x:a==null?void 0:a.longitude)!=null?U:"",latitude:(Z=(V=n.latitude)!=null?V:a==null?void 0:a.latitude)!=null?Z:"",markerOnly:!!n.markerOnly,status:a!=null&&a.constructionYear?`${a.constructionYear}年建设`:n.status||"地图标记点位",coordinateMatchLevel:(a==null?void 0:a.coordinateMatchLevel)||n.coordinateMatchLevel||"markerOnly",coordinateMatchText:c,sourceSheet:(a==null?void 0:a.sourceSheet)||n.sourceSheet||"地图标记家庭牧场点位"})}function Ta(n={}){var o,u;const e=Ln(n),a=_.findIndex(c=>c.key==="family-pasture"),t=n.markerNo?`${C(n.markerNo)}号点`:"",s=m(n.owner)||m(n.name)||t,r=[n.name,n.fullName,n.owner,n.town,n.village,t,n.pointName,n.constructionYear,n.facilityBrief,n.facilityDetail,n.grassSupportText,n.coordinateMatchText,n.markerOnly?"地图原始标记":"建设台账标记",n.sourceSheet].filter(Boolean).join(" ");return{key:n.key||n.id||t,id:n.id,name:m(n.name)||t,fullName:m(n.fullName||n.name)||t,stageKey:"family-pasture",stageName:"家庭生态牧场",stageOrder:a,categoryCode:"YC-FAMILY-PASTURE",typeName:"家庭生态牧场",categoryName:"家庭生态牧场",town:p(n)||"未识别乡镇",address:n.address||n.village||"",status:n.status||"地图标记点位",value:1,unit:"处",numericValue:1,valueText:"1处",extra:n.markerOnly?"地图原始标记":"建设台账标记",longitude:(o=e==null?void 0:e.longitude)!=null?o:"",latitude:(u=e==null?void 0:e.latitude)!=null?u:"",locateText:e?"定位":"暂无",canLocate:!!e,owner:n.owner||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||"",grassSupportText:n.grassSupportText||"",pointName:n.pointName||t,matchedPointNo:n.matchedPointNo||n.markerNo||"",markerNo:n.markerNo||"",markerOnly:!!n.markerOnly,coordinateMatchLevel:n.coordinateMatchLevel||"",coordinateMatchText:n.coordinateMatchText||"",preferCoordinateMatch:!0,ledgerName:s,ledgerLocation:[n.town,n.village].filter(Boolean).join(" · "),facilityCompact:xe(n.facilityBrief||""),sourceSheet:n.sourceSheet||"",searchText:r}}function xa(){return b.map((n,e)=>{const a=Ke.get(n.name),t=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Sn(t,s))return null;const r=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,o=`${n.name}农机装备监测点`,u=Number(n.devices||0),c=Number(n.count||0);return{key:r,id:r,name:o,fullName:o,stageKey:"farm-equipment",stageName:R("farm-equipment").name,stageOrder:_.findIndex(x=>x.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:u,unit:"套",numericValue:u,valueText:`${C(u)}套`,extra:`${C(c)}头识别样本`,longitude:t,latitude:s,locateText:"定位",canLocate:!0,searchText:[o,"农机装备",n.name,`${u}套`,`${c}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function f(n={}){var t;const e=m(n.name),a=m((t=n.attributes)==null?void 0:t.序号);return!(!e||Kn.has(e)||je.has(n.categoryCode)||Ve.some(s=>s.test(e))||a&&Kn.has(a)&&!Ca(n)||ze.some(s=>s.test(e)))}function A(n=[]){return n.filter(f).length}function Ca(n={}){return Object.values(n.metrics||{}).some(e=>j(e)>0)}function Un(n={}){var a,t,s,r;const e=Ce(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:p(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((a=n.attributes)==null?void 0:a.主要产品)||((t=n.attributes)==null?void 0:t.主要草种)||((s=n.attributes)==null?void 0:s.储备草种)||((r=n.attributes)==null?void 0:r.主要育种方向)||"",capacity:e,capacityUnit:fe(n),outputValue:l(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function fa(n={}){const e=Ce(n),a=fe(n),t=p(n);return{key:String(n.id||n.name),name:Nn(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:t||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:a,numericValue:Number(e)||0,valueText:Aa(n,e,a),extra:va(n),sourceSheet:n.sourceSheet}}function pa(n={}){var U,V;const e=fa(n),a=Ln(n),t=R(n.stageKey),s=m(n.name),r=m(n.categoryName).replace(/^cxpt/i,""),o=m(n.address||n.village||n.areaFullName||""),u=n.attributes||{},c=n.metrics||{},x=[s,e.name,t==null?void 0:t.name,r,e.town,o,u.简称,u.运营单位,u.主要产品,u.主要草种,u.储备草种,u.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,c["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return g(d({},e),{name:e.name,fullName:s,stageName:(t==null?void 0:t.name)||e.stageName||"",stageOrder:_.findIndex(Z=>Z.key===n.stageKey),categoryName:r,address:o,longitude:(U=a==null?void 0:a.longitude)!=null?U:"",latitude:(V=a==null?void 0:a.latitude)!=null?V:"",locateText:a?"定位":"暂无",canLocate:!!a,owner:n.owner||u.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||u.设施配置||"",grassSupportText:n.grassSupportText||u.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?xe(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?l(n,["年出栏量 (头)"]):0,searchText:x})}function In(){return en.filter(n=>Je.has(n.categoryCode)&&n.canLocate)}function I(){const n=In();return{baseCount:n.length,designStock:n.reduce((e,a)=>e+Number(a.numericValue||a.value||0),0),annualOutput:n.reduce((e,a)=>e+Number(a.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function xe(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Ce(n={}){var e,a;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?j(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?l(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?l(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?l(n,["总库容 (吨)"]):n.categoryCode==="YC-MILK-SOURCE-STATION"?1:n.categoryCode==="YC-FORAGE-TRADE-CENTER"?l(n,["销售金额 (万元)","种草面积 (亩)"]):n.categoryCode==="YC-PROCESSING-PLANT"?l(n,["年产值 (万元)"])||l(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?l(n,["年总产值 (万元)"])||l(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?l(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?l(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?l(n,["年培训人次","年培训场次"]):(a=n.categoryCode)!=null&&a.startsWith("YC-CXPT")?j(n.scale)||l(n,["acreage"]):l(n,Object.keys(n.metrics||{}))||1}function fe(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-MILK-SOURCE-STATION"?"个":n.categoryCode==="YC-FORAGE-TRADE-CENTER"||n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function Aa(n,e,a){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${C(e)}${a||""}`:String(e||"")}function va(n={}){const e=n.attributes||{},a=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||e["所属乡镇、村"]||a["主要贷款产品(可多选)"]||n.sourceSheet||""}function pe(n={},e={}){const a=e.categoryCode||n.categoryCode;return We.has(a)?"breeding-selection":e.stageKey||n.industryStage}function wa(){const n=new Map;return q.forEach(e=>{var s;const a=m((s=e.attributes)==null?void 0:s.育种等级)||"待完善",t=n.get(a)||{key:a,name:a,value:0,unit:"个"};t.value+=1,n.set(a,t)}),[...n.values()].sort((e,a)=>{var s,r;const t={省级:0,县级:1,待完善:2};return((s=t[e.name])!=null?s:9)-((r=t[a.name])!=null?r:9)})}function i(n,e,a,t,s={}){return d({key:n,title:e,height:227,renderer:"business",type:a,rows:t},s)}function ba(n){return n==="family-pasture"?D(n).filter(ka):!n||n===Oe?sn.flatMap(e=>D(e.key)):D(n)}function Ae(n){const e=R(n),a=ba(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:a,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:a,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ka(n={}){return n.categoryCode!=="YC-FAMILY-PASTURE"?!0:[n.ledgerName,n.owner,n.fullName,n.name].map(m).filter(Boolean).some(e=>!Ya(e))}function Ya(n=""){return/^地图标记(?:\d+号点|点)$/.test(m(n))}function Ra(n=[],e=[],a={}){const t=H(n,p,s=>l(s,e)).map(s=>g(d({},s),{unit:a.unit||"",extra:a.extra||`${s.count}个点位`}));return $(t,a)}function hn(n=[],e="点位"){const a=H(n,p,()=>1).map(t=>g(d({},t),{unit:"个",extra:e}));return $(a,{unit:"个",extra:e})}function Ea(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],a=new Map(e.map(t=>[t.key,{key:t.key,name:t.name,value:0,unit:"处"}]));return n.filter(f).forEach(t=>{var u,c;const s=[(u=t.attributes)==null?void 0:u.主要草种,(c=t.attributes)==null?void 0:c.储备草种].filter(Boolean).join("、"),r=e.filter(x=>x.key!=="other"&&x.pattern.test(s));(r.length?r:[e[e.length-1]]).forEach(x=>{a.get(x.key).value+=1})}),[...a.values()].filter(t=>t.value>0).sort(F)}function Pa(){return[{key:"raw-capacity",name:"原料加工",value:Yn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:on,unit:"头"},{key:"farmer-driven",name:"带动农户",value:Rn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:me,unit:"吨"}].filter(n=>n.value>0)}function Fa(){return H(D("social-service"),Ua,()=>1).map(n=>g(d({},n),{key:`social-service-${n.name}`,unit:n.name==="防疫"?"个":"家",extra:"可定位点位"})).filter(n=>n.value>0)}function Ua(n={}){const e=[n.categoryName,n.typeName,n.stageName,n.name].filter(Boolean).join(" ");return/保险/.test(e)?"保险":/培训/.test(e)?"培训":/防疫|疫病|疫控/.test(e)?"防疫":/金融|银行|贷款|授信/.test(e)?"金融":m(n.categoryName||n.typeName||"社会化服务").replace(/服务网点$/,"")}function H(n,e,a){const t=new Map;return n.filter(f).forEach(s=>{const r=m(typeof e=="function"?e(s):s[e])||"未填写",o=t.get(r)||{key:r,name:r,value:0,count:0,extra:""};o.value+=Number(a(s)||0),o.count+=1,t.set(r,o)}),[...t.values()].sort(F)}function $(n=[],e={}){const a=new Map;return n.forEach(t=>{const s=m(t==null?void 0:t.name),r=v.find(o=>o===s)||v.find(o=>{const u=o.replace(/[镇乡]$/,"");return u.length>=2&&s.includes(u)});r&&a.set(r,t)}),v.map((t,s)=>{const r=a.get(t),o=Number((r==null?void 0:r.value)||0),u=Number.isFinite(o)&&o>0;return{key:(r==null?void 0:r.key)||t,name:t,value:u?o:.001,displayValue:u?r.displayValue:"0",scaleValue:r==null?void 0:r.scaleValue,unit:(r==null?void 0:r.unit)||e.unit||"",extra:(r==null?void 0:r.extra)||e.extra||"",color:r==null?void 0:r.color,zero:!u,sourceIndex:s}})}function l(n={},e=[]){const a=n.metrics||{},t=Array.isArray(e)?e:[e];for(const s of t)if(Object.prototype.hasOwnProperty.call(a,s)){const r=j(a[s]);if(r||r===0)return r}return 0}function j(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(ve(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const a=e.match(/-?\d+(?:\.\d+)?/);if(!a)return 0;let t=Number(a[0]);return e.includes("万亩")&&!e.includes("万元")&&(t*=1e4),Number.isFinite(t)?t:0}function p(n={}){const e=m(n.town||n.areaName);if(v.includes(e))return e;const a=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),t=v.find(s=>a.includes(s));return t||v.find(s=>{const r=s.replace(/[镇乡]$/,"");return r.length>=2&&a.includes(r)})||e}function Ln(n={}){const e=O(n.longitude),a=O(n.latitude);if(Sn(e,a))return{longitude:e,latitude:a};const t=Object.values(n.locations||{}).find(s=>Sn(O(s==null?void 0:s.longitude),O(s==null?void 0:s.latitude)));return t?{longitude:O(t.longitude),latitude:O(t.latitude)}:null}function Sn(n,e){const a=Number(n),t=Number(e);return Number.isFinite(a)&&Number.isFinite(t)&&a>=nn.west&&a<=nn.east&&t>=nn.south&&t<=nn.north}function O(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Ia(n={}){var a;const e=[n.name,(a=n.attributes)==null?void 0:a.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function La(n={}){var a;const e=[n.name,(a=n.attributes)==null?void 0:a.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function _a(n={}){const e=String(n.id||"");return e&&Dn.has(e)?Dn.get(e):fn.find(a=>a.name===n.name&&a.categoryCode===n.categoryCode)}function W(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function y(n,e){return n.filter(f).reduce((a,t)=>a+Number(e(t)||0),0)}function _n(n,e){return n.filter(f).reduce((a,t)=>Math.max(a,Number(e(t)||0)),0)}function L(n,e){return new Set(n.filter(f).map(e).filter(Boolean)).size}function F(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function Nn(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function m(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function ve(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Ma(n){return typeof n=="number"?C(n):j(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Ga(n,e=""){if(e==="年"&&/^\d{4}$/.test(String(n!=null?n:"").trim()))return`${String(n).trim()}年`;const a=Ma(n);return!e||typeof n=="string"&&a.includes(e.replace(/^个/,""))?a:`${a}${e}`}function C(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function h(n,e=0){const a=On(10,e);return Math.round(Number(n||0)*a)/a}function Oa(n=[],e=[]){const a=[],t=new Map;return n.forEach(s=>{const r=g(d({},s),{items:[...s.items||[]]});a.push(r),t.set(r.categoryCode,r)}),e.forEach(s=>{if(!(s!=null&&s.categoryCode))return;const r=(s.items||[]).map(c=>{var x;return g(d({},c),{categoryCode:c.categoryCode||s.categoryCode,categoryName:c.categoryName||s.categoryName,stageKey:c.stageKey||s.industryStage,stageName:c.stageName||((x=R(s.industryStage))==null?void 0:x.name)||s.categoryName})}),o=t.get(s.categoryCode);if(o){o.categoryName=s.categoryName||o.categoryName,o.industryStage=s.industryStage||o.industryStage,o.items=s.replaceCategory?r:[...o.items||[],...r];return}const u=g(d({},s),{items:r});a.push(u),t.set(u.categoryCode,u)}),a}export{Oe as Y,et as a,Za as b,K as c,ha as d,Wa as e,at as f,R as g,Qa as h,$a as i,zn as j,Pn as k,he as l,Se as m,Ja as n,nt as o,Xa as p,ja as q,za as r,qa as s,Va as t,en as u,sn as v}; +`,Ze=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1785858872961.png",import.meta.url).href,na="industry-overview",M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126,iconType:"pasture"},{key:"artificial-grassland",name:"人工种草",color:"#22f6b8",unit:"万亩",metricLabel:"种草面积",width:112,iconType:"grass"},{key:"scale-breeding",name:"规模化养殖基地",color:"#ffd166",unit:"个",metricLabel:"基地",width:132,iconType:"breeding"},{key:"breeding-selection",name:"选育/扩繁基地",color:"#a78bfa",unit:"个",metricLabel:"基地",width:132,iconType:"gene"},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#ff8c78",unit:"吨",metricLabel:"库容",width:126,iconType:"storage"},{key:"milk-source-station",name:"奶源站",color:"#6ba7ff",unit:"个",metricLabel:"站点",width:112,iconType:"milk"},{key:"slaughter-processing",name:"屠宰与加工",color:"#43d9ff",unit:"万元",metricLabel:"产值",width:112,iconType:"factory"},{key:"farm-equipment",name:"农机装备",color:"#30DCFF",unit:"个",metricLabel:"装备",width:112,iconType:"equipment"},{key:"forage-trade",name:"牧草交易",color:"#46e6ad",unit:"个",metricLabel:"点位",width:112,iconType:"trade"},{key:"social-service",name:"社会化服务",subName:"信用/金融/疫病/保险/培训",color:"#f0c35a",unit:"户",metricLabel:"信用户",width:132,iconType:"service"}],ln=M.filter(n=>n.key!=="farm-equipment"),mn=(ie["yak-industry-chain"]||[]).find(n=>n.key==="yak-industry-points");(ie["yak-industry-chain"]||[]).find(n=>n.key==="artificial-grassland-plots");new Map(((mn==null?void 0:mn.legends)||[]).map(n=>{var a;const e=((a=n.match)==null?void 0:a.value)||String(n.key||"").replace(/^yak-industry-/,"");return e?[e,n.name]:null}).filter(Boolean));const w=Ve.map(n=>n.zoneName),ea=new Map(We.map(n=>[n.name,n.center])),ce=JSON.parse($e),vn=JSON.parse(Qe),de=JSON.parse(ze),aa=JSON.parse(qe),R=JSON.parse(Xe),C=JSON.parse(Je),gn=[{key:"A级",displayName:"A级",color:"#37f2bd"},{key:"B级",displayName:"B级",color:"#30dcff"},{key:"C级",displayName:"C级",color:"#f7d675"},{key:"D级",displayName:"D级",color:"#ff9b88"}];var Zn;const rn=Number(((Zn=C.totals)==null?void 0:Zn.villageCount)||0);var ne;const G=Number(((ne=C.totals)==null?void 0:ne.householdCount)||0),me=(C.userRatingRows||[]).map(n=>d(i({},n),{percent:G>0?g(Number(n.value||0)/G*100,1):0})),ge=gn.map(n=>{const e=(C.villageGradeRows||[]).find(t=>t.key===n.key)||{},a=Number(e.value||0);return d(i(i({},e),n),{name:n.key,value:a,unit:"个村",percent:rn>0?g(a/rn*100,1):0})}),ta=(C.townships||[]).map(n=>({key:n.key||n.name,name:n.name,total:Number(n.villageCount||0),householdCount:Number(n.householdCount||0),authorizationRate:Number(n.authorizationRate||0),segments:gn.map(e=>{var a;return d(i({},e),{name:e.key,value:Number(((a=n.villageGrades)==null?void 0:a[e.key])||0)})})})).sort((n,e)=>{var a,t;for(const r of gn){const s=Number(((a=e.segments.find(o=>o.key===r.key))==null?void 0:a.value)||0)-Number(((t=n.segments.find(o=>o.key===r.key))==null?void 0:t.value)||0);if(s)return s}return e.total-n.total||String(n.name).localeCompare(String(e.name),"zh-CN")});var ee,ae,te;const ra=[{key:"authorized",name:"已授信",statusValue:"是",value:Number(((ee=C.totals)==null?void 0:ee.authorizedCount)||0),unit:"户",color:"#37f2bd"},{key:"unauthorized",name:"未授信",statusValue:"否",value:Number(((ae=C.totals)==null?void 0:ae.unauthorizedCount)||0),unit:"户",color:"#30dcff"},{key:"unfilled",name:"未填写",statusValue:"未填写",value:Number(((te=C.totals)==null?void 0:te.unfilledAuthorizationCount)||0),unit:"户",color:"#8399a7"}].map(n=>d(i({},n),{percent:G>0?g(n.value/G*100,2):0})),sn=[{key:"rural-commercial-bank",name:"农商银行红原县支行",value:6308,authorizedCount:4263,unauthorizedCount:2045,unfilledCount:0},{key:"agricultural-bank",name:"农行红原县支行",value:2882,authorizedCount:935,unauthorizedCount:1945,unfilledCount:2}].map(n=>d(i({},n),{unit:"户",authorizationRate:n.value>0?g(n.authorizedCount/n.value*100,1):0}));var re,se;const sa=[{key:"evaluated-households",name:"评定信用户",value:G,unit:"户"},{key:"authorized-households",name:"已授信用户",value:Number(((re=C.totals)==null?void 0:re.authorizedCount)||0),unit:"户"},{key:"unauthorized-households",name:"未授信用户",value:Number(((se=C.totals)==null?void 0:se.unauthorizedCount)||0),unit:"户"},{key:"rating-institutions",name:"评定机构",value:sn.length,unit:"家"}];var oe;const it=[...sa,{key:"credit-villages",name:"信用村",value:rn,unit:"个"},{key:"authorization-rate",name:"授信率",value:Number(((oe=C.totals)==null?void 0:oe.authorizationRate)||0),unit:"%"},...ge.map(n=>({key:`credit-village-${n.key}`,name:`${n.key}信用村`,value:n.value,unit:"个"}))],An=rt(ce.categories||[],vn.categories||[]),oa=new Map(An.map(n=>[n.categoryCode,n])),wn=(de.records||[]).map(n=>d(i({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),ua=new Map(wn.map(n=>[Number(n.matchedPointNo||n.markerNo||0),n]).filter(([n])=>Number.isFinite(n)&&n>0)),on=(de.markerPoints||[]).map(_a),zn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),la=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),ia=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],ca=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],da=new Set(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),bn=An.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?wn:n.items||[]).map(e=>{var r;const a=e.categoryCode||n.categoryCode,t=Me(n,e);return d(i({},e),{categoryCode:a,categoryName:e.categoryName||n.categoryName,stageKey:t,stageName:((r=E(t))==null?void 0:r.name)||e.stageName||n.categoryName})})),cn=bn.filter(p),Vn=new Map(bn.map(n=>[String(n.id),n])),V=N("YC-FAMILY-PASTURE"),J=N(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),kn=N(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),Y=N("YC-DISASTER-FORAGE-STORAGE"),b=N("YC-PROCESSING-PLANT"),F=N("YC-SLAUGHTERHOUSE"),ye=N("YC-FARM-EQUIPMENT"),K=N("YC-MILK-SOURCE-STATION"),he=N("YC-FORAGE-TRADE-CENTER"),ma=N("YC-DISEASE-CONTROL"),Yn=N("YC-TECH-TRAINING"),Rn=N("YC-SERVICE-FINANCE"),Se=N("YC-SERVICE-INSURANCE"),Ne=A(V),Z=on.length||Ne,un=h(V,n=>l(n,["标准化暖棚 (㎡)"])),Te=h(V,n=>l(n,["管理用房 (㎡)"])),En=h(V,n=>l(n,["饲草料库 (㎡)"])),xe=h(V,n=>l(n,["活动场地及通道 (㎡)"]));A(kn);const H=A(Y),Pn=A(J),Ce=h(J,n=>l(n,["设计存栏量 (头)"]));A(b);A(F);const yn=A(ye),fe=A(K),hn=K.filter(n=>p(n)&&Kn(n)).length,pe=_(K,v),ve=A(he),Sn=A(ma),Ae=A(Yn),Fn=A(Rn),we=A(Se);An.filter(n=>N(n.categoryCode).some(p)).length;cn.length;new Set(cn.map(v).filter(Boolean)).size||w.length;const ga=Math.max(yn,k.reduce((n,e)=>n+Number(e.devices||0),0));h(kn,n=>l(n,["种植面积 (亩)","acreage"])||z(n.scale));const O=h(Y,n=>l(n,["总库容 (吨)"]));h(N("YC-BREEDING-BASE"),n=>l(n,["设计存栏量 (头)"]));h(N("YC-BREEDING-BASE"),n=>l(n,["年出栏量 (头)"]));const be=h(b,n=>l(n,["年产值 (万元)"])),Un=h(b,n=>l(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),In=h(b,n=>l(n,["带动本地农户数"])),Ln=h(F,n=>l(n,["年总产值 (万元)"])),dn=h(F,n=>l(n,["年屠宰总量 (头)"])),ke=h(F,n=>l(n,["冷冻库容量 (吨)"])),nn=be+Ln,X=Dn(Rn,n=>l(n,["最高单户贷款额度 (万元)"])),ya=Dn(Rn,n=>l(n,["服务覆盖乡镇数"])),Nn=Dn(Se,n=>l(n,["服务覆盖乡镇数"])),ha=h(Yn,n=>l(n,["年培训场次"])),Tn=h(Yn,n=>l(n,["年培训人次"]));var ue;const T=((ue=vn.forageTrade)==null?void 0:ue.metrics)||{};var le;(le=vn.forageTrade)!=null&&le.rows;N("YC-BREEDING-BASE");const Sa=new Set(["YC-BREEDING-BASE"]),Wn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Ze,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],Ye=Qa([...kn,...Y]),S=R.summary||{};R.projectRows;const $n=R.yearRows||[],Na=R.typeRows||[];R.operationRows;R.disturbanceRows;const Ta=[...R.townRows||[]].sort(U),Re=[...R.townAreaRows||[]].sort(U);R.investmentRows;const xa=aa.plotRows||[];qa();k.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${f(n.count)}头识别样本`})).filter(n=>n.value>0).sort(U);k.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${f(n.devices)}套设备`})).filter(n=>n.value>0).sort(U);const Ca=Ga();ce.generatedAt;const ct=Y.map(Gn),dt=[...b,...F].map(Gn),mt=cn.map(Gn),tn=cn.map(Da).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN")),Qn=on.map(Ma).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||Number(n.markerNo||0)-Number(e.markerNo||0));Xa();function gt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return Wn.find(t=>t.key===e)||null;const a=[n.name,n.fullName].filter(Boolean).map(t=>String(t));return Wn.find(t=>t.aliases.some(r=>a.some(s=>s===r||s.includes(r)||r.includes(s))))||null}ln.reduce((n,e)=>n+P(e.key),0);const fa=new Set(ln.flatMap(n=>B(n.key).map(e=>e.town)).filter(Boolean)).size||w.length,xn=L(),yt=[{zh:"生态牧场",name:"生态牧场",value:Z,unit:"处",icon:"leaf"},{zh:"人工种草",name:"人工种草",value:g(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",decimals:2,icon:"area"},{zh:"规模养殖",name:"规模养殖",value:xn.baseCount,unit:"个",icon:"town"},{zh:"选育扩繁",name:"选育扩繁",value:Pn,unit:"个",icon:"project"},{zh:"防灾储备",name:"防灾储备",value:O,unit:"吨",icon:"stack"},{zh:"产业产值",name:"产业产值",value:g(nn,1),unit:"万元",decimals:1,icon:"certificate"}];function pa(n){const e=Pa(n),a=L();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:Z,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:un,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:En,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:g(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:S.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:S.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:S.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:a.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:a.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:a.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:a.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:Pn,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:_(J,v),unit:"个"},{zh:"育种等级",name:"育种等级",value:_n.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:H,unit:"个"},{zh:"总库容",name:"总库容",value:O,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:_(Y,v),unit:"个"},{zh:"草种类型",name:"草种类型",value:Ye.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:fe,unit:"个"},{zh:"已定位点位",name:"已定位点位",value:hn,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pe,unit:"个"},{zh:"覆盖村",name:"覆盖村",value:_(K,r=>r.village),unit:"个"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:P("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:g(nn,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:dn,unit:"头"},{zh:"带动农户",name:"带动农户",value:In,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:P("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:k.reduce((r,s)=>r+Number(s.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:k.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:k.reduce((r,s)=>r+Number(s.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易中心",name:"交易中心",value:ve,unit:"个"},{zh:"销售主体",name:"销售主体",value:T.sellerCount||0,unit:"家"},{zh:"种草面积",name:"种草面积",value:T.plantAreaMu||0,unit:"亩"},{zh:"销售金额",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元"}],"social-service":[{zh:"评定信用户",name:"评定信用户",value:C.totals.householdCount,unit:"户"},{zh:"已授信用户",name:"已授信用户",value:C.totals.authorizedCount,unit:"户"},{zh:"未授信用户",name:"未授信用户",value:C.totals.unauthorizedCount,unit:"户"},{zh:"评定机构",name:"评定机构",value:sn.length,unit:"家"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const ht=[{key:"chain-family",name:"生态牧场",value:Z,unit:"处",icon:"project",extra:`${fa}个乡镇覆盖`},{key:"chain-grass",name:"人工种草",value:g(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area",extra:`${S.projectCount||0}项建设项目`},{key:"chain-breeding",name:"规模养殖",value:xn.baseCount,unit:"个",icon:"town",extra:`设计存栏${f(xn.designStock)}头`},{key:"chain-selection",name:"选育扩繁",value:Pn,unit:"个",icon:"project",extra:`设计存栏${f(Ce)}头`},{key:"chain-storage",name:"防灾储备",value:O,unit:"吨",icon:"stack",extra:`${H}个储备库`},{key:"chain-output",name:"产业产值",value:g(nn,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"}],St=ln.map(n=>({key:n.key,name:n.name,value:P(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),qn=[{key:"family-pasture",name:"家庭生态牧场",value:Z,unit:"处",capacity:g(un/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:g(un/1e4,2),unit:"万㎡"},{label:"管理用房",value:g(Te/1e4,2),unit:"万㎡"},{label:"饲草料库",value:g(En/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:g(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:S.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:g(Number(S.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:S.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:S.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:L().baseCount,unit:"个",capacity:L().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:L().designStock,unit:"头"},{label:"年出栏",value:L().annualOutput,unit:"头"},{label:"覆盖乡镇",value:L().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:H,unit:"个",capacity:O,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:H,unit:"个"},{label:"总库容",value:O,unit:"吨"},{label:"覆盖乡镇",value:_(Y,v),unit:"个"}]},{key:"milk-source-station",name:"奶源站",value:fe,unit:"个",capacity:hn,capacityUnit:"个",note:"2026年奶源站站名表按村界生成点位",fields:[{label:"已定位点位",value:hn,unit:"个"},{label:"覆盖乡镇",value:pe,unit:"个"},{label:"覆盖村",value:_(K,n=>n.village),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:P("slaughter-processing"),unit:"个",capacity:g(nn,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:be,unit:"万元"},{label:"屠宰产值",value:g(Ln,1),unit:"万元"},{label:"年屠宰量",value:dn,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:P("farm-equipment"),unit:"个",capacity:ga,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:P("farm-equipment"),unit:"个"},{label:"识别设备",value:k.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:k.length,unit:"个"}]},{key:"forage-trade",name:"牧草交易",value:ve,unit:"个",capacity:T.salesAmountWanYuan||0,capacityUnit:"万元",note:"2025年草种销售、采购情况",fields:[{label:"销售主体",value:T.sellerCount||0,unit:"家"},{label:"种草面积",value:T.plantAreaMu||0,unit:"亩"},{label:"饲草销售",value:T.salesForageTon||0,unit:"吨"}]},{key:"social-service",name:"社会化服务",value:P("social-service"),unit:"个",capacity:X,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Fn,unit:"家"},{label:"最高授信",value:X,unit:"万元"},{label:"培训人次",value:Tn,unit:"人次"}]}],_n=ja(),Ee=j(Y,v,n=>l(n,["总库容 (吨)"])).map(n=>d(i({},n),{unit:"吨",extra:`${n.count}个库点`})),Pe=[{key:"milk-processing",name:"乳品加工",value:h(b.filter(Za),n=>l(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:h(b.filter(nt),n=>l(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:g(Ln,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Nt=[{key:"raw-capacity",name:"年加工原料",value:Un,unit:"吨",extra:`${b.filter(p).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:dn,unit:"头",extra:`${F.filter(p).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:In,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:ke,unit:"吨",extra:"屠宰冷链"}],Tt=[{key:"finance",name:"金融服务",value:Q(ya,10),count:Fn,unit:"家",extra:`最高${f(X)}万元`},{key:"insurance",name:"保险服务",value:Q(Nn,10),count:we,unit:"家",extra:`覆盖${f(Nn)}乡镇`},{key:"training",name:"技术培训",value:Q(Tn,200),count:Ae,unit:"家",extra:`${f(Tn)}人次`},{key:"disease",name:"疫病防控",value:Q(Sn,4),count:Sn,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:Q(yn,3),count:yn,unit:"个",extra:"服务主体"}];function Fe(n){return pa(n).map((e,a)=>({key:e.key||`${n}-metric-${a}`,name:e.name||e.zh||`指标${a+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function va(n){return c(`${n}-right-metrics`,"环节核心指标","metric",Fe(n))}function Aa(n,e=Ge(n)){return n==="milk-source-station"?[Xn(n),d(i({},e),{span:2,keepSpanHeight:!0})]:[Xn(n),wa(n),d(i({},e),{span:2,keepSpanHeight:!0})]}function Xn(n){const e=E(n);if(n==="scale-breeding")return c("scale-breeding-town-distribution","规模化养殖基地分布","column",Mn("baseCount","个","养殖基地"),{variant:"slim",lineOverlay:!0,scrollable:!1});if(n==="artificial-grassland")return c("artificial-grassland-town-area","各乡镇种草面积","column",Re,{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="milk-source-station")return c("milk-source-town-distribution","奶源站乡镇分布","column",Cn(K,"奶源站"),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="slaughter-processing")return c("slaughter-processing-town-distribution","屠宰加工乡镇分布","column",Cn([...b,...F],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="forage-trade")return c("forage-trade-town-amount","牧草交易金额分布","column",$a(he,["销售金额 (万元)"],{unit:"万元",extra:"销售金额"}),{variant:"townCompact",scrollable:!1,uniformColor:!0});if(n==="social-service")return c("social-service-credit-town","乡镇信用评定分布","column",C.townshipRows,{variant:"townCompact",scrollable:!1,uniformColor:!0,hasMore:!0});const a=n==="family-pasture"?"家庭牧场分布":`${e.metricLabel}镇域分布`;return c(`${n}-town-distribution`,a,"column",Ue(n),{variant:"townCompact",scrollable:!1,uniformColor:!0})}function wa(n){const e=va(n),a={"family-pasture":c("family-pasture-facility","牧场配套设施","iconMetric",La()),"artificial-grassland":Jn($n)?c("artificial-grassland-year","年度项目建设面积","line",$n,{fixedType:!0}):c("artificial-grassland-type","建设类型面积","structure",Na),"scale-breeding":c("scale-breeding-stock-rank","设计存栏规模排名","bar",Ua("designStock","头","设计存栏"),{variant:"rankBar"}),"breeding-selection":c("breeding-selection-level-detail","选育/扩繁基地结构","structure",_n),"forage-storage":c("forage-storage-grass-type","储备草种结构","structure",Ye),"milk-source-station":c("milk-source-core","奶源站覆盖指标","iconMetric",Fe(n)),"slaughter-processing":c("slaughter-processing-value","产值结构","donut",Pe,{variant:"ring"}),"forage-trade":c("forage-trade-core","牧草交易数据","forageTradeDashboard",Ra,{renderer:"forageTradeDashboard"}),"social-service":c("social-service-credit-grade","信用户星级分布","donut",me,{variant:"ring",hasMore:!0})}[n]||e;return Jn(a==null?void 0:a.rows)?a:e}function $(n,e,a,t,r={}){return i({key:n,title:e,type:"socialCredit",renderer:"socialCredit",variant:a,rows:t,preserveHeight:!0},r)}function ba(){var n;return{left:[$("social-service-credit-village-grade","信用村等级分布","villageOverview",ge,{height:270,total:rn,totalUnit:"个",hasMore:!0,moreLabel:"查看全部",moreAriaLabel:"查看全部信用评定信息"}),$("social-service-credit-town-grade-rank","乡镇信用村等级排行","townGradeRank",ta,{height:662})],right:[$("social-service-credit-authorization","授信用户占比","authorization",ra,{height:270,total:G,authorizationRate:Number(((n=C.totals)==null?void 0:n.authorizationRate)||0)}),$("social-service-credit-institution-rank","评定机构排行","institutionRank",sn,{height:270,institutionCount:sn.length}),$("social-service-credit-user-rating","信用户星级分布","userRating",me,{height:380,total:G})]}}function ka(n){const e=E(n),a=Ge(n);return d(i({},a),{key:`${n}-bottom-list`,title:`${e.name}列表`,position:"right",height:466,span:2,keepSpanHeight:!0,fillRows:!1,maxRows:0,searchPlaceholder:`搜索${e.name}、乡镇或村`,emptyText:`无匹配${e.name}点位`,columns:Ya(),searchKeys:["name","fullName","ledgerName","stageName","categoryName","town","village","address","valueText","extra","sourceSheet","searchText"]})}function Ya(){return[{key:"name",label:"名称",field:"ledgerName",fields:["name","fullName"],width:"47%",className:"business-project-col-name"},{key:"region",label:"所属区域",field:"town",width:"40%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"13%",align:"center",fallback:"定位",action:"locate"}]}function Jn(n=[]){return Array.isArray(n)&&n.some(e=>{if(!e||e.zero||e.isZero||e.value===void 0||e.value===null||e.value==="")return!1;const a=Number(e.value);return Number.isFinite(a)?a>0:String(e.value).trim()!==""})}function xt(n){return n==="social-service"?ba():{left:[],right:Aa(n,ka(n))}}const Ct=[{key:"support-capacity",name:"饲草储备能力",value:O,unit:"吨",extra:`${H}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Un,unit:"吨",extra:`${b.filter(p).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:g(nn,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:X,unit:"万元",extra:"金融服务"}];g(Number(S.actualAreaMu||0)/1e4,2),S.projectCount,`${S.constructionYearCount||0}`,S.coveredTownCount,g(S.investmentWanYuan||0,1),`${S.investmentRecordCount||0}`;`${_(Y,v)}`,Y.filter(n=>p(n)&&/正常/.test(n.status||"")).length;const Ra=[{key:"forage-trade-sales-amount",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元",icon:"certificate",extra:`${T.sellerCount||0}家销售主体`},{key:"forage-trade-plant-area",name:"种草面积",value:T.plantAreaMu||0,unit:"亩",icon:"area",extra:"2025年销售侧"},{key:"forage-trade-forage-ton",name:"饲草销售",value:T.salesForageTon||0,unit:"吨",icon:"yield",extra:"销售品种"},{key:"forage-trade-purchase-amount",name:"采购金额",value:T.purchaseAmountWanYuan||0,unit:"万元",icon:"stack",extra:`${T.buyerCount||0}类采购主体`}],Ea=[{key:"forage-trade-sales-fund",name:"销售金额",value:T.salesAmountWanYuan||0,unit:"万元",extra:`${T.sellerCount||0}家销售主体`},{key:"forage-trade-purchase-fund",name:"采购金额",value:T.purchaseAmountWanYuan||0,unit:"万元",extra:`${T.buyerCount||0}类采购主体`}].filter(n=>Number(n.value||0)>0);function ft(){return{left:[c("industry-family-town-overview","家庭牧场分布","column",Ue("family-pasture"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),c("industry-artificial-grassland-town-area","各乡镇种草面积","donut",Re,{variant:"ring"}),c("industry-scale-breeding-base","规模化养殖基地","column",Mn("baseCount","个","养殖基地"),{variant:"slim",lineOverlay:!0,scrollable:!1}),c("industry-milk-source-town","奶源站分布","column",Cn(K,"奶源站"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[c("industry-breeding-selection-level","选育/扩繁基地","structure",_n),c("industry-forage-storage-capacity","防灾库容分布","bar",Ee,{variant:"rankBar"}),c("industry-forage-trade-fund","牧草交易资金","bar",Ea,{variant:"rankBar"}),c("industry-value-structure","产业产值结构","donut",Pe,{variant:"ring"})]}}function E(n){return M.find(e=>e.key===n)||M[0]}function Pa(n){return qn.find(e=>e.key===n)||qn[0]}function Ue(n){if(n==="family-pasture")return Ia();if(n==="artificial-grassland")return Ta;if(n==="breeding-selection"){const e=j(J,v,()=>1).map(a=>d(i({},a),{unit:"个",extra:"选育/扩繁基地"}));return q(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=j(N("YC-BREEDING-BASE"),v,a=>l(a,["设计存栏量 (头)"])).map(a=>d(i({},a),{unit:"头",extra:`${a.count}个基地`}));return q(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?q(Ee,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...b,...F].filter(p).map(e=>({key:e.id,name:pn(e.name),value:l(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(U).slice(0,7):n==="farm-equipment"?ye.filter(p).map(e=>{var a;return{key:e.id,name:pn(e.name),value:1,unit:"个",extra:((a=e.attributes)==null?void 0:a.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Fn,unit:"家",extra:`最高${f(X)}万元`},{key:"insurance",name:"保险服务网点",value:we,unit:"家",extra:`覆盖${f(Nn)}乡镇`},{key:"training",name:"技术培训机构",value:Ae,unit:"家",extra:`${f(ha)}场`},{key:"disease",name:"疫病防控主体",value:Sn,unit:"个",extra:"防疫服务"}]:[]}function Fa(){const n=new Map(w.map((e,a)=>[e,{key:e,name:e,sourceIndex:a,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return On().forEach(e=>{const a=n.get(e.town);a&&(a.segments.baseCount+=1,a.segments.designStock+=Number(e.numericValue||e.value||0),a.segments.annualOutput+=Number(e.annualOutput||0))}),w.map(e=>n.get(e))}function Mn(n,e,a){return Fa().map((t,r)=>{var u;const s=Number(((u=t.segments)==null?void 0:u[n])||0),o=s>0;return{key:`${t.key}-${n}`,name:t.name,rawValue:s,value:o?s:.001,displayValue:o?s:"0",unit:e,extra:a,zero:!o,sourceIndex:r}})}function Ua(n,e,a){return Mn(n,e,a).filter(t=>t.rawValue>0).map(t=>d(i({},t),{value:t.rawValue,displayValue:t.rawValue})).sort(U)}function Ia(){const n=on.length?on:V,e=new Map;return n.forEach(t=>{const r=v(t)||"未识别乡镇",s=e.get(r)||0;e.set(r,s+1)}),[...w,...[...e.keys()].filter(t=>t&&!w.includes(t)).sort((t,r)=>String(t).localeCompare(String(r),"zh-CN"))].map((t,r)=>{const s=Number(e.get(t)||0),o=s>0;return{key:t,name:t,value:o?s:.001,displayValue:o?s:"0",unit:"处",extra:"家庭生态牧场",zero:!o,sourceIndex:r}})}function La(){return[{key:"family-greenhouse",name:"标准化暖棚",value:un,unit:"㎡",icon:"area",extra:`${f(Ne)}处建设台账`},{key:"family-management",name:"生产管理用房",value:Te,unit:"㎡",icon:"town",extra:"标准化配套"},{key:"family-fodder",name:"饲草料库",value:En,unit:"㎡",icon:"stack",extra:"饲草保障配套"},{key:"family-activity",name:"活动场地及通道",value:xe,unit:"㎡",icon:"yield",extra:"养殖活动配套"}]}function pt(n={}){const e=[],a=(u,m,x="",I={})=>{Oe(m)||e.push(i({label:u,value:tt(m,x)},I))};if(n.categoryCode==="YC-FAMILY-PASTURE"&&(n.markerOnly===!0||n.coordinateMatchLevel==="markerOnly")||n.categoryCode==="YC-MILK-SOURCE-STATION")return a("所在村",n.village||n.address),e;const r=et(n);if(!r)return a("所在村",n.village||n.address),e;const s=r.metrics||{},o=r.attributes||{};return r.categoryCode==="YC-FAMILY-PASTURE"?(a("户主",r.owner||o.户主),a("建设年份",r.constructionYear,"年"),a("所在村",r.village),a("标准化暖棚",s["标准化暖棚 (㎡)"],"㎡"),a("管理用房",s["管理用房 (㎡)"],"㎡"),a("饲草料库",s["饲草料库 (㎡)"],"㎡"),a("活动场地",s["活动场地及通道 (㎡)"],"㎡"),a("草料配套",r.grassSupportText||o.草料配套,"",{wide:!0}),e):r.categoryCode==="YC-MILK-SOURCE-STATION"?(a("所在村",r.village||r.address),e):r.categoryCode==="YC-FORAGE-TRADE-CENTER"?(a("种草面积",s["种草面积 (亩)"],"亩"),a("饲草销售量",s["饲草销售量 (吨)"],"吨"),a("草种销售量",s["草种销售量 (吨)"],"吨"),a("销售金额",s["销售金额 (万元)"],"万元"),a("采购金额",s["采购金额 (万元)"],"万元"),a("销售主体数",o.销售主体数,"家"),e):(a("运营单位",o.运营单位),a("育种等级",o.育种等级),a("育种方向",o.主要育种方向),a("设计存栏",s["设计存栏量 (头)"],"头"),a("年出栏量",s["年出栏量 (头)"],"头"),a("种植面积",s["种植面积 (亩)"]||r.scale,r.scale?"":"亩"),a("总库容",s["总库容 (吨)"],"吨"),a("年产值",s["年产值 (万元)"]||s["年总产值 (万元)"],"万元"),a("年加工量",s["年加工鲜奶总量 (吨)"]||s["年加工原料肉总量 (吨)"],"吨"),a("年屠宰量",s["年屠宰总量 (头)"],"头"),a("服务覆盖",s.服务覆盖乡镇数,"个乡镇"),a("最高授信",s["最高单户贷款额度 (万元)"],"万元"),a("主要产品",o.主要产品),a("主要草种",o.主要草种||o.储备草种),e.slice(0,8))}function N(n){return(Array.isArray(n)?n:[n]).flatMap(a=>{const t=oa.get(a);return(a==="YC-FAMILY-PASTURE"?wn:(t==null?void 0:t.items)||[]).map(s=>{var m;const o=s.categoryCode||t.categoryCode,u=Me(t,s);return d(i({},s),{categoryCode:o,categoryName:s.categoryName||t.categoryName,stageKey:u,stageName:((m=E(u))==null?void 0:m.name)||s.stageName||t.categoryName})})})}function B(n){return n==="family-pasture"?Qn.length?Qn:tn.filter(e=>e.stageKey===n&&e.canLocate):n==="artificial-grassland"?xa:n==="farm-equipment"?Ca:n==="scale-breeding"?On():n==="breeding-selection"?tn.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>d(i({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(a=>a.key===n)})):tn.filter(e=>e.stageKey===n&&e.canLocate)}function P(n){return n==="family-pasture"?Z:B(n).length}function _a(n={}){var x,I,W,en;const e=Number(n.markerNo||n.matchedPointNo||0),a=ua.get(e),t=y(n.name)||(e?`地图标记${e}号点`:"地图标记点"),r=y((a==null?void 0:a.town)||n.town)||"未识别乡镇",s=y((a==null?void 0:a.village)||n.village),o=y(a==null?void 0:a.name)||t,u=y(a==null?void 0:a.pointName)||t,m=a?a.coordinateMatchText:`地图原始标记点(未匹配建设台账)${[r,s].filter(Boolean).length?`:${[r,s].filter(Boolean).join(" · ")}`:""}`;return d(i(i({},n),a||{}),{id:(a==null?void 0:a.id)||n.id||(e?`YC-FAMILY-PASTURE-MARKER-${String(e).padStart(3,"0")}`:t),key:e?`family-marker-${e}`:n.id||t,name:o,fullName:o,town:r,areaName:r,village:s,address:s||r,markerNo:e,pointName:u,matchedPointNo:(a==null?void 0:a.matchedPointNo)||e,matchedPointTown:(a==null?void 0:a.matchedPointTown)||n.town||"",matchedPointVillage:(a==null?void 0:a.matchedPointVillage)||n.village||"",categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场",capacity:1,capacityUnit:"处",value:1,unit:"处",numericValue:1,valueText:"1处",longitude:(I=(x=n.longitude)!=null?x:a==null?void 0:a.longitude)!=null?I:"",latitude:(en=(W=n.latitude)!=null?W:a==null?void 0:a.latitude)!=null?en:"",markerOnly:!!n.markerOnly,status:a!=null&&a.constructionYear?`${a.constructionYear}年建设`:n.status||"地图标记点位",coordinateMatchLevel:(a==null?void 0:a.coordinateMatchLevel)||n.coordinateMatchLevel||"markerOnly",coordinateMatchText:m,sourceSheet:(a==null?void 0:a.sourceSheet)||n.sourceSheet||"地图标记家庭牧场点位"})}function Ma(n={}){var o,u;const e=Kn(n),a=M.findIndex(m=>m.key==="family-pasture"),t=n.markerNo?`${f(n.markerNo)}号点`:"",r=y(n.owner)||y(n.name)||t,s=[n.name,n.fullName,n.owner,n.town,n.village,t,n.pointName,n.constructionYear,n.facilityBrief,n.facilityDetail,n.grassSupportText,n.coordinateMatchText,n.markerOnly?"地图原始标记":"建设台账标记",n.sourceSheet].filter(Boolean).join(" ");return{key:n.key||n.id||t,id:n.id,name:y(n.name)||t,fullName:y(n.fullName||n.name)||t,stageKey:"family-pasture",stageName:"家庭生态牧场",stageOrder:a,categoryCode:"YC-FAMILY-PASTURE",typeName:"家庭生态牧场",categoryName:"家庭生态牧场",town:v(n)||"未识别乡镇",address:n.address||n.village||"",status:n.status||"地图标记点位",value:1,unit:"处",numericValue:1,valueText:"1处",extra:n.markerOnly?"地图原始标记":"建设台账标记",longitude:(o=e==null?void 0:e.longitude)!=null?o:"",latitude:(u=e==null?void 0:e.latitude)!=null?u:"",locateText:e?"定位":"暂无",canLocate:!!e,owner:n.owner||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||"",grassSupportText:n.grassSupportText||"",pointName:n.pointName||t,matchedPointNo:n.matchedPointNo||n.markerNo||"",markerNo:n.markerNo||"",markerOnly:!!n.markerOnly,coordinateMatchLevel:n.coordinateMatchLevel||"",coordinateMatchText:n.coordinateMatchText||"",preferCoordinateMatch:!0,ledgerName:r,ledgerLocation:[n.town,n.village].filter(Boolean).join(" · "),facilityCompact:Ie(n.facilityBrief||""),sourceSheet:n.sourceSheet||"",searchText:s}}function Ga(){return k.map((n,e)=>{const a=ea.get(n.name),t=Number(a==null?void 0:a[0]),r=Number(a==null?void 0:a[1]);if(!fn(t,r))return null;const s=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,o=`${n.name}农机装备监测点`,u=Number(n.devices||0),m=Number(n.count||0);return{key:s,id:s,name:o,fullName:o,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(x=>x.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:u,unit:"套",numericValue:u,valueText:`${f(u)}套`,extra:`${f(m)}头识别样本`,longitude:t,latitude:r,locateText:"定位",canLocate:!0,searchText:[o,"农机装备",n.name,`${u}套`,`${m}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function p(n={}){var t;const e=y(n.name),a=y((t=n.attributes)==null?void 0:t.序号);return!(!e||zn.has(e)||la.has(n.categoryCode)||ca.some(r=>r.test(e))||a&&zn.has(a)&&!Oa(n)||ia.some(r=>r.test(e)))}function A(n=[]){return n.filter(p).length}function Oa(n={}){return Object.values(n.metrics||{}).some(e=>z(e)>0)}function Gn(n={}){var a,t,r,s;const e=Le(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:v(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((a=n.attributes)==null?void 0:a.主要产品)||((t=n.attributes)==null?void 0:t.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((s=n.attributes)==null?void 0:s.主要育种方向)||"",capacity:e,capacityUnit:_e(n),outputValue:l(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function Ka(n={}){const e=Le(n),a=_e(n),t=v(n);return{key:String(n.id||n.name),name:pn(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:t||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:a,numericValue:Number(e)||0,valueText:Ba(n,e,a),extra:Ha(n),sourceSheet:n.sourceSheet}}function Da(n={}){var I,W;const e=Ka(n),a=Kn(n),t=E(n.stageKey),r=y(n.name),s=y(n.categoryName).replace(/^cxpt/i,""),o=y(n.address||n.village||n.areaFullName||""),u=n.attributes||{},m=n.metrics||{},x=[r,e.name,t==null?void 0:t.name,s,e.town,o,u.简称,u.运营单位,u.主要产品,u.主要草种,u.储备草种,u.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,m["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return d(i({},e),{name:e.name,fullName:r,stageName:(t==null?void 0:t.name)||e.stageName||"",stageOrder:M.findIndex(en=>en.key===n.stageKey),categoryName:s,address:o,longitude:(I=a==null?void 0:a.longitude)!=null?I:"",latitude:(W=a==null?void 0:a.latitude)!=null?W:"",locateText:a?"定位":"暂无",canLocate:!!a,owner:n.owner||u.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||u.设施配置||"",grassSupportText:n.grassSupportText||u.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?Ie(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?l(n,["年出栏量 (头)"]):0,searchText:x})}function On(){return tn.filter(n=>Sa.has(n.categoryCode)&&n.canLocate)}function L(){const n=On();return{baseCount:n.length,designStock:n.reduce((e,a)=>e+Number(a.numericValue||a.value||0),0),annualOutput:n.reduce((e,a)=>e+Number(a.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function Ie(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Le(n={}){var e,a;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?z(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?l(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?l(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?l(n,["总库容 (吨)"]):n.categoryCode==="YC-MILK-SOURCE-STATION"?1:n.categoryCode==="YC-FORAGE-TRADE-CENTER"?l(n,["销售金额 (万元)","种草面积 (亩)"]):n.categoryCode==="YC-PROCESSING-PLANT"?l(n,["年产值 (万元)"])||l(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?l(n,["年总产值 (万元)"])||l(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?l(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?l(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?l(n,["年培训人次","年培训场次"]):(a=n.categoryCode)!=null&&a.startsWith("YC-CXPT")?z(n.scale)||l(n,["acreage"]):l(n,Object.keys(n.metrics||{}))||1}function _e(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-MILK-SOURCE-STATION"?"个":n.categoryCode==="YC-FORAGE-TRADE-CENTER"||n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function Ba(n,e,a){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${f(e)}${a||""}`:String(e||"")}function Ha(n={}){const e=n.attributes||{},a=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||e["所属乡镇、村"]||a["主要贷款产品(可多选)"]||n.sourceSheet||""}function Me(n={},e={}){const a=e.categoryCode||n.categoryCode;return da.has(a)?"breeding-selection":e.stageKey||n.industryStage}function ja(){const n=new Map;return J.forEach(e=>{var r;const a=y((r=e.attributes)==null?void 0:r.育种等级)||"待完善",t=n.get(a)||{key:a,name:a,value:0,unit:"个"};t.value+=1,n.set(a,t)}),[...n.values()].sort((e,a)=>{var r,s;const t={省级:0,县级:1,待完善:2};return((r=t[e.name])!=null?r:9)-((s=t[a.name])!=null?s:9)})}function c(n,e,a,t,r={}){return i({key:n,title:e,height:227,renderer:"business",type:a,rows:t},r)}function za(n){return n==="family-pasture"?B(n).filter(Va):!n||n===na?ln.flatMap(e=>B(e.key)):B(n)}function Ge(n){const e=E(n),a=za(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:a,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:a,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function Va(n={}){return n.categoryCode!=="YC-FAMILY-PASTURE"?!0:[n.ledgerName,n.owner,n.fullName,n.name].map(y).filter(Boolean).some(e=>!Wa(e))}function Wa(n=""){return/^地图标记(?:\d+号点|点)$/.test(y(n))}function $a(n=[],e=[],a={}){const t=j(n,v,r=>l(r,e)).map(r=>d(i({},r),{unit:a.unit||"",extra:a.extra||`${r.count}个点位`}));return q(t,a)}function Cn(n=[],e="点位"){const a=j(n,v,()=>1).map(t=>d(i({},t),{unit:"个",extra:e}));return q(a,{unit:"个",extra:e})}function Qa(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],a=new Map(e.map(t=>[t.key,{key:t.key,name:t.name,value:0,unit:"处"}]));return n.filter(p).forEach(t=>{var u,m;const r=[(u=t.attributes)==null?void 0:u.主要草种,(m=t.attributes)==null?void 0:m.储备草种].filter(Boolean).join("、"),s=e.filter(x=>x.key!=="other"&&x.pattern.test(r));(s.length?s:[e[e.length-1]]).forEach(x=>{a.get(x.key).value+=1})}),[...a.values()].filter(t=>t.value>0).sort(U)}function qa(){return[{key:"raw-capacity",name:"原料加工",value:Un,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:dn,unit:"头"},{key:"farmer-driven",name:"带动农户",value:In,unit:"户"},{key:"cold-storage",name:"冷链能力",value:ke,unit:"吨"}].filter(n=>n.value>0)}function Xa(){return j(B("social-service"),Ja,()=>1).map(n=>d(i({},n),{key:`social-service-${n.name}`,unit:n.name==="防疫"?"个":"家",extra:"可定位点位"})).filter(n=>n.value>0)}function Ja(n={}){const e=[n.categoryName,n.typeName,n.stageName,n.name].filter(Boolean).join(" ");return/保险/.test(e)?"保险":/培训/.test(e)?"培训":/防疫|疫病|疫控/.test(e)?"防疫":/金融|银行|贷款|授信/.test(e)?"金融":y(n.categoryName||n.typeName||"社会化服务").replace(/服务网点$/,"")}function j(n,e,a){const t=new Map;return n.filter(p).forEach(r=>{const s=y(typeof e=="function"?e(r):r[e])||"未填写",o=t.get(s)||{key:s,name:s,value:0,count:0,extra:""};o.value+=Number(a(r)||0),o.count+=1,t.set(s,o)}),[...t.values()].sort(U)}function q(n=[],e={}){const a=new Map;return n.forEach(t=>{const r=y(t==null?void 0:t.name),s=w.find(o=>o===r)||w.find(o=>{const u=o.replace(/[镇乡]$/,"");return u.length>=2&&r.includes(u)});s&&a.set(s,t)}),w.map((t,r)=>{const s=a.get(t),o=Number((s==null?void 0:s.value)||0),u=Number.isFinite(o)&&o>0;return{key:(s==null?void 0:s.key)||t,name:t,value:u?o:.001,displayValue:u?s.displayValue:"0",scaleValue:s==null?void 0:s.scaleValue,unit:(s==null?void 0:s.unit)||e.unit||"",extra:(s==null?void 0:s.extra)||e.extra||"",color:s==null?void 0:s.color,zero:!u,sourceIndex:r}})}function l(n={},e=[]){const a=n.metrics||{},t=Array.isArray(e)?e:[e];for(const r of t)if(Object.prototype.hasOwnProperty.call(a,r)){const s=z(a[r]);if(s||s===0)return s}return 0}function z(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(Oe(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const a=e.match(/-?\d+(?:\.\d+)?/);if(!a)return 0;let t=Number(a[0]);return e.includes("万亩")&&!e.includes("万元")&&(t*=1e4),Number.isFinite(t)?t:0}function v(n={}){const e=y(n.town||n.areaName);if(w.includes(e))return e;const a=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),t=w.find(r=>a.includes(r));return t||w.find(r=>{const s=r.replace(/[镇乡]$/,"");return s.length>=2&&a.includes(s)})||e}function Kn(n={}){const e=D(n.longitude),a=D(n.latitude);if(fn(e,a))return{longitude:e,latitude:a};const t=Object.values(n.locations||{}).find(r=>fn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return t?{longitude:D(t.longitude),latitude:D(t.latitude)}:null}function fn(n,e){const a=Number(n),t=Number(e);return Number.isFinite(a)&&Number.isFinite(t)&&a>=an.west&&a<=an.east&&t>=an.south&&t<=an.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Za(n={}){var a;const e=[n.name,(a=n.attributes)==null?void 0:a.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function nt(n={}){var a;const e=[n.name,(a=n.attributes)==null?void 0:a.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function et(n={}){const e=String(n.id||"");return e&&Vn.has(e)?Vn.get(e):bn.find(a=>a.name===n.name&&a.categoryCode===n.categoryCode)}function Q(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function h(n,e){return n.filter(p).reduce((a,t)=>a+Number(e(t)||0),0)}function Dn(n,e){return n.filter(p).reduce((a,t)=>Math.max(a,Number(e(t)||0)),0)}function _(n,e){return new Set(n.filter(p).map(e).filter(Boolean)).size}function U(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function pn(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function y(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function Oe(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function at(n){return typeof n=="number"?f(n):z(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function tt(n,e=""){if(e==="年"&&/^\d{4}$/.test(String(n!=null?n:"").trim()))return`${String(n).trim()}年`;const a=at(n);return!e||typeof n=="string"&&a.includes(e.replace(/^个/,""))?a:`${a}${e}`}function f(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function g(n,e=0){const a=jn(10,e);return Math.round(Number(n||0)*a)/a}function rt(n=[],e=[]){const a=[],t=new Map;return n.forEach(r=>{const s=d(i({},r),{items:[...r.items||[]]});a.push(s),t.set(s.categoryCode,s)}),e.forEach(r=>{if(!(r!=null&&r.categoryCode))return;const s=(r.items||[]).map(m=>{var x;return d(i({},m),{categoryCode:m.categoryCode||r.categoryCode,categoryName:m.categoryName||r.categoryName,stageKey:m.stageKey||r.industryStage,stageName:m.stageName||((x=E(r.industryStage))==null?void 0:x.name)||r.categoryName})}),o=t.get(r.categoryCode);if(o){o.categoryName=r.categoryName||o.categoryName,o.industryStage=r.industryStage||o.industryStage,o.items=r.replaceCategory?s:[...o.items||[],...s];return}const u=d(i({},r),{items:s});a.push(u),t.set(u.categoryCode,u)}),a}export{dt as A,mt as B,tn as C,na as Y,sn as a,ft as b,C as c,xt as d,Ia as e,gt as f,E as g,pt as h,yt as i,pa as j,ht as k,qn as l,_n as m,Ee as n,Pe as o,Nt as p,Tt as q,it as r,St as s,ra as t,me as u,ln as v,ge as w,ta as x,Ct as y,ct as z}; diff --git a/docs/assets/familyPastureData-f64283c3-1785726778446.js b/docs/assets/familyPastureData-f64283c3-1785858872961.js similarity index 100% rename from docs/assets/familyPastureData-f64283c3-1785726778446.js rename to docs/assets/familyPastureData-f64283c3-1785858872961.js diff --git a/docs/assets/featurePanelLayout-b5234356-1785726778446.js b/docs/assets/featurePanelLayout-07907d63-1785858872961.js similarity index 98% rename from docs/assets/featurePanelLayout-b5234356-1785726778446.js rename to docs/assets/featurePanelLayout-07907d63-1785858872961.js index 7d5860c..aab2e96 100644 --- a/docs/assets/featurePanelLayout-b5234356-1785726778446.js +++ b/docs/assets/featurePanelLayout-07907d63-1785858872961.js @@ -1 +1 @@ -var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-e33f4373-1785726778446.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; +var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-d6700f13-1785858872961.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; diff --git a/docs/assets/flyline6-525edf67-balabala-1785726778446.png b/docs/assets/flyline6-525edf67-balabala-1785858872961.png similarity index 100% rename from docs/assets/flyline6-525edf67-balabala-1785726778446.png rename to docs/assets/flyline6-525edf67-balabala-1785858872961.png diff --git a/docs/assets/focus_bg-b6803e2d-balabala-1785726778446.png b/docs/assets/focus_bg-b6803e2d-balabala-1785858872961.png similarity index 100% rename from docs/assets/focus_bg-b6803e2d-balabala-1785726778446.png rename to docs/assets/focus_bg-b6803e2d-balabala-1785858872961.png diff --git a/docs/assets/focus_move_bg-cf41417a-balabala-1785726778446.png b/docs/assets/focus_move_bg-cf41417a-balabala-1785858872961.png similarity index 100% rename from docs/assets/focus_move_bg-cf41417a-balabala-1785726778446.png rename to docs/assets/focus_move_bg-cf41417a-balabala-1785858872961.png diff --git a/docs/assets/geoserver-d05ee620-1785726778446.js b/docs/assets/geoserver-ea89416e-1785858872961.js similarity index 94% rename from docs/assets/geoserver-d05ee620-1785726778446.js rename to docs/assets/geoserver-ea89416e-1785858872961.js index 20384cd..62cdf60 100644 --- a/docs/assets/geoserver-d05ee620-1785726778446.js +++ b/docs/assets/geoserver-ea89416e-1785858872961.js @@ -1 +1 @@ -var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-8867fad4-1785726778446.js";import{r as E}from"./index-e33f4373-1785726778446.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; +var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-8867fad4-1785858872961.js";import{r as E}from"./index-d6700f13-1785858872961.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; diff --git a/docs/assets/header-bg-65b38012-balabala-1785726778446.png b/docs/assets/header-bg-65b38012-balabala-1785858872961.png similarity index 100% rename from docs/assets/header-bg-65b38012-balabala-1785726778446.png rename to docs/assets/header-bg-65b38012-balabala-1785858872961.png diff --git a/docs/assets/huiguang-3c5dfda5-balabala-1785726778446.png b/docs/assets/huiguang-3c5dfda5-balabala-1785858872961.png similarity index 100% rename from docs/assets/huiguang-3c5dfda5-balabala-1785726778446.png rename to docs/assets/huiguang-3c5dfda5-balabala-1785858872961.png diff --git a/docs/assets/icon1-6f7c222f-balabala-1785726778446.png b/docs/assets/icon1-6f7c222f-balabala-1785858872961.png similarity index 100% rename from docs/assets/icon1-6f7c222f-balabala-1785726778446.png rename to docs/assets/icon1-6f7c222f-balabala-1785858872961.png diff --git a/docs/assets/icon2-4f77ccec-balabala-1785726778446.png b/docs/assets/icon2-4f77ccec-balabala-1785858872961.png similarity index 100% rename from docs/assets/icon2-4f77ccec-balabala-1785726778446.png rename to docs/assets/icon2-4f77ccec-balabala-1785858872961.png diff --git a/docs/assets/index-02d2dea9-balabala-1785726778446.css b/docs/assets/index-02d2dea9-balabala-1785726778446.css deleted file mode 100644 index 7d5f04e..0000000 --- a/docs/assets/index-02d2dea9-balabala-1785726778446.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.yak-industry-chain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.industry-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.industry-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(4,18,28,0) 0%,rgba(4,18,28,.05) 37%,rgba(2,10,17,.34) 78%,rgba(1,7,12,.62) 100%),linear-gradient(90deg,rgba(0,12,20,.42),transparent 26%,transparent 74%,rgba(0,12,20,.42))}.industry-map-loading{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);color:#dcfaffc7;font-size:18px}.industry-map-feature-info{position:absolute;z-index:10;pointer-events:all}.industry-map-feature-info:after{position:absolute;display:var(--feature-arrow-display, block);top:var(--feature-arrow-top);left:var(--feature-arrow-left);z-index:0;width:16px;height:16px;content:"";border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:translate(-50%) rotate(var(--feature-arrow-rotate))}.industry-map-feature-info>.m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.industry-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.industry-point-feature-info .m-card-hd{cursor:grab;touch-action:none;user-select:none}.industry-point-feature-info.is-dragging .m-card-hd{cursor:grabbing}.industry-side-panel{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.industry-side-panel--left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.industry-side-panel--right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.industry-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.industry-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.industry-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.industry-side-card{flex:0 0 auto}.industry-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.industry-side-card .industry-town-column-chart{position:relative;z-index:1;width:100%;height:100%;min-height:0}.industry-side-card .industry-panel-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#e2fbffad;font-size:13px;font-weight:600;letter-spacing:0;text-shadow:0 0 8px rgba(48,220,255,.14)}.industry-side-card .business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:8px;padding-right:12px;padding-left:12px}.industry-side-card .business-columns.is-variant-plain .business-column-item{grid-template-rows:16px minmax(62px,1fr) 32px}.industry-side-card .business-columns.is-variant-plain .business-column-item span{display:-webkit-box;max-width:58px;color:#f0fdffdb;line-height:13px;white-space:normal;word-break:keep-all;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-plain .business-column-track{width:6px}.industry-side-card .business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:35px 13px 10px}.industry-side-card .business-columns.is-variant-townCompact:before{left:13px;right:13px;top:55px;bottom:40px;opacity:.46;background:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(48,220,255,.58) calc(100% - 1px)),repeating-linear-gradient(to bottom,rgba(159,220,230,.16) 0 1px,transparent 1px 21px)}.industry-side-card .business-columns.is-variant-townCompact:after{content:"";position:absolute;left:13px;right:13px;bottom:39px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(60,244,255,.72),transparent);box-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item{position:relative;z-index:1;grid-template-rows:17px minmax(74px,1fr) 29px;min-width:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item strong{width:100%;color:#f4fcfff0;font-size:10px;line-height:14px;text-align:center;text-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item span{display:-webkit-box;align-self:start;width:100%;max-width:36px;height:25px;margin-top:3px;color:#e8fcffd1;font-size:10px;line-height:12px;text-align:center;white-space:normal;word-break:break-all;writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:0;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-townCompact .business-column-track{width:8px;height:100%;min-height:74px;align-self:end;border:0;border-radius:2px 2px 0 0;background:linear-gradient(180deg,rgba(48,220,255,.12),rgba(36,246,196,.015)),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02) 48%,rgba(48,220,255,.1)),rgba(4,26,38,.22);box-shadow:inset 0 -1px #30dcff29}.industry-side-card .business-columns.is-variant-townCompact .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:18px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.12),rgba(48,220,255,0) 68%);transform:translate(-50%)}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i{left:0;right:0;min-height:5px;border-radius:3px 3px 0 0;box-shadow:inset 0 1px #ffffff3d}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:before,.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:after{display:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero strong{opacity:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero .business-column-track i{height:4px!important;opacity:.16;box-shadow:none}.industry-side-card .business-bars.is-rank-bar{padding-right:12px;padding-left:12px}.industry-side-card .business-bars.is-rank-bar .business-bar-name{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .m-card-bd-content,.industry-side-card--industry-breeding-selection-level .m-card-bd-content,.industry-side-card--industry-forage-storage-capacity .m-card-bd-content,.industry-side-card--industry-forage-trade-fund .m-card-bd-content,.industry-side-card--industry-stage-composition .m-card-bd-content{background:radial-gradient(circle at 22% 8%,rgba(36,246,196,.08),transparent 42%),linear-gradient(180deg,rgba(7,39,55,.22),rgba(3,22,34,.06))}.industry-side-card--industry-artificial-grassland-town-area .business-panel,.industry-side-card--industry-breeding-selection-level .business-panel,.industry-side-card--industry-forage-storage-capacity .business-panel,.industry-side-card--industry-forage-trade-fund .business-panel,.industry-side-card--industry-stage-composition .business-panel{position:relative}.industry-side-card--industry-breeding-selection-level .business-structure{grid-template-rows:30px minmax(0,1fr);gap:8px;padding:9px 14px 10px}.industry-side-card--industry-breeding-selection-level .business-structure-band{height:22px;padding:3px;border-color:#30dcff3d;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(167,139,250,.1)),rgba(4,27,40,.48)}.industry-side-card--industry-breeding-selection-level .business-structure-list{gap:6px}.industry-side-card--industry-breeding-selection-level .business-structure-row{grid-template-columns:8px minmax(0,1fr) 58px 40px;min-height:30px;padding:0 8px;border-color:#30dcff21;background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(7,35,50,.18)),rgba(2,21,32,.36)}.industry-side-card--industry-breeding-selection-level .business-structure-row span{color:#e8fcffdb;font-size:12px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-breeding-selection-level .business-structure-row strong{color:#f6feff;font-size:14px;line-height:16px;text-align:right;text-shadow:none}.industry-side-card--industry-breeding-selection-level .business-structure-row strong em{margin-left:2px;color:#d9f8ffa3;font-size:10px}.industry-side-card--industry-breeding-selection-level .business-structure-row small{color:#97f4ffbd;font-size:10px;text-align:right}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar{gap:6px;padding:9px 14px 10px}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row{grid-template-columns:24px minmax(70px,.74fr) minmax(0,1fr) minmax(86px,.65fr);grid-template-areas:"rank name track value";min-height:30px;gap:8px;padding:0 8px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(36,246,196,.035)),rgba(3,24,36,.42)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row:after,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row:after{content:"";position:absolute;left:28px;right:10px;bottom:4px;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.3),transparent);opacity:.34}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-rank,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-rank{width:18px;height:18px;border-color:#30dcff61;border-radius:3px;color:#e8fcffeb;background:linear-gradient(180deg,rgba(48,220,255,.24),rgba(36,246,196,.07)),rgba(3,24,36,.78)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-name,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-name{grid-area:name;color:#e8fcffdb;font-size:12px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-track,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-track{grid-area:track;height:7px;margin:0;border-color:#30dcff2e;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 24px),rgba(48,220,255,.08)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-track i,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-track i{min-width:10px}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong{grid-area:value;justify-self:end;min-width:0;color:#f8feff;font-size:14px;line-height:16px;text-align:right;white-space:nowrap;text-shadow:none}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong em,.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong small,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong em,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong small{margin-left:3px;color:#d3f5fca8;font-size:10px;font-weight:700}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong small,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong small{display:none}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring,.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense{grid-template-columns:132px minmax(0,1fr);gap:10px;padding:7px 12px 8px 13px}.industry-side-card--industry-stage-composition .business-ring-visual,.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual{width:132px;height:132px}.industry-side-card--industry-stage-composition .business-ring-visual:before,.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual:before{left:14px;right:14px;bottom:10px;opacity:.76}.industry-side-card--industry-stage-composition .business-ring-chart,.industry-side-card--industry-artificial-grassland-town-area .business-ring-chart{width:128px;height:128px}.industry-side-card--industry-stage-composition .business-ring-track,.industry-side-card--industry-artificial-grassland-town-area .business-ring-track{stroke-width:20;stroke:#30dcff21}.industry-side-card--industry-stage-composition .business-ring-segment,.industry-side-card--industry-artificial-grassland-town-area .business-ring-segment{stroke-width:20;opacity:.92}.industry-side-card--industry-stage-composition .business-ring-segment.is-active,.industry-side-card--industry-artificial-grassland-town-area .business-ring-segment.is-active{stroke-width:22}.industry-side-card--industry-stage-composition .business-ring-halo,.industry-side-card--industry-artificial-grassland-town-area .business-ring-halo{fill:#02111ce0;stroke:#30dcff2e}.industry-side-card--industry-stage-composition .business-ring-inner,.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner{top:36px;right:31px;bottom:34px;left:31px}.industry-side-card--industry-stage-composition .business-ring-inner strong,.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner strong{font-size:23px;line-height:24px;color:#f9feff}.industry-side-card--industry-stage-composition .business-donut-legend,.industry-side-card--industry-artificial-grassland-town-area .business-donut-legend{gap:4px;justify-content:center;padding-right:0}.industry-side-card--industry-stage-composition .business-donut-row,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row{grid-template-columns:8px minmax(0,1fr) 42px 22px;gap:5px;min-height:18px;padding:0 5px;border-color:#30dcff1a;background:linear-gradient(90deg,rgba(48,220,255,.06),rgba(7,35,50,.12)),rgba(2,21,32,.34)}.industry-side-card--industry-stage-composition .business-donut-row i,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row i{width:7px;height:7px;border-width:1px}.industry-side-card--industry-stage-composition .business-donut-row span,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row span{color:#e8fcffd1;font-size:11px;line-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-stage-composition .business-donut-row strong,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row strong{color:#f8feff;font-size:13px;line-height:14px;text-align:right}.industry-side-card--industry-stage-composition .business-donut-row em,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row em{color:#d3f5fc94;font-size:9px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense{grid-template-columns:150px minmax(0,1fr);padding-right:13px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual{width:150px;height:150px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-chart{width:146px;height:146px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner{top:39px;right:35px;bottom:37px;left:35px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row{min-height:21px;grid-template-columns:9px minmax(0,1fr) 48px 22px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row span{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row strong{font-size:14px;line-height:16px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-visual{width:132px;height:132px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-chart{width:128px;height:128px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-inner{top:36px;right:31px;bottom:34px;left:31px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-inner strong{font-size:23px;line-height:24px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-legend{gap:4px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row{grid-template-columns:8px minmax(0,1fr) 42px 22px;min-height:18px;padding:0 5px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:11px;line-height:13px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:13px;line-height:14px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row em{font-size:9px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-visual{width:150px;height:150px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-chart{width:146px;height:146px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-inner{top:39px;right:35px;bottom:37px;left:35px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row{grid-template-columns:9px minmax(0,1fr) 48px 22px;min-height:21px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:14px;line-height:16px}.industry-stage-composition-chart{position:relative;z-index:1;display:grid;grid-template-rows:18px minmax(0,1fr);gap:8px;height:100%;padding:8px 12px 9px;box-sizing:border-box;overflow:hidden}.industry-stage-composition-chart__band{display:flex;height:18px;padding:3px;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(36,246,196,.035)),rgba(3,24,36,.54);box-shadow:inset 0 0 12px #30dcff14}.industry-stage-composition-chart__band i{display:block;min-width:2px;height:100%;box-shadow:inset 0 1px #ffffff42}.industry-stage-composition-chart__band i+i{margin-left:2px}.industry-stage-composition-chart__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:5px;min-height:0}.industry-stage-composition-chart__item{position:relative;display:grid;grid-template-rows:14px minmax(16px,1fr) 4px;gap:2px;min-width:0;min-height:0;padding:5px 6px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:linear-gradient(135deg,color-mix(in srgb,var(--stage-color) 13%,transparent),rgba(3,25,38,.22)),rgba(3,23,35,.46)}.industry-stage-composition-chart__item:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--stage-color);box-shadow:0 0 8px var(--stage-color);opacity:.86}.industry-stage-composition-chart__item span{min-width:0;padding-left:3px;overflow:hidden;color:#e0f9ffc7;font-size:10px;font-weight:700;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.industry-stage-composition-chart__item strong{align-self:center;min-width:0;overflow:hidden;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:800;line-height:17px;text-overflow:ellipsis;white-space:nowrap;text-shadow:none}.industry-stage-composition-chart__item strong em{margin-left:2px;color:#d7f8ff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-stage-composition-chart__item small{display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.09)}.industry-stage-composition-chart__item small b{display:block;width:var(--stage-width);height:100%;min-width:4px;background:linear-gradient(90deg,var(--stage-color),rgba(255,255,255,.7))}.industry-forage-trade-dashboard{position:relative;z-index:1;display:grid;grid-template-columns:minmax(96px,.72fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 42px;grid-template-areas:"hero flows" "metrics metrics";gap:8px 10px;height:100%;padding:9px 13px 10px;box-sizing:border-box;overflow:hidden}.industry-forage-trade-dashboard__hero{position:relative;grid-area:hero;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:8px 9px 8px 12px;overflow:hidden;border:1px solid rgba(48,220,255,.2);background:radial-gradient(circle at 18% 22%,rgba(36,246,196,.18),transparent 42%),linear-gradient(135deg,rgba(48,220,255,.14),rgba(3,24,36,.36)),rgba(3,24,36,.52)}.industry-forage-trade-dashboard__hero:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;background:#32dcff;box-shadow:0 0 12px #32dcff9e}.industry-forage-trade-dashboard__hero span{color:#e0f9ffd1;font-size:12px;font-weight:760;line-height:14px}.industry-forage-trade-dashboard__hero strong{margin-top:5px;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:23px;font-weight:820;line-height:25px;white-space:nowrap}.industry-forage-trade-dashboard__hero strong em{margin-left:3px;color:#d6f7fca8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.industry-forage-trade-dashboard__hero small{margin-top:5px;overflow:hidden;color:#92ebf6b3;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__flows{grid-area:flows;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;min-width:0;min-height:0}.industry-forage-trade-dashboard__flow{position:relative;display:grid;grid-template-columns:minmax(58px,.62fr) minmax(70px,.72fr);grid-template-rows:17px 7px;grid-template-areas:"name value" "bar bar";align-content:center;gap:4px 8px;min-width:0;min-height:0;padding:7px 8px;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--trade-color) 10%,transparent),rgba(3,24,36,.22)),rgba(3,24,36,.42)}.industry-forage-trade-dashboard__flow span{grid-area:name;min-width:0;overflow:hidden;color:#ddf8fecc;font-size:11px;font-weight:720;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__flow strong{grid-area:value;justify-self:end;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:800;line-height:16px;white-space:nowrap}.industry-forage-trade-dashboard__flow strong em{margin-left:2px;color:#d6f7fc9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-forage-trade-dashboard__flow i{position:relative;grid-area:bar;height:7px;overflow:hidden;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.075)}.industry-forage-trade-dashboard__flow b{display:block;width:var(--trade-width);height:100%;min-width:8px;background:linear-gradient(90deg,var(--trade-color),rgba(255,255,255,.82));box-shadow:0 0 8px color-mix(in srgb,var(--trade-color) 55%,transparent)}.industry-forage-trade-dashboard__metrics{grid-area:metrics;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.industry-forage-trade-dashboard__metrics div{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;padding:0 8px;border:1px solid rgba(48,220,255,.12);background:rgba(3,24,36,.4)}.industry-forage-trade-dashboard__metrics span{min-width:0;overflow:hidden;color:#d6f7fcb3;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__metrics strong{color:#9dfaff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:800;white-space:nowrap}.industry-forage-trade-dashboard__metrics strong em{margin-left:2px;color:#d6f7fc9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-featured-base-list{position:relative;z-index:1;display:grid;gap:8px;height:100%;padding:2px 3px}.industry-side-card[class*=-bottom-list] .business-project-table{padding:5px 8px 8px}.industry-side-card[class*=-bottom-list] .business-project-search input{height:30px;font-size:12px}.industry-side-card[class*=-bottom-list] .business-project-frame{border-color:#30dcff33;background:rgba(5,28,41,.34)}.industry-side-card[class*=-bottom-list] .business-project-frame th,.industry-side-card[class*=-bottom-list] .business-project-frame td,.industry-side-card[class*=-bottom-list] .business-project-frame th:nth-child(2),.industry-side-card[class*=-bottom-list] .business-project-frame td:nth-child(2),.industry-side-card[class*=-bottom-list] .business-project-frame th:nth-child(4),.industry-side-card[class*=-bottom-list] .business-project-frame td:nth-child(4){text-align:left}.industry-side-card[class*=-bottom-list] .business-project-frame th{height:28px;padding:0 8px;color:#b0ebf6c7;font-size:12px;font-weight:700}.industry-side-card[class*=-bottom-list] .business-project-frame td{height:42px;padding:5px 8px;overflow:hidden;color:#e2f9ffdb;font-size:12px;line-height:17px;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.industry-side-card[class*=-bottom-list] .business-project-frame td.is-center,.industry-side-card[class*=-bottom-list] .business-project-frame th.is-center{text-align:center}.industry-side-card[class*=-bottom-list] .business-project-frame .business-project-name{color:#fafffff5;font-size:13px;font-weight:760}.industry-side-card[class*=-bottom-list] .business-project-frame .business-project-locate-button{width:26px;height:26px}.industry-tabbed-map-list{position:relative;z-index:1;display:grid;grid-template-rows:auto auto 22px minmax(0,1fr);gap:6px;height:100%;padding:0 4px 8px;box-sizing:border-box;overflow:hidden}.industry-tabbed-map-list__selector,.industry-tabbed-map-list__tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.industry-tabbed-map-list__selector{position:relative;z-index:4;grid-template-columns:auto minmax(0,1fr);min-height:36px;padding:1px 2px 0}.industry-tabbed-map-list__selector>span{display:flex;height:34px;padding:0 10px;align-items:center;border:1px solid rgba(48,220,255,.22);color:#c9eff7a8;background:rgba(3,31,44,.34);font-size:12px;line-height:16px;white-space:nowrap}.industry-tabbed-map-list__select{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 16px;gap:8px;align-items:center;min-width:0;width:100%;height:34px;padding:0 10px 0 12px;border:1px solid rgba(48,220,255,.42);border-radius:3px;color:#f4fefff5;outline:none;cursor:pointer;background:linear-gradient(90deg,rgba(31,185,211,.26),rgba(36,246,196,.08)),rgba(4,32,45,.76);box-shadow:inset 0 0 14px #30dcff14;font:inherit}.industry-tabbed-map-list__select:hover,.industry-tabbed-map-list__select:focus-visible,.industry-tabbed-map-list__select.is-open{border-color:#30dcffd1;box-shadow:0 0 14px #30dcff29,inset 0 0 14px #30dcff1a}.industry-tabbed-map-list__select strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__select strong{justify-self:center;color:#f4fefffa;font-size:14px;font-weight:760}.industry-tabbed-map-list__select i{width:0;height:0;justify-self:center;border-right:5px solid transparent;border-left:5px solid transparent;border-top:6px solid rgba(147,250,255,.95);transition:transform .16s ease}.industry-tabbed-map-list__select.is-open i{transform:rotate(180deg)}.industry-tabbed-map-list__menu{position:absolute;top:39px;right:2px;left:76px;z-index:8;display:grid;gap:4px;max-height:270px;padding:7px;overflow-y:auto;border:1px solid rgba(48,220,255,.48);border-radius:4px;background:linear-gradient(180deg,rgba(7,47,62,.98),rgba(3,23,36,.98)),rgba(3,23,36,.98);box-shadow:0 16px 34px #00070e7a,inset 0 0 20px #30dcff14}.industry-tabbed-map-list__menu button{display:flex;align-items:center;min-height:32px;padding:0 9px;border:1px solid rgba(48,220,255,.14);border-radius:3px;color:#e1f9ffd1;cursor:pointer;background:rgba(6,33,47,.76);text-align:left;font:inherit}.industry-tabbed-map-list__menu button:hover,.industry-tabbed-map-list__menu button:focus-visible,.industry-tabbed-map-list__menu button.is-active{border-color:#30dcffa3;color:#fff;outline:none;background:linear-gradient(90deg,rgba(31,185,211,.34),rgba(36,246,196,.12));box-shadow:inset 2px 0 #24f6c4cc}.industry-tabbed-map-list__menu span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__menu span{width:100%;font-size:13px;font-weight:720}.industry-tabbed-map-list__tools input{min-width:0;height:28px;padding:0 10px;border:1px solid rgba(48,220,255,.26);color:#f2feffeb;outline:none;background:rgba(3,31,44,.46);font:inherit;font-size:12px}.industry-tabbed-map-list__tools input::placeholder{color:#cfebf275}.industry-tabbed-map-list__tools input:focus{border-color:#30dcffb8;box-shadow:0 0 12px #30dcff1f}.industry-tabbed-map-list__tools small{display:flex;height:28px;padding:0 9px;align-items:center;border:1px solid rgba(48,220,255,.16);color:#c9eff79e;background:rgba(2,24,36,.34);font-size:11px;line-height:14px;white-space:nowrap}.industry-tabbed-map-list__head,.industry-tabbed-map-list__rows{min-height:0}.industry-tabbed-map-list__head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(126px,.78fr) 30px;gap:8px;align-items:center;padding:0 8px 0 10px;border-top:1px solid rgba(48,220,255,.12);border-bottom:1px solid rgba(48,220,255,.12);color:#a5e5f1a3;background:linear-gradient(90deg,rgba(12,73,91,.36),rgba(3,31,44,.16));font-size:11px;line-height:22px}.industry-tabbed-map-list__head span:nth-child(2),.industry-tabbed-map-list__head span:nth-child(3){text-align:right}.industry-tabbed-map-list__rows{display:block;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-color:rgba(48,220,255,.44) rgba(3,28,41,.38);scrollbar-width:thin}.industry-tabbed-map-list__rows::-webkit-scrollbar{width:5px}.industry-tabbed-map-list__rows::-webkit-scrollbar-track{background:rgba(3,28,41,.38)}.industry-tabbed-map-list__rows::-webkit-scrollbar-thumb{background:rgba(48,220,255,.44)}.industry-tabbed-map-list__row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(126px,.78fr) 30px;grid-template-areas:"name meta locate";align-items:center;width:100%;min-height:46px;gap:8px;padding:5px 7px 5px 10px;border:0;border-bottom:1px solid rgba(48,220,255,.1);color:inherit;cursor:pointer;background:linear-gradient(90deg,rgba(48,220,255,.055),rgba(48,220,255,.018));text-align:left;font:inherit}.industry-tabbed-map-list__row:nth-child(2n){background:rgba(36,246,196,.028)}.industry-tabbed-map-list__row:hover:not(:disabled),.industry-tabbed-map-list__row:focus-visible,.industry-tabbed-map-list__row.is-active{outline:none;background:linear-gradient(90deg,rgba(36,246,196,.22),rgba(48,220,255,.075));box-shadow:inset 3px 0 #24f6c4e0,inset 0 0 18px #30dcff0f}.industry-tabbed-map-list__row.is-disabled{cursor:default;opacity:.5}.industry-tabbed-map-list__name{display:grid;grid-area:name;align-content:center;min-width:0}.industry-tabbed-map-list__name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:#f6fefff5;font-size:13px;line-height:18px;font-weight:760}.industry-tabbed-map-list__meta{display:flex;grid-area:meta;align-items:center;justify-content:flex-end;min-width:0}.industry-tabbed-map-list__area{min-width:0;overflow:hidden;width:100%;color:#cbeff7c2;font-size:12px;line-height:17px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__locate{position:relative;grid-area:locate;justify-self:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;color:#30dcffd1;background:linear-gradient(currentColor,currentColor) center top/1px 4px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 4px no-repeat,linear-gradient(currentColor,currentColor) left center/4px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/4px 1px no-repeat,rgba(48,220,255,.08);box-shadow:0 0 8px #30dcff29}.industry-tabbed-map-list__locate:after{content:"";position:absolute;width:4px;height:4px;margin:7px;border-radius:50%;background:currentColor}.industry-tabbed-map-list__empty{display:flex;align-items:center;justify-content:center;min-height:90px;color:#e2fbff9e;font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:2px;padding:5px 13px 8px;overflow:hidden}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-row{height:auto;min-height:0;gap:10px;grid-template-columns:25px minmax(0,1fr) 104px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-rank{width:18px;height:18px;font-size:12px;line-height:19px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-name{font-size:13px;line-height:16px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-bar{height:5px;margin-top:6px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value strong{font-size:16px;line-height:18px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value em{font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value span{margin-top:3px;font-size:11px;line-height:13px}.industry-featured-base{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;width:100%;min-height:76px;padding:9px 28px 9px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.16);border-radius:3px;background:linear-gradient(90deg,rgba(18,88,106,.27),rgba(6,25,38,.3)),rgba(3,20,31,.46);color:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.industry-featured-base:after{content:">";position:absolute;right:10px;top:50%;color:#24f6c4e6;font-size:16px;font-weight:800;transform:translateY(-50%)}.industry-featured-base:hover,.industry-featured-base:focus-visible{border-color:#24f6c48a;background:linear-gradient(90deg,rgba(18,112,120,.38),rgba(6,31,43,.38)),rgba(3,20,31,.56);outline:0;transform:translate(2px)}.industry-featured-base.is-active{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(30,124,119,.38),rgba(7,41,48,.42)),rgba(3,26,34,.62);box-shadow:inset 3px 0 #24f6c4e6,0 0 16px #24f6c41c}.industry-featured-base.is-active:after{color:#c9fbff}.industry-featured-base:disabled{cursor:default;opacity:.58}.industry-featured-base__index{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(48,220,255,.42);background:rgba(48,220,255,.09);color:#35f1ff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:14px;font-weight:800}.industry-featured-base__copy{display:grid;min-width:0;gap:2px}.industry-featured-base__copy strong,.industry-featured-base__copy em,.industry-featured-base__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-featured-base__copy strong{color:#f6fffff5;font-size:14px;font-weight:760;line-height:18px}.industry-featured-base__copy em{color:#24f6c4eb;font-size:11px;font-style:normal;line-height:15px}.industry-featured-base__copy small{color:#cdeef4a8;font-size:11px;line-height:15px}.industry-leadership-mode-list{position:relative;z-index:1;display:grid;gap:7px;padding:3px 5px}.industry-leadership-mode{display:grid;grid-template-columns:4px 26px minmax(0,1fr);gap:8px;align-items:center;min-height:48px;padding:5px 6px;border-bottom:1px solid rgba(48,220,255,.1)}.industry-leadership-mode>i{display:block;width:4px;height:30px;box-shadow:0 0 10px currentColor}.industry-leadership-mode>span{color:#cff7ff75;font-family:D-DIN,DIN Alternate,sans-serif;font-size:13px;font-weight:800}.industry-leadership-mode div{display:grid;min-width:0;gap:2px}.industry-leadership-mode strong{color:#f6fffff2;font-size:13px;font-weight:760}.industry-leadership-mode small{overflow:hidden;color:#cdeef4a8;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-list{display:grid;gap:7px}.industry-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:7px 8px;border:1px solid rgba(48,220,255,.1);border-radius:4px;background:rgba(4,20,31,.42)}.industry-ledger-row div{min-width:0}.industry-ledger-row strong,.industry-ledger-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-row strong{color:#f1feffeb;font-size:13px;font-weight:760}.industry-ledger-row span{margin-top:4px;color:#c9edf494;font-size:11px}.industry-ledger-row em{color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.industry-map-layer-tools{position:absolute;right:458px;bottom:102px;z-index:7;width:248px;pointer-events:all}.industry-map-layer-tools .m-card{width:100%!important;height:100%!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.industry-map-layer-tools .layer-panel{grid-template-rows:auto;padding:8px 10px 10px}.industry-card-more{height:24px;padding:0 10px;border:1px solid rgba(48,220,255,.42);border-radius:2px;color:#dffcff;background:rgba(13,88,116,.38);font-size:11px;cursor:pointer}.industry-card-more:hover{border-color:#30dcffd6;background:rgba(20,126,158,.48)}.industry-credit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:90px 150px 96px;background:rgba(0,8,15,.78);backdrop-filter:blur(7px);pointer-events:all}.industry-credit-dialog{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;width:min(1420px,100%);height:min(820px,100%);overflow:hidden;border:1px solid rgba(48,220,255,.52);border-radius:8px;background:linear-gradient(180deg,rgba(15,61,82,.92),rgba(4,20,31,.98) 18%),rgba(3,17,27,.98);box-shadow:0 24px 90px #00000085,inset 0 0 34px #30dcff12}.industry-credit-dialog__header{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:0 24px;border-bottom:1px solid rgba(48,220,255,.22)}.industry-credit-dialog__header>div{display:grid;gap:5px}.industry-credit-dialog__header strong{color:#effeff;font-size:23px;letter-spacing:2px}.industry-credit-dialog__header span{color:#c3ecf4a6;font-size:12px}.industry-credit-dialog__header button{width:34px;height:34px;border:1px solid rgba(48,220,255,.3);border-radius:50%;color:#dffcff;background:rgba(16,75,96,.42);font-size:25px;line-height:28px;cursor:pointer}.industry-credit-dialog__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 24px 10px}.industry-credit-dialog__stats>div{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 16px;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(24,102,129,.22),rgba(8,31,45,.4))}.industry-credit-dialog__stats span{color:#d2f1f7b8;font-size:13px}.industry-credit-dialog__stats strong{color:#f7d675;font-family:D-DIN,DIN Alternate,sans-serif;font-size:24px}.industry-credit-dialog__stats em{margin-left:4px;color:#def8fbb8;font-family:inherit;font-size:11px;font-style:normal}.industry-credit-dialog__filters{display:grid;grid-template-columns:minmax(280px,1fr) 142px 142px 142px auto;gap:10px;align-items:center;padding:8px 24px 14px}.industry-credit-dialog__filters input,.industry-credit-dialog__filters select{height:34px;padding:0 12px;border:1px solid rgba(48,220,255,.24);border-radius:3px;outline:none;color:#e9fdff;background:rgba(3,27,41,.88);font-size:12px}.industry-credit-dialog__filters input:focus,.industry-credit-dialog__filters select:focus{border-color:#30dcffbd}.industry-credit-dialog__filters small{color:#ccf0f6ad;font-size:12px;text-align:right;white-space:nowrap}.industry-credit-table{min-height:0;margin:0 24px;overflow:hidden;border:1px solid rgba(48,220,255,.15)}.industry-credit-table__head,.industry-credit-table__row{display:grid;grid-template-columns:1.05fr .9fr 1fr .78fr .78fr .78fr 1.72fr;align-items:center}.industry-credit-table__head>*,.industry-credit-table__row>*{min-width:0;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-credit-table__head{height:38px;color:#d1f4fabf;background:rgba(35,132,158,.18);font-size:12px;font-weight:700}.industry-credit-table__row{height:37px;border-top:1px solid rgba(48,220,255,.07);color:#daf5f9c2;font-size:12px}.industry-credit-table__row:nth-child(odd){background:rgba(12,54,71,.16)}.industry-credit-table__row strong{color:#f6fffff0}.industry-credit-table__row .is-authorized{color:#37f2bd}.industry-credit-table__row .is-unauthorized{color:#ff9b88}.industry-credit-grade{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:22px;border:1px solid rgba(48,220,255,.3);border-radius:11px;color:#bdf8ff;background:rgba(48,220,255,.08);font-style:normal}.industry-credit-grade[data-grade=A级]{border-color:#37f2bd80;color:#54f6c5}.industry-credit-grade[data-grade=B级]{border-color:#30dcff80;color:#73e9ff}.industry-credit-grade[data-grade=C级]{border-color:#f7d67580;color:#f7d675}.industry-credit-grade[data-grade=D级]{border-color:#ff8b7480;color:#ff9b88}.industry-credit-table__empty{display:flex;align-items:center;justify-content:center;height:calc(100% - 38px);min-height:180px;color:#cdeff59e;font-size:13px}.industry-credit-table__empty.is-error{color:#ff9b88}.industry-credit-dialog__footer{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 24px;color:#bfe5ec8c;font-size:11px}.industry-credit-dialog__footer>div{display:flex;gap:12px;align-items:center}.industry-credit-dialog__footer button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);border-radius:3px;color:#dbfbff;background:rgba(13,71,94,.46);cursor:pointer}.industry-credit-dialog__footer button:disabled{opacity:.34;cursor:not-allowed}.industry-credit-dialog__footer strong{min-width:72px;color:#e3fbfec7;text-align:center}.industry-bottom-switcher{position:absolute;left:50%;bottom:48px;z-index:8;display:flex;align-items:center;justify-content:center;transform:translate(-50%);pointer-events:all} diff --git a/docs/assets/index-0a7426a0-balabala-1785726778446.css b/docs/assets/index-0a7426a0-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-0a7426a0-balabala-1785726778446.css rename to docs/assets/index-0a7426a0-balabala-1785858872961.css diff --git a/docs/assets/index-148a2898-balabala-1785726778446.css b/docs/assets/index-148a2898-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-148a2898-balabala-1785726778446.css rename to docs/assets/index-148a2898-balabala-1785858872961.css diff --git a/docs/assets/index-1683923b-balabala-1785726778446.css b/docs/assets/index-1683923b-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-1683923b-balabala-1785726778446.css rename to docs/assets/index-1683923b-balabala-1785858872961.css diff --git a/docs/assets/index-1785726778446.js b/docs/assets/index-1785858872961.js similarity index 99% rename from docs/assets/index-1785726778446.js rename to docs/assets/index-1785858872961.js index 565b4f2..9944a6d 100644 --- a/docs/assets/index-1785726778446.js +++ b/docs/assets/index-1785858872961.js @@ -22,7 +22,7 @@ var tN=Object.defineProperty,eN=Object.defineProperties;var rN=Object.getOwnProp * vue-router v4.6.4 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let Tz=()=>location.protocol+"//"+location.host;function FI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),ex(s,"")}return ex(e,r)+n+i}function Az(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=FI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Py.pop,direction:g?g>0?Yd.forward:Yd.back:Yd.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:Uv()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function ox(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?Uv():null}}function Cz(r){const{history:t,location:e}=window,n={value:FI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:Tz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,ox(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:Uv()});a(f.current,f,!0),a(l,Kt({},ox(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function Mz(r){r=fz(r);const t=Cz(r),e=Az(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:hz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Dz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),Mz(r)}let oo=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const Iz={type:oo.Static,value:""},Lz=/[a-zA-Z0-9_]/;function Pz(r){if(!r)return[[]];if(r==="/")return[[Iz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:oo.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:oo.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function HI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Nz={strict:!1,end:!0,sensitive:!1};function Vz(r,t,e){const n=kz(Pz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Bz(r,t){const e=[],n=new Map;t=tx(Nz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=fx(c);p.aliasOf=v&&v.record;const g=tx(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(fx(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Vz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!cx(m)&&o(c.name)),WI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:Su}function o(c){if(zI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Fz(c,e);e.splice(h,0,c),c.record.name&&!cx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Ws(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ux(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ux(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Ws(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Gz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ux(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function fx(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:zz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function zz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function cx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Gz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Fz(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;HI(r,t[a])<0?n=a:e=a+1}const i=Hz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function Hz(r){let t=r;for(;t=t.parent;)if(WI(t)&&HI(r,t)===0)return t}function WI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function hx(r){const t=fn(Yv),e=fn(q0),n=an(()=>{const l=_o(r.to);return t.resolve(l)}),i=an(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(Hs.bind(null,f));if(h>-1)return h;const v=vx(l[u-2]);return u>1&&vx(f)===v&&c[c.length-1].path!==v?c.findIndex(Hs.bind(null,l[u-2])):h}),a=an(()=>i.value>-1&&Zz(e.params,n.value.params)),o=an(()=>i.value>-1&&i.value===e.matched.length-1&&BI(e.params,n.value.params));function s(l={}){if(Yz(l)){const u=t[_o(r.replace)?"replace":"push"](_o(r.to)).catch(Su);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:an(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Wz(r){return r.length===1?r[0]:r}const $z=z0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:hx,setup(r,{slots:t}){const e=zv(hx(r)),{options:n}=fn(Yv),i=an(()=>({[dx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[dx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Wz(t.default(e));return r.custom?a:DI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Uz=$z;function Yz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function Zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!pn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function vx(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const dx=(r,t,e)=>r!=null?r:t!=null?t:e,Xz=z0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=fn(Ey),i=an(()=>r.route||n.value),a=fn(ax,0),o=an(()=>{let u=_o(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=an(()=>i.value.matched[o.value]);th(ax,an(()=>o.value+1)),th(bz,s),th(Ey,i);const l=Qc();return eh(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!Hs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return px(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=DI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return px(e.default,{Component:g,route:u})||g}}});function px(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const qz=Xz;function Kz(r){const t=Bz(r.routes,r),e=r.parseQuery||Sz,n=r.stringifyQuery||ix,i=r.history,a=wl(),o=wl(),s=wl(),l=BN(Ii);let u=Ii;ys&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=$d.bind(null,U=>""+U),c=$d.bind(null,nz),h=$d.bind(null,Wu);function v(U,K){let H,tt;return zI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=Ud(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:Wu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:Ud(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=oz(n,Kt({},U,{hash:tz(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===ix?xz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?Ud(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Ws(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&sz(n,tt,H)&&(X=Ws(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>Jn(W)?Jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(Jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=wz(U,K);H=Zd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push($i(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push($i(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Zd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push($i(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(pn(k.beforeEnter))for(const z of k.beforeEnter)H.push($i(z,U,K));else H.push($i(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Zd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push($i(k,U,K));return H.push(R),Et(H)}).catch(k=>Jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Ii,k=ys?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(Su);return}u=tt;const ut=l.value;ys&&pz(nx(ut.fullPath,H.delta),Uv()),C(tt,ut).catch(R=>Jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:Jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{Jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Py.pop&&i.go(-1,!1)}).catch(Su),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!Jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Py.pop&&Jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(Su)}))}let E=wl(),O=wl(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Ii?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ys||!j)return Promise.resolve();const ut=!H&&gz(nx(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return O0().then(()=>j(U,K,ut)).then(R=>R&&dz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Uz),U.component("RouterView",qz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>_o(l)}),ys&&!ct&&l.value===Ii&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Ii)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Yv,gt),U.provide(q0,qD(K)),U.provide(Ey,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Ii,L&&L(),L=null,l.value=Ii,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function eat(){return fn(Yv)}function rat(r){return fn(q0)}const so="Authorization",jz=["/","/screen2","/screen2/"];function Jz(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Qz(r){return encodeURIComponent(r||"/platform")}function gx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${so}=`));return r?decodeURIComponent(r.slice(so.length+1)):""}function $I(){const r=Jz();jz.forEach(t=>{document.cookie=`${so}=; Max-Age=0; path=${t}`,document.cookie=`${so}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${so}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${so}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function ky(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Qz(r)}`}function t5(r){$I();const t=ky(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function nat(r,t){return _l(this,null,function*(){var i;$I();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${so}=${encodeURIComponent(n.data.token)}; path=/`),n})}function iat(){return _l(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),t5("/platform")})}function e5(){return _l(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const yx=()=>Z0(()=>import("./index-e33f4373-1785726778446.js").then(r=>r.i),["./index-e33f4373-1785726778446.js","./index-e9f36657-1785726778446.js","./index-d7210760-balabala-1785726778446.css"],import.meta.url),r5=()=>Z0(()=>import("./index-343df101-1785726778446.js"),["./index-343df101-1785726778446.js","./index-c9a77e56-balabala-1785726778446.css"],import.meta.url),n5=()=>Z0(()=>import("./index-cfeb180f-1785726778446.js"),["./index-cfeb180f-1785726778446.js","./index.esm.min-4f309085-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./screen2Standard-f38b9a2d-1785726778446.js","./index-e9f36657-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./chartTheme-330b271e-1785726778446.js","./index-8d752fbe-balabala-1785726778446.css"],import.meta.url),UI=Kz({history:Dz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:r5,meta:{public:!0}},{path:"/platform",component:yx},{path:"/forest-grass-wet",component:yx},{path:"/chart-style-guide",component:n5},{path:"/:pathMatch(.*)",redirect:"/"}]});let xu=null;UI.beforeEach(r=>_l(void 0,null,function*(){if(r.meta.public){if(gx())try{return yield mx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){xu=null}return!0}if(!gx())return ky(r.fullPath);try{return yield mx(),!0}catch(t){return xu=null,ky(r.fullPath)}}));function mx(){return xu||(xu=e5()),xu}const i5=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},a5={};function o5(r,t){const e=yV("router-view");return Ph(),Eh(e)}const s5=i5(a5,[["render",o5]]);/*! ***************************************************************************** + */let Tz=()=>location.protocol+"//"+location.host;function FI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),ex(s,"")}return ex(e,r)+n+i}function Az(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=FI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Py.pop,direction:g?g>0?Yd.forward:Yd.back:Yd.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:Uv()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function ox(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?Uv():null}}function Cz(r){const{history:t,location:e}=window,n={value:FI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:Tz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,ox(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:Uv()});a(f.current,f,!0),a(l,Kt({},ox(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function Mz(r){r=fz(r);const t=Cz(r),e=Az(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:hz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Dz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),Mz(r)}let oo=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const Iz={type:oo.Static,value:""},Lz=/[a-zA-Z0-9_]/;function Pz(r){if(!r)return[[]];if(r==="/")return[[Iz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:oo.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:oo.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function HI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Nz={strict:!1,end:!0,sensitive:!1};function Vz(r,t,e){const n=kz(Pz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Bz(r,t){const e=[],n=new Map;t=tx(Nz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=fx(c);p.aliasOf=v&&v.record;const g=tx(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(fx(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Vz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!cx(m)&&o(c.name)),WI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:Su}function o(c){if(zI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Fz(c,e);e.splice(h,0,c),c.record.name&&!cx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Ws(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ux(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ux(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Ws(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Gz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ux(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function fx(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:zz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function zz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function cx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Gz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Fz(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;HI(r,t[a])<0?n=a:e=a+1}const i=Hz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function Hz(r){let t=r;for(;t=t.parent;)if(WI(t)&&HI(r,t)===0)return t}function WI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function hx(r){const t=fn(Yv),e=fn(q0),n=an(()=>{const l=_o(r.to);return t.resolve(l)}),i=an(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(Hs.bind(null,f));if(h>-1)return h;const v=vx(l[u-2]);return u>1&&vx(f)===v&&c[c.length-1].path!==v?c.findIndex(Hs.bind(null,l[u-2])):h}),a=an(()=>i.value>-1&&Zz(e.params,n.value.params)),o=an(()=>i.value>-1&&i.value===e.matched.length-1&&BI(e.params,n.value.params));function s(l={}){if(Yz(l)){const u=t[_o(r.replace)?"replace":"push"](_o(r.to)).catch(Su);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:an(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Wz(r){return r.length===1?r[0]:r}const $z=z0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:hx,setup(r,{slots:t}){const e=zv(hx(r)),{options:n}=fn(Yv),i=an(()=>({[dx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[dx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Wz(t.default(e));return r.custom?a:DI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Uz=$z;function Yz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function Zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!pn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function vx(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const dx=(r,t,e)=>r!=null?r:t!=null?t:e,Xz=z0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=fn(Ey),i=an(()=>r.route||n.value),a=fn(ax,0),o=an(()=>{let u=_o(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=an(()=>i.value.matched[o.value]);th(ax,an(()=>o.value+1)),th(bz,s),th(Ey,i);const l=Qc();return eh(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!Hs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return px(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=DI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return px(e.default,{Component:g,route:u})||g}}});function px(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const qz=Xz;function Kz(r){const t=Bz(r.routes,r),e=r.parseQuery||Sz,n=r.stringifyQuery||ix,i=r.history,a=wl(),o=wl(),s=wl(),l=BN(Ii);let u=Ii;ys&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=$d.bind(null,U=>""+U),c=$d.bind(null,nz),h=$d.bind(null,Wu);function v(U,K){let H,tt;return zI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=Ud(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:Wu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:Ud(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=oz(n,Kt({},U,{hash:tz(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===ix?xz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?Ud(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Ws(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&sz(n,tt,H)&&(X=Ws(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>Jn(W)?Jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(Jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=wz(U,K);H=Zd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push($i(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push($i(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Zd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push($i(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(pn(k.beforeEnter))for(const z of k.beforeEnter)H.push($i(z,U,K));else H.push($i(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Zd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push($i(k,U,K));return H.push(R),Et(H)}).catch(k=>Jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Ii,k=ys?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(Su);return}u=tt;const ut=l.value;ys&&pz(nx(ut.fullPath,H.delta),Uv()),C(tt,ut).catch(R=>Jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:Jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{Jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Py.pop&&i.go(-1,!1)}).catch(Su),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!Jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Py.pop&&Jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(Su)}))}let E=wl(),O=wl(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Ii?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ys||!j)return Promise.resolve();const ut=!H&&gz(nx(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return O0().then(()=>j(U,K,ut)).then(R=>R&&dz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Uz),U.component("RouterView",qz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>_o(l)}),ys&&!ct&&l.value===Ii&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Ii)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Yv,gt),U.provide(q0,qD(K)),U.provide(Ey,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Ii,L&&L(),L=null,l.value=Ii,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function eat(){return fn(Yv)}function rat(r){return fn(q0)}const so="Authorization",jz=["/","/screen2","/screen2/"];function Jz(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Qz(r){return encodeURIComponent(r||"/platform")}function gx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${so}=`));return r?decodeURIComponent(r.slice(so.length+1)):""}function $I(){const r=Jz();jz.forEach(t=>{document.cookie=`${so}=; Max-Age=0; path=${t}`,document.cookie=`${so}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${so}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${so}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function ky(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Qz(r)}`}function t5(r){$I();const t=ky(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function nat(r,t){return _l(this,null,function*(){var i;$I();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${so}=${encodeURIComponent(n.data.token)}; path=/`),n})}function iat(){return _l(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),t5("/platform")})}function e5(){return _l(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const yx=()=>Z0(()=>import("./index-d6700f13-1785858872961.js").then(r=>r.i),["./index-d6700f13-1785858872961.js","./index-e9f36657-1785858872961.js","./index-4a35ba93-balabala-1785858872961.css"],import.meta.url),r5=()=>Z0(()=>import("./index-cc15f10b-1785858872961.js"),["./index-cc15f10b-1785858872961.js","./index-1c6e8e82-balabala-1785858872961.css"],import.meta.url),n5=()=>Z0(()=>import("./index-cf1a1609-1785858872961.js"),["./index-cf1a1609-1785858872961.js","./index.esm.min-b7db2517-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./screen2Standard-2d8b09ac-1785858872961.js","./index-e9f36657-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./chartTheme-96368571-1785858872961.js","./index-8d752fbe-balabala-1785858872961.css"],import.meta.url),UI=Kz({history:Dz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:r5,meta:{public:!0}},{path:"/platform",component:yx},{path:"/forest-grass-wet",component:yx},{path:"/chart-style-guide",component:n5},{path:"/:pathMatch(.*)",redirect:"/"}]});let xu=null;UI.beforeEach(r=>_l(void 0,null,function*(){if(r.meta.public){if(gx())try{return yield mx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){xu=null}return!0}if(!gx())return ky(r.fullPath);try{return yield mx(),!0}catch(t){return xu=null,ky(r.fullPath)}}));function mx(){return xu||(xu=e5()),xu}const i5=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},a5={};function o5(r,t){const e=yV("router-view");return Ph(),Eh(e)}const s5=i5(a5,[["render",o5]]);/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/docs/assets/index-7b548b42-1785726778446.js b/docs/assets/index-1891ee64-1785858872961.js similarity index 99% rename from docs/assets/index-7b548b42-1785726778446.js rename to docs/assets/index-1891ee64-1785858872961.js index 7c9bff2..3bb8159 100644 --- a/docs/assets/index-7b548b42-1785726778446.js +++ b/docs/assets/index-1891ee64-1785858872961.js @@ -1,2 +1,2 @@ -var Tr=Object.defineProperty,xr=Object.defineProperties;var Nr=Object.getOwnPropertyDescriptors;var Pn=Object.getOwnPropertySymbols;var Cr=Object.prototype.hasOwnProperty,Er=Object.prototype.propertyIsEnumerable;var Fn=(m,n,r)=>n in m?Tr(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,oe=(m,n)=>{for(var r in n||(n={}))Cr.call(n,r)&&Fn(m,r,n[r]);if(Pn)for(var r of Pn(n))Er.call(n,r)&&Fn(m,r,n[r]);return m},Ce=(m,n)=>xr(m,Nr(n));var ge=(m,n,r)=>new Promise((u,h)=>{var c=b=>{try{p(r.next(b))}catch(_){h(_)}},g=b=>{try{p(r.throw(b))}catch(_){h(_)}},p=b=>b.done?u(b.value):Promise.resolve(b.value).then(c,g);p((r=r.apply(m,n)).next())});import{l as Pr,p as Fr,H as V,m as Ir,q as Tt,h as In}from"./townshipBoundaries-8867fad4-1785726778446.js";import{_ as Mr,g as kr,q as Rr,h as vr,w as tt,A as Mn,o as Lr,c as Ar,a as Or,d as kn,L as Br}from"./index-1785726778446.js";class ye{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function Dr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const p=n.right;if(n.right=p.left,p.left=n,n=p,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function xt(m,n,r,u){const h=new ye(m,n);if(r===null)return h.left=h.right=null,h;r=me(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function Rn(m,n,r){let u=null,h=null;if(n){n=me(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function Hr(m,n,r){return n===null?m:(m===null||(n=me(m.key,n,r),n.left=m),n)}function Ct(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} +var Tr=Object.defineProperty,xr=Object.defineProperties;var Nr=Object.getOwnPropertyDescriptors;var Pn=Object.getOwnPropertySymbols;var Cr=Object.prototype.hasOwnProperty,Er=Object.prototype.propertyIsEnumerable;var Fn=(m,n,r)=>n in m?Tr(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,oe=(m,n)=>{for(var r in n||(n={}))Cr.call(n,r)&&Fn(m,r,n[r]);if(Pn)for(var r of Pn(n))Er.call(n,r)&&Fn(m,r,n[r]);return m},Ce=(m,n)=>xr(m,Nr(n));var ge=(m,n,r)=>new Promise((u,h)=>{var c=b=>{try{p(r.next(b))}catch(_){h(_)}},g=b=>{try{p(r.throw(b))}catch(_){h(_)}},p=b=>b.done?u(b.value):Promise.resolve(b.value).then(c,g);p((r=r.apply(m,n)).next())});import{l as Pr,p as Fr,H as V,m as Ir,q as Tt,h as In}from"./townshipBoundaries-8867fad4-1785858872961.js";import{_ as Mr,g as kr,q as Rr,h as vr,w as tt,A as Mn,o as Lr,c as Ar,a as Or,d as kn,L as Br}from"./index-1785858872961.js";class ye{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function Dr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const p=n.right;if(n.right=p.left,p.left=n,n=p,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function xt(m,n,r,u){const h=new ye(m,n);if(r===null)return h.left=h.right=null,h;r=me(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function Rn(m,n,r){let u=null,h=null;if(n){n=me(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function Hr(m,n,r){return n===null?m:(m===null||(n=me(m.key,n,r),n.left=m),n)}function Ct(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} `);const c=n+(r?" ":"│ ");m.left&&Ct(m.left,c,!1,u,h),m.right&&Ct(m.right,c,!0,u,h)}}class Mt{constructor(n=Dr){this._root=null,this._size=0,this._comparator=n}insert(n,r){return this._size++,this._root=xt(n,r,this._root,this._comparator)}add(n,r){const u=new ye(n,r);this._root===null&&(u.left=u.right=null,this._size++,this._root=u);const h=this._comparator,c=me(n,this._root,h),g=h(n,c.key);return g===0?this._root=c:(g<0?(u.left=c.left,u.right=c,c.left=null):g>0&&(u.right=c.right,u.left=c,c.right=null),this._size++,this._root=u),this._root}remove(n){this._root=this._remove(n,this._root,this._comparator)}_remove(n,r,u){let h;return r===null?null:(r=me(n,r,u),u(n,r.key)===0?(r.left===null?h=r.right:(h=me(n,r.left,u),h.right=r.right),this._size--,h):r)}pop(){let n=this._root;if(n){for(;n.left;)n=n.left;return this._root=me(n.key,this._root,this._comparator),this._root=this._remove(n.key,this._root,this._comparator),{key:n.key,data:n.data}}return null}findStatic(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return r;h<0?r=r.left:r=r.right}return null}find(n){return this._root&&(this._root=me(n,this._root,this._comparator),this._comparator(n,this._root.key)!==0)?null:this._root}contains(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return!0;h<0?r=r.left:r=r.right}return!1}forEach(n,r){let u=this._root;const h=[];let c=!1;for(;!c;)u!==null?(h.push(u),u=u.left):h.length!==0?(u=h.pop(),n.call(r,u),u=u.right):c=!0;return this}range(n,r,u,h){const c=[],g=this._comparator;let p=this._root,b;for(;c.length!==0||p;)if(p)c.push(p),p=p.left;else{if(p=c.pop(),b=g(p.key,r),b>0)break;if(g(p.key,n)>=0&&u.call(h,p))return this;p=p.right}return this}keys(){const n=[];return this.forEach(({key:r})=>{n.push(r)}),n}values(){const n=[];return this.forEach(({data:r})=>{n.push(r)}),n}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(n=this._root){if(n)for(;n.left;)n=n.left;return n}maxNode(n=this._root){if(n)for(;n.right;)n=n.right;return n}at(n){let r=this._root,u=!1,h=0;const c=[];for(;!u;)if(r)c.push(r),r=r.left;else if(c.length>0){if(r=c.pop(),h===n)return r;h++,r=r.right}else u=!0;return null}next(n){let r=this._root,u=null;if(n.right){for(u=n.right;u.left;)u=u.left;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?(u=r,r=r.left):r=r.right}return u}prev(n){let r=this._root,u=null;if(n.left!==null){for(u=n.left;u.right;)u=u.right;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?r=r.left:(u=r,r=r.right)}return u}clear(){return this._root=null,this._size=0,this}toList(){return Gr(this._root)}load(n,r=[],u=!1){let h=n.length;const c=this._comparator;if(u&&Ft(n,r,0,h-1,c),this._root===null)this._root=Et(n,r,0,h),this._size=h;else{const g=zr(this.toList(),Wr(n,r),c);h=this._size+h,this._root=Pt({head:g},0,h)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(n=r=>String(r.key)){const r=[];return Ct(this._root,"",!0,u=>r.push(u),n),r.join("")}update(n,r,u){const h=this._comparator;let{left:c,right:g}=Rn(n,this._root,h);h(n,r)<0?g=xt(r,u,g,h):c=xt(r,u,c,h),this._root=Hr(c,g,h)}split(n){return Rn(n,this._root,this._comparator)}*[Symbol.iterator](){let n=this._root;const r=[];let u=!1;for(;!u;)n!==null?(r.push(n),n=n.left):r.length!==0?(n=r.pop(),yield n,n=n.right):u=!0}}function Et(m,n,r,u){const h=u-r;if(h>0){const c=r+Math.floor(h/2),g=m[c],p=n[c],b=new ye(g,p);return b.left=Et(m,n,r,c),b.right=Et(m,n,c+1,u),b}return null}function Wr(m,n){const r=new ye(null,null);let u=r;for(let h=0;h0?(n=c=c.next=r.pop(),n=n.right):u=!0;return c.next=null,h.next}function Pt(m,n,r){const u=r-n;if(u>0){const h=n+Math.floor(u/2),c=Pt(m,n,h),g=m.head;return g.left=c,m.head=m.head.next,g.right=Pt(m,h+1,r),g}return null}function zr(m,n,r){const u=new ye(null,null);let h=u,c=m,g=n;for(;c!==null&&g!==null;)r(c.key,g.key)<0?(h.next=c,c=c.next):(h.next=g,g=g.next),h=h.next;return c!==null?h.next=c:g!==null&&(h.next=g),u.next}function Ft(m,n,r,u,h){if(r>=u)return;const c=m[r+u>>1];let g=r-1,p=u+1;for(;;){do g++;while(h(m[g],c)<0);do p--;while(h(m[p],c)>0);if(g>=p)break;let b=m[g];m[g]=m[p],m[p]=b,b=n[g],n[g]=n[p],n[p]=b}Ft(m,n,r,p,h),Ft(m,n,p+1,u,h)}const ce=11102230246251565e-32,K=134217729,Vr=(3+8*ce)*ce;function Nt(m,n,r,u,h){let c,g,p,b,_=n[0],C=u[0],s=0,w=0;C>_==C>-_?(c=_,_=n[++s]):(c=C,C=u[++w]);let T=0;if(s_==C>-_?(g=_+c,p=c-(g-_),_=n[++s]):(g=C+c,p=c-(g-C),C=u[++w]),c=g,p!==0&&(h[T++]=p);s_==C>-_?(g=c+_,b=g-c,p=c-(g-b)+(_-b),_=n[++s]):(g=c+C,b=g-c,p=c-(g-b)+(C-b),C=u[++w]),c=g,p!==0&&(h[T++]=p);for(;s=re||-j>=re||(s=m-X,p=m-(X+s)+(s-h),s=r-$,_=r-($+s)+(s-h),s=n-J,b=n-(J+s)+(s-c),s=u-G,C=u-(G+s)+(s-c),p===0&&b===0&&_===0&&C===0)||(re=jr*g+Vr*Math.abs(j),j+=X*C+G*p-(J*_+$*b),j>=re||-j>=re))return j;R=p*G,w=K*p,T=w-(w-p),P=p-T,w=K*G,E=w-(w-G),k=G-E,A=P*k-(R-T*E-P*E-T*k),O=b*$,w=K*b,T=w-(w-b),P=b-T,w=K*$,E=w-(w-$),k=$-E,Y=P*k-(O-T*E-P*E-T*k),M=A-Y,s=A-M,ee[0]=A-(M+s)+(s-Y),F=R+M,s=F-R,B=R-(F-s)+(M-s),M=B-O,s=B-M,ee[1]=B-(M+s)+(s-O),H=F+M,s=H-F,ee[2]=F-(H-s)+(M-s),ee[3]=H;const be=Nt(4,Pe,4,ee,vn);R=X*C,w=K*X,T=w-(w-X),P=X-T,w=K*C,E=w-(w-C),k=C-E,A=P*k-(R-T*E-P*E-T*k),O=J*_,w=K*J,T=w-(w-J),P=J-T,w=K*_,E=w-(w-_),k=_-E,Y=P*k-(O-T*E-P*E-T*k),M=A-Y,s=A-M,ee[0]=A-(M+s)+(s-Y),F=R+M,s=F-R,B=R-(F-s)+(M-s),M=B-O,s=B-M,ee[1]=B-(M+s)+(s-O),H=F+M,s=H-F,ee[2]=F-(H-s)+(M-s),ee[3]=H;const we=Nt(be,vn,4,ee,Ln);R=p*C,w=K*p,T=w-(w-p),P=p-T,w=K*C,E=w-(w-C),k=C-E,A=P*k-(R-T*E-P*E-T*k),O=b*_,w=K*b,T=w-(w-b),P=b-T,w=K*_,E=w-(w-_),k=_-E,Y=P*k-(O-T*E-P*E-T*k),M=A-Y,s=A-M,ee[0]=A-(M+s)+(s-Y),F=R+M,s=F-R,B=R-(F-s)+(M-s),M=B-O,s=B-M,ee[1]=B-(M+s)+(s-O),H=F+M,s=H-F,ee[2]=F-(H-s)+(M-s),ee[3]=H;const he=Nt(we,Ln,4,ee,An);return An[he-1]}function Zr(m,n,r,u,h,c){const g=(n-c)*(r-h),p=(m-h)*(u-c),b=g-p,_=Math.abs(g+p);return Math.abs(b)>=Ur*_?b:-qr(m,n,r,u,h,c,_)}const He=(m,n)=>m.ll.x<=n.x&&n.x<=m.ur.x&&m.ll.y<=n.y&&n.y<=m.ur.y,It=(m,n)=>{if(n.ur.x{if(-pem.x*n.y-m.y*n.x,Zn=(m,n)=>m.x*n.x+m.y*n.y,Dn=(m,n,r)=>{const u=Zr(m.x,m.y,n.x,n.y,r.x,r.y);return u>0?-1:u<0?1:0},rt=m=>Math.sqrt(Zn(m,m)),Kr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return it(h,u)/rt(h)/rt(u)},Qr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return Zn(h,u)/rt(h)/rt(u)},Hn=(m,n,r)=>n.y===0?null:{x:m.x+n.x/n.y*(r-m.y),y:r},Wn=(m,n,r)=>n.x===0?null:{x:r,y:m.y+n.y/n.x*(r-m.x)},eo=(m,n,r,u)=>{if(n.x===0)return Wn(r,u,m.x);if(u.x===0)return Wn(m,n,r.x);if(n.y===0)return Hn(r,u,m.y);if(u.y===0)return Hn(m,n,r.y);const h=it(n,u);if(h==0)return null;const c={x:r.x-m.x,y:r.y-m.y},g=it(c,n)/h,p=it(c,u)/h,b=m.x+p*n.x,_=r.x+g*u.x,C=m.y+p*n.y,s=r.y+g*u.y,w=(b+_)/2,T=(C+s)/2;return{x:w,y:T}};class ie{static compare(n,r){const u=ie.comparePoints(n.point,r.point);return u!==0?u:(n.point!==r.point&&n.link(r),n.isLeft!==r.isLeft?n.isLeft?1:-1:de.compare(n.segment,r.segment))}static comparePoints(n,r){return n.xr.x?1:n.yr.y?1:0}constructor(n,r){n.events===void 0?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}link(n){if(n.point===this.point)throw new Error("Tried to link already linked events");const r=n.point.events;for(let u=0,h=r.length;u{const c=h.otherSE;r.set(h,{sine:Kr(this.point,n.point,c.point),cosine:Qr(this.point,n.point,c.point)})};return(h,c)=>{r.has(h)||u(h),r.has(c)||u(c);const{sine:g,cosine:p}=r.get(h),{sine:b,cosine:_}=r.get(c);return g>=0&&b>=0?p<_?1:p>_?-1:0:g<0&&b<0?p<_?-1:p>_?1:0:bg?1:0}}}let to=0;class de{static compare(n,r){const u=n.leftSE.point.x,h=r.leftSE.point.x,c=n.rightSE.point.x,g=r.rightSE.point.x;if(gp&&b>_)return-1;const s=n.comparePoint(r.leftSE.point);if(s<0)return 1;if(s>0)return-1;const w=r.comparePoint(n.rightSE.point);return w!==0?w:-1}if(u>h){if(pb&&p>C)return 1;const s=r.comparePoint(n.leftSE.point);if(s!==0)return s;const w=n.comparePoint(r.rightSE.point);return w<0?1:w>0?-1:1}if(pb)return 1;if(cg){const s=n.comparePoint(r.rightSE.point);if(s<0)return 1;if(s>0)return-1}if(c!==g){const s=_-p,w=c-u,T=C-b,P=g-h;if(s>w&&TP)return-1}return c>g?1:cC?1:n.idr.id?1:0}constructor(n,r,u,h){this.id=++to,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=u,this.windings=h}static fromRing(n,r,u){let h,c,g;const p=ie.comparePoints(n,r);if(p<0)h=n,c=r,g=1;else if(p>0)h=r,c=n,g=-1;else throw new Error(`Tried to create degenerate segment at [${n.x}, ${n.y}]`);const b=new ie(h,!0),_=new ie(c,!1);return new de(b,_,[u],[g])}replaceRightSE(n){this.rightSE=n,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const n=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:nr?n:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(n){return n.x===this.leftSE.point.x&&n.y===this.leftSE.point.y||n.x===this.rightSE.point.x&&n.y===this.rightSE.point.y}comparePoint(n){if(this.isAnEndpoint(n))return 0;const r=this.leftSE.point,u=this.rightSE.point,h=this.vector();if(r.x===u.x)return n.x===r.x?0:n.x0&&p.swapEvents(),ie.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),u&&(h.checkForConsuming(),c.checkForConsuming()),r}swapEvents(){const n=this.rightSE;this.rightSE=this.leftSE,this.leftSE=n,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,u=this.windings.length;r0){const c=r;r=u,u=c}if(r.prev===u){const c=r;r=u,u=c}for(let c=0,g=u.rings.length;ch.length===1&&h[0].isSubject;this._isInResult=u(n)!==u(r);break}default:throw new Error(`Unrecognized operation type found ${se.type}`)}return this._isInResult}}class Gn{constructor(n,r,u){if(!Array.isArray(n)||n.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=u,this.segments=[],typeof n[0][0]!="number"||typeof n[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=We.round(n[0][0],n[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let c=h;for(let g=1,p=n.length;gthis.bbox.ur.x&&(this.bbox.ur.x=b.x),b.y>this.bbox.ur.y&&(this.bbox.ur.y=b.y),c=b)}(h.x!==c.x||h.y!==c.y)&&this.segments.push(de.fromRing(c,h,this))}getSweepEvents(){const n=[];for(let r=0,u=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.interiorRings.push(c)}this.multiPoly=r}getSweepEvents(){const n=this.exteriorRing.getSweepEvents();for(let r=0,u=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.polys.push(c)}this.isSubject=r}getSweepEvents(){const n=[];for(let r=0,u=this.polys.length;r0&&(n=g)}let r=n.segment.prevInResult(),u=r?r.prevInResult():null;for(;;){if(!r)return null;if(!u)return r.ringOut;if(u.ringOut!==r.ringOut)return u.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=u.prevInResult(),u=r?r.prevInResult():null}}}class Vn{constructor(n){this.exteriorRing=n,n.poly=this,this.interiorRings=[]}addInterior(n){this.interiorRings.push(n),n.poly=this}getGeom(){const n=[this.exteriorRing.getGeom()];if(n[0]===null)return null;for(let r=0,u=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:de.compare;this.queue=n,this.tree=new Mt(r),this.segments=[]}process(n){const r=n.segment,u=[];if(n.consumedBy)return n.isLeft?this.queue.remove(n.otherSE):this.tree.remove(r),u;const h=n.isLeft?this.tree.add(r):this.tree.find(r);if(!h)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let c=h,g=h,p,b;for(;p===void 0;)c=this.tree.prev(c),c===null?p=null:c.key.consumedBy===void 0&&(p=c.key);for(;b===void 0;)g=this.tree.next(g),g===null?b=null:g.key.consumedBy===void 0&&(b=g.key);if(n.isLeft){let _=null;if(p){const s=p.getIntersection(r);if(s!==null&&(r.isAnEndpoint(s)||(_=s),!p.isAnEndpoint(s))){const w=this._splitSafely(p,s);for(let T=0,P=w.length;T0?(this.tree.remove(r),u.push(n)):(this.segments.push(r),r.prev=p)}else{if(p&&b){const _=p.getIntersection(b);if(_!==null){if(!p.isAnEndpoint(_)){const C=this._splitSafely(p,_);for(let s=0,w=C.length;s$n)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const g=new ro(c);let p=c.size,b=c.pop();for(;b;){const s=b.key;if(c.size===p){const T=s.segment;throw new Error(`Unable to pop() ${s.isLeft?"left":"right"} SweepEvent [${s.point.x}, ${s.point.y}] from segment #${T.id} [${T.leftSE.point.x}, ${T.leftSE.point.y}] -> [${T.rightSE.point.x}, ${T.rightSE.point.y}] from queue.`)}if(c.size>$n)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(g.segments.length>oo)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const w=g.process(s);for(let T=0,P=w.length;T1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:""},center:{type:Array,default:()=>[...Pr]},initialZoom:{type:Number,default:Fr},minimumZoomDistance:{type:Number,default:1},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},emitEmptyFeatureInfoOnMiss:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary","view-change"],setup(m,{expose:n,emit:r}){let u=[],h=null;const c=m,g=r,p=kn(null),b=kn(null),_=Br(null),C=kr(()=>c.activeLayer?[c.activeLayer,...Array.isArray(c.activeLayer.overlayLayers)?c.activeLayer.overlayLayers:[]].filter(Boolean):c.overlayLayers.length?c.overlayLayers.filter(Boolean):c.overlayLayer?[c.overlayLayer]:[]);let s=null,w=null,T=null,P=null,E=null,k=!1,M=0,F=null,B=!1,R=[],A=null,O=[],Y=[],H=[],X=[],$=[],J=[],G=null,j=[],re=[];const be=new Map;let we=null,he=[],Xn=[];const st=new Map,lt=new Map;Rr(()=>{g("scene-mounted"),c.active&&ze()}),vr(()=>Le()),tt(C,()=>Ht(),{deep:!0}),tt(()=>c.mapRanking,()=>ht(),{deep:!0}),tt(()=>c.hideTownLabelStats,()=>ht()),tt(()=>c.active,e=>ge(this,null,function*(){if(!e){Le();return}yield Mn(),ze()}));function ze(){var S,y,x,N;if(s||!b.value)return!!s;const e=window.Cesium;if(!e)return g("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;k=!1;const t=Jn(e),i=Rt(c.tileUrlTemplate),l=Rt(c.referenceTileUrlTemplate),a=Kn(i),o=l&&l!==i?kt(e,l,{maximumLevel:c.maxZoom}):null,f=i?kt(e,i,{maximumLevel:a?Math.min(c.maxZoom,go):c.maxZoom,rectangle:a?Qn(e):null}):null;if(s=new e.Viewer(b.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:t,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),Bt(!1),o){const I=s.imageryLayers.addImageryProvider(o);I.alpha=1,I.brightness=.68,I.contrast=1.08,I.saturation=.48,I.gamma=.9}f&&(A=s.imageryLayers.addImageryProvider(f),A.alpha=a?.88:1,A.brightness=a?.96:.9,A.contrast=a?1.12:1.1,A.saturation=a?1.08:1.05,A.gamma=a?.98:.96),s.scene.globe.terrainExaggeration=c.terrainUrl?1.5:1,s.scene.globe.depthTestAgainstTerrain=!1,s.scene.globe.baseColor=e.Color.fromCssColorString("#061821"),s.scene.backgroundColor=e.Color.fromCssColorString("#020b12"),s.scene.skyAtmosphere.show=!1,s.scene.skyBox&&(s.scene.skyBox.show=!1),s.scene.fog.enabled=!0,s.scene.fog.density=18e-5,s.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),1.5),s.scene.fxaa=!1,s.scene.postProcessStages.fxaa.enabled=!1,s.scene.screenSpaceCameraController.enableCollisionDetection=!0,s.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(c.minimumZoomDistance)||1),s.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(S=s.cesiumWidget)!=null&&S.creditContainer&&(s.cesiumWidget.creditContainer.style.display="none"),(y=s._cesiumWidget)!=null&&y._creditContainer&&(s._cesiumWidget._creditContainer.style.display="none"),ii(t,e),vt().then(()=>{var I;!s||(I=s.isDestroyed)!=null&&I.call(s)||(Hi(),ut())}).catch(I=>{console.warn("[cesium-map] county outline load failed",I),g("layer-status",{type:"error",text:"红原县边界加载失败"})}),Ai(),Ui(),gi(),mi(),pi(),ut(),Ht(),ht();const d={viewer:s,clearSelectedFeature:te,focusProject:sn,focusPasture:cn,focusTownByName:on,focusYakIndustryPoint:ln,focusVectorFeature:an,getVectorFeatureAnchorScreen:un,getVectorFeaturesAnchorScreen:Je,getVectorFeatureScreen:Me,getYakIndustryPointScreen:pt,destroy:Le};return _.value=d,(N=(x=f==null?void 0:f.errorEvent)==null?void 0:x.addEventListener)==null||N.call(x,()=>{g("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),g("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var I;s&&!((I=s.isDestroyed)!=null&&I.call(s))&&g("ready")},0),Mn(Ve),!0}function Jn(e){if(!c.terrainUrl)return new e.EllipsoidTerrainProvider;try{return new e.CesiumTerrainProvider({url:c.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(t){return k=!0,new e.EllipsoidTerrainProvider}}function kt(e,t,i={}){return t?new e.UrlTemplateImageryProvider({url:t,minimumLevel:i.minimumLevel||3,maximumLevel:i.maximumLevel||c.maxZoom,rectangle:i.rectangle||void 0,tilingScheme:new e.WebMercatorTilingScheme,credit:""}):null}function Rt(e){return String(e||"").trim()}function Kn(e){return/hy-result|qkl-map/i.test(String(e||""))}function Qn(e){return e.Rectangle.fromDegrees(V.west-.035,V.south-.035,V.east+.035,V.north+.035)}function ei(e,t="feature"){const i=[];if(((e==null?void 0:e.features)||[]).forEach(l=>{const a=W(l==null?void 0:l.geometry);jt(a).forEach(o=>{const f=ti(o);f&&i.push(f)})}),!i.length)return[];try{return nt.union(...i)}catch(l){return console.warn(`[cesium-map] ${t} union boundary failed`,l),i.map(a=>a)}}function vt(){return ge(this,null,function*(){return u.length?u:(h||(h=Ue(ho).then(e=>{const t=ei(e,"county outline");return u=t,t}).catch(e=>{throw h=null,e})),h)})}function ti(e){if(!Array.isArray(e))return null;const t=e.map(i=>ni((i||[]).map(q).filter(Boolean))).filter(i=>i.length>=4);return t.length?t:null}function ni(e=[]){if(!e.length)return[];const t=e[0],i=e[e.length-1];return qt(t,i)?e:[...e,t]}function ii(e,t){var l,a,o,f;const i=()=>{!s||k||(k=!0,s.terrainProvider=new t.EllipsoidTerrainProvider,s.scene.globe.terrainExaggeration=1,s.scene.requestRender(),g("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(a=(l=e==null?void 0:e.errorEvent)==null?void 0:l.addEventListener)==null||a.call(l,i),(f=(o=e==null?void 0:e.readyPromise)==null?void 0:o.catch)==null||f.call(o,i)}function ri(){return ze()}function oi(){var e;return!!(s&&!((e=s.isDestroyed)!=null&&e.call(s)))}function si(){Lt()}function Lt(){if(!s){ze();return}s.useDefaultRenderLoop=!0,Ve()}function li(){Le()}function Ve(){var e;!s||(e=s.isDestroyed)!=null&&e.call(s)||(s.resize(),s.scene.requestRender())}function At(){if(!(s!=null&&s.camera)||!window.Cesium)return null;const e=window.Cesium,t=s.camera;return{position:e.Cartesian3.clone(t.positionWC||t.position),direction:e.Cartesian3.clone(t.directionWC||t.direction),up:e.Cartesian3.clone(t.upWC||t.up)}}function $e(e){var i,l,a,o,f,d;if(!(s!=null&&s.camera)||!e||!window.Cesium)return;const t=window.Cesium;(l=(i=s.camera).cancelFlight)==null||l.call(i),(o=(a=s.camera).lookAtTransform)==null||o.call(a,t.Matrix4.IDENTITY),s.camera.setView({destination:t.Cartesian3.clone(e.position),orientation:{direction:t.Cartesian3.clone(e.direction),up:t.Cartesian3.clone(e.up)}}),(d=(f=s.scene)==null?void 0:f.requestRender)==null||d.call(f)}function Ot(e){var t,i;!e||typeof window=="undefined"||((t=window.requestAnimationFrame)==null||t.call(window,()=>$e(e)),(i=window.setTimeout)==null||i.call(window,()=>$e(e),80))}function ai(){te(),Bt(!0)}function ui(e=C.value.find(t=>(t==null?void 0:t.mapView)||(t==null?void 0:t.cameraPosition))){return!s||!e?!1:(mn(e),!0)}function Bt(e=!0){if(!s)return;const t=window.Cesium,i=fi(),l=Dt(c.initialZoom),a=ci(),o=t.Cartesian3.fromDegrees(i[0]+a.lng,i[1]+a.lat,hi()),f=new t.HeadingPitchRange(t.Math.toRadians(mo),t.Math.toRadians(po),l);e?s.camera.flyToBoundingSphere(new t.BoundingSphere(o,1),{offset:f,duration:.9}):(s.camera.lookAt(o,f),s.camera.lookAtTransform(t.Matrix4.IDENTITY)),s.scene.requestRender()}function ci(){var l,a;const e=c.countyViewTargetOffset,t=Number((l=e==null?void 0:e.lng)!=null?l:e==null?void 0:e[0]),i=Number((a=e==null?void 0:e.lat)!=null?a:e==null?void 0:e[1]);return{lng:Number.isFinite(t)?t:0,lat:Number.isFinite(i)?i:Ir.lat}}function hi(){return c.terrainUrl?yo:bo}function at(){return c.terrainUrl?wo:So}function Dt(e){const t=Number.isFinite(Number(e))?Number(e):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,t-9)))}function fi(){const e=q(c.center);return e||[(V.west+V.east)/2,(V.south+V.north)/2]}function gi(){!p.value||!window.ResizeObserver||(T=new ResizeObserver(()=>Ve()),T.observe(p.value))}function mi(){!s||P||(P=s.camera.moveEnd.addEventListener(ut))}function pi(){!s||E||(E=s.scene.postRender.addEventListener(()=>{g("view-change")}))}function ut(){var l,a;if(!s||(l=s.isDestroyed)!=null&&l.call(s))return;const e=Number((a=s.camera.positionCartographic)==null?void 0:a.height)||32e4,t=Math.max(0,Math.min(1,(36e4-e)/3e5)),i={township:1.1+t*.35,countyOutline:1.9+t*.35,countyHalo:4.2+t*.65};Y.forEach(o=>{o!=null&&o.polyline&&o.__hyBoundaryRole==="township"&&(o.polyline.width=i.township)}),he.forEach(o=>{o!=null&&o.polyline&&o.__hyBoundaryRole==="county-outline"&&(o.polyline.width=i.countyOutline),o!=null&&o.polyline&&o.__hyBoundaryRole==="county-halo"&&(o.polyline.width=i.countyHalo)}),s.scene.requestRender()}function Ht(){return ge(this,null,function*(){var i,l;if(!s)return;const e=++M;Cn();const t=C.value;if(!t.length){g("layer-status",{type:"idle",text:"未选择专题图层"}),s.scene.requestRender();return}g("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield vt(),e!==M||!s)return;for(const a of t){if(e!==M)return;yield di(a,e)}if(e!==M)return;c.autoApplyLayerMapView&&mn(t.find(a=>(a==null?void 0:a.mapView)||(a==null?void 0:a.cameraPosition))),g("layer-status",{type:"success",text:`${t.map(a=>a.name).filter(Boolean).join("、")}已加载`})}catch(a){if(e!==M)return;console.warn("[cesium-map] topic layer failed",a),g("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(l=(i=s==null?void 0:s.scene)==null?void 0:i.requestRender)==null||l.call(i)}})}function di(e,t){return ge(this,null,function*(){const i=String((e==null?void 0:e.sourceType)||"wms").toLowerCase();if(i!=="analysis"){if(["geojson","wkt-api","wfs"].includes(i)){const l=yield Si(e);if(t!==M||!l)return;Ni(l,e,H);return}if(i==="wmts"){yi(e);return}wi(e)}})}function yi(e){const t=window.Cesium,i=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",l=Number.isFinite(Number(e.maximumLevel))?Number(e.maximumLevel):21,a=new t.WebMapTileServiceImageryProvider({url:e.url||"/geoserver/gwc/service/wmts",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSetID:i,tileMatrixLabels:e.tileMatrixLabels||bi(i,l),tilingScheme:/4326/i.test(i)?new t.GeographicTilingScheme:new t.WebMercatorTilingScheme,maximumLevel:l,credit:e.credit||""}),o=s.imageryLayers.addImageryProvider(a),f=String(e.layerName||"").includes("daping_yak_marks");o.alpha=f?xe(e.opacity,.94):xe(e.opacity,.86),f&&Wt(o,e),o.__hyLayer=e,O.push(o)}function bi(e,t=21){return Array.from({length:t+1},(i,l)=>`${e}:${l}`)}function wi(e){const t=window.Cesium,i={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:e.styles||""};e.cqlFilter&&(i.cql_filter=e.cqlFilter),e.sldBody&&(i.sld_body=e.sldBody);const l=new t.WebMapServiceImageryProvider({url:e.url||"/geoserver/ne/wms",layers:e.layerName,parameters:i,getFeatureInfoParameters:Ce(oe({},i),{info_format:"application/json",feature_count:10})}),a=s.imageryLayers.addImageryProvider(l),o=String(e.layerName||"").includes("daping_yak_marks");a.alpha=o?xe(e.opacity,.94):xe(e.opacity,.86),o&&Wt(a,e),a.__hyLayer=e,O.push(a)}function Wt(e,t={}){e.brightness=Number.isFinite(Number(t.brightness))?Number(t.brightness):1.08,e.contrast=Number.isFinite(Number(t.contrast))?Number(t.contrast):1.18,e.saturation=Number.isFinite(Number(t.saturation))?Number(t.saturation):1.42,e.gamma=Number.isFinite(Number(t.gamma))?Number(t.gamma):.95}function Si(e){return ge(this,null,function*(){if(e.sourceType==="wkt-api")try{const t=yield fetch(e.apiUrl,{credentials:"same-origin"});if(!t.ok)throw new Error(`HTTP ${t.status}`);return xi(yield t.json())}catch(t){if(!e.fallbackPath)throw t;return Ue(e.fallbackPath)}if(e.sourceType==="wfs"){const t=_i(e);return Ue(t)}return Ue(e.dataPath||e.fallbackPath)})}function Ue(e){return ge(this,null,function*(){if(!e)return null;const t=/^(https?:)?\/\//.test(e)||e.startsWith("/")?e:fo(e),i=yield fetch(t,{credentials:"same-origin"});if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.json()})}function _i(e){const t=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:e.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return e.cqlFilter&&t.set("cql_filter",e.cqlFilter),e.maxFeatures&&t.set("maxFeatures",String(e.maxFeatures)),Array.isArray(e.propertyName)&&e.propertyName.length?t.set("propertyName",e.propertyName.join(",")):e.propertyName&&t.set("propertyName",e.propertyName),`${e.url||"/geoserver/ne/wfs"}?${t.toString()}`}function Ti(e,t={},i=null,l=null){var S,y,x;const a=((S=e==null?void 0:e.data)==null?void 0:S.type)==="Feature"?e.data:((x=(y=e==null?void 0:e.data)==null?void 0:y.features)==null?void 0:x[0])||(e==null?void 0:e.feature)||null,o=(a==null?void 0:a.properties)||t||{},f=W((a==null?void 0:a.geometry)||o.geometry||o.geom||o.the_geom||o.theGeom||o.wkt||o.shape),d=(a==null?void 0:a.id)||o.id||o.gid||o.objectid||o.OBJECTID||(e==null?void 0:e.name);return{type:"Feature",id:d,properties:o,feature:{type:"Feature",id:d,properties:o,geometry:f},geometry:f,layer:i,lngLat:l}}function xi(e){var l;const t=(l=e==null?void 0:e.data)!=null?l:e;return{type:"FeatureCollection",features:(Array.isArray(t)?t:(t==null?void 0:t.rows)||(t==null?void 0:t.list)||(t==null?void 0:t.records)||(t==null?void 0:t.data)||[]).map((a,o)=>{var f;return{type:"Feature",id:(f=a==null?void 0:a.id)!=null?f:o,properties:oe({},a),geometry:W(a==null?void 0:a.geometry)||bt(Gt(a))}}).filter(a=>a.geometry)}}function Gt(e={}){return e.wkt||e.WKT||e.geom||e.the_geom||e.theGeom||e.shape||e.Shape}function Ni(e,t,i){((e==null?void 0:e.type)==="FeatureCollection"?e.features:(e==null?void 0:e.type)==="Feature"?[e]:[]).filter(a=>a==null?void 0:a.geometry).filter(a=>Li(a.properties||{},t)).map(a=>Ci(a,t)).filter(Boolean).forEach(a=>Se(a,t,i))}function Ci(e,t){const i=W(e==null?void 0:e.geometry),l=(t==null?void 0:t.clipToHongyuanBoundary)===!0,a=Ei(t);if(!i||!["Polygon","MultiPolygon"].includes(i.type)||!l&&!a)return e;let o=i.type==="Polygon"?[i.coordinates]:i.coordinates;try{l&&u.length&&(o=nt.intersection(o,u)),a&&o.length&&(o=nt.intersection(o,[Pi(a)]))}catch(f){return console.warn("[cesium-map] vector layer clipping failed",t==null?void 0:t.key,f),e}return o.length?Ce(oe({},e),{geometry:{type:"MultiPolygon",coordinates:o}}):null}function Ei(e){if(!(e!=null&&e.clipBounds)||e.clipToLayerBounds===!1)return null;const t=e.clipBounds,i=Math.max(Number(t.west),V.west),l=Math.max(Number(t.south),V.south),a=Math.min(Number(t.east),V.east),o=Math.min(Number(t.north),V.north);return![i,l,a,o].every(Number.isFinite)||i>=a||l>=o?null:{west:i,south:l,east:a,north:o}}function Pi(e){return[[[e.west,e.south],[e.east,e.south],[e.east,e.north],[e.west,e.north],[e.west,e.south]]]}function Se(e,t,i,l={}){const a=W(e.geometry);if(!a)return[];const o=ki(t,e.properties||{},l),f=Ye(a,e,t,o);return i.push(...f),f}function Ye(e,t,i,l){const a=window.Cesium,o=[],f=d=>{const S=s.entities.add(d);return S.__hyFeature=t,S.__hyLayer=i,o.push(S),S};if(e.type==="Point"){const d=q(e.coordinates);if(!d||i.hidePointFeatures||i.hidePointMarkers)return o;const S=Vt(i),y=S?Mi(i):10,x=S?a.HeightReference.NONE:a.HeightReference.CLAMP_TO_GROUND;if(l.pointImage){const N={image:l.pointImage,width:l.pointWidth,height:l.pointHeight,scale:1,verticalOrigin:a.VerticalOrigin.BOTTOM,horizontalOrigin:a.HorizontalOrigin.CENTER,heightReference:x,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new a.NearFarScalar(15e3,.98,24e4,.72)};return i.showPointAtAllDistances||(N.distanceDisplayCondition=new a.DistanceDisplayCondition(0,36e4)),f({position:a.Cartesian3.fromDegrees(d[0],d[1],y),billboard:N,point:Ii(i),label:i.showPointLabels?$t(t):void 0}),o}return f({position:a.Cartesian3.fromDegrees(d[0],d[1],S?y:8),point:{pixelSize:l.pointSize,color:l.fill,outlineColor:l.stroke,outlineWidth:2,heightReference:x,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:i.showPointLabels?$t(t):void 0}),o}if(e.type==="MultiPoint")return e.coordinates.forEach(d=>o.push(...Ye({type:"Point",coordinates:d},t,i,l))),o;if(e.type==="LineString"){const d=ue(e.coordinates);return d.length<2||f({polyline:{positions:d,width:l.lineWidth,material:new a.PolylineGlowMaterialProperty({glowPower:.16,color:l.stroke}),clampToGround:!0}}),o}if(e.type==="MultiLineString")return e.coordinates.forEach(d=>o.push(...Ye({type:"LineString",coordinates:d},t,i,l))),o;if(e.type==="Polygon"){const d=zt(i),S=d>0,y=(i==null?void 0:i.polygonClampToGround)!==!1&&!S,x=Fe(e.coordinates,S?d:8);if(!x)return o;const N={hierarchy:x,height:S?d:0,heightReference:y?a.HeightReference.CLAMP_TO_GROUND:a.HeightReference.NONE,perPositionHeight:!1,material:l.fill,outline:!1};return(i==null?void 0:i.classificationType)!==!1&&(N.classificationType=a.ClassificationType.BOTH),f({polygon:N}),Fi(e.coordinates,t,i,l,o),o}return e.type==="MultiPolygon"&&e.coordinates.forEach(d=>o.push(...Ye({type:"Polygon",coordinates:d},t,i,l))),o}function Fi(e,t,i,l,a){const o=zt(i),f=o>0&&(i==null?void 0:i.polygonClampToGround)===!1;e.forEach(d=>{const S=ue(d,f?o+2:8);if(S.length<2)return;const y=s.entities.add({polyline:{positions:S,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,clampToGround:!f}});y.__hyFeature=t,y.__hyLayer=i,a.push(y)})}function zt(e){const t=Number(e==null?void 0:e.polygonHeight);return Number.isFinite(t)&&t>0?t:0}function Fe(e=[],t=8){const i=window.Cesium,l=ue(e[0]||[],t);if(l.length<3)return null;const a=e.slice(1).map(o=>{const f=ue(o,t);return f.length>=3?new i.PolygonHierarchy(f):null}).filter(Boolean);return new i.PolygonHierarchy(l,a)}function Ii(e={}){const t=window.Cesium,i=Number(e.pointHitSize||(e.key==="yak-industry-points"?44:0));if(!(!Number.isFinite(i)||i<=0))return{pixelSize:i,color:t.Color.WHITE.withAlpha(.01),outlineColor:t.Color.WHITE.withAlpha(0),outlineWidth:0,heightReference:Vt(e)?t.HeightReference.NONE:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}function Vt(e={}){return e.floatPointMarkers===!0||e.key==="yak-industry-points"}function Mi(e={}){const t=Number(e.pointHeightMeters);return Number.isFinite(t)&&t>0?t:120}function $t(e,t){const i=window.Cesium,l=e.properties||{},a=l.name||l.project_name||l.title||"";if(a)return{text:String(a),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:i.Color.WHITE,outlineColor:i.Color.fromCssColorString("#03121e"),outlineWidth:3,style:i.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new i.Cartesian2(0,-22),heightReference:i.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new i.DistanceDisplayCondition(0,15e4)}}function ki(e,t,i={}){var N,I,v,L,D,z,Q,le,ne;const l=window.Cesium,a=vi(e,t),o=xe(e.opacity,.84),f=i.fillColor||(a==null?void 0:a.fillColor)||e.fillColor||e.color||"#24F6C4",d=i.strokeColor||(a==null?void 0:a.strokeColor)||e.strokeColor||e.color||"#B7FFF2",S=(v=(I=(N=i.fillAlpha)!=null?N:a==null?void 0:a.fillAlpha)!=null?I:e.fillAlpha)!=null?v:Math.min(.34,o*.34),y=(z=(D=(L=i.strokeAlpha)!=null?L:a==null?void 0:a.strokeAlpha)!=null?D:e.strokeAlpha)!=null?z:Math.max(.72,o),x=(ne=(le=(Q=i.lineWidth)!=null?Q:a==null?void 0:a.lineWidth)!=null?le:e.lineWidth)!=null?ne:Math.max(1.6,1.8*Number(c.adminBoundaryLineScale||1));return{fill:ct(l,f,S),stroke:ct(l,d,y),lineWidth:x,pointSize:i.pointSize||12,pointImage:Ri((a==null?void 0:a.iconType)||e.pointIconType||e.pointIcon,f,d),pointWidth:26,pointHeight:34}}function ct(e,t,i){try{return e.Color.fromCssColorString(String(t||"#24F6C4")).withAlpha(xe(i,1))}catch(l){return e.Color.CYAN.withAlpha(xe(i,1))}}function Ri(e,t="#30DCFF",i="#C9FBFF"){const l=String(e||"").trim();if(!l||typeof document=="undefined")return null;const a=`${l}|${t}|${i}`;if(lt.has(a))return lt.get(a);const o=document.createElement("canvas"),f=Math.max(1,Math.min(window.devicePixelRatio||1,2)),d=32,S=42;o.width=d*f,o.height=S*f,o.style.width=`${d}px`,o.style.height=`${S}px`;const y=o.getContext("2d");if(!y)return null;y.scale(f,f),y.clearRect(0,0,d,S),y.save(),y.shadowColor=t,y.shadowBlur=12,y.fillStyle="rgba(3, 28, 40, 0.94)",y.beginPath(),y.arc(16,16,12,0,Math.PI*2),y.fill(),y.restore();const x=y.createLinearGradient(5,5,27,31);x.addColorStop(0,i),x.addColorStop(.52,t),x.addColorStop(1,"rgba(3, 30, 42, 0.82)"),y.save(),y.fillStyle=x,y.strokeStyle=i,y.lineWidth=1.5,y.beginPath(),y.arc(16,16,11,0,Math.PI*2),y.fill(),y.stroke(),y.beginPath(),y.moveTo(11,26),y.lineTo(16,38),y.lineTo(21,26),y.closePath(),y.fill(),y.stroke(),y.restore(),y.save(),y.translate(16,16),y.strokeStyle="#062130",y.fillStyle="#062130",y.lineWidth=2,y.lineCap="round",y.lineJoin="round",Ut(y,l),y.restore(),y.save(),y.translate(16,16),y.strokeStyle="rgba(255, 255, 255, 0.92)",y.fillStyle="rgba(255, 255, 255, 0.92)",y.lineWidth=1.25,y.lineCap="round",y.lineJoin="round",Ut(y,l),y.restore();const N=o.toDataURL("image/png");return lt.set(a,N),N}function Ut(e,t){if(t==="grass"){e.beginPath(),e.moveTo(-6,5),e.quadraticCurveTo(-4,-4,0,-8),e.moveTo(0,6),e.quadraticCurveTo(0,-5,5,-10),e.moveTo(5,5),e.quadraticCurveTo(4,-2,8,-6),e.stroke();return}if(t==="storage"){e.strokeRect(-7,-4,14,10),e.beginPath(),e.moveTo(-8,-4),e.lineTo(0,-9),e.lineTo(8,-4),e.moveTo(-3,6),e.lineTo(-3,1),e.lineTo(3,1),e.lineTo(3,6),e.stroke();return}if(t==="milk"){e.beginPath(),e.moveTo(0,-10),e.bezierCurveTo(7,-3,8,2,4,6),e.bezierCurveTo(1,9,-5,8,-7,4),e.bezierCurveTo(-9,0,-5,-5,0,-10),e.fill();return}if(t==="factory"){e.beginPath(),e.rect(-8,-1,15,8),e.rect(4,-8,4,15),e.moveTo(-8,-1),e.lineTo(-4,-5),e.lineTo(0,-1),e.lineTo(4,-5),e.lineTo(7,-1),e.stroke();return}if(t==="trade"){e.beginPath(),e.moveTo(-8,-4),e.lineTo(5,-4),e.lineTo(2,-7),e.moveTo(5,-4),e.lineTo(2,-1),e.moveTo(8,4),e.lineTo(-5,4),e.lineTo(-2,1),e.moveTo(-5,4),e.lineTo(-2,7),e.stroke();return}if(t==="service"){e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.moveTo(0,-4),e.lineTo(0,4),e.moveTo(-4,0),e.lineTo(4,0),e.stroke();return}if(t==="gene"){e.beginPath(),e.moveTo(-5,-9),e.bezierCurveTo(6,-5,6,4,-5,8),e.moveTo(5,-9),e.bezierCurveTo(-6,-5,-6,4,5,8),e.moveTo(-3,-4),e.lineTo(3,-4),e.moveTo(-3,2),e.lineTo(3,2),e.stroke();return}if(t==="breeding"){e.beginPath(),e.moveTo(-7,-5),e.quadraticCurveTo(-5,-10,-1,-6),e.moveTo(7,-5),e.quadraticCurveTo(5,-10,1,-6),typeof e.roundRect=="function"?e.roundRect(-7,-5,14,11,4):e.rect(-7,-5,14,11),e.moveTo(-3,1),e.lineTo(3,1),e.stroke();return}e.beginPath(),e.moveTo(-8,5),e.lineTo(-8,-3),e.lineTo(0,-9),e.lineTo(8,-3),e.lineTo(8,5),e.closePath(),e.moveTo(-3,5),e.lineTo(-3,0),e.lineTo(3,0),e.lineTo(3,5),e.stroke()}function vi(e,t){var i;return e!=null&&e.activeLegend?e.activeLegend:Array.isArray(e==null?void 0:e.activeLegends)&&e.activeLegends.length?e.activeLegends.find(l=>je(t,l))||e.activeLegends[0]:((e==null?void 0:e.legends)||[]).find(l=>je(t,l))||((i=e==null?void 0:e.legends)==null?void 0:i[0])}function Li(e,t){const i=Array.isArray(t==null?void 0:t.activeLegends)?t.activeLegends.filter(Boolean):[];if(i.length)return i.some(a=>je(e,a));const l=t==null?void 0:t.activeLegend;return l?je(e,l):!0}function je(e,t={}){return t.match?Yt(e,t.match):Array.isArray(t.matches)?t.matches.some(i=>Yt(e,i)):!0}function Yt(e,t={}){var i,l;return String((i=e==null?void 0:e[t.field])!=null?i:"")===String((l=t.value)!=null?l:"")}function Ai(){if(!s)return;U(Y);const e=window.Cesium,t={stroke:e.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:e.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};Oi(Tt.features||[]).forEach(i=>{var o;const l=ue(i.points);if(l.length<2)return;const a=s.entities.add({polyline:{positions:l,width:t.lineWidth,material:t.stroke,depthFailMaterial:t.stroke,clampToGround:!0,zIndex:7}});a.__hyBoundaryRole="township",a.__hyTownName=((o=i.townNames)==null?void 0:o[0])||"",Y.push(a)}),s.scene.requestRender()}function Oi(e=[]){const t=new Map;e.forEach(l=>{var f;const a=String(((f=l==null?void 0:l.properties)==null?void 0:f.name)||"").trim(),o=W(l==null?void 0:l.geometry);jt(o).forEach(d=>{const S=((d==null?void 0:d[0])||[]).map(q).filter(Boolean);for(let y=0;yCe(oe({},l),{townNames:Array.from(l.townNames)})).filter(l=>l.count>1&&l.townNames.length>1);return Di(i)}function jt(e){return e!=null&&e.coordinates?e.type==="Polygon"?[e.coordinates]:e.type==="MultiPolygon"?e.coordinates:[]:[]}function Bi(e,t){const i=Ie(e),l=Ie(t);return i{a.points.forEach(f=>{const d=Ie(f),S=t.get(d)||[];S.push(o),t.set(d,S)})});const i=new Set,l=[];return e.forEach((a,o)=>{if(i.has(o))return;i.add(o);const f=[a.points[0],a.points[1]];Zt(f,t,e,i,!0),Zt(f,t,e,i,!1),l.push({points:f,townNames:a.townNames})}),l}function Zt(e,t,i,l,a){for(;e.length;){const o=a?e[0]:e[e.length-1],f=Ie(o),d=(t.get(f)||[]).filter(v=>!l.has(v));if(d.length!==1)return;const S=d[0],y=i[S];l.add(S);const[x,N]=y.points,I=Ie(x)===f?N:x;a?e.unshift(I):e.push(I)}}function Hi(){if(!s||!u.length)return;U(he);const e=window.Cesium;Wi(e),u.forEach(t=>{const l=(Array.isArray(t==null?void 0:t[0])?t[0]:[]).map(q).filter(Boolean);if(l.length<3)return;const a=Fe(t);if(a){const d=s.entities.add({polygon:{hierarchy:a,material:e.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,perPositionHeight:!1,heightReference:e.HeightReference.CLAMP_TO_GROUND,classificationType:e.ClassificationType.BOTH}});he.push(d)}const o=s.entities.add({polyline:{positions:ue(l),width:4.8,material:new e.PolylineGlowMaterialProperty({glowPower:.16,color:e.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:e.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!0,zIndex:8}});o.__hyBoundaryRole="county-halo";const f=s.entities.add({polyline:{positions:ue(l),width:1.9,material:e.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:e.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!0,zIndex:9}});f.__hyBoundaryRole="county-outline",he.push(o,f)}),s.scene.requestRender()}function Wi(e){const t=Gi();let i=[];try{i=nt.difference([t],u)}catch(l){console.warn("[cesium-map] county outside mask failed",l),i=[t]}i.forEach(l=>{const a=Fe(l);if(!a)return;const o=s.entities.add({polygon:{hierarchy:a,material:e.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:e.HeightReference.CLAMP_TO_GROUND,classificationType:e.ClassificationType.BOTH,zIndex:1}});he.push(o)})}function Gi(){const e=V.west-jn,t=V.south-qn,i=V.east+jn,l=V.north+qn;return[[[e,t],[i,t],[i,l],[e,l],[e,t]]]}function zi(e,t=!1){const i=(Array.isArray(e)?e:[e]).map(Be=>String(Be||"").trim()).filter(Boolean).slice(0,2),l=`v15-centered-map-badge:${t?"h":"n"}:${i.join("|")}`;if(st.has(l))return st.get(l);const a=document.createElement("canvas"),o=a.getContext("2d");if(!o)return{image:"",width:1,height:1};const f=Math.min(4,Math.max(3,window.devicePixelRatio||2)),d="700 14px Microsoft YaHei, PingFang SC, sans-serif",S="700 9px Microsoft YaHei, PingFang SC, sans-serif",y="800 14px Microsoft YaHei, PingFang SC, sans-serif",x="600 9px Microsoft YaHei, PingFang SC, sans-serif",N=$i(i[1]);o.font=d;const I=Math.ceil(o.measureText(i[0]||"").width);let v=0;N&&(o.font=S,v+=Math.ceil(o.measureText(N.metric).width),o.font=y,v+=Math.ceil(o.measureText(N.value).width),o.font=x,v+=Math.ceil(o.measureText(N.unit).width),v+=N.metric?5:0,v+=N.unit?4:0);const L=Math.min(118,Math.max(N?96:62,I+20,v+20)),D=N?40:25,z=N?5:0,Q=6,le=L+Q*2,ne=D+z+Q*2;a.width=Math.ceil(le*f),a.height=Math.ceil(ne*f),a.style.width=`${le}px`,a.style.height=`${ne}px`,o.scale(f,f),o.clearRect(0,0,le,ne);const ae=Q,Z=Q,Ae=Z+D,Ee=o.createLinearGradient(ae,Z,ae,Ae);Ee.addColorStop(0,t?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),Ee.addColorStop(.55,t?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),Ee.addColorStop(1,t?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),o.save(),o.shadowColor="rgba(48, 220, 255, 0.13)",o.shadowBlur=6,o.fillStyle=Ee,Xt(o,ae,Z,L,D),o.fill(),o.restore(),o.save(),o.globalCompositeOperation="lighter";const Ne=o.createLinearGradient(ae,Z,ae+L,Z);Ne.addColorStop(0,"rgba(42, 210, 255, 0)"),Ne.addColorStop(.5,t?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),Ne.addColorStop(1,"rgba(42, 210, 255, 0)"),o.strokeStyle=Ne,o.lineWidth=1,o.beginPath(),o.moveTo(ae+10,Z+2),o.lineTo(ae+L-10,Z+2),o.stroke(),o.restore(),o.save(),o.strokeStyle=t?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",o.lineWidth=.9,Xt(o,ae+.5,Z+.5,L-1,D-1),o.stroke(),o.restore();const Oe=ae+L/2;z>0&&(o.save(),o.shadowColor="rgba(48, 220, 255, 0.2)",o.shadowBlur=5,o.beginPath(),o.moveTo(Oe-5,Ae-1),o.lineTo(Oe+5,Ae-1),o.lineTo(Oe,Ae+z),o.closePath(),o.fillStyle=t?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",o.fill(),o.strokeStyle=t?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",o.lineWidth=.8,o.stroke(),o.restore()),o.save(),o.textAlign="center",o.textBaseline="alphabetic",o.fillStyle="rgba(255, 255, 255, 0.98)",o.strokeStyle="rgba(0, 8, 14, 0.98)",o.lineJoin="round",o.shadowColor="rgba(0, 8, 14, 0.72)",o.shadowBlur=0,o.font=d,o.lineWidth=1.6;const _r=Z+(N?12.5:D/2);if(qe(o,i[0]||"",Oe,_r),N){const Be=Z+29.5;let De=Oe-v/2;o.textAlign="left",o.shadowBlur=0,o.font=S,o.lineWidth=1.2,o.fillStyle="rgba(126, 251, 246, 0.9)",N.metric&&(qe(o,N.metric,De,Be,{stroke:!1}),o.font=S,De+=Math.ceil(o.measureText(N.metric).width)+5),o.font=y,o.lineWidth=1.4,o.fillStyle="#FFFFFF",o.shadowColor="rgba(0, 8, 14, 0.72)",o.shadowBlur=0,qe(o,N.value,De,Be),o.shadowBlur=0,De+=Math.ceil(o.measureText(N.value).width)+(N.unit?4:0),N.unit&&(o.font=x,o.fillStyle="rgba(232, 252, 255, 0.76)",qe(o,N.unit,De,Be+1,{stroke:!1}))}o.restore();const En={image:a.toDataURL("image/png"),width:le,height:ne};return st.set(l,En),En}function qe(e,t,i,l,a={}){const o=e.measureText(t),f=Vi(e.font),d=Number(o.actualBoundingBoxAscent)||f*.74,S=Number(o.actualBoundingBoxDescent)||f*.18,y=l+(d-S)/2;a.stroke!==!1&&e.lineWidth>0&&e.strokeText(t,i,y),e.fillText(t,i,y)}function Vi(e){const t=String(e||"").match(/(\d+(?:\.\d+)?)px/);return t?Number(t[1]):14}function $i(e){const t=String(e||"").trim();if(!t)return null;const i=t.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(i)return{metric:i[1].trim(),value:i[2].trim(),unit:i[3].trim()};const l=t.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return l?{metric:l[1].trim(),value:l[2].trim(),unit:(l[3]||"").trim()}:{metric:"",value:t,unit:""}}function Xt(e,t,i,l,a){const o=Math.min(7,l*.12,a*.34);e.beginPath(),e.moveTo(t+o,i),e.lineTo(t+l-o,i),e.lineTo(t+l,i+o),e.lineTo(t+l,i+a-o),e.lineTo(t+l-o,i+a),e.lineTo(t+o,i+a),e.lineTo(t,i+a-o),e.lineTo(t,i+o),e.closePath()}function ht(){var f;if(!s)return;U(X);const e=window.Cesium,t=c.mapRanking||{},i=Array.isArray(t.rows)?t.rows:[],l=new Map(i.map(d=>[fe(d.name),d])),a=t.showTownNames!==!1&&t.hideTownNames!==!0,o=(f=t.hideTownLabelStats)!=null?f:c.hideTownLabelStats;a&&In.forEach(d=>{const S=l.get(fe(d.name)),y=[d.name];if(!o&&S&&t.showMapLabels!==!1){const L=t.metricLabel?`${t.metricLabel} `:"";y.push(`${L}${Sr(S.value)}${S.unit||t.unit||""}`)}const x=q(d.center);if(!x)return;const N=zi(y,!!S),I=!!(o||y.length===1),v=s.entities.add({position:e.Cartesian3.fromDegrees(x[0],x[1],18),billboard:{image:N.image,width:N.width,height:N.height,scale:1,verticalOrigin:I?e.VerticalOrigin.CENTER:e.VerticalOrigin.BOTTOM,horizontalOrigin:e.HorizontalOrigin.CENTER,pixelOffset:I?new e.Cartesian2(0,0):new e.Cartesian2(0,-4),heightReference:e.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new e.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new e.DistanceDisplayCondition(0,42e4)}});v.__hyTownName=d.name,v.__hyRankingRow=S||null,X.push(v)}),i.filter(d=>Te(d)).forEach(d=>{const S=Te(d),y=s.entities.add({position:e.Cartesian3.fromDegrees(S[0],S[1],16),point:{pixelSize:9,color:e.Color.fromCssColorString("#35F3FF"),outlineColor:e.Color.WHITE,outlineWidth:2,heightReference:e.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:t.showPointMarkers===!1?void 0:{text:String(d.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:e.Color.WHITE,outlineColor:e.Color.fromCssColorString("#03121e"),outlineWidth:3,style:e.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new e.Cartesian2(0,-18),heightReference:e.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});y.__hyTownName=d.name,y.__hyRankingRow=d,X.push(y)}),s.scene.requestRender()}function Ui(){if(!s)return;const e=window.Cesium;w=new e.ScreenSpaceEventHandler(s.scene.canvas),w.setInputAction(t=>ge(this,null,function*(){var N,I,v;const i=Yi(t.position),l=Jt(i),a=s.scene.pick(i),o=a==null?void 0:a.id,f=o!=null&&o.__hyFeature?o:null;if(f!=null&&f.__hyFeature){const L=qi(f)||null;Ze(f),g("feature-info",{feature:{id:f.__hyFeature.id,properties:f.__hyFeature.properties||{},feature:f.__hyFeature,geometry:f.__hyFeature.geometry||null,layer:f.__hyLayer,lngLat:L},screen:l});return}const d=ji(i);if(!d)return;const S=e.Cartographic.fromCartesian(d),y={lng:e.Math.toDegrees(S.longitude),lat:e.Math.toDegrees(S.latitude),height:S.height};if(B){er(y);return}const x=cr(y,l);if(x!=null&&x.__hyFeature){Ze(x),g("feature-info",{feature:{id:x.__hyFeature.id,properties:x.__hyFeature.properties||{},feature:x.__hyFeature,geometry:x.__hyFeature.geometry||null,layer:x.__hyLayer,lngLat:y},screen:l});return}if(!(c.enableTownPolygonPick&&(o!=null&&o.__hyTownName)&&mt(o.__hyTownName))){if(c.enableTownPolygonPick){const L=Ji(y);if(L&&mt((N=L.properties)==null?void 0:N.name))return}if(g("map-click",{lngLat:y,screen:l,overlayLayer:C.value[0]||null}),c.enableImageryFeaturePick&&O.length){g("feature-loading",!0);try{const L=s.camera.getPickRay(i),D=yield s.imageryLayers.pickImageryLayerFeatures(L,s.scene),z=D==null?void 0:D[0];if(z){const Q=O.find(Ee=>{var Ne;return Ee.imageryProvider===((Ne=z.imageryLayer)==null?void 0:Ne.imageryProvider)})||O[O.length-1],le=(Q==null?void 0:Q.__hyLayer)||C.value[0],ne=z.properties||((I=z.data)==null?void 0:I.properties)||z.data||{},Z=Ti(z,ne,le,y);nn(Z)||te(),g("feature-info",{feature:{id:Z.id||ne.id||ne.fid||z.name,properties:Z.properties||ne,feature:Z.feature||z,geometry:Z.geometry||((v=Z.feature)==null?void 0:v.geometry)||null,layer:le,lngLat:y},screen:l})}else te(),g("feature-info",{feature:null,screen:l})}catch(L){te(),g("feature-info",{feature:null,screen:l})}finally{g("feature-loading",!1)}return}te(),c.emitEmptyFeatureInfoOnMiss&&g("feature-info",{feature:null,screen:l})}}),e.ScreenSpaceEventType.LEFT_CLICK)}function Yi(e){var I,v,L,D;if(!e||!((I=s==null?void 0:s.scene)!=null&&I.canvas))return e;const t=window.Cesium,i=s.scene.canvas,l=(v=i.getBoundingClientRect)==null?void 0:v.call(i),a=Number(l==null?void 0:l.width)||0,o=Number(l==null?void 0:l.height)||0,f=Number(i.clientWidth||((L=p.value)==null?void 0:L.clientWidth))||a||1,d=Number(i.clientHeight||((D=p.value)==null?void 0:D.clientHeight))||o||1,S=Number(e.x),y=Number(e.y);if(!Number.isFinite(S)||!Number.isFinite(y)||!a||!o)return e;const x=f/a,N=d/o;return Math.abs(x-1)<.001&&Math.abs(N-1)<.001?e:new t.Cartesian2(S*x,y*N)}function Jt(e){var y,x,N,I;if(!e||!((y=s==null?void 0:s.scene)!=null&&y.canvas))return null;const t=s.scene.canvas,i=(x=t.getBoundingClientRect)==null?void 0:x.call(t),l=Number(i==null?void 0:i.width)||0,a=Number(i==null?void 0:i.height)||0,o=Number(t.clientWidth||((N=p.value)==null?void 0:N.clientWidth))||l||1,f=Number(t.clientHeight||((I=p.value)==null?void 0:I.clientHeight))||a||1,d=Number(e.x),S=Number(e.y);return!Number.isFinite(d)||!Number.isFinite(S)||!i?null:{x:(Number(i.left)||0)+d*(l/o),y:(Number(i.top)||0)+S*(a/f)}}function ji(e){if(!s)return null;const t=s.camera.getPickRay(e);return t?s.scene.globe.pick(t,s.scene):null}function qi(e){var a,o,f;if(!s||!e)return null;const t=window.Cesium,i=(o=(a=e.position)==null?void 0:a.getValue)==null?void 0:o.call(a,t.JulianDate.now());if(i){const d=t.Cartographic.fromCartesian(i);return{lng:t.Math.toDegrees(d.longitude),lat:t.Math.toDegrees(d.latitude),height:d.height}}const l=Nn(W((f=e.__hyFeature)==null?void 0:f.geometry));return l?{lng:l[0],lat:l[1],height:0}:null}function Ze(e){var t,i,l,a,o;te(),F=e,e.point&&(e.__hyOriginalPointSize=e.point.pixelSize,e.point.pixelSize=18),e.billboard&&(e.__hyOriginalBillboardScale=e.billboard.scale,e.billboard.scale=1.18),(t=e.__hyFeature)!=null&&t.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(e.__hyFeature.geometry.type)&&Xe(e.__hyFeature,{townName:e.__hyTownName||((l=(i=e.__hyFeature)==null?void 0:i.properties)==null?void 0:l.name),mode:"feature"}),(o=(a=s==null?void 0:s.scene)==null?void 0:a.requestRender)==null||o.call(a)}function te(){var e,t;F!=null&&F.point&&F.__hyOriginalPointSize&&(F.point.pixelSize=F.__hyOriginalPointSize),F!=null&&F.billboard&&F.__hyOriginalBillboardScale&&(F.billboard.scale=F.__hyOriginalBillboardScale),F=null,U(J),Kt(),(t=(e=s==null?void 0:s.scene)==null?void 0:e.requestRender)==null||t.call(e)}function Xe(e,t={}){var N,I,v,L;if(!s||!(e!=null&&e.geometry))return[];const i=Zi({append:t.append===!0});if(!i)return[];const l=window.Cesium,a=t.mode==="town",o=t.highlightTone==="white"||t.mode==="white",f=t.highlightTone==="v21",d=a?"#30DCFF":o?"#FFFFFF":f?"#FFD166":"#FF2D2D",S=a?"#F2FFFF":o?"#FFFFFF":f?"#FFF1B8":"#FF2D2D",y={fill:l.Color.fromCssColorString(d).withAlpha((N=t.fillAlpha)!=null?N:a?.16:o?.035:f?.2:.16),stroke:l.Color.fromCssColorString(S).withAlpha((I=t.strokeAlpha)!=null?I:o?.9:.98),lineWidth:(v=t.lineWidth)!=null?v:a?4.2:o?3.8:f?4.4:5.2,pointSize:a?0:(L=t.pointSize)!=null?L:14},x=en(e.geometry,e,i.entities,y);return x.forEach(D=>{var z;D.__hyFeature=null,D.__hyLayer=null,D.__hyTownName=t.townName||((z=e.properties)==null?void 0:z.name)||"",D.__hySelectedOverlay=!0}),J.push(...x),Qt(i),x}function Zi(e={}){return!s||!window.Cesium?null:(e.append&&G||(Kt(),G=new window.Cesium.CustomDataSource("selected-feature-overlay"),s.dataSources.add(G),Qt(G)),G)}function Kt(){var t,i;if(!(s!=null&&s.dataSources)){G=null;return}Array.from(new Set([G,...((i=(t=s.dataSources).getByName)==null?void 0:i.call(t,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(l=>{try{s.dataSources.remove(l,!0)}catch(a){console.warn("[cesium-map] remove selected overlay failed",a)}}),G=null,J=[]}function Qt(e){var t,i;if(!(!(s!=null&&s.dataSources)||!e))try{if(s.dataSources.raiseToTop){s.dataSources.raiseToTop(e);return}for(;((i=(t=s.dataSources).indexOf)==null?void 0:i.call(t,e)){const S=i.add(d);return S.__hyFeature=t,o.push(S),S};if(e.type==="Point"){const d=q(e.coordinates);return!d||l.pointSize<=0||f({position:a.Cartesian3.fromDegrees(d[0],d[1]),point:{show:!0,color:l.fill,pixelSize:l.pointSize,outlineColor:l.stroke,outlineWidth:3,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),o}return e.type==="MultiPoint"?(e.coordinates.forEach(d=>{o.push(...en({type:"Point",coordinates:d},t,i,l))}),o):e.type==="LineString"?(ft(e.coordinates,t,i,l,o),o):e.type==="MultiLineString"?(e.coordinates.forEach(d=>{ft(d,t,i,l,o)}),o):e.type==="Polygon"?(tn(e.coordinates,t,i,l,o),o):(e.type==="MultiPolygon"&&e.coordinates.forEach(d=>{tn(d,t,i,l,o)}),o)}function tn(e,t,i,l,a){const o=window.Cesium,f=Fe(e);if(!f)return;const d=i.add({polygon:{hierarchy:f,height:0,heightReference:o.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:l.fill,outline:!1,classificationType:o.ClassificationType.BOTH,zIndex:999}});d.__hyFeature=t,a.push(d),e.forEach(S=>ft(S,t,i,l,a))}function ft(e,t,i,l,a){const o=window.Cesium,f=ue(e);if(f.length<2)return;const d=i.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,heightReference:o.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:o.ClassificationType.BOTH,zIndex:1e3}});d.__hyFeature=t,a.push(d)}function nn(e,t={}){var o,f,d,S,y;if(!s||!e)return!1;const i=e.properties||((o=e.feature)==null?void 0:o.properties)||(typeof e=="object"?e:{}),l=W(e.geometry||((f=e.feature)==null?void 0:f.geometry)||i.geometry||i.geom||i.wkt||e);if(!l)return!1;te();const a={type:"Feature",id:e.id||((d=e.feature)==null?void 0:d.id)||i.id,properties:i,geometry:l};return Xe(a,oe({mode:"feature"},t)),(y=(S=s==null?void 0:s.scene)==null?void 0:S.requestRender)==null||y.call(S),J.length>0}function Xi(e){const t=fe(e);return t&&(Tt.features||[]).find(i=>{var l;return fe((l=i==null?void 0:i.properties)==null?void 0:l.name)===t})||null}function gt(){var e,t;return((e=c.mapRanking)==null?void 0:e.scope)==="town"&&Array.isArray((t=c.mapRanking)==null?void 0:t.rows)&&c.mapRanking.rows.length>0}function rn(e){var i;if(!gt())return!1;const t=fe(e);return(((i=c.mapRanking)==null?void 0:i.rows)||[]).some(l=>fe(l.name)===t)}function Ji(e){return gt()&&(Tt.features||[]).find(t=>{var l;const i=(l=t==null?void 0:t.properties)==null?void 0:l.name;return rn(i)&&yn(e,W(t==null?void 0:t.geometry))})||null}function mt(e,t={}){var l,a,o,f;if(!gt()||!rn(e))return!1;const i=Xi(e);return i?(te(),Xe(i,{mode:"town",townName:((l=i.properties)==null?void 0:l.name)||e}),t.emitFeatureInfo!==!1&&g("feature-info",{feature:null}),t.emitStatus!==!1&&g("layer-status",{type:"success",text:`已选中${((a=i.properties)==null?void 0:a.name)||e}`}),(f=(o=s==null?void 0:s.scene)==null?void 0:o.requestRender)==null||f.call(o),!0):!1}function on(e,t={}){const i=In.find(a=>fe(a.name)===fe(e)),l=q(i==null?void 0:i.center);return l?(t.select&&mt(e,{emitFeatureInfo:!1,emitStatus:!1}),gn(l,42e3),{screen:_e(l)}):null}function sn(e={}){var f,d;const t=fr(e),i=ur(S=>gr(S,t));if(!i.length)return null;const l=mr(i),a=pr(l);te(),F=i[0],F!=null&&F.point&&(F.__hyOriginalPointSize=F.point.pixelSize,F.point.pixelSize=18),F!=null&&F.billboard&&(F.__hyOriginalBillboardScale=F.billboard.scale,F.billboard.scale=1.18),a.forEach((S,y)=>{Xe(S,{mode:"feature",highlightTone:t.highlightTone,append:y>0})});const o=_t(l);return o?ke(o,.9):s.flyTo(i[0],{duration:.9,offset:Re(18e3)}),(d=(f=s==null?void 0:s.scene)==null?void 0:f.requestRender)==null||d.call(f),{entity:i[0],entities:i,feature:l[0]||i[0].__hyFeature,features:l,highlightFeatures:a,screen:Je(a.length?a:l)}}function ln(e={}){const t=Te(e);let i=yt(l=>Ke(l,e));return i?(Ze(i),s.flyTo(i,{duration:.9,offset:Re(16e3)})):t&&gn(t,16e3),{feature:(i==null?void 0:i.__hyFeature)||null,screen:pt(e)}}function an(e={}){const t=yt(i=>Ke(i,e));return t?(Ze(t),s.flyTo(t,{duration:.9,offset:Re(18e3)}),{feature:t.__hyFeature,screen:Me(t.__hyFeature)}):null}function Me(e){var i;const t=Nn(W((e==null?void 0:e.geometry)||((i=e==null?void 0:e.feature)==null?void 0:i.geometry)));return t?_e(t):null}function un(e){return Je([e])||Me(e)}function Je(e=[]){const t=[];if((Array.isArray(e)?e:[e]).forEach(a=>{var S,y;const o=(a==null?void 0:a.properties)||((S=a==null?void 0:a.feature)==null?void 0:S.properties)||{},f=W((a==null?void 0:a.geometry)||((y=a==null?void 0:a.feature)==null?void 0:y.geometry)||o.geometry||o.geom||o.wkt||o.geo||o.the_geom||o.geometryWkt||o.geometry_wkt||o.shape);if(!f){const x=Me(a);x&&t.push(x);return}const d=[];ve(f.coordinates,d),t.push(...d.map(_e).filter(Boolean))}),!t.length)return null;const i=t.map(a=>Number(a.x)).filter(Number.isFinite),l=t.map(a=>Number(a.y)).filter(Number.isFinite);return!i.length||!l.length?null:{x:(Math.min(...i)+Math.max(...i))/2,y:Math.min(...l)}}function pt(e={}){var a,o;const t=Te(e);if(t)return _e(t);const i=yt(f=>Ke(f,e)),l=(o=(a=i==null?void 0:i.position)==null?void 0:a.getValue)==null?void 0:o.call(a,window.Cesium.JulianDate.now());return l?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(s.scene,l)):null}function cn(e={}){var f,d;hn();const t=dr(e.grasslands||e),i=e.highlightTone==="white",l=i?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},a=i?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};e.locateOnly||(t.forEach(S=>{l&&Se(S,{key:"pasture-focus-glow",name:e.name||"牧场高亮"},$,l),Se(S,{key:"pasture-focus",name:e.name||"牧场高亮"},$,a)}),(Array.isArray(e.yakMarks)?e.yakMarks:[]).forEach((S,y)=>{const x=Te(S);x&&Se({type:"Feature",id:S.id||y,properties:oe({},S),geometry:{type:"Point",coordinates:x}},{key:"pasture-focus-yak",name:"牦牛识别"},$,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const o=_t(t);return o&&ke(o,.9),(d=(f=s==null?void 0:s.scene)==null?void 0:f.requestRender)==null||d.call(f),!!t.length}function hn(){var e,t;U($),(t=(e=s==null?void 0:s.scene)==null?void 0:e.requestRender)==null||t.call(e)}function Ki(){te()}function Qi(e){B=!!e,B||(R=[]),dt(),g("draw-boundary",{status:B?"drawing":"clear",pointCount:R.length,points:R})}function er(e){R.push([e.lng,e.lat]),dt(),g("draw-boundary",{status:"drawing",pointCount:R.length,points:R})}function tr(){R.pop(),dt(),g("draw-boundary",{status:"drawing",pointCount:R.length,points:R})}function nr(){if(R.length<3)return null;const e=At(),t=[...R,R[0]],i={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[t]}};return B=!1,R=[],U(j),Se(i,{key:"analysis-boundary",name:"分析边界"},j,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),g("draw-boundary",{status:"complete",pointCount:0,points:[],feature:i}),$e(e),Ot(e),i}function ir(){var e,t;B=!1,R=[],U(j),U(re),g("draw-boundary",{status:"clear",pointCount:0,points:[]}),(t=(e=s==null?void 0:s.scene)==null?void 0:e.requestRender)==null||t.call(e)}function dt(){if(!s)return;const e=window.Cesium;U(j),R.forEach(t=>{j.push(s.entities.add({position:e.Cartesian3.fromDegrees(t[0],t[1],12),point:{pixelSize:10,color:e.Color.fromCssColorString("#24F6C4"),outlineColor:e.Color.WHITE,outlineWidth:2,heightReference:e.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),R.length>1&&j.push(s.entities.add({polyline:{positions:ue(R),width:3,material:e.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),s.scene.requestRender()}function rr(e={}){var a,o,f,d,S,y,x;const t=((a=e.boundary)==null?void 0:a.type)==="Feature"||(o=e.boundary)!=null&&o.geometry?e.boundary:null,i=e.preserveView===!0||((f=t==null?void 0:t.properties)==null?void 0:f.source)==="drawn",l=i?At():null;if(i&&((S=(d=s==null?void 0:s.camera)==null?void 0:d.cancelFlight)==null||S.call(d)),U(re),t&&Se(t,{key:"analysis-result-boundary"},re,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(e.matches)?e.matches:[]).forEach(N=>{const I=(N==null?void 0:N.type)==="Feature"?N:(N==null?void 0:N.feature)||null;I&&Se(I,{key:"analysis-result-feature"},re,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),i)$e(l),Ot(l);else{const N=[t,...e.matches||[]].filter(Boolean),I=_t(N);I&&ke(I,.9)}(x=(y=s==null?void 0:s.scene)==null?void 0:y.requestRender)==null||x.call(y)}function or(e={}){if(!s||!window.Cesium)return 0;const t=Array.isArray(e.features)?e.features:[];if(!t.length)return 0;const i=window.Cesium,l=String(e.key||"engineering-suitability"),a={key:`engineering-suitability-${l}`,name:e.name||"工程适宜实施区域",sourceType:"analysis"},o=ct(i,e.color||"#FFD43B",.52),f=[];if(ar(t),t.forEach(y=>{const x=W(y==null?void 0:y.geometry);((x==null?void 0:x.type)==="Polygon"?[x.coordinates]:(x==null?void 0:x.type)==="MultiPolygon"?x.coordinates:[]).forEach((I,v)=>{var D,z;const L=Fe(I);if(L)try{const Q=Ce(oe({},y),{id:y.id||`${l}-${f.length}`,properties:Ce(oe({},y.properties||{}),{engineering_type:((D=y.properties)==null?void 0:D.engineering_type)||l,engineering_name:((z=y.properties)==null?void 0:z.engineering_name)||e.name})});f.push(new i.GeometryInstance({id:{__hyFeature:Q,__hyLayer:a,__hyEngineeringType:l,__hyPolygonIndex:v},geometry:new i.PolygonGeometry({polygonHierarchy:L,vertexFormat:i.PerInstanceColorAppearance.VERTEX_FORMAT}),attributes:{color:i.ColorGeometryInstanceAttribute.fromColor(o)}}))}catch(Q){console.warn("[cesium-map] engineering suitability geometry skipped",y==null?void 0:y.id,Q)}})}),!f.length)return 0;const d=s.scene.primitives.add(new i.GroundPrimitive({geometryInstances:f,appearance:new i.PerInstanceColorAppearance({translucent:!0,closed:!0,flat:!0}),classificationType:i.ClassificationType.TERRAIN,allowPicking:!0,asynchronous:!0,releaseGeometryInstances:!0}));d.__hyEngineeringType=l,d.show=!0;const S=be.get(l)||[];return S.push(d),be.set(l,S),s.scene.requestRender(),f.length}function sr(e,t){var l,a;(be.get(String(e||""))||[]).forEach(o=>{o.show=t!==!1}),(a=(l=s==null?void 0:s.scene)==null?void 0:l.requestRender)==null||a.call(l)}function lr(){var e,t;we&&ke(we,.8),(t=(e=s==null?void 0:s.scene)==null?void 0:e.requestRender)==null||t.call(e)}function fn(){var e,t;te(),be.forEach(i=>{i.forEach(l=>{var a,o,f;return(f=(o=(a=s==null?void 0:s.scene)==null?void 0:a.primitives)==null?void 0:o.remove)==null?void 0:f.call(o,l)})}),be.clear(),we=null,(t=(e=s==null?void 0:s.scene)==null?void 0:e.requestRender)==null||t.call(e)}function ar(e=[]){const t=we||{west:1/0,south:1/0,east:-1/0,north:-1/0};e.forEach(i=>{const l=W(i==null?void 0:i.geometry);if(!l)return;const a=[];ve(l.coordinates,a),a.forEach(o=>{t.west=Math.min(t.west,Number(o[0])),t.south=Math.min(t.south,Number(o[1])),t.east=Math.max(t.east,Number(o[0])),t.north=Math.max(t.north,Number(o[1]))})}),[t.west,t.south,t.east,t.north].every(Number.isFinite)&&(we=t)}function gn(e,t=22e3,i=.9){if(!s||!e)return;const l=window.Cesium,a=l.Cartesian3.fromDegrees(e[0],e[1],at());s.camera.flyToBoundingSphere(new l.BoundingSphere(a,1),{offset:Re(t),duration:i})}function ke(e,t=.9){if(!s||!e)return;const i=window.Cesium,l=[(Number(e.west)+Number(e.east))/2,(Number(e.south)+Number(e.north))/2];if(!l.every(Number.isFinite))return;const a=Math.max(Math.abs(Number(e.east)-Number(e.west)),Math.abs(Number(e.north)-Number(e.south))),o=Math.max(18e3,Math.min(16e4,a*135e3)),f=i.Cartesian3.fromDegrees(l[0],l[1],at());s.camera.flyToBoundingSphere(new i.BoundingSphere(f,1),{offset:Re(o),duration:t})}function mn(e){if(!s||!e)return;const t=e.mapView||(e.cameraPosition?{cameraPosition:e.cameraPosition}:null);if(!t)return;const i=window.Cesium,l=Number.isFinite(Number(t.duration))?Number(t.duration):.9,a=q(t.targetLngLat);if(a){const o=Dt(c.initialZoom),f=Number.isFinite(Number(t.distanceScale))?Number(t.distanceScale):1,d=Math.max(18e3,Math.min(56e4,o*f)),S=Number.isFinite(Number(t.targetHeight))?Number(t.targetHeight):at(),y=Number.isFinite(Number(t.heading))?Number(t.heading):Un,x=Number.isFinite(Number(t.pitch))?Number(t.pitch):Yn,N=i.Cartesian3.fromDegrees(a[0],a[1],S);s.camera.flyToBoundingSphere(new i.BoundingSphere(N,1),{offset:new i.HeadingPitchRange(i.Math.toRadians(y),i.Math.toRadians(x),d),duration:l});return}t.bounds&&ke(t.bounds,l)}function Re(e){const t=window.Cesium;return new t.HeadingPitchRange(t.Math.toRadians(Un),t.Math.toRadians(Yn),e)}function _e(e){if(!s||!e)return null;const t=window.Cesium,i=t.Cartesian3.fromDegrees(e[0],e[1],16);return Jt(t.SceneTransforms.wgs84ToWindowCoordinates(s.scene,i))}function yt(e){return[...H,...$].find(t=>t.__hyFeature&&e(t.__hyFeature))||null}function ur(e){return[...H,...$].filter(t=>t.__hyFeature&&e(t.__hyFeature))}function cr(e,t){if(!Number.isFinite(e==null?void 0:e.lng)||!Number.isFinite(e==null?void 0:e.lat))return null;const i=pn(H),l=i.map(o=>{var f;return{entity:o,geometry:W((f=o.__hyFeature)==null?void 0:f.geometry)}}).filter(o=>o.geometry&&yn(e,o.geometry)).sort((o,f)=>bn(o.geometry)-bn(f.geometry));if(l.length)return l[0].entity;const a=i.map(o=>{var f;return{entity:o,distance:yr(W((f=o.__hyFeature)==null?void 0:f.geometry),t),tolerance:hr(o)}}).filter(o=>Number.isFinite(o.distance)).sort((o,f)=>o.distance-f.distance)[0];return(a==null?void 0:a.distance)<=((a==null?void 0:a.tolerance)||18)?a.entity:null}function hr(e){var i,l,a;const t=(l=W((i=e==null?void 0:e.__hyFeature)==null?void 0:i.geometry))==null?void 0:l.type;return["Point","MultiPoint"].includes(t)?((a=e==null?void 0:e.__hyLayer)==null?void 0:a.key)==="yak-industry-points"?36:28:18}function Ke(e,t={}){const i=(e==null?void 0:e.properties)||{},l=[t.id,t.key,t.featureId,t.projectId].filter(y=>y!=null&&y!=="").map(String),a=[e.id,i.id,i.key,i.feature_id,i.project_id].filter(y=>y!=null&&y!=="").map(String);if(l.some(y=>a.includes(y)))return!0;const o=[t.name,t.fullName,t.projectName].filter(Boolean).map(String),f=[i.name,i.fullName,i.project_name,i.projectName].filter(Boolean).map(String);if(o.some(y=>f.includes(y)))return!0;const d=Te(t),S=Te(Ce(oe({},i),{geometry:e.geometry}));return!!(d&&S&&Math.abs(d[0]-S[0])<2e-5&&Math.abs(d[1]-S[1])<2e-5)}function fr(e={}){return e&&typeof e=="object"?e:{name:e,projectName:e,project_name:e}}function gr(e,t={}){if(Ke(e,t))return!0;const i=(e==null?void 0:e.properties)||{},l=Qe([t.id,t.key,t.featureId,t.projectId,t.project_id]),a=Qe([e==null?void 0:e.id,i.id,i.key,i.feature_id,i.project_id,i.gid]);if(l.some(d=>a.includes(d)))return!0;const o=Qe([t.name,t.fullName,t.projectName,t.project_name,t.title]),f=Qe([i.name,i.fullName,i.project_name,i.projectName,i.title]);return o.some(d=>f.includes(d))}function Qe(e=[]){const t=[];return e.forEach(i=>{if(i==null||i==="")return;const l=String(i).trim();if(!l)return;t.push(l);const a=l.replace(/\s+/g,"");a&&a!==l&&t.push(a)}),Array.from(new Set(t))}function pn(e=[]){const t=new Set;return e.filter(i=>{const l=i==null?void 0:i.__hyFeature;return!l||t.has(l)?!1:(t.add(l),!0)})}function mr(e=[]){return pn(e).map(t=>t.__hyFeature).filter(Boolean)}function pr(e=[]){const t=e.filter(l=>{var o;const a=String(((o=W(l==null?void 0:l.geometry))==null?void 0:o.type)||"");return a.includes("Polygon")||a.includes("LineString")}),i=t.filter(l=>{var a;return((a=l==null?void 0:l.properties)==null?void 0:a.feature_role)==="工程范围"});return i.length?i:t}function dr(e){return(Array.isArray(e)?e:(e==null?void 0:e.grasslands)||(e==null?void 0:e.features)||(e==null?void 0:e.rows)||(e==null?void 0:e.list)||(e?[e]:[])).map((i,l)=>{var o,f;if((i==null?void 0:i.type)==="Feature")return i;const a=W(i==null?void 0:i.geometry)||bt(Gt(i));return a?{type:"Feature",id:(f=(o=i==null?void 0:i.id)!=null?o:i==null?void 0:i.grasslandId)!=null?f:l,properties:oe({},i),geometry:a}:null}).filter(Boolean)}function W(e){if(!e)return null;if(e.type==="Feature")return W(e.geometry);if(e.type&&Array.isArray(e.coordinates))return e;if(typeof e=="string"){const t=e.trim();if(!t)return null;if(t.startsWith("{")||t.startsWith("["))try{return W(JSON.parse(t))}catch(i){return null}return bt(t)}return null}function bt(e){const i=String(e||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!i)return null;const l=i[1].toUpperCase(),a=i[2];return l==="POINT"?{type:"Point",coordinates:wt(a)}:l==="MULTIPOINT"?{type:"MultiPoint",coordinates:et(a).map(wt).filter(Boolean)}:l==="LINESTRING"?{type:"LineString",coordinates:St(a)}:l==="MULTILINESTRING"?{type:"MultiLineString",coordinates:et(a).map(St).filter(o=>o.length)}:l==="POLYGON"?{type:"Polygon",coordinates:dn(a)}:l==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:et(a).map(dn).filter(o=>o.length)}:null}function wt(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length===2&&t.every(Number.isFinite)?t:null}function St(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(wt).filter(Boolean)}function dn(e){return et(e).map(St).filter(t=>t.length>=3)}function et(e){const t=String(e||"").trim(),i=t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1):t,l=[];let a=0,o=-1;return Array.from(i).forEach((f,d)=>{f==="("?(a===0&&(o=d),a+=1):f===")"&&(a-=1,a===0&&o>=0&&(l.push(i.slice(o,d+1)),o=-1))}),l.length?l:[i]}function ue(e=[],t=8){const i=window.Cesium;return e.map(q).filter(Boolean).map(l=>i.Cartesian3.fromDegrees(l[0],l[1],t))}function q(e){if(!Array.isArray(e)||e.length<2)return null;const t=Number(e[0]),i=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(i)?[t,i]:null}function Te(e={}){const t=W(e.geometry);return(t==null?void 0:t.type)==="Point"?q(t.coordinates):[[e.longitude,e.latitude],[e.lng,e.lat],[e.lon,e.lat],[e.x,e.y],e.point,e.center,e.centroid,e.coordinates].map(q).find(Boolean)||null}function yn(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Tn(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(i=>Tn(e,i)):!1}function bn(e){return e!=null&&e.coordinates?e.type==="Polygon"?wn(e.coordinates):e.type==="MultiPolygon"?e.coordinates.reduce((t,i)=>t+wn(i),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function wn(e=[]){const t=e[0]||[];if(t.length<3)return Number.POSITIVE_INFINITY;let i=0;for(let l=0;lSn(i,t))):e.type==="LineString"?_n(e.coordinates,t):e.type==="MultiLineString"?Math.min(...e.coordinates.map(i=>_n(i,t))):Number.POSITIVE_INFINITY}function Sn(e,t){const i=_e(q(e));return i?Math.hypot(Number(i.x)-Number(t.x),Number(i.y)-Number(t.y)):Number.POSITIVE_INFINITY}function _n(e=[],t){if(!Array.isArray(e)||e.length<2)return Number.POSITIVE_INFINITY;let i=Number.POSITIVE_INFINITY;for(let l=1;lxn(e,i))}function xn(e,t=[]){if(t.length<3)return!1;const i=Number(e.lng),l=Number(e.lat);if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=!1;for(let o=0,f=t.length-1;ol!=I>l&&i<(N-y)*(l-x)/(I-x)+y&&(a=!a)}return a}function wr(e,t,i,l,a,o){const f=(e-i)*(o-l)-(t-l)*(a-i);return Math.abs(f)>1e-10?!1:(e-i)*(e-a)+(t-l)*(t-o)<=1e-10}function Nn(e){if(!e)return null;if(e.type==="Point")return q(e.coordinates);const t=[];return ve(e.coordinates,t),t.length?[t.reduce((i,l)=>i+l[0],0)/t.length,t.reduce((i,l)=>i+l[1],0)/t.length]:null}function ve(e,t){const i=q(e);if(i&&!Array.isArray(e[0])){t.push(i);return}Array.isArray(e)&&e.forEach(l=>ve(l,t))}function _t(e=[]){const t=[];if(e.forEach(f=>{var S;const d=W((f==null?void 0:f.geometry)||((S=f==null?void 0:f.feature)==null?void 0:S.geometry)||f);d&&ve(d.coordinates,t)}),!t.length)return null;const i=t.map(f=>f[0]),l=t.map(f=>f[1]),a=Math.max(.006,(Math.max(...i)-Math.min(...i))*.18),o=Math.max(.006,(Math.max(...l)-Math.min(...l))*.18);return{west:Math.max(V.west,Math.min(...i)-a),south:Math.max(V.south,Math.min(...l)-o),east:Math.min(V.east,Math.max(...i)+a),north:Math.min(V.north,Math.max(...l)+o)}}function U(e){if(!s){e.length=0;return}e.splice(0).forEach(t=>s.entities.remove(t))}function Cn(){O.splice(0).forEach(e=>{var t,i;return(i=(t=s==null?void 0:s.imageryLayers)==null?void 0:t.remove)==null?void 0:i.call(t,e,!0)}),U(H),te()}function Le(){var e,t,i;M+=1,(e=T==null?void 0:T.disconnect)==null||e.call(T),T=null,P==null||P(),P=null,E==null||E(),E=null,(t=w==null?void 0:w.destroy)==null||t.call(w),w=null,Cn(),U(Xn),U(he),U(Y),U(X),U($),U(j),U(re),fn(),s&&!((i=s.isDestroyed)!=null&&i.call(s))&&s.destroy(),s=null,A=null,_.value=null,b.value&&b.value.replaceChildren()}function xe(e,t=1){const i=Number(e);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):t}function fe(e){return String(e||"").trim().replace(/(镇|乡)$/,"")}function Sr(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?String(t):String(Number(t.toFixed(2))):"--"}return n({loadMap:ri,hasMap:oi,play:si,resume:Lt,pause:li,refreshView:Ve,resetView:ai,focusLayerMapView:ui,destroyMap:Le,highlightFeature:nn,clearSelectedFeature:te,clearFloatingOverlays:Ki,focusProject:sn,focusPasture:cn,clearPastureFocus:hn,focusTown:on,focusYakIndustryPoint:ln,focusVectorFeature:an,getVectorFeatureAnchorScreen:un,getVectorFeaturesAnchorScreen:Je,getVectorFeatureScreen:Me,getYakIndustryPointScreen:pt,setBoundaryDrawing:Qi,finishBoundaryDrawing:nr,undoBoundaryPoint:tr,clearAnalysisBoundary:ir,showAnalysisResult:rr,addEngineeringSuitabilityBatch:or,setEngineeringSuitabilityVisibility:sr,completeEngineeringSuitability:lr,clearEngineeringSuitability:fn,canvasMap:_}),(e,t)=>(Lr(),Ar("div",{ref_key:"containerRef",ref:p,class:"cesium-map"},[Or("div",{ref_key:"viewerRef",ref:b,class:"cesium-map__viewer"},null,512)],512))}},Fo=Mr(_o,[["__scopeId","data-v-b391bc11"]]);export{Po as C,Eo as H,Fo as M,ho as a,fo as g}; diff --git a/docs/assets/index-c9a77e56-balabala-1785726778446.css b/docs/assets/index-1c6e8e82-balabala-1785858872961.css similarity index 97% rename from docs/assets/index-c9a77e56-balabala-1785726778446.css rename to docs/assets/index-1c6e8e82-balabala-1785858872961.css index e6d4fd9..6c616bf 100644 --- a/docs/assets/index-c9a77e56-balabala-1785726778446.css +++ b/docs/assets/index-1c6e8e82-balabala-1785858872961.css @@ -1 +1 @@ -.login-screen[data-v-b11615f4]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(3,15,32,.18),rgba(1,7,18,.72)),url(./bg-3acb94e3-balabala-1785726778446.png) center/cover no-repeat,#030f21;color:#fff}.login-screen[data-v-b11615f4]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 28% 47%,rgba(48,220,255,.17),transparent 28%),linear-gradient(90deg,rgba(0,4,13,.28),transparent 45%,rgba(0,4,13,.48))}.login-screen[data-v-b11615f4]:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.64),transparent)}.login-shell[data-v-b11615f4]{position:relative;z-index:1;width:min(1000px,100vw - 64px);min-height:530px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);overflow:hidden;border:1px solid rgba(91,224,244,.38);border-radius:4px;background:rgba(3,20,34,.66);box-shadow:0 28px 90px #00040e7a,inset 0 0 0 1px #7efbf60a;backdrop-filter:blur(14px);box-sizing:border-box}.login-shell[data-v-b11615f4]:before,.login-shell[data-v-b11615f4]:after{content:"";position:absolute;z-index:2;width:84px;height:2px;background:#30dcff;box-shadow:0 0 14px #30dcff8f}.login-shell[data-v-b11615f4]:before{top:-1px;left:-1px}.login-shell[data-v-b11615f4]:after{right:-1px;bottom:-1px}.login-brand[data-v-b11615f4]{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;overflow:hidden;padding:66px 64px;border-right:1px solid rgba(91,224,244,.16);background:linear-gradient(130deg,rgba(48,220,255,.08),transparent 48%),rgba(3,25,41,.36);box-sizing:border-box}.login-brand h1[data-v-b11615f4]{position:relative;z-index:1;margin:24px 0 0;color:#f4fdff;font-size:48px;font-weight:750;line-height:1.34;letter-spacing:2px;text-shadow:0 0 24px rgba(48,220,255,.28)}.login-brand-rule[data-v-b11615f4]{position:relative;z-index:1;display:grid;grid-template-columns:5px minmax(0,150px) 5px;align-items:center;gap:7px}.login-brand-rule i[data-v-b11615f4]{width:5px;height:5px;border:1px solid #7efbf6;transform:rotate(45deg)}.login-brand-rule span[data-v-b11615f4]{height:1px;background:linear-gradient(90deg,#30dcff,rgba(48,220,255,.08))}.login-brand-glow[data-v-b11615f4]{position:absolute;right:24px;bottom:34px;width:190px;height:190px;border:1px solid rgba(48,220,255,.13);border-radius:50%;box-shadow:inset 0 0 52px #30dcff0d,0 0 50px #30dcff0a}.login-brand-glow[data-v-b11615f4]:before{content:"";position:absolute;top:28px;right:28px;bottom:28px;left:28px;border:1px solid rgba(126,251,246,.1);border-radius:50%}.login-panel[data-v-b11615f4]{align-self:center;width:100%;padding:54px 54px 50px;box-sizing:border-box}.login-panel-head[data-v-b11615f4]{margin-bottom:38px}.login-panel-title[data-v-b11615f4]{color:#fff;font-size:28px;font-weight:750;line-height:38px;letter-spacing:1px}.login-panel-head>span[data-v-b11615f4]{display:block;width:42px;height:2px;margin-top:10px;background:linear-gradient(90deg,#30dcff,rgba(48,220,255,.1));box-shadow:0 0 10px #30dcff59}.login-field[data-v-b11615f4]{display:block;margin-bottom:24px}.login-password-control[data-v-b11615f4]{position:relative;display:block;margin:0!important}.login-field span[data-v-b11615f4]{display:block;margin-bottom:9px;color:#d8f9fdbd;font-size:13px;letter-spacing:.5px}.login-field input[data-v-b11615f4]{width:100%;height:52px;padding:0 16px;border:1px solid rgba(91,224,244,.28);border-radius:2px;outline:none;background:rgba(0,11,23,.62);color:#fff;font-size:16px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;box-sizing:border-box}.login-field input[data-v-b11615f4]::placeholder{color:#bce1e861}.login-password-field input[data-v-b11615f4]{padding-right:64px}.login-field input[data-v-b11615f4]:focus{border-color:#7efbf6c2;background:rgba(0,15,29,.78);box-shadow:0 0 0 2px #7efbf614,inset 3px 0 #30dcffb3}.login-field input[data-v-b11615f4]:-webkit-autofill,.login-field input[data-v-b11615f4]:-webkit-autofill:hover,.login-field input[data-v-b11615f4]:-webkit-autofill:focus{-webkit-text-fill-color:#ffffff;caret-color:#fff;box-shadow:0 0 0 1000px #061c2b inset,0 0 0 2px #7efbf61f;transition:background-color 9999s ease-out}.login-password-toggle[data-v-b11615f4]{position:absolute;right:7px;top:50%;width:54px;height:36px;padding:0;border:0;background:transparent;color:#7efbf6d1;cursor:pointer;font-size:12px;transform:translateY(-50%)}.login-password-toggle[data-v-b11615f4]:focus-visible,.login-submit[data-v-b11615f4]:focus-visible{outline:2px solid #7efbf6;outline-offset:2px}.login-field-assist[data-v-b11615f4]{margin:-12px 0 14px;color:#d3f1f794;font-size:12px;line-height:20px}.login-caps-lock[data-v-b11615f4]{color:#ffd76c}.login-error[data-v-b11615f4]{min-height:20px;margin:-8px 0 14px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-b11615f4]{width:100%;height:52px;border:1px solid rgba(126,251,246,.58);border-radius:2px;background:linear-gradient(100deg,rgba(20,126,161,.96),rgba(37,191,202,.96));color:#fff;cursor:pointer;font-size:16px;font-weight:700;letter-spacing:2px;box-shadow:0 8px 24px #1184a62e,inset 0 1px #ffffff21;transition:border-color .16s ease,filter .16s ease,transform .16s ease}.login-submit[data-v-b11615f4]:hover:not(:disabled){border-color:#d3ffffe6;filter:brightness(1.08);transform:translateY(-1px)}.login-submit[data-v-b11615f4]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 900px){.login-shell[data-v-b11615f4]{grid-template-columns:1fr;width:min(560px,100vw - 32px);min-height:0}.login-brand[data-v-b11615f4]{min-height:150px;padding:30px 34px;border-right:0;border-bottom:1px solid rgba(91,224,244,.16)}.login-brand h1[data-v-b11615f4]{margin-top:15px;font-size:28px;line-height:1.3}.login-panel[data-v-b11615f4]{padding:34px}.login-panel-head[data-v-b11615f4]{margin-bottom:28px}}@media (prefers-reduced-motion: reduce){.login-field input[data-v-b11615f4],.login-submit[data-v-b11615f4]{transition:none}} +.login-screen[data-v-b11615f4]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(3,15,32,.18),rgba(1,7,18,.72)),url(./bg-3acb94e3-balabala-1785858872961.png) center/cover no-repeat,#030f21;color:#fff}.login-screen[data-v-b11615f4]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 28% 47%,rgba(48,220,255,.17),transparent 28%),linear-gradient(90deg,rgba(0,4,13,.28),transparent 45%,rgba(0,4,13,.48))}.login-screen[data-v-b11615f4]:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.64),transparent)}.login-shell[data-v-b11615f4]{position:relative;z-index:1;width:min(1000px,100vw - 64px);min-height:530px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);overflow:hidden;border:1px solid rgba(91,224,244,.38);border-radius:4px;background:rgba(3,20,34,.66);box-shadow:0 28px 90px #00040e7a,inset 0 0 0 1px #7efbf60a;backdrop-filter:blur(14px);box-sizing:border-box}.login-shell[data-v-b11615f4]:before,.login-shell[data-v-b11615f4]:after{content:"";position:absolute;z-index:2;width:84px;height:2px;background:#30dcff;box-shadow:0 0 14px #30dcff8f}.login-shell[data-v-b11615f4]:before{top:-1px;left:-1px}.login-shell[data-v-b11615f4]:after{right:-1px;bottom:-1px}.login-brand[data-v-b11615f4]{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;overflow:hidden;padding:66px 64px;border-right:1px solid rgba(91,224,244,.16);background:linear-gradient(130deg,rgba(48,220,255,.08),transparent 48%),rgba(3,25,41,.36);box-sizing:border-box}.login-brand h1[data-v-b11615f4]{position:relative;z-index:1;margin:24px 0 0;color:#f4fdff;font-size:48px;font-weight:750;line-height:1.34;letter-spacing:2px;text-shadow:0 0 24px rgba(48,220,255,.28)}.login-brand-rule[data-v-b11615f4]{position:relative;z-index:1;display:grid;grid-template-columns:5px minmax(0,150px) 5px;align-items:center;gap:7px}.login-brand-rule i[data-v-b11615f4]{width:5px;height:5px;border:1px solid #7efbf6;transform:rotate(45deg)}.login-brand-rule span[data-v-b11615f4]{height:1px;background:linear-gradient(90deg,#30dcff,rgba(48,220,255,.08))}.login-brand-glow[data-v-b11615f4]{position:absolute;right:24px;bottom:34px;width:190px;height:190px;border:1px solid rgba(48,220,255,.13);border-radius:50%;box-shadow:inset 0 0 52px #30dcff0d,0 0 50px #30dcff0a}.login-brand-glow[data-v-b11615f4]:before{content:"";position:absolute;top:28px;right:28px;bottom:28px;left:28px;border:1px solid rgba(126,251,246,.1);border-radius:50%}.login-panel[data-v-b11615f4]{align-self:center;width:100%;padding:54px 54px 50px;box-sizing:border-box}.login-panel-head[data-v-b11615f4]{margin-bottom:38px}.login-panel-title[data-v-b11615f4]{color:#fff;font-size:28px;font-weight:750;line-height:38px;letter-spacing:1px}.login-panel-head>span[data-v-b11615f4]{display:block;width:42px;height:2px;margin-top:10px;background:linear-gradient(90deg,#30dcff,rgba(48,220,255,.1));box-shadow:0 0 10px #30dcff59}.login-field[data-v-b11615f4]{display:block;margin-bottom:24px}.login-password-control[data-v-b11615f4]{position:relative;display:block;margin:0!important}.login-field span[data-v-b11615f4]{display:block;margin-bottom:9px;color:#d8f9fdbd;font-size:13px;letter-spacing:.5px}.login-field input[data-v-b11615f4]{width:100%;height:52px;padding:0 16px;border:1px solid rgba(91,224,244,.28);border-radius:2px;outline:none;background:rgba(0,11,23,.62);color:#fff;font-size:16px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;box-sizing:border-box}.login-field input[data-v-b11615f4]::placeholder{color:#bce1e861}.login-password-field input[data-v-b11615f4]{padding-right:64px}.login-field input[data-v-b11615f4]:focus{border-color:#7efbf6c2;background:rgba(0,15,29,.78);box-shadow:0 0 0 2px #7efbf614,inset 3px 0 #30dcffb3}.login-field input[data-v-b11615f4]:-webkit-autofill,.login-field input[data-v-b11615f4]:-webkit-autofill:hover,.login-field input[data-v-b11615f4]:-webkit-autofill:focus{-webkit-text-fill-color:#ffffff;caret-color:#fff;box-shadow:0 0 0 1000px #061c2b inset,0 0 0 2px #7efbf61f;transition:background-color 9999s ease-out}.login-password-toggle[data-v-b11615f4]{position:absolute;right:7px;top:50%;width:54px;height:36px;padding:0;border:0;background:transparent;color:#7efbf6d1;cursor:pointer;font-size:12px;transform:translateY(-50%)}.login-password-toggle[data-v-b11615f4]:focus-visible,.login-submit[data-v-b11615f4]:focus-visible{outline:2px solid #7efbf6;outline-offset:2px}.login-field-assist[data-v-b11615f4]{margin:-12px 0 14px;color:#d3f1f794;font-size:12px;line-height:20px}.login-caps-lock[data-v-b11615f4]{color:#ffd76c}.login-error[data-v-b11615f4]{min-height:20px;margin:-8px 0 14px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-b11615f4]{width:100%;height:52px;border:1px solid rgba(126,251,246,.58);border-radius:2px;background:linear-gradient(100deg,rgba(20,126,161,.96),rgba(37,191,202,.96));color:#fff;cursor:pointer;font-size:16px;font-weight:700;letter-spacing:2px;box-shadow:0 8px 24px #1184a62e,inset 0 1px #ffffff21;transition:border-color .16s ease,filter .16s ease,transform .16s ease}.login-submit[data-v-b11615f4]:hover:not(:disabled){border-color:#d3ffffe6;filter:brightness(1.08);transform:translateY(-1px)}.login-submit[data-v-b11615f4]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 900px){.login-shell[data-v-b11615f4]{grid-template-columns:1fr;width:min(560px,100vw - 32px);min-height:0}.login-brand[data-v-b11615f4]{min-height:150px;padding:30px 34px;border-right:0;border-bottom:1px solid rgba(91,224,244,.16)}.login-brand h1[data-v-b11615f4]{margin-top:15px;font-size:28px;line-height:1.3}.login-panel[data-v-b11615f4]{padding:34px}.login-panel-head[data-v-b11615f4]{margin-bottom:28px}}@media (prefers-reduced-motion: reduce){.login-field input[data-v-b11615f4],.login-submit[data-v-b11615f4]{transition:none}} diff --git a/docs/assets/index-23566d2f-balabala-1785858872961.css b/docs/assets/index-23566d2f-balabala-1785858872961.css new file mode 100644 index 0000000..6c0b82b --- /dev/null +++ b/docs/assets/index-23566d2f-balabala-1785858872961.css @@ -0,0 +1 @@ +@charset "UTF-8";.social-credit-panel[data-v-86c9aa6d]{height:100%;min-height:0;padding:14px 16px 16px;box-sizing:border-box;color:#eefeff}.social-credit-panel button[data-v-86c9aa6d]{border:0;color:inherit;background:transparent;font:inherit;cursor:pointer}.social-credit-panel button[data-v-86c9aa6d]:focus-visible{outline:1px solid #7efbf6;outline-offset:2px}.social-credit-panel em[data-v-86c9aa6d],.social-credit-panel u[data-v-86c9aa6d]{font-style:normal;text-decoration:none}.credit-village-total[data-v-86c9aa6d],.credit-institution-summary[data-v-86c9aa6d],.credit-rating-summary[data-v-86c9aa6d]{display:grid;grid-template-columns:1fr auto;align-items:end;padding:2px 4px 12px}.credit-village-total>span[data-v-86c9aa6d],.credit-institution-summary>span[data-v-86c9aa6d],.credit-rating-summary>span[data-v-86c9aa6d]{color:#dcf8fcc2;font-size:13px}.credit-village-total>strong[data-v-86c9aa6d],.credit-institution-summary>strong[data-v-86c9aa6d],.credit-rating-summary>strong[data-v-86c9aa6d]{grid-row:span 2;color:#f7d675;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:28px;line-height:1}.credit-village-total>strong em[data-v-86c9aa6d],.credit-institution-summary>strong em[data-v-86c9aa6d],.credit-rating-summary>strong em[data-v-86c9aa6d]{margin-left:4px;color:#def8fbb8;font-size:11px}.credit-village-total>small[data-v-86c9aa6d],.credit-institution-summary>small[data-v-86c9aa6d],.credit-rating-summary>small[data-v-86c9aa6d]{margin-top:4px;color:#bbe5ed85;font-size:10px}.credit-grade-band[data-v-86c9aa6d]{display:flex;height:9px;margin:0 4px 13px;overflow:hidden;border-radius:5px;background:rgba(255,255,255,.06);box-shadow:0 0 14px #30dcff14}.credit-grade-band button[data-v-86c9aa6d]{min-width:2px;opacity:.88;transition:opacity .2s ease,filter .2s ease}.credit-grade-band button[data-v-86c9aa6d]:hover{opacity:1;filter:brightness(1.18)}.credit-grade-grid[data-v-86c9aa6d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.credit-grade-grid button[data-v-86c9aa6d]{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;min-height:62px;padding:9px 10px;border:1px solid rgba(48,220,255,.2);background:linear-gradient(115deg,rgba(48,220,255,.1),rgba(3,25,38,.46));text-align:left}.credit-grade-grid span[data-v-86c9aa6d]{display:flex;align-items:center;min-width:0;color:#e6fbfedb;font-size:11px;white-space:nowrap}.credit-grade-grid span i[data-v-86c9aa6d]{width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--credit-color);box-shadow:0 0 8px var(--credit-color)}.credit-grade-grid strong[data-v-86c9aa6d]{grid-row:span 2;align-self:center;color:#fff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:24px}.credit-grade-grid strong em[data-v-86c9aa6d]{margin-left:3px;color:#daf6fa9e;font-size:9px}.credit-grade-grid small[data-v-86c9aa6d]{color:var(--credit-color);font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:11px}.credit-town-legend[data-v-86c9aa6d]{display:flex;align-items:center;gap:12px;height:28px;padding:0 5px 9px;border-bottom:1px solid rgba(48,220,255,.12);box-sizing:border-box}.credit-town-legend span[data-v-86c9aa6d]{display:inline-flex;align-items:center;color:#def8fbb8;font-size:10px}.credit-town-legend span i[data-v-86c9aa6d]{width:7px;height:7px;margin-right:4px;border-radius:2px}.credit-town-legend small[data-v-86c9aa6d]{margin-left:auto;color:#c4e9f080;font-size:9px}.credit-town-list[data-v-86c9aa6d]{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));height:calc(100% - 28px)}.credit-town-list button[data-v-86c9aa6d]{display:grid;grid-template-columns:24px 62px minmax(0,1fr) 34px;gap:8px;align-items:center;min-height:0;padding:0 5px;border-bottom:1px solid rgba(48,220,255,.075);text-align:left;transition:background .2s ease}.credit-town-list button[data-v-86c9aa6d]:hover{background:rgba(48,220,255,.08)}.credit-town-list button>b[data-v-86c9aa6d]{color:#30dcff85;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:11px;font-weight:500}.credit-town-list button>strong[data-v-86c9aa6d]{color:#effdffe6;font-size:11px;white-space:nowrap}.credit-town-stack[data-v-86c9aa6d]{display:flex;height:16px;overflow:hidden;border-radius:2px;background:rgba(255,255,255,.055)}.credit-town-stack>i[data-v-86c9aa6d]{display:flex;align-items:center;justify-content:center;min-width:4px;height:100%;box-shadow:inset -1px 0 #000f1947}.credit-town-stack em[data-v-86c9aa6d]{color:#01141ddb;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:9px;font-weight:800;white-space:nowrap}.credit-town-count[data-v-86c9aa6d]{color:#f8fdff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:14px;text-align:right}.credit-town-count em[data-v-86c9aa6d]{margin-left:2px;color:#cff1f78f;font-size:8px}.credit-authorization-layout[data-v-86c9aa6d]{display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;height:calc(100% - 23px)}.credit-authorization-ring[data-v-86c9aa6d]{position:relative;width:132px;height:132px;margin:0 auto}.credit-authorization-ring svg[data-v-86c9aa6d]{width:100%;height:100%;overflow:visible;transform:rotate(-90deg);filter:drop-shadow(0 0 8px rgba(48,220,255,.16))}.credit-authorization-ring circle[data-v-86c9aa6d]{fill:none;stroke-width:15}.credit-authorization-ring>div[data-v-86c9aa6d]{position:absolute;top:28px;right:28px;bottom:28px;left:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.22);border-radius:50%;background:rgba(3,22,34,.88)}.credit-authorization-ring strong[data-v-86c9aa6d]{color:#fff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:24px}.credit-authorization-ring span[data-v-86c9aa6d]{margin-top:2px;color:#cef1f79e;font-size:10px}.credit-authorization-track[data-v-86c9aa6d]{stroke:#99dbe717}.credit-authorization-segment[data-v-86c9aa6d]{transition:filter .2s ease}.credit-authorization-list[data-v-86c9aa6d]{display:grid;gap:5px}.credit-authorization-list button[data-v-86c9aa6d]{display:grid;grid-template-columns:minmax(0,1fr) auto 42px;align-items:center;min-height:38px;padding:0 8px;border:1px solid rgba(48,220,255,.11);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(4,27,40,.24));text-align:left}.credit-authorization-list span[data-v-86c9aa6d]{display:flex;align-items:center;color:#e1f9fccc;font-size:11px}.credit-authorization-list span i[data-v-86c9aa6d]{width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--credit-color);box-shadow:0 0 7px var(--credit-color)}.credit-authorization-list strong[data-v-86c9aa6d]{color:#fff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:17px}.credit-authorization-list strong em[data-v-86c9aa6d]{margin-left:2px;color:#d6f4f894;font-size:8px}.credit-authorization-list small[data-v-86c9aa6d]{color:var(--credit-color);font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:10px;text-align:right}.credit-panel-note[data-v-86c9aa6d]{margin:3px 4px 0;color:#bce5ed7a;font-size:9px;text-align:center}.credit-institution-summary[data-v-86c9aa6d],.credit-rating-summary[data-v-86c9aa6d]{padding-bottom:8px}.credit-institution-list[data-v-86c9aa6d]{display:grid;gap:8px}.credit-institution-list button[data-v-86c9aa6d]{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:center;padding:7px 8px;border:1px solid rgba(48,220,255,.12);background:rgba(8,45,61,.32);text-align:left}.credit-institution-list button>b[data-v-86c9aa6d]{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(247,214,117,.4);border-radius:50%;color:#f7d675;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:12px}.credit-institution-list button>div>span[data-v-86c9aa6d]{display:flex;align-items:center;justify-content:space-between;gap:10px}.credit-institution-list button>div>span strong[data-v-86c9aa6d]{overflow:hidden;color:#effdffe6;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.credit-institution-list button>div>span em[data-v-86c9aa6d]{color:#fff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:14px;white-space:nowrap}.credit-institution-list button>div>i[data-v-86c9aa6d]{display:block;height:5px;margin:5px 0 4px;overflow:hidden;border-radius:3px;background:rgba(255,255,255,.06)}.credit-institution-list button>div>i u[data-v-86c9aa6d]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(48,220,255,.38),#37f2bd);box-shadow:0 0 8px #37f2bd4d}.credit-institution-list small[data-v-86c9aa6d]{color:#c7ecf294;font-size:9px}.credit-rating-list[data-v-86c9aa6d]{display:grid;grid-template-rows:repeat(6,minmax(0,1fr));height:calc(100% - 46px)}.credit-rating-list button[data-v-86c9aa6d]{display:grid;grid-template-columns:56px minmax(0,1fr) 50px 38px;gap:8px;align-items:center;min-height:0;padding:0 4px;border-bottom:1px solid rgba(48,220,255,.075);text-align:left}.credit-rating-list button>span[data-v-86c9aa6d]{display:flex;align-items:center;color:#e6fafdd1;font-size:10px}.credit-rating-list button>span i[data-v-86c9aa6d]{width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--rating-color);box-shadow:0 0 7px var(--rating-color)}.credit-rating-list button>u[data-v-86c9aa6d]{display:block;height:7px;overflow:hidden;border-radius:4px;background:rgba(255,255,255,.055)}.credit-rating-list button>u i[data-v-86c9aa6d]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(48,220,255,.28),var(--rating-color))}.credit-rating-list button>strong[data-v-86c9aa6d]{color:#fff;font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:14px;text-align:right}.credit-rating-list button>strong em[data-v-86c9aa6d]{margin-left:2px;color:#d5f3f885;font-size:8px}.credit-rating-list button>small[data-v-86c9aa6d]{color:var(--rating-color);font-family:var(--screen-font-number, "D-DIN", sans-serif);font-size:10px;text-align:right}@media (prefers-reduced-motion: reduce){.social-credit-panel[data-v-86c9aa6d] *{transition:none!important}}.yak-industry-chain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.industry-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.industry-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(4,18,28,0) 0%,rgba(4,18,28,.05) 37%,rgba(2,10,17,.34) 78%,rgba(1,7,12,.62) 100%),linear-gradient(90deg,rgba(0,12,20,.42),transparent 26%,transparent 74%,rgba(0,12,20,.42))}.industry-map-loading{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);color:#dcfaffc7;font-size:18px}.industry-map-feature-info{position:absolute;z-index:10;pointer-events:all}.industry-map-feature-info:after{position:absolute;display:var(--feature-arrow-display, block);top:var(--feature-arrow-top);left:var(--feature-arrow-left);z-index:0;width:16px;height:16px;content:"";border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:translate(-50%) rotate(var(--feature-arrow-rotate))}.industry-map-feature-info>.m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.industry-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.industry-point-feature-info .m-card-hd{cursor:grab;touch-action:none;user-select:none}.industry-point-feature-info.is-dragging .m-card-hd{cursor:grabbing}.industry-side-panel{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.industry-side-panel--left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.industry-side-panel--right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.industry-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.industry-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.industry-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.industry-side-card{flex:0 0 auto}.industry-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.industry-side-card .industry-town-column-chart{position:relative;z-index:1;width:100%;height:100%;min-height:0}.industry-side-card .industry-panel-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#e2fbffad;font-size:13px;font-weight:600;letter-spacing:0;text-shadow:0 0 8px rgba(48,220,255,.14)}.industry-side-card .business-columns.is-variant-plain{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:8px;padding-right:12px;padding-left:12px}.industry-side-card .business-columns.is-variant-plain .business-column-item{grid-template-rows:16px minmax(62px,1fr) 32px}.industry-side-card .business-columns.is-variant-plain .business-column-item span{display:-webkit-box;max-width:58px;color:#f0fdffdb;line-height:13px;white-space:normal;word-break:keep-all;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-plain .business-column-track{width:6px}.industry-side-card .business-columns.is-variant-townCompact{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:35px 13px 10px}.industry-side-card .business-columns.is-variant-townCompact:before{left:13px;right:13px;top:55px;bottom:40px;opacity:.46;background:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(48,220,255,.58) calc(100% - 1px)),repeating-linear-gradient(to bottom,rgba(159,220,230,.16) 0 1px,transparent 1px 21px)}.industry-side-card .business-columns.is-variant-townCompact:after{content:"";position:absolute;left:13px;right:13px;bottom:39px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(60,244,255,.72),transparent);box-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item{position:relative;z-index:1;grid-template-rows:17px minmax(74px,1fr) 29px;min-width:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item strong{width:100%;color:#f4fcfff0;font-size:10px;line-height:14px;text-align:center;text-shadow:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item span{display:-webkit-box;align-self:start;width:100%;max-width:36px;height:25px;margin-top:3px;color:#e8fcffd1;font-size:10px;line-height:12px;text-align:center;white-space:normal;word-break:break-all;writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:0;-webkit-box-orient:vertical;-webkit-line-clamp:2}.industry-side-card .business-columns.is-variant-townCompact .business-column-track{width:8px;height:100%;min-height:74px;align-self:end;border:0;border-radius:2px 2px 0 0;background:linear-gradient(180deg,rgba(48,220,255,.12),rgba(36,246,196,.015)),linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02) 48%,rgba(48,220,255,.1)),rgba(4,26,38,.22);box-shadow:inset 0 -1px #30dcff29}.industry-side-card .business-columns.is-variant-townCompact .business-column-track:after{content:"";position:absolute;left:50%;bottom:-5px;width:18px;height:7px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(48,220,255,.12),rgba(48,220,255,0) 68%);transform:translate(-50%)}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i{left:0;right:0;min-height:5px;border-radius:3px 3px 0 0;box-shadow:inset 0 1px #ffffff3d}.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:before,.industry-side-card .business-columns.is-variant-townCompact .business-column-track i:after{display:none}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero strong{opacity:0}.industry-side-card .business-columns.is-variant-townCompact .business-column-item.is-zero .business-column-track i{height:4px!important;opacity:.16;box-shadow:none}.industry-side-card .business-bars.is-rank-bar{padding-right:12px;padding-left:12px}.industry-side-card .business-bars.is-rank-bar .business-bar-name{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .m-card-bd-content,.industry-side-card--industry-breeding-selection-level .m-card-bd-content,.industry-side-card--industry-forage-storage-capacity .m-card-bd-content,.industry-side-card--industry-forage-trade-fund .m-card-bd-content,.industry-side-card--industry-stage-composition .m-card-bd-content{background:radial-gradient(circle at 22% 8%,rgba(36,246,196,.08),transparent 42%),linear-gradient(180deg,rgba(7,39,55,.22),rgba(3,22,34,.06))}.industry-side-card--industry-artificial-grassland-town-area .business-panel,.industry-side-card--industry-breeding-selection-level .business-panel,.industry-side-card--industry-forage-storage-capacity .business-panel,.industry-side-card--industry-forage-trade-fund .business-panel,.industry-side-card--industry-stage-composition .business-panel{position:relative}.industry-side-card--industry-breeding-selection-level .business-structure{grid-template-rows:30px minmax(0,1fr);gap:8px;padding:9px 14px 10px}.industry-side-card--industry-breeding-selection-level .business-structure-band{height:22px;padding:3px;border-color:#30dcff3d;background:linear-gradient(90deg,rgba(48,220,255,.12),rgba(167,139,250,.1)),rgba(4,27,40,.48)}.industry-side-card--industry-breeding-selection-level .business-structure-list{gap:6px}.industry-side-card--industry-breeding-selection-level .business-structure-row{grid-template-columns:8px minmax(0,1fr) 58px 40px;min-height:30px;padding:0 8px;border-color:#30dcff21;background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(7,35,50,.18)),rgba(2,21,32,.36)}.industry-side-card--industry-breeding-selection-level .business-structure-row span{color:#e8fcffdb;font-size:12px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-breeding-selection-level .business-structure-row strong{color:#f6feff;font-size:14px;line-height:16px;text-align:right;text-shadow:none}.industry-side-card--industry-breeding-selection-level .business-structure-row strong em{margin-left:2px;color:#d9f8ffa3;font-size:10px}.industry-side-card--industry-breeding-selection-level .business-structure-row small{color:#97f4ffbd;font-size:10px;text-align:right}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar{gap:6px;padding:9px 14px 10px}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row{grid-template-columns:24px minmax(70px,.74fr) minmax(0,1fr) minmax(86px,.65fr);grid-template-areas:"rank name track value";min-height:30px;gap:8px;padding:0 8px;border:1px solid rgba(48,220,255,.12);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(36,246,196,.035)),rgba(3,24,36,.42)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row:after,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row:after{content:"";position:absolute;left:28px;right:10px;bottom:4px;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.3),transparent);opacity:.34}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-rank,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-rank{width:18px;height:18px;border-color:#30dcff61;border-radius:3px;color:#e8fcffeb;background:linear-gradient(180deg,rgba(48,220,255,.24),rgba(36,246,196,.07)),rgba(3,24,36,.78)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-name,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-name{grid-area:name;color:#e8fcffdb;font-size:12px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-track,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-track{grid-area:track;height:7px;margin:0;border-color:#30dcff2e;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 24px),rgba(48,220,255,.08)}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-track i,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-track i{min-width:10px}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong{grid-area:value;justify-self:end;min-width:0;color:#f8feff;font-size:14px;line-height:16px;text-align:right;white-space:nowrap;text-shadow:none}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong em,.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong small,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong em,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong small{margin-left:3px;color:#d3f5fca8;font-size:10px;font-weight:700}.industry-side-card--industry-forage-storage-capacity .business-bars.is-rank-bar .business-bar-row strong small,.industry-side-card--industry-forage-trade-fund .business-bars.is-rank-bar .business-bar-row strong small{display:none}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring,.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense{grid-template-columns:132px minmax(0,1fr);gap:10px;padding:7px 12px 8px 13px}.industry-side-card--industry-stage-composition .business-ring-visual,.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual{width:132px;height:132px}.industry-side-card--industry-stage-composition .business-ring-visual:before,.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual:before{left:14px;right:14px;bottom:10px;opacity:.76}.industry-side-card--industry-stage-composition .business-ring-chart,.industry-side-card--industry-artificial-grassland-town-area .business-ring-chart{width:128px;height:128px}.industry-side-card--industry-stage-composition .business-ring-track,.industry-side-card--industry-artificial-grassland-town-area .business-ring-track{stroke-width:20;stroke:#30dcff21}.industry-side-card--industry-stage-composition .business-ring-segment,.industry-side-card--industry-artificial-grassland-town-area .business-ring-segment{stroke-width:20;opacity:.92}.industry-side-card--industry-stage-composition .business-ring-segment.is-active,.industry-side-card--industry-artificial-grassland-town-area .business-ring-segment.is-active{stroke-width:22}.industry-side-card--industry-stage-composition .business-ring-halo,.industry-side-card--industry-artificial-grassland-town-area .business-ring-halo{fill:#02111ce0;stroke:#30dcff2e}.industry-side-card--industry-stage-composition .business-ring-inner,.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner{top:36px;right:31px;bottom:34px;left:31px}.industry-side-card--industry-stage-composition .business-ring-inner strong,.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner strong{font-size:23px;line-height:24px;color:#f9feff}.industry-side-card--industry-stage-composition .business-donut-legend,.industry-side-card--industry-artificial-grassland-town-area .business-donut-legend{gap:4px;justify-content:center;padding-right:0}.industry-side-card--industry-stage-composition .business-donut-row,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row{grid-template-columns:8px minmax(0,1fr) 42px 22px;gap:5px;min-height:18px;padding:0 5px;border-color:#30dcff1a;background:linear-gradient(90deg,rgba(48,220,255,.06),rgba(7,35,50,.12)),rgba(2,21,32,.34)}.industry-side-card--industry-stage-composition .business-donut-row i,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row i{width:7px;height:7px;border-width:1px}.industry-side-card--industry-stage-composition .business-donut-row span,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row span{color:#e8fcffd1;font-size:11px;line-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.industry-side-card--industry-stage-composition .business-donut-row strong,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row strong{color:#f8feff;font-size:13px;line-height:14px;text-align:right}.industry-side-card--industry-stage-composition .business-donut-row em,.industry-side-card--industry-artificial-grassland-town-area .business-donut-row em{color:#d3f5fc94;font-size:9px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring,.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense{grid-template-columns:150px minmax(0,1fr);padding-right:13px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-visual{width:150px;height:150px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-chart{width:146px;height:146px}.industry-side-card--industry-artificial-grassland-town-area .business-ring-inner{top:39px;right:35px;bottom:37px;left:35px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row{min-height:21px;grid-template-columns:9px minmax(0,1fr) 48px 22px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row span{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .business-donut-row strong{font-size:14px;line-height:16px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-visual{width:132px;height:132px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-chart{width:128px;height:128px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-inner{top:36px;right:31px;bottom:34px;left:31px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-ring-inner strong{font-size:23px;line-height:24px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-legend{gap:4px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row{grid-template-columns:8px minmax(0,1fr) 42px 22px;min-height:18px;padding:0 5px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:11px;line-height:13px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:13px;line-height:14px}.industry-side-card--industry-stage-composition .business-donut.is-variant-ring.is-dense .business-donut-row em{font-size:9px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-visual{width:150px;height:150px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-chart{width:146px;height:146px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-ring-inner{top:39px;right:35px;bottom:37px;left:35px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row{grid-template-columns:9px minmax(0,1fr) 48px 22px;min-height:21px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row span{font-size:12px;line-height:14px}.industry-side-card--industry-artificial-grassland-town-area .business-donut.is-variant-ring.is-dense .business-donut-row strong{font-size:14px;line-height:16px}.industry-stage-composition-chart{position:relative;z-index:1;display:grid;grid-template-rows:18px minmax(0,1fr);gap:8px;height:100%;padding:8px 12px 9px;box-sizing:border-box;overflow:hidden}.industry-stage-composition-chart__band{display:flex;height:18px;padding:3px;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(36,246,196,.035)),rgba(3,24,36,.54);box-shadow:inset 0 0 12px #30dcff14}.industry-stage-composition-chart__band i{display:block;min-width:2px;height:100%;box-shadow:inset 0 1px #ffffff42}.industry-stage-composition-chart__band i+i{margin-left:2px}.industry-stage-composition-chart__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:5px;min-height:0}.industry-stage-composition-chart__item{position:relative;display:grid;grid-template-rows:14px minmax(16px,1fr) 4px;gap:2px;min-width:0;min-height:0;padding:5px 6px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:linear-gradient(135deg,color-mix(in srgb,var(--stage-color) 13%,transparent),rgba(3,25,38,.22)),rgba(3,23,35,.46)}.industry-stage-composition-chart__item:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--stage-color);box-shadow:0 0 8px var(--stage-color);opacity:.86}.industry-stage-composition-chart__item span{min-width:0;padding-left:3px;overflow:hidden;color:#e0f9ffc7;font-size:10px;font-weight:700;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.industry-stage-composition-chart__item strong{align-self:center;min-width:0;overflow:hidden;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:800;line-height:17px;text-overflow:ellipsis;white-space:nowrap;text-shadow:none}.industry-stage-composition-chart__item strong em{margin-left:2px;color:#d7f8ff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-stage-composition-chart__item small{display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.09)}.industry-stage-composition-chart__item small b{display:block;width:var(--stage-width);height:100%;min-width:4px;background:linear-gradient(90deg,var(--stage-color),rgba(255,255,255,.7))}.industry-forage-trade-dashboard{position:relative;z-index:1;display:grid;grid-template-columns:minmax(96px,.72fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 42px;grid-template-areas:"hero flows" "metrics metrics";gap:8px 10px;height:100%;padding:9px 13px 10px;box-sizing:border-box;overflow:hidden}.industry-forage-trade-dashboard__hero{position:relative;grid-area:hero;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:8px 9px 8px 12px;overflow:hidden;border:1px solid rgba(48,220,255,.2);background:radial-gradient(circle at 18% 22%,rgba(36,246,196,.18),transparent 42%),linear-gradient(135deg,rgba(48,220,255,.14),rgba(3,24,36,.36)),rgba(3,24,36,.52)}.industry-forage-trade-dashboard__hero:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;background:#32dcff;box-shadow:0 0 12px #32dcff9e}.industry-forage-trade-dashboard__hero span{color:#e0f9ffd1;font-size:12px;font-weight:760;line-height:14px}.industry-forage-trade-dashboard__hero strong{margin-top:5px;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:23px;font-weight:820;line-height:25px;white-space:nowrap}.industry-forage-trade-dashboard__hero strong em{margin-left:3px;color:#d6f7fca8;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.industry-forage-trade-dashboard__hero small{margin-top:5px;overflow:hidden;color:#92ebf6b3;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__flows{grid-area:flows;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;min-width:0;min-height:0}.industry-forage-trade-dashboard__flow{position:relative;display:grid;grid-template-columns:minmax(58px,.62fr) minmax(70px,.72fr);grid-template-rows:17px 7px;grid-template-areas:"name value" "bar bar";align-content:center;gap:4px 8px;min-width:0;min-height:0;padding:7px 8px;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--trade-color) 10%,transparent),rgba(3,24,36,.22)),rgba(3,24,36,.42)}.industry-forage-trade-dashboard__flow span{grid-area:name;min-width:0;overflow:hidden;color:#ddf8fecc;font-size:11px;font-weight:720;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__flow strong{grid-area:value;justify-self:end;color:#f8feff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:800;line-height:16px;white-space:nowrap}.industry-forage-trade-dashboard__flow strong em{margin-left:2px;color:#d6f7fc9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-forage-trade-dashboard__flow i{position:relative;grid-area:bar;height:7px;overflow:hidden;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.075)}.industry-forage-trade-dashboard__flow b{display:block;width:var(--trade-width);height:100%;min-width:8px;background:linear-gradient(90deg,var(--trade-color),rgba(255,255,255,.82));box-shadow:0 0 8px color-mix(in srgb,var(--trade-color) 55%,transparent)}.industry-forage-trade-dashboard__metrics{grid-area:metrics;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.industry-forage-trade-dashboard__metrics div{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;padding:0 8px;border:1px solid rgba(48,220,255,.12);background:rgba(3,24,36,.4)}.industry-forage-trade-dashboard__metrics span{min-width:0;overflow:hidden;color:#d6f7fcb3;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.industry-forage-trade-dashboard__metrics strong{color:#9dfaff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:800;white-space:nowrap}.industry-forage-trade-dashboard__metrics strong em{margin-left:2px;color:#d6f7fc9e;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:9px;font-style:normal;font-weight:700}.industry-featured-base-list{position:relative;z-index:1;display:grid;gap:8px;height:100%;padding:2px 3px}.industry-side-card[class*=-bottom-list] .business-project-table{padding:5px 8px 8px}.industry-side-card[class*=-bottom-list] .business-project-search input{height:30px;font-size:12px}.industry-side-card[class*=-bottom-list] .business-project-frame{border-color:#30dcff33;background:rgba(5,28,41,.34)}.industry-side-card[class*=-bottom-list] .business-project-frame th,.industry-side-card[class*=-bottom-list] .business-project-frame td,.industry-side-card[class*=-bottom-list] .business-project-frame th:nth-child(2),.industry-side-card[class*=-bottom-list] .business-project-frame td:nth-child(2),.industry-side-card[class*=-bottom-list] .business-project-frame th:nth-child(4),.industry-side-card[class*=-bottom-list] .business-project-frame td:nth-child(4){text-align:left}.industry-side-card[class*=-bottom-list] .business-project-frame th{height:28px;padding:0 8px;color:#b0ebf6c7;font-size:12px;font-weight:700}.industry-side-card[class*=-bottom-list] .business-project-frame td{height:42px;padding:5px 8px;overflow:hidden;color:#e2f9ffdb;font-size:12px;line-height:17px;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.industry-side-card[class*=-bottom-list] .business-project-frame td.is-center,.industry-side-card[class*=-bottom-list] .business-project-frame th.is-center{text-align:center}.industry-side-card[class*=-bottom-list] .business-project-frame .business-project-name{color:#fafffff5;font-size:13px;font-weight:760}.industry-side-card[class*=-bottom-list] .business-project-frame .business-project-locate-button{width:26px;height:26px}.industry-tabbed-map-list{position:relative;z-index:1;display:grid;grid-template-rows:auto auto 22px minmax(0,1fr);gap:6px;height:100%;padding:0 4px 8px;box-sizing:border-box;overflow:hidden}.industry-tabbed-map-list__selector,.industry-tabbed-map-list__tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.industry-tabbed-map-list__selector{position:relative;z-index:4;grid-template-columns:auto minmax(0,1fr);min-height:36px;padding:1px 2px 0}.industry-tabbed-map-list__selector>span{display:flex;height:34px;padding:0 10px;align-items:center;border:1px solid rgba(48,220,255,.22);color:#c9eff7a8;background:rgba(3,31,44,.34);font-size:12px;line-height:16px;white-space:nowrap}.industry-tabbed-map-list__select{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 16px;gap:8px;align-items:center;min-width:0;width:100%;height:34px;padding:0 10px 0 12px;border:1px solid rgba(48,220,255,.42);border-radius:3px;color:#f4fefff5;outline:none;cursor:pointer;background:linear-gradient(90deg,rgba(31,185,211,.26),rgba(36,246,196,.08)),rgba(4,32,45,.76);box-shadow:inset 0 0 14px #30dcff14;font:inherit}.industry-tabbed-map-list__select:hover,.industry-tabbed-map-list__select:focus-visible,.industry-tabbed-map-list__select.is-open{border-color:#30dcffd1;box-shadow:0 0 14px #30dcff29,inset 0 0 14px #30dcff1a}.industry-tabbed-map-list__select strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__select strong{justify-self:center;color:#f4fefffa;font-size:14px;font-weight:760}.industry-tabbed-map-list__select i{width:0;height:0;justify-self:center;border-right:5px solid transparent;border-left:5px solid transparent;border-top:6px solid rgba(147,250,255,.95);transition:transform .16s ease}.industry-tabbed-map-list__select.is-open i{transform:rotate(180deg)}.industry-tabbed-map-list__menu{position:absolute;top:39px;right:2px;left:76px;z-index:8;display:grid;gap:4px;max-height:270px;padding:7px;overflow-y:auto;border:1px solid rgba(48,220,255,.48);border-radius:4px;background:linear-gradient(180deg,rgba(7,47,62,.98),rgba(3,23,36,.98)),rgba(3,23,36,.98);box-shadow:0 16px 34px #00070e7a,inset 0 0 20px #30dcff14}.industry-tabbed-map-list__menu button{display:flex;align-items:center;min-height:32px;padding:0 9px;border:1px solid rgba(48,220,255,.14);border-radius:3px;color:#e1f9ffd1;cursor:pointer;background:rgba(6,33,47,.76);text-align:left;font:inherit}.industry-tabbed-map-list__menu button:hover,.industry-tabbed-map-list__menu button:focus-visible,.industry-tabbed-map-list__menu button.is-active{border-color:#30dcffa3;color:#fff;outline:none;background:linear-gradient(90deg,rgba(31,185,211,.34),rgba(36,246,196,.12));box-shadow:inset 2px 0 #24f6c4cc}.industry-tabbed-map-list__menu span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__menu span{width:100%;font-size:13px;font-weight:720}.industry-tabbed-map-list__tools input{min-width:0;height:28px;padding:0 10px;border:1px solid rgba(48,220,255,.26);color:#f2feffeb;outline:none;background:rgba(3,31,44,.46);font:inherit;font-size:12px}.industry-tabbed-map-list__tools input::placeholder{color:#cfebf275}.industry-tabbed-map-list__tools input:focus{border-color:#30dcffb8;box-shadow:0 0 12px #30dcff1f}.industry-tabbed-map-list__tools small{display:flex;height:28px;padding:0 9px;align-items:center;border:1px solid rgba(48,220,255,.16);color:#c9eff79e;background:rgba(2,24,36,.34);font-size:11px;line-height:14px;white-space:nowrap}.industry-tabbed-map-list__head,.industry-tabbed-map-list__rows{min-height:0}.industry-tabbed-map-list__head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(126px,.78fr) 30px;gap:8px;align-items:center;padding:0 8px 0 10px;border-top:1px solid rgba(48,220,255,.12);border-bottom:1px solid rgba(48,220,255,.12);color:#a5e5f1a3;background:linear-gradient(90deg,rgba(12,73,91,.36),rgba(3,31,44,.16));font-size:11px;line-height:22px}.industry-tabbed-map-list__head span:nth-child(2),.industry-tabbed-map-list__head span:nth-child(3){text-align:right}.industry-tabbed-map-list__rows{display:block;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-color:rgba(48,220,255,.44) rgba(3,28,41,.38);scrollbar-width:thin}.industry-tabbed-map-list__rows::-webkit-scrollbar{width:5px}.industry-tabbed-map-list__rows::-webkit-scrollbar-track{background:rgba(3,28,41,.38)}.industry-tabbed-map-list__rows::-webkit-scrollbar-thumb{background:rgba(48,220,255,.44)}.industry-tabbed-map-list__row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(126px,.78fr) 30px;grid-template-areas:"name meta locate";align-items:center;width:100%;min-height:46px;gap:8px;padding:5px 7px 5px 10px;border:0;border-bottom:1px solid rgba(48,220,255,.1);color:inherit;cursor:pointer;background:linear-gradient(90deg,rgba(48,220,255,.055),rgba(48,220,255,.018));text-align:left;font:inherit}.industry-tabbed-map-list__row:nth-child(2n){background:rgba(36,246,196,.028)}.industry-tabbed-map-list__row:hover:not(:disabled),.industry-tabbed-map-list__row:focus-visible,.industry-tabbed-map-list__row.is-active{outline:none;background:linear-gradient(90deg,rgba(36,246,196,.22),rgba(48,220,255,.075));box-shadow:inset 3px 0 #24f6c4e0,inset 0 0 18px #30dcff0f}.industry-tabbed-map-list__row.is-disabled{cursor:default;opacity:.5}.industry-tabbed-map-list__name{display:grid;grid-area:name;align-content:center;min-width:0}.industry-tabbed-map-list__name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:#f6fefff5;font-size:13px;line-height:18px;font-weight:760}.industry-tabbed-map-list__meta{display:flex;grid-area:meta;align-items:center;justify-content:flex-end;min-width:0}.industry-tabbed-map-list__area{min-width:0;overflow:hidden;width:100%;color:#cbeff7c2;font-size:12px;line-height:17px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.industry-tabbed-map-list__locate{position:relative;grid-area:locate;justify-self:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;color:#30dcffd1;background:linear-gradient(currentColor,currentColor) center top/1px 4px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 4px no-repeat,linear-gradient(currentColor,currentColor) left center/4px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/4px 1px no-repeat,rgba(48,220,255,.08);box-shadow:0 0 8px #30dcff29}.industry-tabbed-map-list__locate:after{content:"";position:absolute;width:4px;height:4px;margin:7px;border-radius:50%;background:currentColor}.industry-tabbed-map-list__empty{display:flex;align-items:center;justify-content:center;min-height:90px;color:#e2fbff9e;font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact{display:grid;grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:2px;padding:5px 13px 8px;overflow:hidden}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-row{height:auto;min-height:0;gap:10px;grid-template-columns:25px minmax(0,1fr) 104px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-rank{width:18px;height:18px;font-size:12px;line-height:19px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-name{font-size:13px;line-height:16px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-bar{height:5px;margin-top:6px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value strong{font-size:16px;line-height:18px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value em{font-size:12px}.industry-side-card--breeding-town-rank .business-stat-list.is-compact .business-stat-value span{margin-top:3px;font-size:11px;line-height:13px}.industry-featured-base{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;width:100%;min-height:76px;padding:9px 28px 9px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.16);border-radius:3px;background:linear-gradient(90deg,rgba(18,88,106,.27),rgba(6,25,38,.3)),rgba(3,20,31,.46);color:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.industry-featured-base:after{content:">";position:absolute;right:10px;top:50%;color:#24f6c4e6;font-size:16px;font-weight:800;transform:translateY(-50%)}.industry-featured-base:hover,.industry-featured-base:focus-visible{border-color:#24f6c48a;background:linear-gradient(90deg,rgba(18,112,120,.38),rgba(6,31,43,.38)),rgba(3,20,31,.56);outline:0;transform:translate(2px)}.industry-featured-base.is-active{border-color:#24f6c4b8;background:linear-gradient(90deg,rgba(30,124,119,.38),rgba(7,41,48,.42)),rgba(3,26,34,.62);box-shadow:inset 3px 0 #24f6c4e6,0 0 16px #24f6c41c}.industry-featured-base.is-active:after{color:#c9fbff}.industry-featured-base:disabled{cursor:default;opacity:.58}.industry-featured-base__index{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(48,220,255,.42);background:rgba(48,220,255,.09);color:#35f1ff;font-family:D-DIN,DIN Alternate,sans-serif;font-size:14px;font-weight:800}.industry-featured-base__copy{display:grid;min-width:0;gap:2px}.industry-featured-base__copy strong,.industry-featured-base__copy em,.industry-featured-base__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-featured-base__copy strong{color:#f6fffff5;font-size:14px;font-weight:760;line-height:18px}.industry-featured-base__copy em{color:#24f6c4eb;font-size:11px;font-style:normal;line-height:15px}.industry-featured-base__copy small{color:#cdeef4a8;font-size:11px;line-height:15px}.industry-leadership-mode-list{position:relative;z-index:1;display:grid;gap:7px;padding:3px 5px}.industry-leadership-mode{display:grid;grid-template-columns:4px 26px minmax(0,1fr);gap:8px;align-items:center;min-height:48px;padding:5px 6px;border-bottom:1px solid rgba(48,220,255,.1)}.industry-leadership-mode>i{display:block;width:4px;height:30px;box-shadow:0 0 10px currentColor}.industry-leadership-mode>span{color:#cff7ff75;font-family:D-DIN,DIN Alternate,sans-serif;font-size:13px;font-weight:800}.industry-leadership-mode div{display:grid;min-width:0;gap:2px}.industry-leadership-mode strong{color:#f6fffff2;font-size:13px;font-weight:760}.industry-leadership-mode small{overflow:hidden;color:#cdeef4a8;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-list{display:grid;gap:7px}.industry-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:7px 8px;border:1px solid rgba(48,220,255,.1);border-radius:4px;background:rgba(4,20,31,.42)}.industry-ledger-row div{min-width:0}.industry-ledger-row strong,.industry-ledger-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-ledger-row strong{color:#f1feffeb;font-size:13px;font-weight:760}.industry-ledger-row span{margin-top:4px;color:#c9edf494;font-size:11px}.industry-ledger-row em{color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.industry-map-layer-tools{position:absolute;right:458px;bottom:102px;z-index:7;width:248px;pointer-events:all}.industry-map-layer-tools .m-card{width:100%!important;height:100%!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.industry-map-layer-tools .layer-panel{grid-template-rows:auto;padding:8px 10px 10px}.industry-card-more{height:24px;padding:0 10px;border:1px solid rgba(48,220,255,.42);border-radius:2px;color:#dffcff;background:rgba(13,88,116,.38);font-size:11px;cursor:pointer}.industry-card-more:hover{border-color:#30dcffd6;background:rgba(20,126,158,.48)}.industry-credit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:90px 150px 96px;background:rgba(0,8,15,.78);backdrop-filter:blur(7px);pointer-events:all}.industry-credit-dialog{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;width:min(1420px,100%);height:min(820px,100%);overflow:hidden;border:1px solid rgba(48,220,255,.52);border-radius:8px;background:linear-gradient(180deg,rgba(15,61,82,.92),rgba(4,20,31,.98) 18%),rgba(3,17,27,.98);box-shadow:0 24px 90px #00000085,inset 0 0 34px #30dcff12}.industry-credit-dialog__header{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:0 24px;border-bottom:1px solid rgba(48,220,255,.22)}.industry-credit-dialog__header>div{display:grid;gap:5px}.industry-credit-dialog__header strong{color:#effeff;font-size:23px;letter-spacing:2px}.industry-credit-dialog__header span{color:#c3ecf4a6;font-size:12px}.industry-credit-dialog__header button{width:34px;height:34px;border:1px solid rgba(48,220,255,.3);border-radius:50%;color:#dffcff;background:rgba(16,75,96,.42);font-size:25px;line-height:28px;cursor:pointer}.industry-credit-dialog__stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:16px 24px 10px}.industry-credit-dialog__stats>div{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 16px;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(24,102,129,.22),rgba(8,31,45,.4))}.industry-credit-dialog__stats span{color:#d2f1f7b8;font-size:13px}.industry-credit-dialog__stats strong{color:#f7d675;font-family:D-DIN,DIN Alternate,sans-serif;font-size:24px}.industry-credit-dialog__stats em{margin-left:4px;color:#def8fbb8;font-family:inherit;font-size:11px;font-style:normal}.industry-credit-dialog__filters{display:grid;grid-template-columns:minmax(260px,1fr) 112px 120px 132px 132px 174px auto;gap:10px;align-items:center;padding:8px 24px 14px}.industry-credit-dialog__filters input,.industry-credit-dialog__filters select{height:34px;padding:0 12px;border:1px solid rgba(48,220,255,.24);border-radius:3px;outline:none;color:#e9fdff;background:rgba(3,27,41,.88);font-size:12px}.industry-credit-dialog__filters input:focus,.industry-credit-dialog__filters select:focus{border-color:#30dcffbd}.industry-credit-dialog__filters small{color:#ccf0f6ad;font-size:12px;text-align:right;white-space:nowrap}.industry-credit-table{min-height:0;margin:0 24px;overflow:hidden;border:1px solid rgba(48,220,255,.15)}.industry-credit-table__head,.industry-credit-table__row{display:grid;grid-template-columns:1.05fr .9fr 1fr .78fr .78fr .78fr 1.72fr;align-items:center}.industry-credit-table__head>*,.industry-credit-table__row>*{min-width:0;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.industry-credit-table__head{height:38px;color:#d1f4fabf;background:rgba(35,132,158,.18);font-size:12px;font-weight:700}.industry-credit-table__row{height:37px;border-top:1px solid rgba(48,220,255,.07);color:#daf5f9c2;font-size:12px}.industry-credit-table__row:nth-child(odd){background:rgba(12,54,71,.16)}.industry-credit-table__row strong{color:#f6fffff0}.industry-credit-table__row .is-authorized{color:#37f2bd}.industry-credit-table__row .is-unauthorized{color:#ff9b88}.industry-credit-grade{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:22px;border:1px solid rgba(48,220,255,.3);border-radius:11px;color:#bdf8ff;background:rgba(48,220,255,.08);font-style:normal}.industry-credit-grade[data-grade=A级]{border-color:#37f2bd80;color:#54f6c5}.industry-credit-grade[data-grade=B级]{border-color:#30dcff80;color:#73e9ff}.industry-credit-grade[data-grade=C级]{border-color:#f7d67580;color:#f7d675}.industry-credit-grade[data-grade=D级]{border-color:#ff8b7480;color:#ff9b88}.industry-credit-table__empty{display:flex;align-items:center;justify-content:center;height:calc(100% - 38px);min-height:180px;color:#cdeff59e;font-size:13px}.industry-credit-table__empty.is-error{color:#ff9b88}.industry-credit-dialog__footer{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 24px;color:#bfe5ec8c;font-size:11px}.industry-credit-dialog__footer>div{display:flex;gap:12px;align-items:center}.industry-credit-dialog__footer button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);border-radius:3px;color:#dbfbff;background:rgba(13,71,94,.46);cursor:pointer}.industry-credit-dialog__footer button:disabled{opacity:.34;cursor:not-allowed}.industry-credit-dialog__footer strong{min-width:72px;color:#e3fbfec7;text-align:center}.industry-bottom-switcher{position:absolute;left:50%;bottom:48px;z-index:8;display:flex;align-items:center;justify-content:center;transform:translate(-50%);pointer-events:all} diff --git a/docs/assets/index-2c5309f9-1785726778446.js b/docs/assets/index-2c5309f9-1785726778446.js deleted file mode 100644 index 4a10ba8..0000000 --- a/docs/assets/index-2c5309f9-1785726778446.js +++ /dev/null @@ -1,13 +0,0 @@ -var te=Object.defineProperty,ee=Object.defineProperties;var ne=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var St=(e,t,n)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,R=(e,t)=>{for(var n in t||(t={}))$t.call(t,n)&&St(e,n,t[n]);if(Z)for(var n of Z(t))Tt.call(t,n)&&St(e,n,t[n]);return e},P=(e,t)=>ee(e,ne(t));var Ct=(e,t)=>{var n={};for(var s in e)$t.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&Z)for(var s of Z(e))t.indexOf(s)<0&&Tt.call(e,s)&&(n[s]=e[s]);return n};var L=(e,t,n)=>new Promise((s,r)=>{var u=l=>{try{b(n.next(l))}catch(h){r(h)}},f=l=>{try{b(n.throw(l))}catch(h){r(h)}},b=l=>l.done?s(l.value):Promise.resolve(l.value).then(u,f);b((n=n.apply(e,t)).next())});import{g as lt,q as se,h as ie,w as ae,o as v,c as w,z as Nt,F,y as B,n as j,a as p,t as _,j as k,C as oe,u as re,B as xt,f as Pt,s as ue,H as le,e as ce,D as de,G as me,d as M,A as fe}from"./index-1785726778446.js";import{r as Ft,n as zt}from"./index-e33f4373-1785726778446.js";import{g as ge}from"./balanceApi-994e7f98-1785726778446.js";import{a as ye,c as pe,b as ve,l as be}from"./yakApi-185e6ecc-1785726778446.js";import{h as we,a as he,r as Bt,b as ke,t as Ht,y as _e,c as Ae,s as Re,d as Se,e as $e}from"./data-e7a95cad-1785726778446.js";import{p as Te,i as Ce,a as Ne,b as xe,k as Pe,c as Ee,d as Me,h as De,j as Le,l as Fe,e as ze}from"./data-0d4a0513-1785726778446.js";import{B as mt,b as st,c as Be,n as Et}from"./data-56996d99-1785726778446.js";import{f as He,h as Oe,i as je,j as qe,k as Ve,l as Ie,p as Ue,r as Ye,a as Ke}from"./data-aa09e6f1-1785726778446.js";import{i as We,h as Ge,s as Qe,j as Je,k as Xe,l as Ze,m as tn,p as en,n as nn,o as sn,q as an,r as on,t as rn,u as un}from"./data-6350cbbd-1785726778446.js";import"./index-e9f36657-1785726778446.js";import"./livestockData-36ec0ae2-1785726778446.js";import"./townshipBoundaries-8867fad4-1785726778446.js";import"./familyPastureData-f64283c3-1785726778446.js";const ln="/openApi";function cn(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function dn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const n=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw n.code=e==null?void 0:e.code,n}return zt(e)}function mn(s){return L(this,arguments,function*(e,t=window.location.hash||window.location.pathname,n="智慧管理"){const r=yield Ft(cn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:n},timeout:12e3}).then(dn);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(fn).filter(f=>f.rows.length)})}function fn(e,t){const n=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:gn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:yn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:n.map((s,r)=>({key:(s==null?void 0:s.key)||`${(s==null?void 0:s.name)||"row"}-${r}`,name:String((s==null?void 0:s.name)||`指标${r+1}`),value:pn(s==null?void 0:s.value),rawValue:s==null?void 0:s.value,unit:(s==null?void 0:s.unit)||(e==null?void 0:e.unit)||"",extra:(s==null?void 0:s.extra)||""})).filter(s=>s.name&&Number.isFinite(s.value))}}function gn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function yn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function pn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Mt="智慧管理",vn=80,bn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:Sn},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:_n},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:$n},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:Tn},{key:"industry",label:"牦牛全产业链",patterns:[/产业链|全产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Cn}];function wn(n){return L(this,arguments,function*(e,t={}){var N;const s=jt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],f=mn(s,r,Mt).catch(E=>(u.push(ft(E,"辅助图表暂不可用")),[])),b=kn(s),l=yield Promise.all(b.map(E=>E.build(s,u))),h=En(l.flat()),y=yield f,$=b.length===1&&((N=b[0])==null?void 0:N.key)==="overview",z=h.length?h:$?Ot():[],V=Bn(s,z),H={question:s,pageName:Mt,pagePath:r,scope:V,intents:b.map(E=>({key:E.key,label:E.label})),datasets:z,charts:y,notes:Mn(z,y,u),warnings:u};return P(R({},H),{insights:Fn(H)})})}function hn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],n=Array.isArray(e.insights)?e.insights:[],s=e.scope||"红原县",r=t.slice(0,4).map(l=>l.title).filter(Boolean),u=n.slice(0,5).map(l=>`- ${l.label}:${l.value}${l.note?`(${l.note})`:""}`),f=Ln(t),b=(e.notes||[]).slice(0,3).map(l=>`- ${l}`);return["**总体情况**",`已按${s}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(l=>`- ${l}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",f.length?"**核算依据**":"",...f,"",b.length?"**数据说明**":"",...b].filter(Boolean).join(` -`)}function kn(e){const t=bn.filter(n=>n.patterns.some(s=>s.test(e)));return t.length?t:[{key:"overview",label:"综合总览",build:()=>Ot()}]}function Ot(){return[c("home.topStats","首页核心指标",we,"平台业务汇总数据"),c("home.heroStats","资源与草畜概览",he,"平台业务汇总数据"),c("home.resourceComposition","资源构成",Bt,"平台业务汇总数据"),c("home.businessMatrix","业务矩阵",ke,"平台业务汇总数据"),c("home.townSynergy","乡镇林草湿与牦牛协同",Ht,"平台业务汇总数据"),c("home.yakTown","首页牦牛乡镇排行",_e,"平台业务汇总数据"),c("home.trade","首页交易结构",Ae,"平台业务汇总数据"),c("home.support","首页支撑产业",Re,"平台业务汇总数据"),c("home.dataFlow","数据流汇总",Se,"平台业务汇总数据"),c("home.centerOrbit","首页中心节点",$e,"平台业务汇总数据")]}function _n(n){return L(this,arguments,function*(e,t=[]){const[s,r,u,f]=yield Promise.allSettled([ye(),pe(),ve(),be()]);et(s,t,"牦牛乡镇存栏数据暂未取得"),et(r,t,"牦牛畜群结构数据暂未取得"),et(u,t,"牦牛预测数据暂未取得"),et(f,t,"牦牛交易数据暂未取得");const b=An(tt(s)),l=Dt(tt(r)),h=Rn(tt(u)),y=Dt(tt(f));return[c("yak.town","乡镇牦牛存栏分布",b,"牦牛管理接口数据"),c("yak.structureRows","畜群结构数量",l,"牦牛管理接口数据"),c("yak.forecastRows","牦牛月度预测",h,"牦牛管理接口数据"),c("yak.tradeImpact","交易影响",y,"牦牛交易接口数据")]})}function tt(e){return e.status==="fulfilled"&&Array.isArray(e.value)?e.value:[]}function et(e,t,n){e.status==="rejected"&&t.push(ft(e.reason,n))}function An(e=[]){return e.map((t,n)=>{var u,f,b,l;const s=String(t.name||t.areaName||t.area_name||t.townName||t.zoneName||"").trim(),r=G((l=(b=(f=(u=t.count)!=null?u:t.value)!=null?f:t.number)!=null?b:t.yakCount)!=null?l:t.yak_count);return{key:t.key||t.id||t.areaCode||t.area_code||`${s||"yak-town"}-${n}`,name:s,count:r,value:r,unit:t.unit||"头"}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,n)=>n.count-t.count)}function Dt(e=[]){return e.map((t,n)=>{var u,f,b,l,h;const s=String(t.name||t.label||t.type||t.key||"").trim(),r=G((h=(l=(b=(f=(u=t.count)!=null?u:t.value)!=null?f:t.number)!=null?b:t.yakCount)!=null?l:t.headCount)!=null?h:t.amount);return{key:t.key||t.id||`${s||"yak-metric"}-${n}`,name:s,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,n)=>n.count-t.count)}function Rn(e=[]){return e.map((t,n)=>{var u,f,b,l;const s=String(t.name||t.label||t.month||t.date||t.time||"").trim(),r=G((l=(b=(f=(u=t.stock)!=null?u:t.count)!=null?f:t.value)!=null?b:t.number)!=null?l:t.yakCount);return{key:t.key||t.id||`${s||"yak-forecast"}-${n}`,name:s,label:s,stock:r,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.stock))}function Sn(n){return L(this,arguments,function*(e,t=[]){let s=st;try{const h=yield ge();s=xn(h,st)}catch(h){t.push(ft(h,"草畜平衡实时结果暂未取得,已使用同版本兜底数据"))}const r=s.filter(h=>h.type==="county"),u=s.filter(h=>h.type==="town"),f=s.filter(h=>h.type==="village"),b=Nn(e,s),l=(b==null?void 0:b.name)||"红原县";return[c("balance.target",`${l}草畜平衡`,[nt(b)],"统一草畜平衡结果库"),c("balance.county","全县草畜平衡",r.map(nt),"统一草畜平衡结果库"),c("balance.town","乡镇草畜平衡",u.map(nt),"统一草畜平衡结果库"),c("balance.village","村级草畜平衡",f.map(nt),"统一草畜平衡结果库"),c("balance.params","草畜平衡核算口径",[Dn()],"统一草畜平衡结果库")]})}function $n(){return[c("pasture.core","牧户核心指标",Te,"平台业务汇总数据"),c("pasture.topStats","牧户顶部指标",Ce,"平台业务汇总数据"),c("pasture.town","牧户乡镇分布",Ne,"平台业务汇总数据"),c("pasture.online","牧户在线率",xe,"平台业务汇总数据"),c("pasture.structure","牧户年龄性别结构",Pe,"平台业务汇总数据"),c("pasture.age","牧户年龄结构",Ee,"平台业务汇总数据"),c("pasture.gender","牧户性别结构",Me,"平台业务汇总数据"),c("pasture.list","牧户示例列表",De,"平台业务汇总数据"),c("pasture.grassland","牧户草场资源",Le,"平台业务汇总数据"),c("pasture.season","牧户季节草场",Fe,"平台业务汇总数据"),c("pasture.map","牧户地图统计",ze,"平台业务汇总数据")]}function Tn(){return[c("ecology.parkTopStats","生态保护核心指标",He,"平台业务汇总数据"),c("ecology.parkCore","国家公园核心指标",Oe,"平台业务汇总数据"),c("ecology.parkTownRows","国家公园乡镇数据",je,"平台业务汇总数据"),c("ecology.restorationTopStats","生态修复项目汇总",qe,"平台业务汇总数据"),c("ecology.engineeringTopStats","生态工程分析指标",Ve,"平台业务汇总数据"),c("ecology.engineeringProjectFeatures","工程分析项目点",Ie,"平台业务汇总数据"),c("ecology.parkPanels","生态保护图表数据",ct(Ue),"平台业务汇总数据"),c("ecology.restorationPanels","生态修复图表数据",ct(Ye),"平台业务汇总数据"),c("ecology.engineeringAnalysisPanels","工程分析图表数据",ct(Ke),"平台业务汇总数据"),c("home.resourceComposition","林草湿资源构成",Bt,"平台业务汇总数据"),c("home.townSynergy","乡镇林草湿与牦牛协同",Ht,"平台业务汇总数据")]}function Cn(){return[c("industry.topStats","产业链核心指标",We,"平台业务汇总数据"),c("industry.overview","产业链总览",Ge,"平台业务汇总数据"),c("industry.stageComposition","产业阶段构成",Qe,"平台业务汇总数据"),c("industry.stageRows","产业阶段说明",Je,"平台业务汇总数据"),c("industry.breedingLevel","养殖水平",Xe,"平台业务汇总数据"),c("industry.forageSecurity","饲草保障能力",Ze,"平台业务汇总数据"),c("industry.value","产业价值指标",tn,"平台业务汇总数据"),c("industry.processingAbility","加工能力指标",en,"平台业务汇总数据"),c("industry.serviceCapability","服务能力指标",nn,"平台业务汇总数据"),c("industry.financial","金融服务",sn,"平台业务汇总数据"),c("industry.supportPoints","饲草储备点位",an,"平台业务汇总数据"),c("industry.processingPoints","加工屠宰点位",on,"平台业务汇总数据"),c("industry.points","产业链点位",rn,"平台业务汇总数据"),c("industry.list","产业链主体列表",un,"平台业务汇总数据")]}function Nn(e,t=st){return t.find(n=>n.type==="village"&&Lt(e,n.name))||t.find(n=>n.type==="town"&&Lt(e,n.name))||t.find(n=>n.type==="county")||Be}function xn(e=[],t=st){const n=new Map((Array.isArray(e)?e:[]).map(r=>[String(r.areaCode||r.area_code||r.areacode||""),r])),s=t.map(r=>{const u=String(r.areaCode||""),f=n.get(u);return f?(n.delete(u),Et(f,r)):R({},r)});return n.forEach((r,u)=>{const f=u.length===6?"county":u.length===9?"town":u.length===12?"village":"area";f!=="area"&&s.push(Et(r,R({key:`${f}-${u}`,type:f,areaCode:u,name:r.name||r.areaName||r.area_name||r.areaname},mt)))}),s}function c(e,t,n,s){return{id:e,title:t,suggestedView:Hn(t,n),source:{label:s||"平台展示数据"},rows:Pn(n)}}function Pn(e){return(Array.isArray(e)?e:[]).slice(0,vn).map(t=>dt(t)).filter(t=>t&&typeof t=="object")}function dt(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,30).map(n=>dt(n,t+1)):typeof e=="object"?Object.entries(e).reduce((n,[s,r])=>(["icon","color","tone","image","cover","component"].includes(s)||(n[s]=dt(r,t+1)),n),{}):String(e)}function En(e=[]){const t=new Set;return e.filter(n=>{var s;return!((s=n==null?void 0:n.rows)!=null&&s.length)||t.has(n.id)?!1:(t.add(n.id),!0)})}function Mn(e,t,n){return[...n].filter(Boolean)}function Dn(){return P(R({},mt),{hierarchy:"村级结果汇总至乡镇,乡镇结果汇总至县级",disclosure:"展示核算阶段、过程数据、差额、比例和等级,不展示计算公式"})}function nt(e={}){const V=e||{},{capacityPerMu:t,capacity_per_mu:n,capacitypermu:s,muPerCapacity:r,mu_per_capacity:u,mupercapacity:f,actualMuPerYak:b,actual_mu_per_yak:l,actualmuperyak:h,bearingCoefficient:y,pressureFactor:$}=V;return Ct(V,["capacityPerMu","capacity_per_mu","capacitypermu","muPerCapacity","mu_per_capacity","mupercapacity","actualMuPerYak","actual_mu_per_yak","actualmuperyak","bearingCoefficient","pressureFactor"])}function Ln(e=[]){var l,h;const t=(h=(l=e.find(y=>y.id==="balance.target"))==null?void 0:l.rows)==null?void 0:h[0],n=G(t==null?void 0:t.bearingCapacity),s=G(t==null?void 0:t.livestockCapacity);if(!Number.isFinite(n)||!Number.isFinite(s)||n<=0)return[];const r=s-n,u=r/n*100,f=s/n*100,b=t.level||"以统一结果库为准";return[`- 理论载畜量 ${q(n)} 头,实际载畜量 ${q(s)} 头,超载数量 ${q(r)} 头。`,`- 核定超载率 ${q(u)}%,承载利用率 ${q(f)}%,平衡等级为“${b}”。`,`- 数据版本 ${t.scenarioVersion||mt.scenarioVersion},县、乡镇和村级数据采用同一结果口径。`]}function Fn(e){const t=[];return(e.datasets||[]).some(n=>{const s=zn(n);return s&&t.push(s),t.length>=5}),(e.charts||[]).some(n=>{var l,h;const s=(n.rows||[]).filter(y=>Number.isFinite(Number(y.value)));if(!s.length)return!1;const r=s.slice().sort((y,$)=>Number($.value||0)-Number(y.value||0)),u=n.unit==="%"||/率|占比|比例/.test(n.title||""),f=u?(l=r[0])==null?void 0:l.value:s.reduce((y,$)=>y+Number($.value||0),0),b=u&&((h=r[0])!=null&&h.name)?`${n.title||"关联图表"}:${r[0].name}`:n.title||"关联图表";return t.push({label:b,value:`${q(f)}${n.unit||""}`,note:s.length>1?u?"数值较高项":`覆盖 ${s.length} 项`:""}),t.length>=5}),t.slice(0,5)}function zn(e){var f,b,l,h;const t=(e.rows||[]).find(Boolean);if(!t)return null;const n=t.name||t.areaName||t.zh||t.label||e.title,s=t.overloadRate!==void 0||t.overloadrate!==void 0,r=s?(f=t.overloadRate)!=null?f:t.overloadrate:(h=(l=(b=t.value)!=null?b:t.yakNumber)!=null?l:t.livestockCapacity)!=null?h:t.areaRange;if(r==null||r==="")return null;const u=t.unit||(s?"%":t.yakNumber!==void 0||t.livestockCapacity!==void 0?"头":"");return{label:s?`${n}超载率`:n,value:`${q(r)}${u}`,note:s&&t.level||e.title}}function ct(e={}){return Object.entries(e||{}).flatMap(([t,n])=>(Array.isArray(n)?n:[]).flatMap(s=>(Array.isArray(s==null?void 0:s.rows)?s.rows:Array.isArray(s==null?void 0:s.data)?s.data:[]).map(u=>R({groupKey:t,panelKey:s.key,panelTitle:s.title},u))))}function Bn(e,t){var s,r;const n=(r=(s=t.find(u=>u.id==="balance.target"))==null?void 0:s.rows)==null?void 0:r[0];return n!=null&&n.name?n.name:n!=null&&n.areaName?n.areaName:"红原县"}function Hn(e,t){return!Array.isArray(t)||t.length<=1?"metrics":/结构|构成|占比|比例/.test(e)?"pie":/趋势|预测/.test(e)?"line":"bar-table"}function Lt(e,t){const n=jt(e),s=String(t||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(t&&(n.includes(t)||s&&n.includes(s)))}function jt(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function ft(e,t){const n=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(n)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(n)?`${t},接口响应超时`:t}function G(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}function q(e){const t=Number(String(e).replace(/,/g,""));return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:2}):e||"--"}const On="/openApi",jn=12e4,qn=8e3,Vn=12,In=500;function Un(e){return/^https?:\/\//.test(e)?e:`${On}${e.startsWith("/")?e:`/${e}`}`}function Yn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const n=new Error((e==null?void 0:e.message)||(e==null?void 0:e.msg)||"HTML界面生成失败");throw n.code=e==null?void 0:e.code,n}return zt(e)}function Kn(){return L(this,arguments,function*({question:e,answer:t="",charts:n=[],datasets:s=[],context:r=null,pagePath:u=window.location.hash||window.location.pathname,pageName:f="智慧管理"}={}){const b=Wn({question:e,answer:t,charts:n,datasets:s,context:r}),l=yield Ft(Un("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:e,pagePath:u,pageName:f,dataJson:b}),timeout:11e4}).then(Yn),h=String((l==null?void 0:l.provider)||""),y=String((l==null?void 0:l.model)||"");if(h.toLowerCase()!=="deepseek"||!y.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const $=Xn((l==null?void 0:l.html)||(l==null?void 0:l.content)||l);if(!$)throw new Error("代码模型没有返回完整HTML");if(Zn($))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return P(R({},l),{html:$})})}function Wn({question:e,answer:t,charts:n,datasets:s,context:r}){const u={question:String(e||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(t||"").slice(0,qn),context:Gn(r),datasets:[...Qn(n),...Jn(s)]},f=JSON.stringify(u);if(f.length>jn){const b=new Error("汇总数据超过120000字符,请先缩小查询范围");throw b.code="ARTIFACT_DATA_TOO_LARGE",b}return f}function Gn(e){if(!e||typeof e!="object")return null;const{question:t,pageName:n,pagePath:s,scope:r,intents:u,notes:f,warnings:b,insights:l}=e;return it({question:t,pageName:n,pagePath:s,scope:r,intents:u,notes:f,warnings:b,insights:l})}function Qn(e=[]){return(Array.isArray(e)?e:[]).slice(0,6).map((t,n)=>({id:(t==null?void 0:t.id)||`chart-${n+1}`,title:(t==null?void 0:t.title)||`统计数据${n+1}`,suggestedView:(t==null?void 0:t.type)||"bar",unit:(t==null?void 0:t.unit)||"",subtitle:(t==null?void 0:t.subtitle)||"",source:(t==null?void 0:t.source)||{},rows:qt(t==null?void 0:t.rows)}))}function Jn(e=[]){return(Array.isArray(e)?e:[]).slice(0,Vn).map((t,n)=>({id:(t==null?void 0:t.id)||`dataset-${n+1}`,title:(t==null?void 0:t.title)||(t==null?void 0:t.name)||`汇总数据${n+1}`,suggestedView:(t==null?void 0:t.suggestedView)||(t==null?void 0:t.type)||"auto",unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:qt((t==null?void 0:t.rows)||(t==null?void 0:t.data)||t)}))}function qt(e){return(Array.isArray(e)?e:[]).slice(0,In).map(t=>it(t))}function it(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,50).map(n=>it(n,t+1)):typeof e=="object"?Object.entries(e).reduce((n,[s,r])=>(n[s]=it(r,t+1),n),{}):String(e)}function Xn(e){let t=String(e||"").trim();t.startsWith("```")&&(t=t.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const n=t.match(/");return n&&s>=n.index&&(t=t.slice(n.index,s+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),s=(t.match(/n.includes(f)).length;return s>=2&&u>=4||s>=1&&u>=6}function ts(e){const t=String(e||"").trim();if(!t||typeof DOMParser=="undefined")return"";const n=new DOMParser().parseFromString(t,"text/html"),s=n.createElement("script");return s.textContent=` - (() => { - const notify = (type, message = "") => { - window.parent.postMessage({ source: "smart-artifact", type, message: String(message).slice(0, 240) }, "*"); - }; - window.addEventListener("error", (event) => notify("runtime-error", event.message || "界面运行异常")); - window.addEventListener("unhandledrejection", (event) => notify("runtime-error", event.reason?.message || event.reason || "界面运行异常")); - window.addEventListener("DOMContentLoaded", () => notify("ready")); - })(); - `,n.head.prepend(s),` -${n.documentElement.outerHTML}`}const es={class:"wisdom-management"},ns={key:0,class:"wisdom-side wisdom-side-left"},ss={key:0,class:"wisdom-side-header"},is={key:0},as={key:1,class:"wisdom-side-metrics"},os={key:0},rs=["innerHTML"],us={key:3,class:"wisdom-side-actions"},ls=["disabled","onClick"],cs={key:1,class:"wisdom-side wisdom-side-right"},ds={key:0,class:"wisdom-side-header"},ms={key:0},fs={key:2,class:"wisdom-side-metrics"},gs={key:0},ys=["innerHTML"],ps={key:4,class:"wisdom-side-actions"},vs=["disabled","onClick"],bs={key:2,class:"wisdom-artifact-workspace"},ws={class:"wisdom-artifact-header"},hs={class:"wisdom-artifact-heading"},ks={class:"wisdom-artifact-tools"},_s=["disabled"],As={class:"wisdom-artifact-body"},Rs={key:0,class:"wisdom-artifact-building"},Ss={class:"wisdom-artifact-building__intro"},$s=["srcdoc"],Ts={key:2,class:"wisdom-artifact-error"},Cs=["disabled"],Ns={key:0,class:"wisdom-empty-state"},xs={key:0,class:"wisdom-message-mark"},Ps={class:"wisdom-bubble"},Es={key:0,class:"wisdom-digesting"},Ms=["innerHTML"],Ds={key:2,class:"wisdom-stream-caret"},Ls={key:3,class:"wisdom-suggestion-list"},Fs=["disabled","onClick"],zs={class:"wisdom-input-shell"},Bs=["disabled"],Hs=["disabled","title","aria-label"],Os=["disabled"],js={key:0,class:"wisdom-button-loading"},ni={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=de({loader:()=>me(()=>import("./SmartChartRenderer-d940c77a-1785726778446.js"),["./SmartChartRenderer-d940c77a-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./index.esm.min-4f309085-1785726778446.js","./SmartChartRenderer-7a3a96b9-balabala-1785726778446.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),n=e,s=M(""),r=M([]),u=M(!1),f=M(null),b=M(null),l=M([]),h=M([]),y=M(gt()),$=lt(()=>y.value.status!=="idle"),z=lt(()=>["collecting","generating"].includes(y.value.status)),V=lt(()=>y.value.status==="collecting"?"汇总数据":y.value.status==="generating"?"生成页面":y.value.status==="ready"?"DeepSeek生成":y.value.status==="error"?"生成失败":y.value.status==="waiting"?"等待选择":"待生成"),H=M(!1),N=M(!1),E=M("");let I=null,x=null,O=0;const U=M(null);se(()=>{Kt(),window.addEventListener("message",bt)}),ie(()=>{at(),J(),O+=1,window.removeEventListener("message",bt)}),ae(()=>n.active,i=>{i||(at(),J(),O+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?P(R({},o),{streaming:!1,digesting:!1}):o))});function Q(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function gt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Vt(i){O+=1,U.value=null,y.value=P(R({},gt()),{status:"collecting",title:yt(i),question:i})}function yt(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function pt(i){return L(this,null,function*(){const o={question:(i==null?void 0:i.question)||y.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};U.value=o;const a=++O;y.value=P(R({},y.value),{status:"generating",title:yt(o.question),question:o.question,html:"",error:"",model:""});try{const d=yield Kn(o);if(a!==O)return{stale:!0};const m=ts(d.html);if(!m)throw new Error("生成页面内容为空");return y.value=P(R({},y.value),{status:"ready",html:m,error:"",model:d.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:d}}catch(d){if(a!==O)return{stale:!0};const m=At(d,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",d),y.value=P(R({},y.value),{status:"error",html:"",error:m,model:"",renderKey:Date.now()}),{ok:!1,message:m,error:d}}})}function vt(){!U.value||z.value||pt(U.value)}function It(i){O+=1,y.value=P(R({},y.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Ut(){y.value.status!=="ready"&&(y.value=P(R({},y.value),{status:"ready"}))}function bt(i){var o,a;i.source!==((o=b.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(y.value=P(R({},y.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function wt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function Yt(i){return wt(i).trim()}function Kt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;H.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{N.value=!0,E.value=""},x.onresult=o=>{const d=Array.from(o.results||[]).map(m=>{var g;return((g=m==null?void 0:m[0])==null?void 0:g.transcript)||""}).join("").trim();d&&(s.value=d)},x.onerror=o=>{N.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{N.value=!1})}function Wt(){if(!(!x||u.value)){if(N.value){J();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",N.value=!1}}}function J(){if(!(!x||!N.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{N.value=!1}}function Y(){return L(this,arguments,function*(i=s.value){const o=Yt(i);if(!o||u.value)return;J();const a={id:Q(),role:"user",text:o},d={id:Q(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,d],s.value="",u.value=!0,Vt(o),yield Rt(),yield Gt(o,d.id)})}function Gt(i,o){return L(this,null,function*(){var a;K(o,{digestText:"生成中"});try{const d=window.location.hash||window.location.pathname,m=yield wn(i,{pagePath:d}),g=hn(m),A=(a=m.insights)!=null&&a.length?m.insights:kt(m.charts||[]);K(o,{digesting:!0,digestText:"生成中",insights:A,suggestions:[],allowFollowUp:!0}),ht({question:i,answer:g,charts:m.charts||[],insights:A,suggestions:[]}),_t(o,Qt()),pt({question:i,answer:g,charts:m.charts||[],datasets:m.datasets||[],context:m})}catch(d){const m=At(d,"上下文数据整理失败,请稍后重试。");ht({question:i,answer:m,charts:[],insights:[],suggestions:[]}),It(m),_t(o,m)}})}function Qt(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` -`)}function X(i){const o=Number(String(i).replace(/,/g,""));return Number.isFinite(o)?o.toLocaleString("zh-CN",{maximumFractionDigits:2}):i||"--"}function ht({question:i,answer:o,charts:a=[],insights:d=[],suggestions:m=[],aiPanels:g}={}){const A=(g==null?void 0:g.leftPanels)||[],T=(g==null?void 0:g.rightPanels)||[];if(A.length||T.length){l.value=A,h.value=T;return}const S=Jt({question:i,answer:o,charts:a,insights:d,suggestions:m});l.value=S.left,h.value=S.right}function Jt({question:i,answer:o,charts:a=[],insights:d=[],suggestions:m=[]}={}){const g=[],A=[],T=(d.length?d:kt(a)).map(S=>({label:S.label,value:S.value,note:S.note}));return!a.length&&!T.length?{left:g,right:A}:(T.length&&g.push({id:`summary-${Q()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:T.slice(0,4),actions:[]}),a.slice(0,2).forEach((S,D)=>{A.push({id:`chart-${S.id||D}-${Q()}`,type:"chart",kicker:D===0?"可视分析":"关联图表",title:S.title||`统计图表${D+1}`,badge:S.unit||"",chart:S,items:[],actions:[],text:""})}),{left:g.slice(0,2),right:A.slice(0,2)})}function kt(i=[]){const o=[];return i.slice(0,2).forEach(a=>{var W;const d=(a.rows||[]).map(C=>P(R({},C),{value:Number(C.value)})).filter(C=>C.name&&Number.isFinite(C.value));if(!d.length)return;const m=a.unit||((W=d.find(C=>C.unit))==null?void 0:W.unit)||"",g=d.slice().sort((C,ut)=>ut.value-C.value),A=d.reduce((C,ut)=>C+ut.value,0),T=A/d.length,S=g[0],D=g[g.length-1];o.push({label:"最高",value:`${S.name} ${X(S.value)}${m}`,note:a.title}),d.length>2&&o.push({label:a.type==="pie"?"占比项":"最低",value:`${D.name} ${X(D.value)}${m}`,note:a.type==="pie"?"最小结构项":"低值区域"}),o.push({label:"合计",value:`${X(A)}${m}`,note:d.length>1?`覆盖 ${d.length} 项`:a.title}),a.type!=="pie"&&d.length>1&&o.push({label:"均值",value:`${X(T)}${m}`,note:"按当前图表项计算"})}),o.slice(0,4)}function K(i,o,a=!0){r.value=r.value.map(d=>d.id===i?R(R({},d),o):d),a&&Rt()}function _t(i,o){K(i,{digesting:!1}),Xt(i,o)}function At(i,o){const a=String((i==null?void 0:i.message)||"");return(i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"||(i==null?void 0:i.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(a)?"当前登录状态已失效,请重新登录后查询。":(i==null?void 0:i.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(a)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(i==null?void 0:i.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(a)?"本次分析已中断,请重新提交。":(i==null?void 0:i.code)==="HTTP_404"||(i==null?void 0:i.status)===404||/HTTP 404/i.test(a)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(a)||/[a-zA-Z]{4,}/.test(a)?o:a||o}function Xt(i,o){at();const a=wt(o),d=a.length>1200?36:a.length>700?24:14;let m=0;K(i,{fullText:a,visibleText:"",streaming:!0,charts:[]});const g=()=>{if(m=Math.min(m+d,a.length),K(i,{visibleText:a.slice(0,m),streaming:m=a.length){I=null,u.value=!1;return}I=window.setTimeout(g,18)};I=window.setTimeout(g,0)}function at(){I&&(window.clearTimeout(I),I=null)}function ot(i){const o=Zt(i).split(/\r?\n/),a=[];let d=[],m=!1;const g=()=>{d.length&&(a.push(`<${m?"ol":"ul"}>${d.map(A=>`
  • ${rt(A)}
  • `).join("")}`),d=[],m=!1)};return o.forEach(A=>{const T=A.trim();if(!T){g();return}const S=T.match(/^#{1,4}\s+(.+)$/)||T.match(/^\*\*(.+)\*\*$/);if(S){g(),a.push(`

    ${rt(S[1])}

    `);return}const D=T.match(/^\d+[.)、]\s+(.+)$/),W=T.match(/^[-*]\s+(.+)$/);if(D||W){const C=!!D;d.length&&m!==C&&g(),m=C,d.push(D?D[1]:W[1]);return}g(),a.push(`

    ${rt(T)}

    `)}),g(),a.join("")}function rt(i){return i.replace(/\*\*([^*]+)\*\*/g,"$1")}function Zt(i){return String(i||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Rt(){return L(this,null,function*(){yield fe(),window.requestAnimationFrame(()=>{f.value&&(f.value.scrollTop=f.value.scrollHeight)})})}return(i,o)=>(v(),w("div",es,[o[16]||(o[16]=Nt('',1)),l.value.length&&!$.value?(v(),w("aside",ns,[(v(!0),w(F,null,B(l.value,a=>{var d,m;return v(),w("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(v(),w("header",ss,[p("div",null,[p("span",null,_(a.kicker),1),p("strong",null,_(a.title),1)]),a.badge?(v(),w("em",is,_(a.badge),1)):k("",!0)])),(d=a.items)!=null&&d.length?(v(),w("div",as,[(v(!0),w(F,null,B(a.items,g=>(v(),w("div",{key:`${a.id}-${g.label}`,class:"wisdom-side-metric"},[p("span",null,_(g.label),1),p("strong",null,_(g.value),1),g.note?(v(),w("em",os,_(g.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(v(),w("div",{key:2,class:"wisdom-side-text",innerHTML:ot(a.text)},null,8,rs)):k("",!0),(m=a.actions)!=null&&m.length?(v(),w("div",us,[(v(!0),w(F,null,B(a.actions,g=>(v(),w("button",{key:g.question,type:"button",disabled:u.value,onClick:A=>Y(g.question)},_(g.label),9,ls))),128))])):k("",!0)],2)}),128))])):k("",!0),h.value.length&&!$.value?(v(),w("aside",cs,[(v(!0),w(F,null,B(h.value,a=>{var d,m;return v(),w("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(v(),w("header",ds,[p("div",null,[p("span",null,_(a.kicker),1),p("strong",null,_(a.title),1)]),a.badge?(v(),w("em",ms,_(a.badge),1)):k("",!0)])),a.chart?(v(),oe(re(t),{key:1,class:"wisdom-side-chart",chart:a.chart},null,8,["chart"])):k("",!0),(d=a.items)!=null&&d.length?(v(),w("div",fs,[(v(!0),w(F,null,B(a.items,g=>(v(),w("div",{key:`${a.id}-${g.label}`,class:"wisdom-side-metric"},[p("span",null,_(g.label),1),p("strong",null,_(g.value),1),g.note?(v(),w("em",gs,_(g.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(v(),w("div",{key:3,class:"wisdom-side-text",innerHTML:ot(a.text)},null,8,ys)):k("",!0),(m=a.actions)!=null&&m.length?(v(),w("div",ps,[(v(!0),w(F,null,B(a.actions,g=>(v(),w("button",{key:g.question,type:"button",disabled:u.value,onClick:A=>Y(g.question)},_(g.label),9,vs))),128))])):k("",!0)],2)}),128))])):k("",!0),$.value?(v(),w("section",bs,[p("header",ws,[p("div",hs,[o[4]||(o[4]=p("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),p("div",null,[o[3]||(o[3]=p("small",null,"专题分析",-1)),p("strong",null,_(y.value.title),1)])]),p("div",ks,[p("span",{class:j(["wisdom-artifact-status",`is-${y.value.status}`])},[o[5]||(o[5]=p("i",null,null,-1)),xt(_(V.value),1)],2),y.value.status==="ready"||y.value.status==="error"?(v(),w("button",{key:0,type:"button",disabled:z.value||!U.value,title:"重新生成当前界面",onClick:vt}," 重新生成 ",8,_s)):k("",!0)])]),p("div",As,[z.value?(v(),w("div",Rs,[p("div",Ss,[o[6]||(o[6]=p("span",{class:"wisdom-artifact-building__spinner"},null,-1)),p("div",null,[p("strong",null,_(y.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),o[7]||(o[7]=Nt('
    ',3))])):y.value.html?(v(),w("iframe",{key:y.value.renderKey,ref_key:"artifactFrameRef",ref:b,class:"wisdom-artifact-frame",srcdoc:y.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:Ut},null,40,$s)):(v(),w("div",Ts,[o[8]||(o[8]=p("strong",null,"专题分析页面暂未生成",-1)),p("p",null,_(y.value.error||"当前数据不足以形成专题分析页面。"),1),p("button",{type:"button",disabled:!U.value,onClick:vt},"重新生成",8,Cs)]))])])):k("",!0),p("main",{class:j(["wisdom-chat",{"has-artifact":$.value}])},[p("div",{ref_key:"dialogueRef",ref:f,class:j(["wisdom-dialogue",{"is-empty":!r.value.length}])},[r.value.length?k("",!0):(v(),w("section",Ns,[...o[9]||(o[9]=[p("div",{class:"wisdom-empty-mark"},[p("span"),p("strong",null,"AI")],-1),p("h2",null,"智慧辅助分析",-1)])])),(v(!0),w(F,null,B(r.value,a=>{var d;return v(),w("article",{key:a.id,class:j(["wisdom-message",`is-${a.role}`])},[a.role==="assistant"?(v(),w("div",xs,[...o[10]||(o[10]=[p("span",null,"智",-1)])])):k("",!0),p("div",Ps,[a.role==="user"?(v(),w(F,{key:0},[xt(_(a.text),1)],64)):(v(),w(F,{key:1},[a.digesting?(v(),w("div",Es,[o[11]||(o[11]=p("span",null,null,-1)),o[12]||(o[12]=p("span",null,null,-1)),o[13]||(o[13]=p("span",null,null,-1)),p("em",null,_(a.digestText||"正在汇总分析"),1)])):k("",!0),a.visibleText?(v(),w("div",{key:1,class:"wisdom-answer",innerHTML:ot(a.visibleText)},null,8,Ms)):k("",!0),a.streaming?(v(),w("span",Ds)):k("",!0),(d=a.suggestions)!=null&&d.length&&(a.allowFollowUp||!a.digesting&&!a.streaming)?(v(),w("div",Ls,[(v(!0),w(F,null,B(a.suggestions,m=>(v(),w("button",{key:m.question,type:"button",disabled:u.value,onClick:g=>Y(m.question)},_(m.label),9,Fs))),128))])):k("",!0)],64))])],2)}),128))],2),p("form",{class:"wisdom-input-bar",onSubmit:o[2]||(o[2]=Pt(a=>Y(),["prevent"]))},[p("div",zs,[o[15]||(o[15]=p("span",{class:"wisdom-input-icon"},null,-1)),ue(p("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>s.value=a),disabled:u.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:o[1]||(o[1]=ce(Pt(a=>Y(),["prevent"]),["enter"]))},null,40,Bs),[[le,s.value]]),p("button",{type:"button",class:j(["wisdom-voice-button",{"is-listening":N.value}]),disabled:u.value||!H.value,title:H.value?N.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":H.value?N.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:Wt},[...o[14]||(o[14]=[p("span",null,null,-1)])],10,Hs),p("button",{class:"wisdom-submit-button",type:"submit",disabled:u.value||!s.value.trim()},[u.value?(v(),w("span",js)):k("",!0),p("span",null,_(u.value?"分析中":"发送"),1)],8,Os)])],32)],2)]))}};export{ni as default}; diff --git a/docs/assets/index-81cb110f-1785726778446.js b/docs/assets/index-2c7e229e-1785858872961.js similarity index 95% rename from docs/assets/index-81cb110f-1785726778446.js rename to docs/assets/index-2c7e229e-1785858872961.js index 6f60c51..aa099f7 100644 --- a/docs/assets/index-81cb110f-1785726778446.js +++ b/docs/assets/index-2c7e229e-1785858872961.js @@ -1 +1 @@ -var Qt=Object.defineProperty,Xt=Object.defineProperties;var Zt=Object.getOwnPropertyDescriptors;var Qe=Object.getOwnPropertySymbols;var Jt=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable;var Xe=(l,a,r)=>a in l?Qt(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r,I=(l,a)=>{for(var r in a||(a={}))Jt.call(a,r)&&Xe(l,r,a[r]);if(Qe)for(var r of Qe(a))en.call(a,r)&&Xe(l,r,a[r]);return l},R=(l,a)=>Xt(l,Zt(a));var V=(l,a,r)=>new Promise((k,S)=>{var f=y=>{try{w(r.next(y))}catch(C){S(C)}},u=y=>{try{w(r.throw(y))}catch(C){S(C)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,a)).next())});import{g as Ze}from"./index-e9f36657-1785726778446.js";import{A as tn}from"./assets-5661f996-1785726778446.js";/* empty css */import{f as nn,c as Je,b as sn,g as et}from"./townshipBoundaries-8867fad4-1785726778446.js";import{g as an,b as rn,a as ln,c as un}from"./openApi-70e9578a-1785726778446.js";import{c as on,F as cn,g as dn,a as vn}from"./featurePanelLayout-b5234356-1785726778446.js";import{q as tt,r as fn,s as gn}from"./screen2Standard-f38b9a2d-1785726778446.js";import{M as mn}from"./index-7b548b42-1785726778446.js";import{_ as hn}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{_ as wn}from"./LayerPanel-921f9e3d-1785726778446.js";import{a as nt,_ as yn}from"./FeatureInfoPanel-e0a0d741-1785726778446.js";import{_ as bn,g as c,o as p,c as L,a as b,t as xe,F as Ne,y as Pe,n as ve,K as fe,d as m,q as kn,h as pn,w as q,A as ee,b as G,C as st,x as at,u as Te,j as de,z as _n}from"./index-1785726778446.js";import{_ as it}from"./index-7b46d381-1785726778446.js";import"./index-e33f4373-1785726778446.js";import"./geoserver-d05ee620-1785726778446.js";const Ln="/jsyApi/api/map/ndvi_timeline";function Sn(){return V(this,null,function*(){const l=yield fetch(Ln,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const a=yield l.json().catch(()=>({}));if((a==null?void 0:a.code)===401||(a==null?void 0:a.code)==="401"){const k=new Error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(a==null?void 0:a.data)?a.data:Array.isArray(a)?a:[];return Tn(r)})}function Tn(l=[]){const a=new Set;return l.map((r,k)=>{const S=xn(rt(r,["url","layerName","layer_name","layer","name"]));if(!S)return null;const f=rt(r,["date","month","time","label"])||S,u=Nn(f);return{key:`${S}-${f||k}`,label:u,date:String(f),layerName:S,source:r}}).filter(Boolean).filter(r=>a.has(r.key)?!1:(a.add(r.key),!0))}function rt(l,a){for(const r of a)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function xn(l){const a=String(l||"").trim();return a?a.includes(":")||/^https?:\/\//i.test(a)?a:`ne:${a}`:""}function Nn(l){const a=String(l||"").trim();if(!a)return"";const r=a.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:a}const Pn={class:"grassland-ndvi-timeline-head"},Mn={key:0,class:"grassland-ndvi-timeline-state"},Cn={key:1,class:"grassland-ndvi-timeline-state"},$n={key:2,class:"grassland-ndvi-timeline-body"},Fn=["aria-checked","title","onClick"],An={class:"grassland-ndvi-timeline-label"},In=42,Vn=28,En={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:a}){const r=l,k=a,S=c(()=>r.items.findIndex(d=>d.key===r.modelValue)),f=c(()=>S.value===-1?Math.max(0,r.items.length-1):S.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),C=c(()=>y.value?Vn:In),te=c(()=>Y(f.value)),ne=c(()=>j(f.value));function K(d){if(!r.items.length)return;const v=Math.min(r.items.length-1,Math.max(0,f.value+d));k("update:modelValue",r.items[v].key)}function se(d){!d||d.key===r.modelValue||k("update:modelValue",d.key)}function U(d){return!r.items.length||d<0?0:r.items.length===1?.5:d/(r.items.length-1)}function Y(d){const v=U(d),P=_(v*100),h=C.value*(1-v*2);return`calc(${P}% ${h<0?"-":"+"} ${_(Math.abs(h))}px)`}function j(d){const v=U(d);return v<=0?"0px":`calc(${_(v*100)}% - ${_(C.value*2*v)}px)`}function _(d){return Number(d.toFixed(4)).toString()}return(d,v)=>{var P;return p(),L("div",{class:ve(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Pn,[v[2]||(v[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,xe(((P=u.value)==null?void 0:P.label)||w.value),1)]),l.loading?(p(),L("div",Mn,"加载月份数据")):l.items.length?(p(),L("div",$n,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:v[0]||(v[0]=h=>K(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:fe({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${C.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[v[4]||(v[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),v[5]||(v[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),v[6]||(v[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(p(!0),L(Ne,null,Pe(l.items,(h,D)=>{var z,T;return p(),L("button",{key:h.key,class:ve(["grassland-ndvi-timeline-mark",{"is-active":h.key===((z=u.value)==null?void 0:z.key),"is-past":D<=f.value,"is-staggered":y.value&&D%2===1}]),type:"button",role:"radio","aria-checked":h.key===((T=u.value)==null?void 0:T.key),style:fe({left:Y(D)}),title:h.date,onClick:Q=>se(h)},[v[3]||(v[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",An,xe(h.label),1)],14,Fn)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:v[1]||(v[1]=h=>K(1))},"›")])):(p(),L("div",Cn,"暂无月份数据"))],2)}}},Bn=bn(En,[["__scopeId","data-v-3b86bca9"]]),Rn={class:"forest-grass-wet"},qn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},Gn={class:"fgw-left"},jn={class:"fgw-side-stack is-left"},Dn={class:"fgw-right"},zn={class:"fgw-side-stack is-right"},Wn={key:1,class:"fgw-ndvi-timeline"},On={class:"fgw-bottom-topic"},Hn={key:0,class:"loading"},Kn={class:"loading-progress"},Un={class:"value"},ds={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:a,emit:r}){const k=l,S=r,f=m(null),u=m(nn[0].key),w=m(""),y=m([]),C=m([]),te=m("idle"),ne=m(!1),K=m({title:"业务统计",rows:[]}),se=m({title:"业务统计",rows:[]}),U=m([]),Y=m([]),j=m(null),_=m(""),d=m(null),v=m(!1),P=m(!1),h=m(null),D=m(0),z=m(k.showLoading),T=m([]),Q=m("idle"),$=m(""),E=m({type:"idle",text:"等待 GeoServer 图层加载"});let X=null,M=!1,ge=!1,W=!1,F=null,Me=0,Ce=0,me=0,O=0,ae=0,ie=!1,he=!1;const lt={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},ut=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),ot=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ct=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),dt=c(()=>Je(u.value)),vt=c(()=>sn(u.value)),re=c(()=>ot.map(e=>St(e)).filter(Boolean)),le=c(()=>u.value==="overview"?re.value:vt.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),Z=c(()=>w.value?et(u.value,w.value):null),J=c(()=>u.value==="grassland"&&w.value==="grassland-health"),ft=c(()=>J.value),gt=c(()=>T.value.find(e=>e.key===$.value)||null),H=c(()=>{var e;return(((e=Z.value)==null?void 0:e.legends)||[]).find(t=>t.key===_.value)||null}),mt=c(()=>re.value.flatMap(e=>e.legends||[])),we=c(()=>{var e;return u.value==="overview"?mt.value:((e=Z.value)==null?void 0:e.legends)||[]}),ht=c(()=>le.value.length>0),Fe=c(()=>le.value.length<=6&&we.value.length<=8),Ae=c(()=>{if(!Fe.value)return 430;const e=Math.max(1,le.value.length),t=Math.max(1,Math.ceil(we.value.length/2)),n=e*34+Math.max(0,e-1)*5,s=30+t*28;return Math.max(220,Math.min(430,72+n+s))}),wt=c(()=>{var s;if(u.value==="overview"){const i=new Set(y.value),o=re.value.filter(g=>i.has(g.key));return Tt(o)}const e=Z.value;if(!e)return null;let t=(s=H.value)!=null&&s.cqlFilter?R(I({},e),{cqlFilter:H.value.cqlFilter,activeLegend:H.value,name:H.value.name||e.name}):e;const n=gt.value;return J.value&&(n!=null&&n.layerName)&&(t=R(I({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ie=m(typeof window=="undefined"?1080:window.innerHeight),Ve=tt.sideCardWidth;c(()=>tt.sideCardGap);const Ee=c(()=>fn(Ie.value)),yt=c(()=>gn(Ee.value,2)),ye=c(()=>!!h.value),bt=cn,Be=c(()=>on({point:h.value?Lt(h.value):null,rowCount:d.value?Le(d.value):0,loading:P.value,empty:v.value||!d.value})),kt=c(()=>Be.value.height),pt=c(()=>Be.value.style),_t=c(()=>{var n,s,i,o,g,A,N;const e=((s=(n=d.value)==null?void 0:n.layer)==null?void 0:s.overviewTopicKey)||((o=(i=d.value)==null?void 0:i.layer)==null?void 0:o.topicKey)||u.value;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情"}[e]||`${((A=(g=d.value)==null?void 0:g.layer)==null?void 0:A.name)||((N=dt.value)==null?void 0:N.name)||"资源"}详情`});function Lt(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function be(){Ie.value=typeof window=="undefined"?1080:window.innerHeight}function St({topicKey:e,layerKey:t,name:n,legendName:s}){var g;const i=et(e,t);if(!i||i.key!==t)return null;const o=((g=i.legends)==null?void 0:g[0])||{};return R(I({},i),{name:n,overviewTopicKey:e,legends:[R(I({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function Tt(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return R(I({},n),{overlayLayers:s})}kn(()=>{be(),window.addEventListener("resize",be),document.addEventListener("pointerdown",He,!0),xt(),pe(u.value,""),ue(u.value,"")}),pn(()=>{M=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",be),document.removeEventListener("pointerdown",He,!0)}),q(u,e=>{ie=!0,_.value="",w.value="",e==="overview"&&(y.value=[]),x(),E.value={type:"idle",text:"等待 GeoServer 图层加载"},pe(e,""),ue(e,"",null),ee(()=>{ie=!1})}),q(w,()=>{ie||(he=!0,_.value="",x(),E.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&pe(u.value,w.value),ue(u.value,w.value,null),ee(()=>{he=!1}))}),q(y,()=>{u.value==="overview"&&(_.value="",x(),E.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},j.value=Oe("overview",y.value.join(",")))},{deep:!0}),q(_,()=>{ie||he||(x(),ue(u.value,w.value,H.value))}),q(J,e=>{if(e){Mt();return}$.value=""}),q($,()=>{J.value&&x()}),q(()=>k.active,e=>{var t,n,s,i;f.value&&(e?(ke(),(n=(t=f.value).resume)==null||n.call(t)):(i=(s=f.value).pause)==null||i.call(s))});function xt(){var n;X=new tn;const e={progress:0};X.instance.on("onProgress",(s,i,o)=>{const g=Math.floor(i/o*100);Ze.to(e,{progress:g,onUpdate:()=>{D.value=Math.floor(e.progress)}})});const t=()=>{M||ge||(ge=!0,ke())};X.instance.on("onLoad",t),(n=X.ready)==null||n.then(t).catch(()=>{M||(E.value={type:"error",text:"地图资源加载失败"})})}function ke(){M||!k.active||!ge||W||(W=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Re()},600))}function Re(e=0){return V(this,null,function*(){var n,s,i,o,g;if(M)return;if(!k.active){W=!1;return}if(yield ee(),!k.active){W=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,X)||(o=(i=f.value)==null?void 0:i.hasMap)!=null&&o.call(i))){yield Yt(),yield ee(),(g=f.value)==null||g.play();return}if(e<24){window.setTimeout(()=>Re(e+1),120);return}W=!1})}function Nt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function Pt(){var e,t;if(x(),E.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),E.value={type:"success",text:"地图已复位"};return}Nt(),W=!1,ee(()=>{ke()})}a({refreshMapView:qe,resetMap:Pt});function pe(n){return V(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,i=++Ce;ne.value=!0,te.value="loading";const o=yield an(e,s);M||i!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Ct(o,e))})}function Mt(e=!1){return V(this,null,function*(){if(!J.value)return;if(!e&&T.value.length){Ge();return}const t=++me;Q.value="loading";try{const n=yield Sn();if(M||t!==me)return;T.value=n,Q.value=n.length?"success":"empty",Ge()}catch(n){if(M||t!==me)return;T.value=[],$.value="",Q.value="error"}})}function Ge(){if(!T.value.length){$.value="";return}T.value.some(t=>t.key===$.value)||($.value=T.value[T.value.length-1].key)}function Ct(e,t){var s,i,o;const n=$t(e);C.value=n.core||[],K.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},U.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[K.value],Y.value=(i=n.rightPanels)!=null&&i.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,S("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function $t(e){return e||{}}function je(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function De(e){return _e(e)?yt.value:Ee.value}function Le(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>ze(s,t[s])).length}function ze(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ct.has(String(e||"").toLowerCase())}function Ft(){if(u.value==="overview"){const e=new Set(y.value);return re.value.filter(t=>e.has(t.key)).slice().reverse()}return Z.value?[Z.value]:[]}function At(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function It(e={}){const t=We(e.lng),n=We(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function We(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Vt(){return V(this,arguments,function*(e={}){var A,N,B,Ke,oe,Ue;const t=Number((A=e==null?void 0:e.lngLat)==null?void 0:A.lng),n=Number((N=e==null?void 0:e.lngLat)==null?void 0:N.lat),s=Ft();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){x();return}const i=++O,o=ae,g=e.screen||{x:960,y:540};h.value=null,d.value=null,v.value=!1,P.value=!0,(Ke=(B=f.value)==null?void 0:B.clearSelectedFeature)==null||Ke.call(B);try{for(const Ye of s){const ce=yield Et(Ye,{lng:t,lat:n});if(i!==O||M)return;if(ce){d.value=ce,h.value=Se(ce,g),v.value=!1,(Ue=(oe=f.value)==null?void 0:oe.highlightFeature)==null||Ue.call(oe,ce,{highlightTone:"v21"});return}}i===O&&ae===o&&x()}catch(Ye){i===O&&ae===o&&x()}finally{i===O&&(P.value=!1)}})}function Et(e,t){return V(this,null,function*(){const n=At(e);if(!n)return null;const s=It(t);let i=null;n==="grassland"?i=yield dn({wkt:s}):n==="wetland"?i=yield vn({wkt:s}):n==="woodland"?i=yield ln(s):n==="basicGrassland"&&(i=yield un(s));const o=Bt(i,n);if(!qt(o))return null;const g=jt(o,e,t,n);return Le(g)>0?g:null})}function Bt(e,t){var s,i,o,g,A;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(g=e==null?void 0:e.data)==null?void 0:g.woodland,(A=e==null?void 0:e.data)==null?void 0:A.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const N of n){const B=Rt(N);if(B)return B}return null}function Rt(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function qt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Gt)?!0:Object.keys(e).some(t=>ze(t,e[t]))}function Gt(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function jt(e,t,n,s){const i=zt(e),o=Dt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:o},geometry:o,layer:t,lngLat:n}}function Dt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function zt(e={}){const t=I({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const i=s==null?void 0:s.value;if(i==null||i==="")return;const o=lt[String((s==null?void 0:s.title)||"").trim()],g=String((s==null?void 0:s.field)||"").trim();[g,Wt(g),o].filter(Boolean).forEach(N=>{(t[N]===void 0||t[N]===null||t[N]==="")&&(t[N]=i)})}),t}function Wt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function ue(s,i){return V(this,arguments,function*(e,t,n=H.value){const o=++Me;if(!t||!Ot(t,n)){j.value=Oe(e,t);return}const g=yield rn(e,t,n);M||o!==Me||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===_.value&&(j.value=R(I({},g),{hideTownLabelStats:!0}))})}function Ot(e,t=null){return!!(t!=null&&t.key)||ut.has(e)}function Oe(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Ht(e){var n,s;ae+=1;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||Le(t)<=0){x();return}d.value=t,v.value=!1,h.value=Se(t,(e==null?void 0:e.screen)||h.value)}function Se(e,t=null){var n,s,i,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(i=f.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:o.call(i,e))||t}function Kt(){if(!ye.value||!d.value)return;const e=Se(d.value,h.value);if(!e)return;const t=h.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(h.value=e)}function Ut(e){E.value=e}function x(){var e,t;O+=1,d.value=null,v.value=!1,P.value=!1,h.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function He(e){if(!ye.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||x()}function Yt(){return z.value?new Promise(e=>{Ze.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{z.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(p(),L("div",Rn,[G(mn,{ref_key:"mapSceneRef",ref:f,"active-layer":wt.value,"map-ranking":j.value,"admin-boundary-line-scale":1.65,"initial-zoom":9,"auto-apply-layer-map-view":!1,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!0,"emit-empty-feature-info-on-miss":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>P.value=n),onFeatureInfo:Ht,onMapClick:Vt,onLayerStatus:Ut,onViewChange:Kt},null,8,["active-layer","map-ranking"]),b("div",qn,[b("div",Gn,[b("div",jn,[(p(!0),L(Ne,null,Pe(U.value,n=>(p(),st(it,{key:je(n,"left"),class:ve(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Te(Ve),height:De(n)},{default:at(()=>[G(nt,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",Dn,[b("div",zn,[(p(!0),L(Ne,null,Pe(Y.value,n=>(p(),st(it,{key:je(n,"right"),class:ve(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Te(Ve),height:De(n)},{default:at(()=>[G(nt,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),ht.value?(p(),L("div",{key:0,class:"fgw-map-layer-tools",style:fe({height:`${Ae.value}px`})},[G(wn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":_.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>_.value=n),"topic-key":u.value,layers:le.value,legends:we.value,multiple:u.value==="overview",width:248,height:Ae.value,compact:Fe.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):de("",!0),ft.value?(p(),L("div",Wn,[G(Bn,{modelValue:$.value,"onUpdate:modelValue":t[3]||(t[3]=n=>$.value=n),items:T.value,loading:Q.value==="loading"},null,8,["modelValue","items","loading"])])):de("",!0),ye.value?(p(),L("div",{key:2,class:"fgw-map-feature-info",style:fe(pt.value)},[G(yn,{title:_t.value,feature:d.value,empty:v.value,loading:P.value,width:Te(bt),height:kt.value,closable:"",onClose:x},null,8,["title","feature","empty","loading","width","height"])],4)):de("",!0),b("div",On,[G(hn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),z.value?(p(),L("div",Hn,[t[6]||(t[6]=_n('
    LOADING
    ',1)),b("div",Kn,[b("span",Un,xe(D.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):de("",!0)]))}};export{ds as default}; +var Qt=Object.defineProperty,Xt=Object.defineProperties;var Zt=Object.getOwnPropertyDescriptors;var Qe=Object.getOwnPropertySymbols;var Jt=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable;var Xe=(l,a,r)=>a in l?Qt(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r,I=(l,a)=>{for(var r in a||(a={}))Jt.call(a,r)&&Xe(l,r,a[r]);if(Qe)for(var r of Qe(a))en.call(a,r)&&Xe(l,r,a[r]);return l},R=(l,a)=>Xt(l,Zt(a));var V=(l,a,r)=>new Promise((k,S)=>{var f=y=>{try{w(r.next(y))}catch(C){S(C)}},u=y=>{try{w(r.throw(y))}catch(C){S(C)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,a)).next())});import{g as Ze}from"./index-e9f36657-1785858872961.js";import{A as tn}from"./assets-0c374c8c-1785858872961.js";/* empty css */import{f as nn,c as Je,b as sn,g as et}from"./townshipBoundaries-8867fad4-1785858872961.js";import{g as an,b as rn,a as ln,c as un}from"./openApi-2c22e142-1785858872961.js";import{c as on,F as cn,g as dn,a as vn}from"./featurePanelLayout-07907d63-1785858872961.js";import{q as tt,r as fn,s as gn}from"./screen2Standard-2d8b09ac-1785858872961.js";import{M as mn}from"./index-1891ee64-1785858872961.js";import{_ as hn}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{_ as wn}from"./LayerPanel-5e7fd226-1785858872961.js";import{a as nt,_ as yn}from"./FeatureInfoPanel-ca915481-1785858872961.js";import{_ as bn,g as c,o as p,c as L,a as b,t as xe,F as Ne,y as Pe,n as ve,K as fe,d as m,q as kn,h as pn,w as q,A as ee,b as G,C as st,x as at,u as Te,j as de,z as _n}from"./index-1785858872961.js";import{_ as it}from"./index-8ffdff7e-1785858872961.js";import"./index-d6700f13-1785858872961.js";import"./geoserver-ea89416e-1785858872961.js";const Ln="/jsyApi/api/map/ndvi_timeline";function Sn(){return V(this,null,function*(){const l=yield fetch(Ln,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const a=yield l.json().catch(()=>({}));if((a==null?void 0:a.code)===401||(a==null?void 0:a.code)==="401"){const k=new Error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(a==null?void 0:a.data)?a.data:Array.isArray(a)?a:[];return Tn(r)})}function Tn(l=[]){const a=new Set;return l.map((r,k)=>{const S=xn(rt(r,["url","layerName","layer_name","layer","name"]));if(!S)return null;const f=rt(r,["date","month","time","label"])||S,u=Nn(f);return{key:`${S}-${f||k}`,label:u,date:String(f),layerName:S,source:r}}).filter(Boolean).filter(r=>a.has(r.key)?!1:(a.add(r.key),!0))}function rt(l,a){for(const r of a)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function xn(l){const a=String(l||"").trim();return a?a.includes(":")||/^https?:\/\//i.test(a)?a:`ne:${a}`:""}function Nn(l){const a=String(l||"").trim();if(!a)return"";const r=a.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:a}const Pn={class:"grassland-ndvi-timeline-head"},Mn={key:0,class:"grassland-ndvi-timeline-state"},Cn={key:1,class:"grassland-ndvi-timeline-state"},$n={key:2,class:"grassland-ndvi-timeline-body"},Fn=["aria-checked","title","onClick"],An={class:"grassland-ndvi-timeline-label"},In=42,Vn=28,En={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:a}){const r=l,k=a,S=c(()=>r.items.findIndex(d=>d.key===r.modelValue)),f=c(()=>S.value===-1?Math.max(0,r.items.length-1):S.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),C=c(()=>y.value?Vn:In),te=c(()=>Y(f.value)),ne=c(()=>j(f.value));function K(d){if(!r.items.length)return;const v=Math.min(r.items.length-1,Math.max(0,f.value+d));k("update:modelValue",r.items[v].key)}function se(d){!d||d.key===r.modelValue||k("update:modelValue",d.key)}function U(d){return!r.items.length||d<0?0:r.items.length===1?.5:d/(r.items.length-1)}function Y(d){const v=U(d),P=_(v*100),h=C.value*(1-v*2);return`calc(${P}% ${h<0?"-":"+"} ${_(Math.abs(h))}px)`}function j(d){const v=U(d);return v<=0?"0px":`calc(${_(v*100)}% - ${_(C.value*2*v)}px)`}function _(d){return Number(d.toFixed(4)).toString()}return(d,v)=>{var P;return p(),L("div",{class:ve(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Pn,[v[2]||(v[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,xe(((P=u.value)==null?void 0:P.label)||w.value),1)]),l.loading?(p(),L("div",Mn,"加载月份数据")):l.items.length?(p(),L("div",$n,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:v[0]||(v[0]=h=>K(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:fe({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${C.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[v[4]||(v[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),v[5]||(v[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),v[6]||(v[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(p(!0),L(Ne,null,Pe(l.items,(h,D)=>{var z,T;return p(),L("button",{key:h.key,class:ve(["grassland-ndvi-timeline-mark",{"is-active":h.key===((z=u.value)==null?void 0:z.key),"is-past":D<=f.value,"is-staggered":y.value&&D%2===1}]),type:"button",role:"radio","aria-checked":h.key===((T=u.value)==null?void 0:T.key),style:fe({left:Y(D)}),title:h.date,onClick:Q=>se(h)},[v[3]||(v[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",An,xe(h.label),1)],14,Fn)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:v[1]||(v[1]=h=>K(1))},"›")])):(p(),L("div",Cn,"暂无月份数据"))],2)}}},Bn=bn(En,[["__scopeId","data-v-3b86bca9"]]),Rn={class:"forest-grass-wet"},qn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},Gn={class:"fgw-left"},jn={class:"fgw-side-stack is-left"},Dn={class:"fgw-right"},zn={class:"fgw-side-stack is-right"},Wn={key:1,class:"fgw-ndvi-timeline"},On={class:"fgw-bottom-topic"},Hn={key:0,class:"loading"},Kn={class:"loading-progress"},Un={class:"value"},ds={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:a,emit:r}){const k=l,S=r,f=m(null),u=m(nn[0].key),w=m(""),y=m([]),C=m([]),te=m("idle"),ne=m(!1),K=m({title:"业务统计",rows:[]}),se=m({title:"业务统计",rows:[]}),U=m([]),Y=m([]),j=m(null),_=m(""),d=m(null),v=m(!1),P=m(!1),h=m(null),D=m(0),z=m(k.showLoading),T=m([]),Q=m("idle"),$=m(""),E=m({type:"idle",text:"等待 GeoServer 图层加载"});let X=null,M=!1,ge=!1,W=!1,F=null,Me=0,Ce=0,me=0,O=0,ae=0,ie=!1,he=!1;const lt={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},ut=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),ot=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ct=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),dt=c(()=>Je(u.value)),vt=c(()=>sn(u.value)),re=c(()=>ot.map(e=>St(e)).filter(Boolean)),le=c(()=>u.value==="overview"?re.value:vt.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),Z=c(()=>w.value?et(u.value,w.value):null),J=c(()=>u.value==="grassland"&&w.value==="grassland-health"),ft=c(()=>J.value),gt=c(()=>T.value.find(e=>e.key===$.value)||null),H=c(()=>{var e;return(((e=Z.value)==null?void 0:e.legends)||[]).find(t=>t.key===_.value)||null}),mt=c(()=>re.value.flatMap(e=>e.legends||[])),we=c(()=>{var e;return u.value==="overview"?mt.value:((e=Z.value)==null?void 0:e.legends)||[]}),ht=c(()=>le.value.length>0),Fe=c(()=>le.value.length<=6&&we.value.length<=8),Ae=c(()=>{if(!Fe.value)return 430;const e=Math.max(1,le.value.length),t=Math.max(1,Math.ceil(we.value.length/2)),n=e*34+Math.max(0,e-1)*5,s=30+t*28;return Math.max(220,Math.min(430,72+n+s))}),wt=c(()=>{var s;if(u.value==="overview"){const i=new Set(y.value),o=re.value.filter(g=>i.has(g.key));return Tt(o)}const e=Z.value;if(!e)return null;let t=(s=H.value)!=null&&s.cqlFilter?R(I({},e),{cqlFilter:H.value.cqlFilter,activeLegend:H.value,name:H.value.name||e.name}):e;const n=gt.value;return J.value&&(n!=null&&n.layerName)&&(t=R(I({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ie=m(typeof window=="undefined"?1080:window.innerHeight),Ve=tt.sideCardWidth;c(()=>tt.sideCardGap);const Ee=c(()=>fn(Ie.value)),yt=c(()=>gn(Ee.value,2)),ye=c(()=>!!h.value),bt=cn,Be=c(()=>on({point:h.value?Lt(h.value):null,rowCount:d.value?Le(d.value):0,loading:P.value,empty:v.value||!d.value})),kt=c(()=>Be.value.height),pt=c(()=>Be.value.style),_t=c(()=>{var n,s,i,o,g,A,N;const e=((s=(n=d.value)==null?void 0:n.layer)==null?void 0:s.overviewTopicKey)||((o=(i=d.value)==null?void 0:i.layer)==null?void 0:o.topicKey)||u.value;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情"}[e]||`${((A=(g=d.value)==null?void 0:g.layer)==null?void 0:A.name)||((N=dt.value)==null?void 0:N.name)||"资源"}详情`});function Lt(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function be(){Ie.value=typeof window=="undefined"?1080:window.innerHeight}function St({topicKey:e,layerKey:t,name:n,legendName:s}){var g;const i=et(e,t);if(!i||i.key!==t)return null;const o=((g=i.legends)==null?void 0:g[0])||{};return R(I({},i),{name:n,overviewTopicKey:e,legends:[R(I({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function Tt(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return R(I({},n),{overlayLayers:s})}kn(()=>{be(),window.addEventListener("resize",be),document.addEventListener("pointerdown",He,!0),xt(),pe(u.value,""),ue(u.value,"")}),pn(()=>{M=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",be),document.removeEventListener("pointerdown",He,!0)}),q(u,e=>{ie=!0,_.value="",w.value="",e==="overview"&&(y.value=[]),x(),E.value={type:"idle",text:"等待 GeoServer 图层加载"},pe(e,""),ue(e,"",null),ee(()=>{ie=!1})}),q(w,()=>{ie||(he=!0,_.value="",x(),E.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&pe(u.value,w.value),ue(u.value,w.value,null),ee(()=>{he=!1}))}),q(y,()=>{u.value==="overview"&&(_.value="",x(),E.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},j.value=Oe("overview",y.value.join(",")))},{deep:!0}),q(_,()=>{ie||he||(x(),ue(u.value,w.value,H.value))}),q(J,e=>{if(e){Mt();return}$.value=""}),q($,()=>{J.value&&x()}),q(()=>k.active,e=>{var t,n,s,i;f.value&&(e?(ke(),(n=(t=f.value).resume)==null||n.call(t)):(i=(s=f.value).pause)==null||i.call(s))});function xt(){var n;X=new tn;const e={progress:0};X.instance.on("onProgress",(s,i,o)=>{const g=Math.floor(i/o*100);Ze.to(e,{progress:g,onUpdate:()=>{D.value=Math.floor(e.progress)}})});const t=()=>{M||ge||(ge=!0,ke())};X.instance.on("onLoad",t),(n=X.ready)==null||n.then(t).catch(()=>{M||(E.value={type:"error",text:"地图资源加载失败"})})}function ke(){M||!k.active||!ge||W||(W=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Re()},600))}function Re(e=0){return V(this,null,function*(){var n,s,i,o,g;if(M)return;if(!k.active){W=!1;return}if(yield ee(),!k.active){W=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,X)||(o=(i=f.value)==null?void 0:i.hasMap)!=null&&o.call(i))){yield Yt(),yield ee(),(g=f.value)==null||g.play();return}if(e<24){window.setTimeout(()=>Re(e+1),120);return}W=!1})}function Nt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function Pt(){var e,t;if(x(),E.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),E.value={type:"success",text:"地图已复位"};return}Nt(),W=!1,ee(()=>{ke()})}a({refreshMapView:qe,resetMap:Pt});function pe(n){return V(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,i=++Ce;ne.value=!0,te.value="loading";const o=yield an(e,s);M||i!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Ct(o,e))})}function Mt(e=!1){return V(this,null,function*(){if(!J.value)return;if(!e&&T.value.length){Ge();return}const t=++me;Q.value="loading";try{const n=yield Sn();if(M||t!==me)return;T.value=n,Q.value=n.length?"success":"empty",Ge()}catch(n){if(M||t!==me)return;T.value=[],$.value="",Q.value="error"}})}function Ge(){if(!T.value.length){$.value="";return}T.value.some(t=>t.key===$.value)||($.value=T.value[T.value.length-1].key)}function Ct(e,t){var s,i,o;const n=$t(e);C.value=n.core||[],K.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},U.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[K.value],Y.value=(i=n.rightPanels)!=null&&i.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,S("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function $t(e){return e||{}}function je(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function De(e){return _e(e)?yt.value:Ee.value}function Le(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>ze(s,t[s])).length}function ze(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ct.has(String(e||"").toLowerCase())}function Ft(){if(u.value==="overview"){const e=new Set(y.value);return re.value.filter(t=>e.has(t.key)).slice().reverse()}return Z.value?[Z.value]:[]}function At(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function It(e={}){const t=We(e.lng),n=We(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function We(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Vt(){return V(this,arguments,function*(e={}){var A,N,B,Ke,oe,Ue;const t=Number((A=e==null?void 0:e.lngLat)==null?void 0:A.lng),n=Number((N=e==null?void 0:e.lngLat)==null?void 0:N.lat),s=Ft();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){x();return}const i=++O,o=ae,g=e.screen||{x:960,y:540};h.value=null,d.value=null,v.value=!1,P.value=!0,(Ke=(B=f.value)==null?void 0:B.clearSelectedFeature)==null||Ke.call(B);try{for(const Ye of s){const ce=yield Et(Ye,{lng:t,lat:n});if(i!==O||M)return;if(ce){d.value=ce,h.value=Se(ce,g),v.value=!1,(Ue=(oe=f.value)==null?void 0:oe.highlightFeature)==null||Ue.call(oe,ce,{highlightTone:"v21"});return}}i===O&&ae===o&&x()}catch(Ye){i===O&&ae===o&&x()}finally{i===O&&(P.value=!1)}})}function Et(e,t){return V(this,null,function*(){const n=At(e);if(!n)return null;const s=It(t);let i=null;n==="grassland"?i=yield dn({wkt:s}):n==="wetland"?i=yield vn({wkt:s}):n==="woodland"?i=yield ln(s):n==="basicGrassland"&&(i=yield un(s));const o=Bt(i,n);if(!qt(o))return null;const g=jt(o,e,t,n);return Le(g)>0?g:null})}function Bt(e,t){var s,i,o,g,A;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(g=e==null?void 0:e.data)==null?void 0:g.woodland,(A=e==null?void 0:e.data)==null?void 0:A.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const N of n){const B=Rt(N);if(B)return B}return null}function Rt(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function qt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Gt)?!0:Object.keys(e).some(t=>ze(t,e[t]))}function Gt(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function jt(e,t,n,s){const i=zt(e),o=Dt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:o},geometry:o,layer:t,lngLat:n}}function Dt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function zt(e={}){const t=I({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const i=s==null?void 0:s.value;if(i==null||i==="")return;const o=lt[String((s==null?void 0:s.title)||"").trim()],g=String((s==null?void 0:s.field)||"").trim();[g,Wt(g),o].filter(Boolean).forEach(N=>{(t[N]===void 0||t[N]===null||t[N]==="")&&(t[N]=i)})}),t}function Wt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function ue(s,i){return V(this,arguments,function*(e,t,n=H.value){const o=++Me;if(!t||!Ot(t,n)){j.value=Oe(e,t);return}const g=yield rn(e,t,n);M||o!==Me||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===_.value&&(j.value=R(I({},g),{hideTownLabelStats:!0}))})}function Ot(e,t=null){return!!(t!=null&&t.key)||ut.has(e)}function Oe(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Ht(e){var n,s;ae+=1;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||Le(t)<=0){x();return}d.value=t,v.value=!1,h.value=Se(t,(e==null?void 0:e.screen)||h.value)}function Se(e,t=null){var n,s,i,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(i=f.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:o.call(i,e))||t}function Kt(){if(!ye.value||!d.value)return;const e=Se(d.value,h.value);if(!e)return;const t=h.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(h.value=e)}function Ut(e){E.value=e}function x(){var e,t;O+=1,d.value=null,v.value=!1,P.value=!1,h.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function He(e){if(!ye.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||x()}function Yt(){return z.value?new Promise(e=>{Ze.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{z.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(p(),L("div",Rn,[G(mn,{ref_key:"mapSceneRef",ref:f,"active-layer":wt.value,"map-ranking":j.value,"admin-boundary-line-scale":1.65,"initial-zoom":9,"auto-apply-layer-map-view":!1,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!0,"emit-empty-feature-info-on-miss":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>P.value=n),onFeatureInfo:Ht,onMapClick:Vt,onLayerStatus:Ut,onViewChange:Kt},null,8,["active-layer","map-ranking"]),b("div",qn,[b("div",Gn,[b("div",jn,[(p(!0),L(Ne,null,Pe(U.value,n=>(p(),st(it,{key:je(n,"left"),class:ve(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Te(Ve),height:De(n)},{default:at(()=>[G(nt,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",Dn,[b("div",zn,[(p(!0),L(Ne,null,Pe(Y.value,n=>(p(),st(it,{key:je(n,"right"),class:ve(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Te(Ve),height:De(n)},{default:at(()=>[G(nt,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),ht.value?(p(),L("div",{key:0,class:"fgw-map-layer-tools",style:fe({height:`${Ae.value}px`})},[G(wn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":_.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>_.value=n),"topic-key":u.value,layers:le.value,legends:we.value,multiple:u.value==="overview",width:248,height:Ae.value,compact:Fe.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):de("",!0),ft.value?(p(),L("div",Wn,[G(Bn,{modelValue:$.value,"onUpdate:modelValue":t[3]||(t[3]=n=>$.value=n),items:T.value,loading:Q.value==="loading"},null,8,["modelValue","items","loading"])])):de("",!0),ye.value?(p(),L("div",{key:2,class:"fgw-map-feature-info",style:fe(pt.value)},[G(yn,{title:_t.value,feature:d.value,empty:v.value,loading:P.value,width:Te(bt),height:kt.value,closable:"",onClose:x},null,8,["title","feature","empty","loading","width","height"])],4)):de("",!0),b("div",On,[G(hn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),z.value?(p(),L("div",Hn,[t[6]||(t[6]=_n('
    LOADING
    ',1)),b("div",Kn,[b("span",Un,xe(D.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):de("",!0)]))}};export{ds as default}; diff --git a/docs/assets/index-3bdb0646-1785858872961.js b/docs/assets/index-3bdb0646-1785858872961.js new file mode 100644 index 0000000..8b57b28 --- /dev/null +++ b/docs/assets/index-3bdb0646-1785858872961.js @@ -0,0 +1,13 @@ +var te=Object.defineProperty,ee=Object.defineProperties;var ne=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var St=(e,t,n)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_=(e,t)=>{for(var n in t||(t={}))$t.call(t,n)&&St(e,n,t[n]);if(Z)for(var n of Z(t))Tt.call(t,n)&&St(e,n,t[n]);return e},P=(e,t)=>ee(e,ne(t));var Ct=(e,t)=>{var n={};for(var i in e)$t.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&Z)for(var i of Z(e))t.indexOf(i)<0&&Tt.call(e,i)&&(n[i]=e[i]);return n};var L=(e,t,n)=>new Promise((i,r)=>{var u=l=>{try{w(n.next(l))}catch(h){r(h)}},f=l=>{try{w(n.throw(l))}catch(h){r(h)}},w=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,f);w((n=n.apply(e,t)).next())});import{g as lt,q as ie,h as se,w as ae,o as v,c as b,z as Nt,F,y as B,n as q,a as p,t as R,j as k,C as oe,u as re,B as xt,f as Pt,s as ue,H as le,e as ce,D as de,G as me,d as M,A as fe}from"./index-1785858872961.js";import{r as Ft,n as zt}from"./index-d6700f13-1785858872961.js";import{g as ge}from"./balanceApi-a2c0a6b6-1785858872961.js";import{a as ye,c as pe,b as ve,l as we}from"./yakApi-4b33f49b-1785858872961.js";import{h as be,a as he,r as Bt,b as ke,t as Ht,y as Re,c as Ae,s as _e,d as Se,e as $e}from"./data-33173954-1785858872961.js";import{p as Te,i as Ce,a as Ne,b as xe,k as Pe,c as Ee,d as Me,h as De,j as Le,l as Fe,e as ze}from"./data-7f9dd12a-1785858872961.js";import{B as mt,b as it,c as Be,n as Et}from"./data-56996d99-1785858872961.js";import{f as He,h as Oe,i as qe,j as Ve,k as je,l as Ie,p as Ge,r as Ue,a as Ye}from"./data-6a941f14-1785858872961.js";import{i as Ke,k as We,s as Qe,l as Je,m as Xe,n as Ze,o as tn,p as en,q as nn,r as sn,t as an,u as on,w as rn,x as un,a as ln,y as cn,z as dn,A as mn,B as fn,C as gn}from"./data-c85702ea-1785858872961.js";import"./index-e9f36657-1785858872961.js";import"./livestockData-36ec0ae2-1785858872961.js";import"./townshipBoundaries-8867fad4-1785858872961.js";import"./familyPastureData-f64283c3-1785858872961.js";const yn="/openApi";function pn(e){return/^https?:\/\//.test(e)?e:`${yn}${e.startsWith("/")?e:`/${e}`}`}function vn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const n=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw n.code=e==null?void 0:e.code,n}return zt(e)}function wn(i){return L(this,arguments,function*(e,t=window.location.hash||window.location.pathname,n="智慧管理"){const r=yield Ft(pn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:n},timeout:12e3}).then(vn);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(bn).filter(f=>f.rows.length)})}function bn(e,t){const n=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:hn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:kn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:n.map((i,r)=>({key:(i==null?void 0:i.key)||`${(i==null?void 0:i.name)||"row"}-${r}`,name:String((i==null?void 0:i.name)||`指标${r+1}`),value:Rn(i==null?void 0:i.value),rawValue:i==null?void 0:i.value,unit:(i==null?void 0:i.unit)||(e==null?void 0:e.unit)||"",extra:(i==null?void 0:i.extra)||""})).filter(i=>i.name&&Number.isFinite(i.value))}}function hn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function kn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function Rn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Mt="智慧管理",An=80,_n=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:Pn},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:Cn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:En},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:Mn},{key:"industry",label:"牦牛全产业链",patterns:[/产业链|全产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Dn}];function Sn(n){return L(this,arguments,function*(e,t={}){var N;const i=qt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],f=wn(i,r,Mt).catch(E=>(u.push(ft(E,"辅助图表暂不可用")),[])),w=Tn(i),l=yield Promise.all(w.map(E=>E.build(i,u))),h=Bn(l.flat()),y=yield f,$=w.length===1&&((N=w[0])==null?void 0:N.key)==="overview",z=h.length?h:$?Ot():[],j=In(i,z),H={question:i,pageName:Mt,pagePath:r,scope:j,intents:w.map(E=>({key:E.key,label:E.label})),datasets:z,charts:y,notes:Hn(z,y,u),warnings:u};return P(_({},H),{insights:Vn(H)})})}function $n(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],n=Array.isArray(e.insights)?e.insights:[],i=e.scope||"红原县",r=t.slice(0,4).map(l=>l.title).filter(Boolean),u=n.slice(0,5).map(l=>`- ${l.label}:${l.value}${l.note?`(${l.note})`:""}`),f=qn(t),w=(e.notes||[]).slice(0,3).map(l=>`- ${l}`);return["**总体情况**",`已按${i}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(l=>`- ${l}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",f.length?"**核算依据**":"",...f,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` +`)}function Tn(e){const t=_n.filter(n=>n.patterns.some(i=>i.test(e)));return t.length?t:[{key:"overview",label:"综合总览",build:()=>Ot()}]}function Ot(){return[c("home.topStats","首页核心指标",be,"平台业务汇总数据"),c("home.heroStats","资源与草畜概览",he,"平台业务汇总数据"),c("home.resourceComposition","资源构成",Bt,"平台业务汇总数据"),c("home.businessMatrix","业务矩阵",ke,"平台业务汇总数据"),c("home.townSynergy","乡镇林草湿与牦牛协同",Ht,"平台业务汇总数据"),c("home.yakTown","首页牦牛乡镇排行",Re,"平台业务汇总数据"),c("home.trade","首页交易结构",Ae,"平台业务汇总数据"),c("home.support","首页支撑产业",_e,"平台业务汇总数据"),c("home.dataFlow","数据流汇总",Se,"平台业务汇总数据"),c("home.centerOrbit","首页中心节点",$e,"平台业务汇总数据")]}function Cn(n){return L(this,arguments,function*(e,t=[]){const[i,r,u,f]=yield Promise.allSettled([ye(),pe(),ve(),we()]);et(i,t,"牦牛乡镇存栏数据暂未取得"),et(r,t,"牦牛畜群结构数据暂未取得"),et(u,t,"牦牛预测数据暂未取得"),et(f,t,"牦牛交易数据暂未取得");const w=Nn(tt(i)),l=Dt(tt(r)),h=xn(tt(u)),y=Dt(tt(f));return[c("yak.town","乡镇牦牛存栏分布",w,"牦牛管理接口数据"),c("yak.structureRows","畜群结构数量",l,"牦牛管理接口数据"),c("yak.forecastRows","牦牛月度预测",h,"牦牛管理接口数据"),c("yak.tradeImpact","交易影响",y,"牦牛交易接口数据")]})}function tt(e){return e.status==="fulfilled"&&Array.isArray(e.value)?e.value:[]}function et(e,t,n){e.status==="rejected"&&t.push(ft(e.reason,n))}function Nn(e=[]){return e.map((t,n)=>{var u,f,w,l;const i=String(t.name||t.areaName||t.area_name||t.townName||t.zoneName||"").trim(),r=W((l=(w=(f=(u=t.count)!=null?u:t.value)!=null?f:t.number)!=null?w:t.yakCount)!=null?l:t.yak_count);return{key:t.key||t.id||t.areaCode||t.area_code||`${i||"yak-town"}-${n}`,name:i,count:r,value:r,unit:t.unit||"头"}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,n)=>n.count-t.count)}function Dt(e=[]){return e.map((t,n)=>{var u,f,w,l,h;const i=String(t.name||t.label||t.type||t.key||"").trim(),r=W((h=(l=(w=(f=(u=t.count)!=null?u:t.value)!=null?f:t.number)!=null?w:t.yakCount)!=null?l:t.headCount)!=null?h:t.amount);return{key:t.key||t.id||`${i||"yak-metric"}-${n}`,name:i,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,n)=>n.count-t.count)}function xn(e=[]){return e.map((t,n)=>{var u,f,w,l;const i=String(t.name||t.label||t.month||t.date||t.time||"").trim(),r=W((l=(w=(f=(u=t.stock)!=null?u:t.count)!=null?f:t.value)!=null?w:t.number)!=null?l:t.yakCount);return{key:t.key||t.id||`${i||"yak-forecast"}-${n}`,name:i,label:i,stock:r,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.stock))}function Pn(n){return L(this,arguments,function*(e,t=[]){let i=it;try{const h=yield ge();i=Fn(h,it)}catch(h){t.push(ft(h,"草畜平衡实时结果暂未取得,已使用同版本兜底数据"))}const r=i.filter(h=>h.type==="county"),u=i.filter(h=>h.type==="town"),f=i.filter(h=>h.type==="village"),w=Ln(e,i),l=(w==null?void 0:w.name)||"红原县";return[c("balance.target",`${l}草畜平衡`,[nt(w)],"统一草畜平衡结果库"),c("balance.county","全县草畜平衡",r.map(nt),"统一草畜平衡结果库"),c("balance.town","乡镇草畜平衡",u.map(nt),"统一草畜平衡结果库"),c("balance.village","村级草畜平衡",f.map(nt),"统一草畜平衡结果库"),c("balance.params","草畜平衡核算口径",[On()],"统一草畜平衡结果库")]})}function En(){return[c("pasture.core","牧户核心指标",Te,"平台业务汇总数据"),c("pasture.topStats","牧户顶部指标",Ce,"平台业务汇总数据"),c("pasture.town","牧户乡镇分布",Ne,"平台业务汇总数据"),c("pasture.online","牧户在线率",xe,"平台业务汇总数据"),c("pasture.structure","牧户年龄性别结构",Pe,"平台业务汇总数据"),c("pasture.age","牧户年龄结构",Ee,"平台业务汇总数据"),c("pasture.gender","牧户性别结构",Me,"平台业务汇总数据"),c("pasture.list","牧户示例列表",De,"平台业务汇总数据"),c("pasture.grassland","牧户草场资源",Le,"平台业务汇总数据"),c("pasture.season","牧户季节草场",Fe,"平台业务汇总数据"),c("pasture.map","牧户地图统计",ze,"平台业务汇总数据")]}function Mn(){return[c("ecology.parkTopStats","生态保护核心指标",He,"平台业务汇总数据"),c("ecology.parkCore","国家公园核心指标",Oe,"平台业务汇总数据"),c("ecology.parkTownRows","国家公园乡镇数据",qe,"平台业务汇总数据"),c("ecology.restorationTopStats","生态修复项目汇总",Ve,"平台业务汇总数据"),c("ecology.engineeringTopStats","生态工程分析指标",je,"平台业务汇总数据"),c("ecology.engineeringProjectFeatures","工程分析项目点",Ie,"平台业务汇总数据"),c("ecology.parkPanels","生态保护图表数据",ct(Ge),"平台业务汇总数据"),c("ecology.restorationPanels","生态修复图表数据",ct(Ue),"平台业务汇总数据"),c("ecology.engineeringAnalysisPanels","工程分析图表数据",ct(Ye),"平台业务汇总数据"),c("home.resourceComposition","林草湿资源构成",Bt,"平台业务汇总数据"),c("home.townSynergy","乡镇林草湿与牦牛协同",Ht,"平台业务汇总数据")]}function Dn(){return[c("industry.topStats","产业链核心指标",Ke,"平台业务汇总数据"),c("industry.overview","产业链总览",We,"平台业务汇总数据"),c("industry.stageComposition","产业阶段构成",Qe,"平台业务汇总数据"),c("industry.stageRows","产业阶段说明",Je,"平台业务汇总数据"),c("industry.breedingLevel","养殖水平",Xe,"平台业务汇总数据"),c("industry.forageSecurity","饲草保障能力",Ze,"平台业务汇总数据"),c("industry.value","产业价值指标",tn,"平台业务汇总数据"),c("industry.processingAbility","加工能力指标",en,"平台业务汇总数据"),c("industry.serviceCapability","服务能力指标",nn,"平台业务汇总数据"),c("industry.creditOverview","信用评定核心指标",sn,"红原信用村、信用户评定结果"),c("industry.creditAuthorization","信用户授信状态",an,"红原信用村、信用户评定结果"),c("industry.creditHouseholdRatings","信用户星级分布",on,"红原信用村、信用户评定结果"),c("industry.creditVillageGrades","信用村等级分布",rn,"红原信用村、信用户评定结果"),c("industry.creditTownshipGrades","乡镇信用村等级排行",un,"红原信用村、信用户评定结果"),c("industry.creditInstitutions","信用评定机构排行",ln,"红原信用村、信用户评定结果"),c("industry.financial","金融服务",cn,"平台业务汇总数据"),c("industry.supportPoints","饲草储备点位",dn,"平台业务汇总数据"),c("industry.processingPoints","加工屠宰点位",mn,"平台业务汇总数据"),c("industry.points","产业链点位",fn,"平台业务汇总数据"),c("industry.list","产业链主体列表",gn,"平台业务汇总数据")]}function Ln(e,t=it){return t.find(n=>n.type==="village"&&Lt(e,n.name))||t.find(n=>n.type==="town"&&Lt(e,n.name))||t.find(n=>n.type==="county")||Be}function Fn(e=[],t=it){const n=new Map((Array.isArray(e)?e:[]).map(r=>[String(r.areaCode||r.area_code||r.areacode||""),r])),i=t.map(r=>{const u=String(r.areaCode||""),f=n.get(u);return f?(n.delete(u),Et(f,r)):_({},r)});return n.forEach((r,u)=>{const f=u.length===6?"county":u.length===9?"town":u.length===12?"village":"area";f!=="area"&&i.push(Et(r,_({key:`${f}-${u}`,type:f,areaCode:u,name:r.name||r.areaName||r.area_name||r.areaname},mt)))}),i}function c(e,t,n,i){return{id:e,title:t,suggestedView:Gn(t,n),source:{label:i||"平台展示数据"},rows:zn(n)}}function zn(e){return(Array.isArray(e)?e:[]).slice(0,An).map(t=>dt(t)).filter(t=>t&&typeof t=="object")}function dt(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,30).map(n=>dt(n,t+1)):typeof e=="object"?Object.entries(e).reduce((n,[i,r])=>(["icon","color","tone","image","cover","component"].includes(i)||(n[i]=dt(r,t+1)),n),{}):String(e)}function Bn(e=[]){const t=new Set;return e.filter(n=>{var i;return!((i=n==null?void 0:n.rows)!=null&&i.length)||t.has(n.id)?!1:(t.add(n.id),!0)})}function Hn(e,t,n){return[...n].filter(Boolean)}function On(){return P(_({},mt),{hierarchy:"村级结果汇总至乡镇,乡镇结果汇总至县级",disclosure:"展示核算阶段、过程数据、差额、比例和等级,不展示计算公式"})}function nt(e={}){const j=e||{},{capacityPerMu:t,capacity_per_mu:n,capacitypermu:i,muPerCapacity:r,mu_per_capacity:u,mupercapacity:f,actualMuPerYak:w,actual_mu_per_yak:l,actualmuperyak:h,bearingCoefficient:y,pressureFactor:$}=j;return Ct(j,["capacityPerMu","capacity_per_mu","capacitypermu","muPerCapacity","mu_per_capacity","mupercapacity","actualMuPerYak","actual_mu_per_yak","actualmuperyak","bearingCoefficient","pressureFactor"])}function qn(e=[]){var l,h;const t=(h=(l=e.find(y=>y.id==="balance.target"))==null?void 0:l.rows)==null?void 0:h[0],n=W(t==null?void 0:t.bearingCapacity),i=W(t==null?void 0:t.livestockCapacity);if(!Number.isFinite(n)||!Number.isFinite(i)||n<=0)return[];const r=i-n,u=r/n*100,f=i/n*100,w=t.level||"以统一结果库为准";return[`- 理论载畜量 ${V(n)} 头,实际载畜量 ${V(i)} 头,超载数量 ${V(r)} 头。`,`- 核定超载率 ${V(u)}%,承载利用率 ${V(f)}%,平衡等级为“${w}”。`,`- 数据版本 ${t.scenarioVersion||mt.scenarioVersion},县、乡镇和村级数据采用同一结果口径。`]}function Vn(e){const t=[];return(e.datasets||[]).some(n=>{const i=jn(n);return i&&t.push(i),t.length>=5}),(e.charts||[]).some(n=>{var l,h;const i=(n.rows||[]).filter(y=>Number.isFinite(Number(y.value)));if(!i.length)return!1;const r=i.slice().sort((y,$)=>Number($.value||0)-Number(y.value||0)),u=n.unit==="%"||/率|占比|比例/.test(n.title||""),f=u?(l=r[0])==null?void 0:l.value:i.reduce((y,$)=>y+Number($.value||0),0),w=u&&((h=r[0])!=null&&h.name)?`${n.title||"关联图表"}:${r[0].name}`:n.title||"关联图表";return t.push({label:w,value:`${V(f)}${n.unit||""}`,note:i.length>1?u?"数值较高项":`覆盖 ${i.length} 项`:""}),t.length>=5}),t.slice(0,5)}function jn(e){var f,w,l,h;const t=(e.rows||[]).find(Boolean);if(!t)return null;const n=t.name||t.areaName||t.zh||t.label||e.title,i=t.overloadRate!==void 0||t.overloadrate!==void 0,r=i?(f=t.overloadRate)!=null?f:t.overloadrate:(h=(l=(w=t.value)!=null?w:t.yakNumber)!=null?l:t.livestockCapacity)!=null?h:t.areaRange;if(r==null||r==="")return null;const u=t.unit||(i?"%":t.yakNumber!==void 0||t.livestockCapacity!==void 0?"头":"");return{label:i?`${n}超载率`:n,value:`${V(r)}${u}`,note:i&&t.level||e.title}}function ct(e={}){return Object.entries(e||{}).flatMap(([t,n])=>(Array.isArray(n)?n:[]).flatMap(i=>(Array.isArray(i==null?void 0:i.rows)?i.rows:Array.isArray(i==null?void 0:i.data)?i.data:[]).map(u=>_({groupKey:t,panelKey:i.key,panelTitle:i.title},u))))}function In(e,t){var i,r;const n=(r=(i=t.find(u=>u.id==="balance.target"))==null?void 0:i.rows)==null?void 0:r[0];return n!=null&&n.name?n.name:n!=null&&n.areaName?n.areaName:"红原县"}function Gn(e,t){return!Array.isArray(t)||t.length<=1?"metrics":/结构|构成|占比|比例/.test(e)?"pie":/趋势|预测/.test(e)?"line":"bar-table"}function Lt(e,t){const n=qt(e),i=String(t||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(t&&(n.includes(t)||i&&n.includes(i)))}function qt(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function ft(e,t){const n=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(n)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(n)?`${t},接口响应超时`:t}function W(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}function V(e){const t=Number(String(e).replace(/,/g,""));return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:2}):e||"--"}const Un="/openApi",Yn=12e4,Kn=8e3,Wn=12,Qn=500;function Jn(e){return/^https?:\/\//.test(e)?e:`${Un}${e.startsWith("/")?e:`/${e}`}`}function Xn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const n=new Error((e==null?void 0:e.message)||(e==null?void 0:e.msg)||"HTML界面生成失败");throw n.code=e==null?void 0:e.code,n}return zt(e)}function Zn(){return L(this,arguments,function*({question:e,answer:t="",charts:n=[],datasets:i=[],context:r=null,pagePath:u=window.location.hash||window.location.pathname,pageName:f="智慧管理"}={}){const w=ti({question:e,answer:t,charts:n,datasets:i,context:r}),l=yield Ft(Jn("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:e,pagePath:u,pageName:f,dataJson:w}),timeout:11e4}).then(Xn),h=String((l==null?void 0:l.provider)||""),y=String((l==null?void 0:l.model)||"");if(h.toLowerCase()!=="deepseek"||!y.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const $=si((l==null?void 0:l.html)||(l==null?void 0:l.content)||l);if(!$)throw new Error("代码模型没有返回完整HTML");if(ai($))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return P(_({},l),{html:$})})}function ti({question:e,answer:t,charts:n,datasets:i,context:r}){const u={question:String(e||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(t||"").slice(0,Kn),context:ei(r),datasets:[...ni(n),...ii(i)]},f=JSON.stringify(u);if(f.length>Yn){const w=new Error("汇总数据超过120000字符,请先缩小查询范围");throw w.code="ARTIFACT_DATA_TOO_LARGE",w}return f}function ei(e){if(!e||typeof e!="object")return null;const{question:t,pageName:n,pagePath:i,scope:r,intents:u,notes:f,warnings:w,insights:l}=e;return st({question:t,pageName:n,pagePath:i,scope:r,intents:u,notes:f,warnings:w,insights:l})}function ni(e=[]){return(Array.isArray(e)?e:[]).slice(0,6).map((t,n)=>({id:(t==null?void 0:t.id)||`chart-${n+1}`,title:(t==null?void 0:t.title)||`统计数据${n+1}`,suggestedView:(t==null?void 0:t.type)||"bar",unit:(t==null?void 0:t.unit)||"",subtitle:(t==null?void 0:t.subtitle)||"",source:(t==null?void 0:t.source)||{},rows:Vt(t==null?void 0:t.rows)}))}function ii(e=[]){return(Array.isArray(e)?e:[]).slice(0,Wn).map((t,n)=>({id:(t==null?void 0:t.id)||`dataset-${n+1}`,title:(t==null?void 0:t.title)||(t==null?void 0:t.name)||`汇总数据${n+1}`,suggestedView:(t==null?void 0:t.suggestedView)||(t==null?void 0:t.type)||"auto",unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:Vt((t==null?void 0:t.rows)||(t==null?void 0:t.data)||t)}))}function Vt(e){return(Array.isArray(e)?e:[]).slice(0,Qn).map(t=>st(t))}function st(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,50).map(n=>st(n,t+1)):typeof e=="object"?Object.entries(e).reduce((n,[i,r])=>(n[i]=st(r,t+1),n),{}):String(e)}function si(e){let t=String(e||"").trim();t.startsWith("```")&&(t=t.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const n=t.match(/");return n&&i>=n.index&&(t=t.slice(n.index,i+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),i=(t.match(/n.includes(f)).length;return i>=2&&u>=4||i>=1&&u>=6}function oi(e){const t=String(e||"").trim();if(!t||typeof DOMParser=="undefined")return"";const n=new DOMParser().parseFromString(t,"text/html"),i=n.createElement("script");return i.textContent=` + (() => { + const notify = (type, message = "") => { + window.parent.postMessage({ source: "smart-artifact", type, message: String(message).slice(0, 240) }, "*"); + }; + window.addEventListener("error", (event) => notify("runtime-error", event.message || "界面运行异常")); + window.addEventListener("unhandledrejection", (event) => notify("runtime-error", event.reason?.message || event.reason || "界面运行异常")); + window.addEventListener("DOMContentLoaded", () => notify("ready")); + })(); + `,n.head.prepend(i),` +${n.documentElement.outerHTML}`}const ri={class:"wisdom-management"},ui={key:0,class:"wisdom-side wisdom-side-left"},li={key:0,class:"wisdom-side-header"},ci={key:0},di={key:1,class:"wisdom-side-metrics"},mi={key:0},fi=["innerHTML"],gi={key:3,class:"wisdom-side-actions"},yi=["disabled","onClick"],pi={key:1,class:"wisdom-side wisdom-side-right"},vi={key:0,class:"wisdom-side-header"},wi={key:0},bi={key:2,class:"wisdom-side-metrics"},hi={key:0},ki=["innerHTML"],Ri={key:4,class:"wisdom-side-actions"},Ai=["disabled","onClick"],_i={key:2,class:"wisdom-artifact-workspace"},Si={class:"wisdom-artifact-header"},$i={class:"wisdom-artifact-heading"},Ti={class:"wisdom-artifact-tools"},Ci=["disabled"],Ni={class:"wisdom-artifact-body"},xi={key:0,class:"wisdom-artifact-building"},Pi={class:"wisdom-artifact-building__intro"},Ei=["srcdoc"],Mi={key:2,class:"wisdom-artifact-error"},Di=["disabled"],Li={key:0,class:"wisdom-empty-state"},Fi={key:0,class:"wisdom-message-mark"},zi={class:"wisdom-bubble"},Bi={key:0,class:"wisdom-digesting"},Hi=["innerHTML"],Oi={key:2,class:"wisdom-stream-caret"},qi={key:3,class:"wisdom-suggestion-list"},Vi=["disabled","onClick"],ji={class:"wisdom-input-shell"},Ii=["disabled"],Gi=["disabled","title","aria-label"],Ui=["disabled"],Yi={key:0,class:"wisdom-button-loading"},us={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=de({loader:()=>me(()=>import("./SmartChartRenderer-2248245e-1785858872961.js"),["./SmartChartRenderer-2248245e-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./index.esm.min-b7db2517-1785858872961.js","./SmartChartRenderer-7a3a96b9-balabala-1785858872961.css"],import.meta.url),loadingComponent:{template:'
    正在绘制统计图表
    '}}),n=e,i=M(""),r=M([]),u=M(!1),f=M(null),w=M(null),l=M([]),h=M([]),y=M(gt()),$=lt(()=>y.value.status!=="idle"),z=lt(()=>["collecting","generating"].includes(y.value.status)),j=lt(()=>y.value.status==="collecting"?"汇总数据":y.value.status==="generating"?"生成页面":y.value.status==="ready"?"DeepSeek生成":y.value.status==="error"?"生成失败":y.value.status==="waiting"?"等待选择":"待生成"),H=M(!1),N=M(!1),E=M("");let I=null,x=null,O=0;const G=M(null);ie(()=>{Yt(),window.addEventListener("message",wt)}),se(()=>{at(),J(),O+=1,window.removeEventListener("message",wt)}),ae(()=>n.active,s=>{s||(at(),J(),O+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?P(_({},o),{streaming:!1,digesting:!1}):o))});function Q(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function gt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function jt(s){O+=1,G.value=null,y.value=P(_({},gt()),{status:"collecting",title:yt(s),question:s})}function yt(s){const o=String(s||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function pt(s){return L(this,null,function*(){const o={question:(s==null?void 0:s.question)||y.value.question,answer:(s==null?void 0:s.answer)||"",charts:Array.isArray(s==null?void 0:s.charts)?s.charts:[],datasets:Array.isArray(s==null?void 0:s.datasets)?s.datasets:[],context:(s==null?void 0:s.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};G.value=o;const a=++O;y.value=P(_({},y.value),{status:"generating",title:yt(o.question),question:o.question,html:"",error:"",model:""});try{const d=yield Zn(o);if(a!==O)return{stale:!0};const m=oi(d.html);if(!m)throw new Error("生成页面内容为空");return y.value=P(_({},y.value),{status:"ready",html:m,error:"",model:d.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:d}}catch(d){if(a!==O)return{stale:!0};const m=At(d,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",d),y.value=P(_({},y.value),{status:"error",html:"",error:m,model:"",renderKey:Date.now()}),{ok:!1,message:m,error:d}}})}function vt(){!G.value||z.value||pt(G.value)}function It(s){O+=1,y.value=P(_({},y.value),{status:"error",html:"",error:s,renderKey:Date.now()})}function Gt(){y.value.status!=="ready"&&(y.value=P(_({},y.value),{status:"ready"}))}function wt(s){var o,a;s.source!==((o=w.value)==null?void 0:o.contentWindow)||((a=s.data)==null?void 0:a.source)!=="smart-artifact"||s.data.type==="runtime-error"&&(y.value=P(_({},y.value),{status:"error",html:"",error:s.data.message||"生成界面运行异常",renderKey:Date.now()}))}function bt(s){return String(s||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function Ut(s){return bt(s).trim()}function Yt(){if(typeof window=="undefined")return;const s=window.SpeechRecognition||window.webkitSpeechRecognition;H.value=!!s,s&&(x=new s,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{N.value=!0,E.value=""},x.onresult=o=>{const d=Array.from(o.results||[]).map(m=>{var g;return((g=m==null?void 0:m[0])==null?void 0:g.transcript)||""}).join("").trim();d&&(i.value=d)},x.onerror=o=>{N.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{N.value=!1})}function Kt(){if(!(!x||u.value)){if(N.value){J();return}try{E.value="",x.start()}catch(s){E.value=(s==null?void 0:s.message)||"语音输入启动失败",N.value=!1}}}function J(){if(!(!x||!N.value))try{x.stop()}catch(s){E.value=(s==null?void 0:s.message)||"语音输入已结束"}finally{N.value=!1}}function U(){return L(this,arguments,function*(s=i.value){const o=Ut(s);if(!o||u.value)return;J();const a={id:Q(),role:"user",text:o},d={id:Q(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,d],i.value="",u.value=!0,jt(o),yield _t(),yield Wt(o,d.id)})}function Wt(s,o){return L(this,null,function*(){var a;Y(o,{digestText:"生成中"});try{const d=window.location.hash||window.location.pathname,m=yield Sn(s,{pagePath:d}),g=$n(m),A=(a=m.insights)!=null&&a.length?m.insights:kt(m.charts||[]);Y(o,{digesting:!0,digestText:"生成中",insights:A,suggestions:[],allowFollowUp:!0}),ht({question:s,answer:g,charts:m.charts||[],insights:A,suggestions:[]}),Rt(o,Qt()),pt({question:s,answer:g,charts:m.charts||[],datasets:m.datasets||[],context:m})}catch(d){const m=At(d,"上下文数据整理失败,请稍后重试。");ht({question:s,answer:m,charts:[],insights:[],suggestions:[]}),It(m),Rt(o,m)}})}function Qt(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` +`)}function X(s){const o=Number(String(s).replace(/,/g,""));return Number.isFinite(o)?o.toLocaleString("zh-CN",{maximumFractionDigits:2}):s||"--"}function ht({question:s,answer:o,charts:a=[],insights:d=[],suggestions:m=[],aiPanels:g}={}){const A=(g==null?void 0:g.leftPanels)||[],T=(g==null?void 0:g.rightPanels)||[];if(A.length||T.length){l.value=A,h.value=T;return}const S=Jt({question:s,answer:o,charts:a,insights:d,suggestions:m});l.value=S.left,h.value=S.right}function Jt({question:s,answer:o,charts:a=[],insights:d=[],suggestions:m=[]}={}){const g=[],A=[],T=(d.length?d:kt(a)).map(S=>({label:S.label,value:S.value,note:S.note}));return!a.length&&!T.length?{left:g,right:A}:(T.length&&g.push({id:`summary-${Q()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:T.slice(0,4),actions:[]}),a.slice(0,2).forEach((S,D)=>{A.push({id:`chart-${S.id||D}-${Q()}`,type:"chart",kicker:D===0?"可视分析":"关联图表",title:S.title||`统计图表${D+1}`,badge:S.unit||"",chart:S,items:[],actions:[],text:""})}),{left:g.slice(0,2),right:A.slice(0,2)})}function kt(s=[]){const o=[];return s.slice(0,2).forEach(a=>{var K;const d=(a.rows||[]).map(C=>P(_({},C),{value:Number(C.value)})).filter(C=>C.name&&Number.isFinite(C.value));if(!d.length)return;const m=a.unit||((K=d.find(C=>C.unit))==null?void 0:K.unit)||"",g=d.slice().sort((C,ut)=>ut.value-C.value),A=d.reduce((C,ut)=>C+ut.value,0),T=A/d.length,S=g[0],D=g[g.length-1];o.push({label:"最高",value:`${S.name} ${X(S.value)}${m}`,note:a.title}),d.length>2&&o.push({label:a.type==="pie"?"占比项":"最低",value:`${D.name} ${X(D.value)}${m}`,note:a.type==="pie"?"最小结构项":"低值区域"}),o.push({label:"合计",value:`${X(A)}${m}`,note:d.length>1?`覆盖 ${d.length} 项`:a.title}),a.type!=="pie"&&d.length>1&&o.push({label:"均值",value:`${X(T)}${m}`,note:"按当前图表项计算"})}),o.slice(0,4)}function Y(s,o,a=!0){r.value=r.value.map(d=>d.id===s?_(_({},d),o):d),a&&_t()}function Rt(s,o){Y(s,{digesting:!1}),Xt(s,o)}function At(s,o){const a=String((s==null?void 0:s.message)||"");return(s==null?void 0:s.code)===401||(s==null?void 0:s.code)==="401"||(s==null?void 0:s.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(a)?"当前登录状态已失效,请重新登录后查询。":(s==null?void 0:s.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(a)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(s==null?void 0:s.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(a)?"本次分析已中断,请重新提交。":(s==null?void 0:s.code)==="HTTP_404"||(s==null?void 0:s.status)===404||/HTTP 404/i.test(a)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(a)||/[a-zA-Z]{4,}/.test(a)?o:a||o}function Xt(s,o){at();const a=bt(o),d=a.length>1200?36:a.length>700?24:14;let m=0;Y(s,{fullText:a,visibleText:"",streaming:!0,charts:[]});const g=()=>{if(m=Math.min(m+d,a.length),Y(s,{visibleText:a.slice(0,m),streaming:m=a.length){I=null,u.value=!1;return}I=window.setTimeout(g,18)};I=window.setTimeout(g,0)}function at(){I&&(window.clearTimeout(I),I=null)}function ot(s){const o=Zt(s).split(/\r?\n/),a=[];let d=[],m=!1;const g=()=>{d.length&&(a.push(`<${m?"ol":"ul"}>${d.map(A=>`
  • ${rt(A)}
  • `).join("")}`),d=[],m=!1)};return o.forEach(A=>{const T=A.trim();if(!T){g();return}const S=T.match(/^#{1,4}\s+(.+)$/)||T.match(/^\*\*(.+)\*\*$/);if(S){g(),a.push(`

    ${rt(S[1])}

    `);return}const D=T.match(/^\d+[.)、]\s+(.+)$/),K=T.match(/^[-*]\s+(.+)$/);if(D||K){const C=!!D;d.length&&m!==C&&g(),m=C,d.push(D?D[1]:K[1]);return}g(),a.push(`

    ${rt(T)}

    `)}),g(),a.join("")}function rt(s){return s.replace(/\*\*([^*]+)\*\*/g,"$1")}function Zt(s){return String(s||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function _t(){return L(this,null,function*(){yield fe(),window.requestAnimationFrame(()=>{f.value&&(f.value.scrollTop=f.value.scrollHeight)})})}return(s,o)=>(v(),b("div",ri,[o[16]||(o[16]=Nt('',1)),l.value.length&&!$.value?(v(),b("aside",ui,[(v(!0),b(F,null,B(l.value,a=>{var d,m;return v(),b("section",{key:a.id,class:q(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(v(),b("header",li,[p("div",null,[p("span",null,R(a.kicker),1),p("strong",null,R(a.title),1)]),a.badge?(v(),b("em",ci,R(a.badge),1)):k("",!0)])),(d=a.items)!=null&&d.length?(v(),b("div",di,[(v(!0),b(F,null,B(a.items,g=>(v(),b("div",{key:`${a.id}-${g.label}`,class:"wisdom-side-metric"},[p("span",null,R(g.label),1),p("strong",null,R(g.value),1),g.note?(v(),b("em",mi,R(g.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(v(),b("div",{key:2,class:"wisdom-side-text",innerHTML:ot(a.text)},null,8,fi)):k("",!0),(m=a.actions)!=null&&m.length?(v(),b("div",gi,[(v(!0),b(F,null,B(a.actions,g=>(v(),b("button",{key:g.question,type:"button",disabled:u.value,onClick:A=>U(g.question)},R(g.label),9,yi))),128))])):k("",!0)],2)}),128))])):k("",!0),h.value.length&&!$.value?(v(),b("aside",pi,[(v(!0),b(F,null,B(h.value,a=>{var d,m;return v(),b("section",{key:a.id,class:q(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(v(),b("header",vi,[p("div",null,[p("span",null,R(a.kicker),1),p("strong",null,R(a.title),1)]),a.badge?(v(),b("em",wi,R(a.badge),1)):k("",!0)])),a.chart?(v(),oe(re(t),{key:1,class:"wisdom-side-chart",chart:a.chart},null,8,["chart"])):k("",!0),(d=a.items)!=null&&d.length?(v(),b("div",bi,[(v(!0),b(F,null,B(a.items,g=>(v(),b("div",{key:`${a.id}-${g.label}`,class:"wisdom-side-metric"},[p("span",null,R(g.label),1),p("strong",null,R(g.value),1),g.note?(v(),b("em",hi,R(g.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(v(),b("div",{key:3,class:"wisdom-side-text",innerHTML:ot(a.text)},null,8,ki)):k("",!0),(m=a.actions)!=null&&m.length?(v(),b("div",Ri,[(v(!0),b(F,null,B(a.actions,g=>(v(),b("button",{key:g.question,type:"button",disabled:u.value,onClick:A=>U(g.question)},R(g.label),9,Ai))),128))])):k("",!0)],2)}),128))])):k("",!0),$.value?(v(),b("section",_i,[p("header",Si,[p("div",$i,[o[4]||(o[4]=p("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),p("div",null,[o[3]||(o[3]=p("small",null,"专题分析",-1)),p("strong",null,R(y.value.title),1)])]),p("div",Ti,[p("span",{class:q(["wisdom-artifact-status",`is-${y.value.status}`])},[o[5]||(o[5]=p("i",null,null,-1)),xt(R(j.value),1)],2),y.value.status==="ready"||y.value.status==="error"?(v(),b("button",{key:0,type:"button",disabled:z.value||!G.value,title:"重新生成当前界面",onClick:vt}," 重新生成 ",8,Ci)):k("",!0)])]),p("div",Ni,[z.value?(v(),b("div",xi,[p("div",Pi,[o[6]||(o[6]=p("span",{class:"wisdom-artifact-building__spinner"},null,-1)),p("div",null,[p("strong",null,R(y.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),o[7]||(o[7]=Nt('
    ',3))])):y.value.html?(v(),b("iframe",{key:y.value.renderKey,ref_key:"artifactFrameRef",ref:w,class:"wisdom-artifact-frame",srcdoc:y.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:Gt},null,40,Ei)):(v(),b("div",Mi,[o[8]||(o[8]=p("strong",null,"专题分析页面暂未生成",-1)),p("p",null,R(y.value.error||"当前数据不足以形成专题分析页面。"),1),p("button",{type:"button",disabled:!G.value,onClick:vt},"重新生成",8,Di)]))])])):k("",!0),p("main",{class:q(["wisdom-chat",{"has-artifact":$.value}])},[p("div",{ref_key:"dialogueRef",ref:f,class:q(["wisdom-dialogue",{"is-empty":!r.value.length}])},[r.value.length?k("",!0):(v(),b("section",Li,[...o[9]||(o[9]=[p("div",{class:"wisdom-empty-mark"},[p("span"),p("strong",null,"AI")],-1),p("h2",null,"智慧辅助分析",-1)])])),(v(!0),b(F,null,B(r.value,a=>{var d;return v(),b("article",{key:a.id,class:q(["wisdom-message",`is-${a.role}`])},[a.role==="assistant"?(v(),b("div",Fi,[...o[10]||(o[10]=[p("span",null,"智",-1)])])):k("",!0),p("div",zi,[a.role==="user"?(v(),b(F,{key:0},[xt(R(a.text),1)],64)):(v(),b(F,{key:1},[a.digesting?(v(),b("div",Bi,[o[11]||(o[11]=p("span",null,null,-1)),o[12]||(o[12]=p("span",null,null,-1)),o[13]||(o[13]=p("span",null,null,-1)),p("em",null,R(a.digestText||"正在汇总分析"),1)])):k("",!0),a.visibleText?(v(),b("div",{key:1,class:"wisdom-answer",innerHTML:ot(a.visibleText)},null,8,Hi)):k("",!0),a.streaming?(v(),b("span",Oi)):k("",!0),(d=a.suggestions)!=null&&d.length&&(a.allowFollowUp||!a.digesting&&!a.streaming)?(v(),b("div",qi,[(v(!0),b(F,null,B(a.suggestions,m=>(v(),b("button",{key:m.question,type:"button",disabled:u.value,onClick:g=>U(m.question)},R(m.label),9,Vi))),128))])):k("",!0)],64))])],2)}),128))],2),p("form",{class:"wisdom-input-bar",onSubmit:o[2]||(o[2]=Pt(a=>U(),["prevent"]))},[p("div",ji,[o[15]||(o[15]=p("span",{class:"wisdom-input-icon"},null,-1)),ue(p("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>i.value=a),disabled:u.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:o[1]||(o[1]=ce(Pt(a=>U(),["prevent"]),["enter"]))},null,40,Ii),[[le,i.value]]),p("button",{type:"button",class:q(["wisdom-voice-button",{"is-listening":N.value}]),disabled:u.value||!H.value,title:H.value?N.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":H.value?N.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:Kt},[...o[14]||(o[14]=[p("span",null,null,-1)])],10,Gi),p("button",{class:"wisdom-submit-button",type:"submit",disabled:u.value||!i.value.trim()},[u.value?(v(),b("span",Yi)):k("",!0),p("span",null,R(u.value?"分析中":"发送"),1)],8,Ui)])],32)],2)]))}};export{us as default}; diff --git a/docs/assets/index-d7210760-balabala-1785726778446.css b/docs/assets/index-4a35ba93-balabala-1785858872961.css similarity index 79% rename from docs/assets/index-d7210760-balabala-1785726778446.css rename to docs/assets/index-4a35ba93-balabala-1785858872961.css index 787bdae..7bbc0bd 100644 --- a/docs/assets/index-d7210760-balabala-1785726778446.css +++ b/docs/assets/index-4a35ba93-balabala-1785858872961.css @@ -1 +1 @@ -@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1785726778446.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1785726778446.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1785726778446.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1785726778446.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1785726778446.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1785726778446.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1785726778446.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1785726778446.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1785726778446.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1785726778446.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1785726778446.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1785726778446.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1785726778446.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1785726778446.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1785726778446.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1785726778446.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1785726778446.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1785726778446.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1785726778446.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1785726778446.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1785726778446.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1785726778446.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1785726778446.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1785726778446.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1785726778446.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1785726778446.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1785726778446.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:13px;font-weight:600;line-height:16px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:9px;font-weight:500;line-height:10px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen .top-menu{top:45px}.platform-screen .top-menu .m-menu-item{min-width:120px;height:36px;margin:0 5px;padding:0 18px;border:1px solid rgba(91,224,244,.12);border-radius:18px;color:#e7f9fcc2;font-size:14px;font-weight:600;line-height:34px;background-image:linear-gradient(180deg,rgba(9,57,76,.5),rgba(3,28,43,.34));box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #30dcff1f;transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}.platform-screen .top-menu .m-menu-item:hover{border-color:#5be0f46b;color:#fff;background-image:linear-gradient(180deg,rgba(20,104,127,.76),rgba(5,42,59,.68))}.platform-screen .top-menu .m-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px #020f18f0,0 0 0 4px #7efbf6e6}.platform-screen .top-menu .m-menu-item.is-active{border-color:#7efbf6c2;color:#fff;background-image:linear-gradient(180deg,rgba(29,142,158,.9),rgba(5,57,74,.86));box-shadow:inset 0 0 0 1px #7efbf633,inset 0 -2px #7efbf6,0 0 16px #30dcff2e}.platform-screen .top-menu .m-menu-item.is-active:after{content:none;animation:none}.platform-screen{--v22-surface: rgba(4, 28, 42, .9);--v22-surface-raised: rgba(7, 42, 58, .94);--v22-border: rgba(91, 224, 244, .46);--v22-border-strong: rgba(126, 251, 246, .76);--v22-text: rgba(247, 254, 255, .96);--v22-text-secondary: rgba(223, 250, 255, .8);--v22-text-muted: rgba(211, 241, 247, .66);--v22-accent: #7efbf6;--v22-accent-strong: #30dcff;--v22-highlight: #ffd76c;--v22-focus-ring: 0 0 0 2px rgba(2, 15, 24, .94), 0 0 0 4px rgba(126, 251, 246, .9);color:var(--v22-text)}.platform-screen button,.platform-screen [role=button],.platform-screen input,.platform-screen select,.platform-screen textarea{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen button:focus-visible,.platform-screen [role=button]:focus-visible,.platform-screen input:focus-visible,.platform-screen select:focus-visible,.platform-screen textarea:focus-visible{outline:none!important;box-shadow:var(--v22-focus-ring)!important}.platform-screen .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(74,210,233,.12),transparent 40%),linear-gradient(160deg,rgba(6,38,54,.95),rgba(2,20,32,.91));box-shadow:inset 0 0 0 1px #5be0f438,0 12px 28px #00081045}.platform-screen .m-card-hd-title{left:18px;color:#fff;font-size:16px;font-weight:650;letter-spacing:.5px}.platform-screen .m-card-hd .saoguang,.platform-screen .m-card-hd-zs1{opacity:.34}.platform-screen .top-count-card{top:110px;column-gap:24px}.platform-screen .top-count-card .count-card{min-height:86px;padding:4px 12px 6px!important;border-bottom:1px solid rgba(91,224,244,.16);background:linear-gradient(90deg,rgba(5,34,48,.5),rgba(4,24,37,.08))}.platform-screen .top-count-card .title-zh{color:var(--v22-text-secondary);font-size:14px;font-weight:600}.platform-screen .top-count-card .value{font-variant-numeric:tabular-nums}.platform-screen .top-count-card .unit{color:var(--v22-text-muted);font-size:12px}.platform-screen.is-home .top-count-card.is-home-five{left:492px;right:492px;top:96px;grid-template-columns:188px 200px 214px 146px 146px;column-gap:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card{display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:19px 35px;align-content:center;align-items:center;min-height:74px;padding:0!important;border-bottom:0;background:none;box-sizing:border-box}.platform-screen.is-home .top-count-card.is-home-five .count-card-left{display:contents}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{grid-column:1;grid-row:1/3;align-self:center;width:54px;height:68px;flex-basis:54px;margin-right:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-title{grid-column:2;grid-row:1;align-self:end;min-width:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{overflow:hidden;color:#dffaffc7;font-size:12px;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{grid-column:2;grid-row:2;align-self:start;min-width:0;padding-left:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{min-height:31px;margin-right:5px;font-size:27px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:0;font-size:10px;line-height:14px}.platform-screen .platform-map-tools{gap:8px;transform:none}.platform-screen .platform-map-tools button{width:38px;height:38px;border-radius:2px;background:linear-gradient(180deg,rgba(18,92,115,.94),rgba(3,31,47,.96));box-shadow:inset 0 0 0 1px #ffffff0a,0 8px 20px #00070e47}.platform-screen .layer-panel-item{min-height:34px;padding-block:6px;border-radius:2px;font-size:13px}.platform-screen .layer-panel-section-title,.platform-screen .layer-panel .legend-name,.platform-screen .layer-panel-empty{font-size:12px;line-height:18px}.platform-screen .layer-panel-empty.is-legend{min-height:32px;color:var(--v22-text-muted)}.platform-screen .fgw-bottom-topic,.platform-screen .yak-bottom-topic{bottom:28px}.platform-screen .fgw-map-layer-tools,.platform-screen .pasture-map-layer-tools,.platform-screen .yak-map-layer-tools{bottom:116px}.platform-screen .business-panel.is-v21 .business-column-item,.platform-screen .business-panel.is-v21 .business-peak-item,.platform-screen .business-panel.is-v21 .business-bar-row,.platform-screen .business-panel.is-v21 .business-donut-row,.platform-screen .business-panel.is-v21 .business-rose-row,.platform-screen .business-panel.is-v21 .business-metric-item,.platform-screen .business-panel.is-v21 .business-split-row{color:var(--v22-text-secondary);font-size:12px}.platform-screen .business-panel.is-v21 .business-column-item strong,.platform-screen .business-panel.is-v21 .business-peak-item strong,.platform-screen .business-panel.is-v21 .business-bar-row strong,.platform-screen .business-panel.is-v21 .business-donut-row strong,.platform-screen .business-panel.is-v21 .business-metric-item strong{color:#fff;font-size:13px}.platform-screen .feature-row span{color:var(--v22-text-secondary);font-size:12px}.platform-screen .feature-row strong{color:#fff;font-size:13px}.platform-screen .epidemic-record-toolbar,.platform-screen .trade-ledger-toolbar{height:32px}.platform-screen .epidemic-record-toolbar input,.platform-screen .epidemic-record-toolbar button,.platform-screen .trade-ledger-toolbar input,.platform-screen .trade-ledger-toolbar button{height:28px;font-size:11px}.platform-screen .epidemic-record-header,.platform-screen .trade-ledger-header{height:28px}.platform-screen .epidemic-record-header span,.platform-screen .trade-ledger-header span{color:var(--v22-text-secondary);font-size:11px;font-weight:600}.platform-screen .epidemic-record-rows,.platform-screen .trade-ledger-rows{gap:4px}.platform-screen .epidemic-record-rows button,.platform-screen .trade-ledger-rows button{min-height:28px;border-color:#5be0f41f;background:rgba(5,38,52,.5)}.platform-screen .epidemic-record-rows span,.platform-screen .epidemic-record-rows strong,.platform-screen .trade-ledger-rows span,.platform-screen .trade-ledger-rows strong{color:var(--v22-text-secondary);font-size:11px;line-height:15px}.platform-screen .epidemic-record-rows strong,.platform-screen .trade-ledger-rows strong{color:#fff}.platform-screen .business-project-frame th,.platform-screen .business-project-frame td{font-size:12px!important;line-height:16px!important}.platform-screen .business-project-frame tbody td{min-height:34px;padding-top:5px;padding-bottom:5px}.platform-screen .business-project-frame strong{font-size:13px!important;line-height:16px!important}.platform-screen .business-project-frame .business-project-locate-button{width:30px;height:30px}.platform-screen .trade-year-switcher,.platform-screen .forecast-year-switcher,.platform-screen .epidemic-year-switcher{width:110px;box-sizing:border-box}.platform-screen .trade-year-switcher button,.platform-screen .forecast-year-switcher button,.platform-screen .epidemic-year-switcher button{width:100%;min-width:0;height:34px;border-color:#5be0f459;color:var(--v22-text-secondary);font-size:12px;background:rgba(4,32,45,.86)}.platform-screen .trade-year-switcher button.active,.platform-screen .forecast-year-switcher button.active,.platform-screen .epidemic-year-switcher button.active{border-color:#7efbf6b8;color:#061c29;background:linear-gradient(180deg,#8dfcf7,#45dbea)}@media (prefers-reduced-motion: reduce){.platform-screen *,.platform-screen *:before,.platform-screen *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen .top-count-card{left:432px!important;right:432px!important;top:102px!important;display:grid!important;grid-template-columns:repeat(3,200px)!important;grid-auto-rows:82px!important;justify-content:center!important;align-items:stretch!important;column-gap:12px!important;row-gap:8px!important}.platform-screen .top-count-card>.count-card{display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;grid-template-rows:21px 34px!important;align-content:center!important;align-items:center!important;width:200px!important;min-width:200px!important;min-height:82px!important;height:82px!important;padding:0 8px!important;box-sizing:border-box!important;justify-content:stretch!important}.platform-screen .top-count-card .count-card-left{display:contents!important}.platform-screen .top-count-card .count-card-icon{grid-column:1!important;grid-row:1/3!important;align-self:center!important;width:54px!important;height:68px!important;flex-basis:54px!important;margin-right:0!important}.platform-screen .top-count-card .count-card-title{grid-column:2!important;grid-row:1!important;align-self:end!important;min-width:0!important}.platform-screen .top-count-card .count-card-title .title-zh{display:block!important;max-width:100%!important;overflow:hidden!important;font-size:12px!important;line-height:17px!important;text-overflow:ellipsis!important;white-space:nowrap!important}.platform-screen .top-count-card .count-card-title .title-en{display:none!important}.platform-screen .top-count-card .count-card-right{grid-column:2!important;grid-row:2!important;align-self:start!important;min-width:0!important;padding-left:0!important}.platform-screen .top-count-card .count-card-right .value{min-height:31px!important;margin-right:4px!important;font-size:27px!important;line-height:31px!important}.platform-screen .top-count-card .count-card-right .unit{padding-top:8px!important;font-size:10px!important;line-height:1!important}.platform-screen .top-count-card.is-four{left:432px!important;right:432px!important;grid-template-columns:repeat(4,200px)!important;column-gap:12px!important}.platform-screen .top-count-card.is-multi,.platform-screen .top-count-card.is-home-five,.platform-screen.is-home .top-count-card.is-home-five{left:432px!important;right:432px!important;display:grid!important;grid-template-columns:repeat(5,200px)!important;column-gap:12px!important;justify-content:center!important}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-list.is-compact{padding:4px 12px 6px;overflow:hidden}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-row{grid-template-columns:19px minmax(0,1fr) 112px;gap:6px;height:20px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-rank{width:16px;height:16px;font-size:10px;line-height:14px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-name{font-size:11px;line-height:13px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-bar{height:3px;margin-top:2px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;white-space:nowrap}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value strong{font-size:13px;line-height:15px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value em{margin-left:0;font-size:9px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value span{display:inline;margin-top:0;overflow:hidden;font-size:9px;line-height:11px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-ecological-protection .fgw-side-card[class*=-resource-structure] .business-structure-row{grid-template-columns:9px minmax(0,1fr) 64px 60px;gap:4px;padding-inline:6px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-list{grid-auto-rows:minmax(15px,1fr);gap:2px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row{grid-template-columns:7px minmax(0,1fr) 66px 56px;gap:3px;padding-inline:4px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row i{width:6px;height:6px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row span,.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row small{font-size:9px;line-height:11px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row strong{font-size:11px;line-height:13px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-projects .business-project-frame tbody td{height:28px;min-height:28px;padding-top:0;padding-bottom:0;overflow:hidden;line-height:14px;text-overflow:ellipsis;white-space:nowrap;word-break:normal}.platform-screen.is-yak-management .trade-ledger-header,.platform-screen.is-yak-management .trade-ledger-rows button{grid-template-columns:90px 56px 39px 46px 34px 64px}.platform-screen.is-yak-industry-chain .top-count-card.is-multi{left:388px!important;right:388px!important;top:98px!important;grid-template-columns:repeat(6,170px)!important;grid-auto-rows:72px!important;column-gap:8px!important;row-gap:0!important;justify-content:center!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi>div:nth-child(n){grid-column:auto!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi>.count-card{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:18px 32px!important;align-content:center!important;align-items:center!important;width:170px!important;min-width:0!important;height:72px!important;min-height:72px!important;padding:0!important;box-sizing:border-box!important;overflow:hidden!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-left{display:contents!important;min-width:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-icon{grid-column:1!important;grid-row:1/3!important;align-self:center!important;width:46px!important;height:58px!important;flex-basis:46px!important;margin-right:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-title{grid-column:2!important;grid-row:1!important;align-self:end!important;min-width:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right{grid-column:2!important;grid-row:2!important;align-self:start!important;min-width:0!important;padding-left:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-title .title-zh{overflow:hidden!important;font-size:12px!important;line-height:16px!important;text-overflow:ellipsis!important;white-space:nowrap!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right .value{min-height:29px!important;margin-right:4px!important;font-size:25px!important;line-height:30px!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right .unit{padding-top:9px!important;font-size:10px!important;line-height:1!important}.platform-screen.is-yak-industry-chain .industry-bottom-switcher{left:50%;right:auto;width:max-content;transform:translate(-50%)}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher,.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-menu{width:max-content;max-width:calc(100vw - 96px)}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher{padding-inline:1px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-menu{gap:0}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-item{flex:0 0 92px;width:92px;min-width:92px;padding-inline:1px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-name{padding-inline:0}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-title{font-size:11px;line-height:24px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-name small{display:none}.platform-screen.is-yak-industry-chain .industry-side-panel--left,.platform-screen.is-yak-industry-chain .industry-side-panel--right{perspective:none}.platform-screen.is-yak-industry-chain .industry-side-stack{transform-style:flat}.platform-screen.is-yak-industry-chain .industry-side-stack.is-left,.platform-screen.is-yak-industry-chain .industry-side-stack.is-right{transform:none;transform-origin:center}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .m-card-hd-title,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .m-card-hd-title{left:18px;color:var(--v22-text);font-size:16px;font-weight:650;line-height:24px;letter-spacing:.5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .m-card-bd:before,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .m-card-bd:before{border-color:var(--v22-border);background:radial-gradient(circle at 18% 0%,rgba(74,210,233,.12),transparent 40%),linear-gradient(160deg,rgba(6,38,54,.95),rgba(2,20,32,.91))}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metrics,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metrics{gap:8px;padding:8px 12px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip{border:1px solid rgba(91,224,244,.2);border-radius:2px;background:linear-gradient(135deg,rgba(12,66,83,.54),rgba(4,27,41,.7)),rgba(4,28,42,.72);box-shadow:inset 0 1px #ffffff09}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:18px 30px;align-content:center;align-items:end;padding:8px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item span{grid-column:1/-1;align-self:center;color:var(--v22-text-secondary)!important;font-size:12px;font-weight:600;line-height:18px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item strong{align-self:end;margin-top:0;color:var(--v22-text)!important;font-size:22px;font-variant-numeric:tabular-nums;line-height:28px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item em{align-self:end;margin-left:4px;padding-bottom:4px;color:var(--v22-text-muted)!important;font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip span{color:var(--v22-text-secondary)!important;font-size:12px;font-weight:600}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy strong,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong{color:var(--v22-text)!important;font-variant-numeric:tabular-nums}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong em{color:var(--v22-text-muted)!important;font-size:10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .industry-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .industry-panel-empty{color:var(--v22-text-muted);font-size:13px;font-weight:600}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-support-type .business-structure-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-support-type .business-structure-row{grid-template-columns:9px minmax(0,1fr) 64px 60px;gap:4px;padding-inline:6px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-list.is-compact,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-list.is-compact{gap:1px;padding:2px 12px 4px;overflow:hidden}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-row{grid-template-columns:19px minmax(0,1fr) 126px;gap:6px;height:16px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-rank,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-rank{width:16px;height:14px;font-size:9px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-name,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-name{font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-bar,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-bar{height:3px;margin-top:2px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;white-space:nowrap}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value strong{font-size:12px;line-height:14px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value em{margin-left:0;font-size:9px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value span{display:inline;margin-top:0;overflow:hidden;font-size:9px;line-height:11px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight{grid-template-columns:132px minmax(0,1fr);gap:8px;padding:8px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main{padding:10px 8px 8px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong{margin:7px 0 4px;font-size:26px;line-height:29px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-side,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-side{grid-template-rows:repeat(3,minmax(0,1fr));gap:5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip{grid-template-columns:7px minmax(0,1fr);gap:0 6px;padding:4px 8px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip i,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip i{width:6px;height:22px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip small,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip small{font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong{font-size:15px;line-height:17px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid{gap:3px;padding:5px 8px 6px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__row{grid-template-rows:16px 17px;column-gap:6px;padding:2px 6px 2px 5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__index,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__index{width:20px;height:20px;font-size:10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__name,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__name{font-size:11px;line-height:14px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__count,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__count{min-width:48px;padding-left:7px;font-size:19px;line-height:21px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs{gap:3px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs>span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs>span{gap:2px;padding:1px 3px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-operation .business-bars,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-operation .business-bars{gap:2px;padding:4px 12px 5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-operation .business-bar-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-operation .business-bar-row{min-height:0}.platform-screen.is-yak-industry-chain .top-count-card .title-zh{color:var(--v22-text-secondary)!important;font-size:12px!important;font-weight:600}.platform-screen.is-yak-industry-chain .top-count-card .value{color:var(--v22-text)!important;font-variant-numeric:tabular-nums}.platform-screen.is-yak-industry-chain .top-count-card .unit{color:var(--v22-text-muted)!important;font-size:10px!important}.platform-screen.is-smart-management .wisdom-input-bar{flex-basis:72px;padding:10px 8px 2px}.platform-screen.is-smart-management .wisdom-input-shell{height:54px;gap:8px;padding:6px 7px 6px 14px;border-color:#5be0f480;background:linear-gradient(90deg,rgba(10,54,70,.86),rgba(2,21,34,.96)),rgba(3,24,37,.94)}.platform-screen.is-smart-management .wisdom-input-icon{width:14px;height:14px;margin-right:3px;border-width:1.5px}.platform-screen.is-smart-management .wisdom-input-shell input{height:38px;padding:0 12px;border:1px solid rgba(48,220,255,.58);background:rgba(0,16,27,.44);box-shadow:inset 0 0 14px #30dcff0a;box-sizing:border-box;font-size:14px}.platform-screen.is-smart-management .wisdom-input-shell input:focus{border-color:#7efbf6eb;box-shadow:inset 0 0 16px #30dcff14,0 0 0 1px #7efbf61f}.platform-screen.is-smart-management .wisdom-voice-button,.platform-screen.is-smart-management .wisdom-submit-button{height:38px}.platform-screen.is-smart-management .wisdom-voice-button{width:40px;border-color:#30dcff75}.platform-screen.is-smart-management .wisdom-submit-button{font-size:13px;font-weight:650}.platform-screen.is-smart-management .wisdom-submit-button:disabled,.platform-screen.is-smart-management .wisdom-voice-button:disabled{opacity:.48}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-module-pane:has(.home-more-modal){z-index:120}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.engineering-analysis-panel) .platform-map-tools{left:510px;bottom:168px;transform:none}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:432px;right:432px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:432px;right:432px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:12px}.platform-screen .top-count-card.is-four .count-card-icon{width:58px;height:78px;flex-basis:58px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:432px;right:432px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:432px;right:432px;top:102px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:auto;column-gap:12px;row-gap:0;justify-content:stretch;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:432px;top:82px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:12px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:432px;right:432px;top:96px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:12px;justify-content:stretch}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} +@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1785858872961.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1785858872961.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1785858872961.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1785858872961.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1785858872961.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1785858872961.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1785858872961.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1785858872961.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1785858872961.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1785858872961.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1785858872961.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1785858872961.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1785858872961.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1785858872961.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1785858872961.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1785858872961.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1785858872961.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1785858872961.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1785858872961.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1785858872961.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1785858872961.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1785858872961.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1785858872961.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1785858872961.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1785858872961.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1785858872961.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1785858872961.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:13px;font-weight:600;line-height:16px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:9px;font-weight:500;line-height:10px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen .top-menu{top:45px}.platform-screen .top-menu .m-menu-item{min-width:120px;height:36px;margin:0 5px;padding:0 18px;border:1px solid rgba(91,224,244,.12);border-radius:18px;color:#e7f9fcc2;font-size:14px;font-weight:600;line-height:34px;background-image:linear-gradient(180deg,rgba(9,57,76,.5),rgba(3,28,43,.34));box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #30dcff1f;transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}.platform-screen .top-menu .m-menu-item:hover{border-color:#5be0f46b;color:#fff;background-image:linear-gradient(180deg,rgba(20,104,127,.76),rgba(5,42,59,.68))}.platform-screen .top-menu .m-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px #020f18f0,0 0 0 4px #7efbf6e6}.platform-screen .top-menu .m-menu-item.is-active{border-color:#7efbf6c2;color:#fff;background-image:linear-gradient(180deg,rgba(29,142,158,.9),rgba(5,57,74,.86));box-shadow:inset 0 0 0 1px #7efbf633,inset 0 -2px #7efbf6,0 0 16px #30dcff2e}.platform-screen .top-menu .m-menu-item.is-active:after{content:none;animation:none}.platform-screen{--v22-surface: rgba(4, 28, 42, .9);--v22-surface-raised: rgba(7, 42, 58, .94);--v22-border: rgba(91, 224, 244, .46);--v22-border-strong: rgba(126, 251, 246, .76);--v22-text: rgba(247, 254, 255, .96);--v22-text-secondary: rgba(223, 250, 255, .8);--v22-text-muted: rgba(211, 241, 247, .66);--v22-accent: #7efbf6;--v22-accent-strong: #30dcff;--v22-highlight: #ffd76c;--v22-focus-ring: 0 0 0 2px rgba(2, 15, 24, .94), 0 0 0 4px rgba(126, 251, 246, .9);color:var(--v22-text)}.platform-screen button,.platform-screen [role=button],.platform-screen input,.platform-screen select,.platform-screen textarea{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen button:focus-visible,.platform-screen [role=button]:focus-visible,.platform-screen input:focus-visible,.platform-screen select:focus-visible,.platform-screen textarea:focus-visible{outline:none!important;box-shadow:var(--v22-focus-ring)!important}.platform-screen .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(74,210,233,.12),transparent 40%),linear-gradient(160deg,rgba(6,38,54,.95),rgba(2,20,32,.91));box-shadow:inset 0 0 0 1px #5be0f438,0 12px 28px #00081045}.platform-screen .m-card-hd-title{left:18px;color:#fff;font-size:16px;font-weight:650;letter-spacing:.5px}.platform-screen .m-card-hd .saoguang,.platform-screen .m-card-hd-zs1{opacity:.34}.platform-screen .top-count-card{top:110px;column-gap:24px}.platform-screen .top-count-card .count-card{min-height:86px;padding:4px 12px 6px!important;border-bottom:1px solid rgba(91,224,244,.16);background:linear-gradient(90deg,rgba(5,34,48,.5),rgba(4,24,37,.08))}.platform-screen .top-count-card .title-zh{color:var(--v22-text-secondary);font-size:14px;font-weight:600}.platform-screen .top-count-card .value{font-variant-numeric:tabular-nums}.platform-screen .top-count-card .unit{color:var(--v22-text-muted);font-size:12px}.platform-screen.is-home .top-count-card.is-home-five{left:492px;right:492px;top:96px;grid-template-columns:188px 200px 214px 146px 146px;column-gap:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card{display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:19px 35px;align-content:center;align-items:center;min-height:74px;padding:0!important;border-bottom:0;background:none;box-sizing:border-box}.platform-screen.is-home .top-count-card.is-home-five .count-card-left{display:contents}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{grid-column:1;grid-row:1/3;align-self:center;width:54px;height:68px;flex-basis:54px;margin-right:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-title{grid-column:2;grid-row:1;align-self:end;min-width:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{overflow:hidden;color:#dffaffc7;font-size:12px;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{grid-column:2;grid-row:2;align-self:start;min-width:0;padding-left:0}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{min-height:31px;margin-right:5px;font-size:27px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:0;font-size:10px;line-height:14px}.platform-screen .platform-map-tools{gap:8px;transform:none}.platform-screen .platform-map-tools button{width:38px;height:38px;border-radius:2px;background:linear-gradient(180deg,rgba(18,92,115,.94),rgba(3,31,47,.96));box-shadow:inset 0 0 0 1px #ffffff0a,0 8px 20px #00070e47}.platform-screen .layer-panel-item{min-height:34px;padding-block:6px;border-radius:2px;font-size:13px}.platform-screen .layer-panel-section-title,.platform-screen .layer-panel .legend-name,.platform-screen .layer-panel-empty{font-size:12px;line-height:18px}.platform-screen .layer-panel-empty.is-legend{min-height:32px;color:var(--v22-text-muted)}.platform-screen .fgw-bottom-topic,.platform-screen .yak-bottom-topic{bottom:28px}.platform-screen .fgw-map-layer-tools,.platform-screen .pasture-map-layer-tools,.platform-screen .yak-map-layer-tools{bottom:116px}.platform-screen .business-panel.is-v21 .business-column-item,.platform-screen .business-panel.is-v21 .business-peak-item,.platform-screen .business-panel.is-v21 .business-bar-row,.platform-screen .business-panel.is-v21 .business-donut-row,.platform-screen .business-panel.is-v21 .business-rose-row,.platform-screen .business-panel.is-v21 .business-metric-item,.platform-screen .business-panel.is-v21 .business-split-row{color:var(--v22-text-secondary);font-size:12px}.platform-screen .business-panel.is-v21 .business-column-item strong,.platform-screen .business-panel.is-v21 .business-peak-item strong,.platform-screen .business-panel.is-v21 .business-bar-row strong,.platform-screen .business-panel.is-v21 .business-donut-row strong,.platform-screen .business-panel.is-v21 .business-metric-item strong{color:#fff;font-size:13px}.platform-screen .feature-row span{color:var(--v22-text-secondary);font-size:12px}.platform-screen .feature-row strong{color:#fff;font-size:13px}.platform-screen .epidemic-record-toolbar,.platform-screen .trade-ledger-toolbar{height:32px}.platform-screen .epidemic-record-toolbar input,.platform-screen .epidemic-record-toolbar button,.platform-screen .trade-ledger-toolbar input,.platform-screen .trade-ledger-toolbar button{height:28px;font-size:11px}.platform-screen .epidemic-record-header,.platform-screen .trade-ledger-header{height:28px}.platform-screen .epidemic-record-header span,.platform-screen .trade-ledger-header span{color:var(--v22-text-secondary);font-size:11px;font-weight:600}.platform-screen .epidemic-record-rows,.platform-screen .trade-ledger-rows{gap:4px}.platform-screen .epidemic-record-rows button,.platform-screen .trade-ledger-rows button{min-height:28px;border-color:#5be0f41f;background:rgba(5,38,52,.5)}.platform-screen .epidemic-record-rows span,.platform-screen .epidemic-record-rows strong,.platform-screen .trade-ledger-rows span,.platform-screen .trade-ledger-rows strong{color:var(--v22-text-secondary);font-size:11px;line-height:15px}.platform-screen .epidemic-record-rows strong,.platform-screen .trade-ledger-rows strong{color:#fff}.platform-screen .business-project-frame th,.platform-screen .business-project-frame td{font-size:12px!important;line-height:16px!important}.platform-screen .business-project-frame tbody td{min-height:34px;padding-top:5px;padding-bottom:5px}.platform-screen .business-project-frame strong{font-size:13px!important;line-height:16px!important}.platform-screen .business-project-frame .business-project-locate-button{width:30px;height:30px}.platform-screen .trade-year-switcher,.platform-screen .forecast-year-switcher,.platform-screen .epidemic-year-switcher{width:110px;box-sizing:border-box}.platform-screen .trade-year-switcher button,.platform-screen .forecast-year-switcher button,.platform-screen .epidemic-year-switcher button{width:100%;min-width:0;height:34px;border-color:#5be0f459;color:var(--v22-text-secondary);font-size:12px;background:rgba(4,32,45,.86)}.platform-screen .trade-year-switcher button.active,.platform-screen .forecast-year-switcher button.active,.platform-screen .epidemic-year-switcher button.active{border-color:#7efbf6b8;color:#061c29;background:linear-gradient(180deg,#8dfcf7,#45dbea)}@media (prefers-reduced-motion: reduce){.platform-screen *,.platform-screen *:before,.platform-screen *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen .top-count-card{left:432px!important;right:432px!important;top:102px!important;display:grid!important;grid-template-columns:repeat(3,200px)!important;grid-auto-rows:82px!important;justify-content:center!important;align-items:stretch!important;column-gap:12px!important;row-gap:8px!important}.platform-screen .top-count-card>.count-card{display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;grid-template-rows:21px 34px!important;align-content:center!important;align-items:center!important;width:200px!important;min-width:200px!important;min-height:82px!important;height:82px!important;padding:0 8px!important;box-sizing:border-box!important;justify-content:stretch!important}.platform-screen .top-count-card .count-card-left{display:contents!important}.platform-screen .top-count-card .count-card-icon{grid-column:1!important;grid-row:1/3!important;align-self:center!important;width:54px!important;height:68px!important;flex-basis:54px!important;margin-right:0!important}.platform-screen .top-count-card .count-card-title{grid-column:2!important;grid-row:1!important;align-self:end!important;min-width:0!important}.platform-screen .top-count-card .count-card-title .title-zh{display:block!important;max-width:100%!important;overflow:hidden!important;font-size:12px!important;line-height:17px!important;text-overflow:ellipsis!important;white-space:nowrap!important}.platform-screen .top-count-card .count-card-title .title-en{display:none!important}.platform-screen .top-count-card .count-card-right{grid-column:2!important;grid-row:2!important;align-self:start!important;min-width:0!important;padding-left:0!important}.platform-screen .top-count-card .count-card-right .value{min-height:31px!important;margin-right:4px!important;font-size:27px!important;line-height:31px!important}.platform-screen .top-count-card .count-card-right .unit{padding-top:8px!important;font-size:10px!important;line-height:1!important}.platform-screen .top-count-card.is-four{left:432px!important;right:432px!important;grid-template-columns:repeat(4,200px)!important;column-gap:12px!important}.platform-screen .top-count-card.is-multi,.platform-screen .top-count-card.is-home-five,.platform-screen.is-home .top-count-card.is-home-five{left:432px!important;right:432px!important;display:grid!important;grid-template-columns:repeat(5,200px)!important;column-gap:12px!important;justify-content:center!important}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-list.is-compact{padding:4px 12px 6px;overflow:hidden}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-row{grid-template-columns:19px minmax(0,1fr) 112px;gap:6px;height:20px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-rank{width:16px;height:16px;font-size:10px;line-height:14px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-name{font-size:11px;line-height:13px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-bar{height:3px;margin-top:2px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;white-space:nowrap}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value strong{font-size:13px;line-height:15px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value em{margin-left:0;font-size:9px}.platform-screen.is-ecological-protection .fgw-side-card[class*=-wetland-distribution] .business-stat-value span{display:inline;margin-top:0;overflow:hidden;font-size:9px;line-height:11px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-ecological-protection .fgw-side-card[class*=-resource-structure] .business-structure-row{grid-template-columns:9px minmax(0,1fr) 64px 60px;gap:4px;padding-inline:6px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-list{grid-auto-rows:minmax(15px,1fr);gap:2px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row{grid-template-columns:7px minmax(0,1fr) 66px 56px;gap:3px;padding-inline:4px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row i{width:6px;height:6px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row span,.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row small{font-size:9px;line-height:11px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-measure-area .business-structure-row strong{font-size:11px;line-height:13px}.platform-screen.is-ecological-protection .ecological-side-card--restoration-projects .business-project-frame tbody td{height:28px;min-height:28px;padding-top:0;padding-bottom:0;overflow:hidden;line-height:14px;text-overflow:ellipsis;white-space:nowrap;word-break:normal}.platform-screen.is-yak-management .trade-ledger-header,.platform-screen.is-yak-management .trade-ledger-rows button{grid-template-columns:90px 56px 39px 46px 34px 64px}.platform-screen.is-yak-industry-chain .top-count-card.is-multi{left:388px!important;right:388px!important;top:98px!important;grid-template-columns:repeat(6,170px)!important;grid-auto-rows:72px!important;column-gap:8px!important;row-gap:0!important;justify-content:center!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi>div:nth-child(n){grid-column:auto!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi>.count-card{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:18px 32px!important;align-content:center!important;align-items:center!important;width:170px!important;min-width:0!important;height:72px!important;min-height:72px!important;padding:0!important;box-sizing:border-box!important;overflow:hidden!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-left{display:contents!important;min-width:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-icon{grid-column:1!important;grid-row:1/3!important;align-self:center!important;width:46px!important;height:58px!important;flex-basis:46px!important;margin-right:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-title{grid-column:2!important;grid-row:1!important;align-self:end!important;min-width:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right{grid-column:2!important;grid-row:2!important;align-self:start!important;min-width:0!important;padding-left:0!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-title .title-zh{overflow:hidden!important;font-size:12px!important;line-height:16px!important;text-overflow:ellipsis!important;white-space:nowrap!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right .value{min-height:29px!important;margin-right:4px!important;font-size:25px!important;line-height:30px!important}.platform-screen.is-yak-industry-chain .top-count-card.is-multi .count-card-right .unit{padding-top:9px!important;font-size:10px!important;line-height:1!important}.platform-screen.is-yak-industry-chain .industry-bottom-switcher{left:50%;right:auto;width:max-content;transform:translate(-50%)}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher,.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-menu{width:max-content;max-width:calc(100vw - 96px)}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher{padding-inline:1px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-menu{gap:0}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-switcher-item{flex:0 0 92px;width:92px;min-width:92px;padding-inline:1px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-name{padding-inline:0}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-title{font-size:11px;line-height:24px}.platform-screen.is-yak-industry-chain .industry-bottom-switcher .topic-name small{display:none}.platform-screen.is-yak-industry-chain .industry-side-panel--left,.platform-screen.is-yak-industry-chain .industry-side-panel--right{perspective:none}.platform-screen.is-yak-industry-chain .industry-side-stack{transform-style:flat}.platform-screen.is-yak-industry-chain .industry-side-stack.is-left,.platform-screen.is-yak-industry-chain .industry-side-stack.is-right{transform:none;transform-origin:center}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .m-card-hd-title,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .m-card-hd-title{left:18px;color:var(--v22-text);font-size:16px;font-weight:650;line-height:24px;letter-spacing:.5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .m-card-bd:before,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .m-card-bd:before{border-color:var(--v22-border);background:radial-gradient(circle at 18% 0%,rgba(74,210,233,.12),transparent 40%),linear-gradient(160deg,rgba(6,38,54,.95),rgba(2,20,32,.91))}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metrics,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metrics{gap:8px;padding:8px 12px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip{border:1px solid rgba(91,224,244,.2);border-radius:2px;background:linear-gradient(135deg,rgba(12,66,83,.54),rgba(4,27,41,.7)),rgba(4,28,42,.72);box-shadow:inset 0 1px #ffffff09}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:18px 30px;align-content:center;align-items:end;padding:8px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item span{grid-column:1/-1;align-self:center;color:var(--v22-text-secondary)!important;font-size:12px;font-weight:600;line-height:18px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item strong{align-self:end;margin-top:0;color:var(--v22-text)!important;font-size:22px;font-variant-numeric:tabular-nums;line-height:28px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-metric-item em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-metric-item em{align-self:end;margin-left:4px;padding-bottom:4px;color:var(--v22-text-muted)!important;font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip span{color:var(--v22-text-secondary)!important;font-size:12px;font-weight:600}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy strong,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong{color:var(--v22-text)!important;font-variant-numeric:tabular-nums}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-icon-metric-copy strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-icon-metric-copy strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong em{color:var(--v22-text-muted)!important;font-size:10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .industry-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-panel-empty,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .industry-panel-empty{color:var(--v22-text-muted);font-size:13px;font-weight:600}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-support-type .business-structure-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-support-type .business-structure-row{grid-template-columns:9px minmax(0,1fr) 64px 60px;gap:4px;padding-inline:6px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-list.is-compact,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-list.is-compact{gap:1px;padding:2px 12px 4px;overflow:hidden}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-row{grid-template-columns:19px minmax(0,1fr) 126px;gap:6px;height:16px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-rank,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-rank{width:16px;height:14px;font-size:9px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-name,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-name{font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-bar,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-bar{height:3px;margin-top:2px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;white-space:nowrap}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value strong{font-size:12px;line-height:14px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value em,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value em{margin-left:0;font-size:9px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--family-net-fence .business-stat-value span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--family-net-fence .business-stat-value span{display:inline;margin-top:0;overflow:hidden;font-size:9px;line-height:11px;text-overflow:ellipsis;white-space:nowrap}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight{grid-template-columns:132px minmax(0,1fr);gap:8px;padding:8px 10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main{padding:10px 8px 8px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-main strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-main strong{margin:7px 0 4px;font-size:26px;line-height:29px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-side,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-side{grid-template-rows:repeat(3,minmax(0,1fr));gap:5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip{grid-template-columns:7px minmax(0,1fr);gap:0 6px;padding:4px 8px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip i,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip i{width:6px;height:22px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip small,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip small{font-size:10px;line-height:12px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card .business-spotlight-chip strong,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card .business-spotlight-chip strong{font-size:15px;line-height:17px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid{gap:3px;padding:5px 8px 6px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__row{grid-template-rows:16px 17px;column-gap:6px;padding:2px 6px 2px 5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__index,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__index{width:20px;height:20px;font-size:10px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__name,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__name{font-size:11px;line-height:14px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__count,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__count{min-width:48px;padding-left:7px;font-size:19px;line-height:21px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs{gap:3px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs>span,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-project-area .business-spec-grid__specs>span{gap:2px;padding:1px 3px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-operation .business-bars,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-operation .business-bars{gap:2px;padding:4px 12px 5px}.platform-screen.is-yak-industry-chain .industry-side-panel--left .industry-side-card.industry-side-card--grass-operation .business-bar-row,.platform-screen.is-yak-industry-chain .industry-side-panel--right .industry-side-card.industry-side-card--grass-operation .business-bar-row{min-height:0}.platform-screen.is-yak-industry-chain .top-count-card .title-zh{color:var(--v22-text-secondary)!important;font-size:12px!important;font-weight:600}.platform-screen.is-yak-industry-chain .top-count-card .value{color:var(--v22-text)!important;font-variant-numeric:tabular-nums}.platform-screen.is-yak-industry-chain .top-count-card .unit{color:var(--v22-text-muted)!important;font-size:10px!important}.platform-screen.is-smart-management .wisdom-input-bar{flex-basis:72px;padding:10px 8px 2px}.platform-screen.is-smart-management .wisdom-input-shell{height:54px;gap:8px;padding:6px 7px 6px 14px;border-color:#5be0f480;background:linear-gradient(90deg,rgba(10,54,70,.86),rgba(2,21,34,.96)),rgba(3,24,37,.94)}.platform-screen.is-smart-management .wisdom-input-icon{width:14px;height:14px;margin-right:3px;border-width:1.5px}.platform-screen.is-smart-management .wisdom-input-shell input{height:38px;padding:0 12px;border:1px solid rgba(48,220,255,.58);background:rgba(0,16,27,.44);box-shadow:inset 0 0 14px #30dcff0a;box-sizing:border-box;font-size:14px}.platform-screen.is-smart-management .wisdom-input-shell input:focus{border-color:#7efbf6eb;box-shadow:inset 0 0 16px #30dcff14,0 0 0 1px #7efbf61f}.platform-screen.is-smart-management .wisdom-voice-button,.platform-screen.is-smart-management .wisdom-submit-button{height:38px}.platform-screen.is-smart-management .wisdom-voice-button{width:40px;border-color:#30dcff75}.platform-screen.is-smart-management .wisdom-submit-button{font-size:13px;font-weight:650}.platform-screen.is-smart-management .wisdom-submit-button:disabled,.platform-screen.is-smart-management .wisdom-voice-button:disabled{opacity:.48}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-module-pane:has(.home-more-modal),.platform-screen .platform-module-pane:has(.industry-credit-overlay){z-index:120}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.engineering-analysis-panel) .platform-map-tools{left:510px;bottom:168px;transform:none}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:432px;right:432px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:432px;right:432px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:12px}.platform-screen .top-count-card.is-four .count-card-icon{width:58px;height:78px;flex-basis:58px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:432px;right:432px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:432px;right:432px;top:102px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:auto;column-gap:12px;row-gap:0;justify-content:stretch;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:432px;top:82px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:12px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:432px;right:432px;top:96px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:12px;justify-content:stretch}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} diff --git a/docs/assets/index-e5aecffb-1785726778446.js b/docs/assets/index-4f7f2daf-1785858872961.js similarity index 99% rename from docs/assets/index-e5aecffb-1785726778446.js rename to docs/assets/index-4f7f2daf-1785858872961.js index d04a9c2..aeefe66 100644 --- a/docs/assets/index-e5aecffb-1785726778446.js +++ b/docs/assets/index-4f7f2daf-1785858872961.js @@ -1,4 +1,4 @@ -var Tl=Object.defineProperty,Sl=Object.defineProperties;var Ml=Object.getOwnPropertyDescriptors;var Ka=Object.getOwnPropertySymbols;var pr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable;var pa=Math.pow,hr=(b,e,t)=>e in b?Tl(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,I=(b,e)=>{for(var t in e||(e={}))pr.call(e,t)&&hr(b,t,e[t]);if(Ka)for(var t of Ka(e))fr.call(e,t)&&hr(b,t,e[t]);return b},V=(b,e)=>Sl(b,Ml(e));var mr=(b,e)=>{var t={};for(var a in b)pr.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&Ka)for(var a of Ka(b))e.indexOf(a)<0&&fr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,i)=>{var s=d=>{try{u(t.next(d))}catch(h){i(h)}},o=d=>{try{u(t.throw(d))}catch(h){i(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as es,h as ts,w as qt,o as x,c as A,a as f,d as $,L as kl,A as jt,g as k,M as $e,s as tt,v as Pl,C as Za,u as Y,j as Le,n as Ve,t as P,F as te,y as pe,b as j,x as se,K as Ct,B as Wt,e as Xa,H as Jt,f as Ja,O as fa}from"./index-1785726778446.js";import{H as Pe}from"./index.esm.min-4f309085-1785726778446.js";import{_ as oe}from"./index-7b46d381-1785726778446.js";import{t as Jn,S as ra,u as ln,v as La,w as Cl,V as ie,F as Fl,C as vt,G as Te,c as xl,d as Nl,f as Rl,g as jn,L as Qt,D as Ie,a as be,h as Qa,R as ot,A as Ge,N as gr,b as qe,P as At,o as ea,n as ta,x as Il,T as Gl,B as _l,i as Al,j as Bl,k as El,l as $l,m as Vl,y as Ol,z as ma,E as yr,H as br,I as Dl,J as vr,q as wr,r as zl,s as Lr,K as ga,U as Hn,W as Tr,M as Wl}from"./screen2Standard-f38b9a2d-1785726778446.js";import{g as Ht,M as Yl,h as jl,L as Hl,B as ya,a as aa,E as Sr,G as en,D as ql,b as Ul,l as Kl,P as Mr,c as kr,d as Zl,m as Xl,t as Jl,k as lt,n as Ql,o as Pr,p as eu,q as tu,r as qn,s as ba,u as Cr,v as Fr,f as Bt,w as xr,x as au,e as nu,i as iu,j as ru,y as su}from"./data-112f1d11-1785726778446.js";import{g as na}from"./index-e9f36657-1785726778446.js";import{h as ou,a as as,S as lu,W as Et,H as q,j as Un,k as uu,l as cu,m as du}from"./townshipBoundaries-8867fad4-1785726778446.js";import{b as hu,g as Nr,a as Rr,c as pu}from"./geoserver-d05ee620-1785726778446.js";import{_ as fu}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{_ as mu}from"./LayerPanel-921f9e3d-1785726778446.js";import{A as gu}from"./assets-5661f996-1785726778446.js";import{M as yu}from"./index-7b548b42-1785726778446.js";import{a as bu,b as vu,c as wu,d as Lu,g as Ir,e as Gr,f as Tu,h as Kn,i as Su,j as Mu,k as ku}from"./yakApi-185e6ecc-1785726778446.js";import{y as Pu}from"./livestockData-36ec0ae2-1785726778446.js";import"./index-e33f4373-1785726778446.js";const Cu=ou.map(b=>I({},b)),_r=as.map(b=>I({},b)),Fu=as.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),xu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],sa=256,Qn="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",Nu=900,Ru=10,Ut=new Map,oa={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Zn(b,e,t){const a=pa(2,t),i=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function Ar(b,e,t){const a=pa(2,t),i=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,o]}function tn(b,e,t){return Math.max(e,Math.min(t,b))}function ns(b,e,{centerLngLat:t,maxCols:a,maxRows:i}={}){const s=Zn(b.west,b.north,e),o=Zn(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,F=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(i)){const D=tn(Number(t[0]),b.west,b.east),J=tn(Number(t[1]),b.south,b.north),re=Zn(D,J,e);F=Math.floor(re.x),E=Math.floor(re.y);const K=Math.max(1,Math.min(Math.floor(a),d-u+1)),G=Math.max(1,Math.min(Math.floor(i),g-h+1));m=tn(F-Math.floor(K/2),u,d-K+1),S=tn(E-Math.floor(G/2),h,g-G+1),L=m+K-1,C=S+G-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:F,centerY:E,cols:L-m+1,rows:C-S+1}}function Iu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:i=oa}={}){return ns(i,b,{centerLngLat:e,maxCols:t,maxRows:a})}function Gu(b,e){const[t,a]=Ar(b.minX,b.minY,b.zoom),[i,s]=Ar(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,oa.south]),[u]=e([i,oa.south]),[,d]=e([oa.west,a]),[,h]=e([oa.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function _u(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const i=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);i.addColorStop(0,"rgba(80, 230, 255, 0.16)"),i.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=i,b.fillRect(0,0,t,a),b.restore()}function Au(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function Bu(b){const e=Ut.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{Ut.delete(b),t(null)},a.src=b})}function Eu(b){const e=Ut.get(b);if(e)return e;const t=Bu(b);for(Ut.set(b,t);Ut.size>Nu;){const a=Ut.keys().next().value;if(!a)break;Ut.delete(a)}return t}function $u(b,e,t,a=Qn){return String(a||Qn).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function Vu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:i,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:i}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let K=a.minX;K<=a.maxX;K+=1)for(let G=a.minY;G<=a.maxY;G+=1)m.push({x:K,y:G});m.sort((K,G)=>Math.abs(K.x-a.centerX)+Math.abs(K.y-a.centerY)-(Math.abs(G.x-a.centerX)+Math.abs(G.y-a.centerY)));let F=0;function E(){return he(this,null,function*(){for(;F0?S/L:0,J=S===0?"error":D>=.75?"success":"warning",re=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:J,text:re,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:i})})}function Br({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Qn,onTileStatus:i,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=ns(oa,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*sa,m.height=g.rows*sa;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):Au(L,m);const S=new Jn(m);S.colorSpace=ra,S.wrapS=ln,S.wrapT=ln,S.minFilter=La,S.magFilter=La,S.needsUpdate=!0;const C=Ht().center(b).scale(e).translate([0,0]),F=Gu(g,C);return Vu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:i,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),i==null||i({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:F,tileRange:g}}function Er(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(i=>{var u,d;const s=(d=(u=i.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!i.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function ut(b){return String(b||"").replace(/\s+/g,"").trim()}function le(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Yt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Wr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function Yr(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function Zu(b){return(b==null?void 0:b.showFlowLines)!==!1}function jr(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function va(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function Xu(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function nn(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Ju(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Hr(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function qr(b,e,t){const a=pa(2,t),i=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function Ur(b,e,t){const a=pa(2,t),i=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,o]}function Qu(b,e){const t=qr(b.west,b.north,e),a=qr(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function ec(b,e,t,a){const[i,s]=Ur(b,e,t),[o,u]=Ur(b+1,e+1,t),d=q.east-q.west,h=q.north-q.south;return{x:(i-q.west)/d*a.width,y:(q.north-s)/h*a.height,width:(o-i)/d*a.width,height:(s-u)/h*a.height}}function tc(b){const e=ia.get(b);if(e)return e;const t=new Promise(a=>{const i=new Image;i.crossOrigin="anonymous",i.onload=()=>a(i),i.onerror=()=>{ia.delete(b),a(null)},i.src=b});for(ia.set(b,t);ia.size>Hu;){const a=ia.keys().next().value;if(!a)break;ia.delete(a)}return t}function Kr(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function ac(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function wa(b){const e=ac(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function Zr(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class nc extends Yl{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new Fl(466735,1,50),this.scene.background=new vt(466735),this.camera.instance.position.copy(zu),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Ou.clone(),this.defaultMapTarget=Du.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new jl(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const i=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(i)&&i>0?Math.min(an,i):lu;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(an,Math.max(this.satelliteTextureZoom,s)):an;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Wu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(_r.map(m=>[ut(m.name),m])),this.staticMapData={china:wa(this.assets.instance.getResource("china")),mapJson:wa(this.assets.instance.getResource("mapJson")),mapStroke:wa(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new Hl(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=na.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!va(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,i)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*i,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,i;this.flyLineFocusGroup.visible=!0,(i=(a=this.callbacks).onPlayComplete)==null||i.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,i)=>{e.to(a.scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,i)=>{e.to(a,{duration:1,delay:.1*i,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,i)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*i,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*i,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=le((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,i)=>{e.to(a.children[0].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new xl(13171711,4.2);this.scene.add(e);let t=new Nl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new Rl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:i}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),i.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new jn({color:new vt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),i=new ya(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Qt({color:e.lineColor,transparent:!0,opacity:.58}),o=new aa(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:i,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,i=new ie(0,0,-.08),s=new jn({color:new vt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Ie}),o=new ya(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:i,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Qt({color:new vt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new aa(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new ie(i.x,i.y,i.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const i=new be({color:403001,transparent:!0,opacity:.14,side:Ie,depthWrite:!1,fog:!1});new ya(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new ie(.05,-.05,-.03),material:i,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new Sr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new ie(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Qt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new aa(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Qa({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Ie,fog:!1});new en(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=ot,t.wrapT=ot,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Qa({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Ie,fog:!1});return new en(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const i=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(i);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const i=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(i.minLng+i.maxLng)/2,lat:(i.minLat+i.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Br({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,i]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=i;let s=new Sr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:i,renderOrder:9}),o=new Qa({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new en(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new vt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Er(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Qt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new be({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ge}),h=new aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=Et.width,e.height=Et.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new Jn(e);a.colorSpace=ra,a.wrapS=ln,a.wrapT=ln,a.minFilter=La,a.magFilter=La,this.enhanceTexture(a),a.needsUpdate=!0;const i=new be({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Ie,fog:!1}),s=this.createLayerUvBounds(),o=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:i,renderOrder:this.isHomeTopicPresentation()?24:18});Er(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=i,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,i;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=Zr((i=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:i.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([q.west,q.south]),[a]=e([q.east,q.south]),[,i]=e([q.west,q.north]),[,s]=e([q.west,q.south]);return{left:t,right:a,bottom:-s,top:-i}}setTopicLayer(e){var a,i;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"loading",text:`正在加载 ${e.name}`}),nn(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(I(I({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const i=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(i!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(F=>{var E,D;return F.type==="vector"&&((E=F.layer)==null?void 0:E.key)===((D=this.currentTopicLayer)==null?void 0:D.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((F,E)=>{var D,J;if(F.type==="image"){this.topicLayerContext.save();const re=E===g.length-1?Math.max(.78,(D=F.layer.opacity)!=null?D:.9):Math.min(.52,(J=F.layer.opacity)!=null?J:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,re)),this.drawTopicRasterImage(F.image,F.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(F.layer,F.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(nn(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?I({type:"image"},t):null)})}loadTopicLayerImage(e){return Hr(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=hu(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=Et.width,t.height=Et.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const i=this.getWmtsTopicZoom(e),s=Qu(q,i),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(i,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(i,m,L)),a.restore()}a.drawImage(i,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,i=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(i)&&i>0?Math.round(i):11;return Yt(s,3,Math.min(a,an))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Hr(e)?gr:La;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),i.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){i.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),i.save(),i.imageSmoothingEnabled=!0,i.imageSmoothingQuality="high",i.drawImage(o,0,0,a.width,a.height),i.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;const s=Yt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Yt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";i.save(),i.globalAlpha=s,i.filter=`drop-shadow(0 0 ${o}px ${u})`,i.drawImage(e,0,0,a.width,a.height),i.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,i=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=i?this.getLayerMapViewTarget(i):this.defaultMapTarget.clone(),o=i?this.getLayerMapViewCameraPosition(i,s):this.defaultMapCameraPosition.clone(),u=i&&Number.isFinite(i.duration)?i.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),i=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return i;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Yt(i,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),i=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(q.west,Math.min(q.east,Number(i[0])||102.58)),Math.max(q.south,Math.min(q.north,Number(i[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,V(I({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===i&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,i)}}}),this.applyDynamicSatelliteOverlay(o,i)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new be({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Ie,fog:!1}),t=new qe(new At(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,i=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(i,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,i;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(i=(a=this.animateTl)==null?void 0:a.pause)==null||i.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,i=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(i);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new ie(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],i=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(i)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([i,s]),d=new ie(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new ie(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),i=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,i,s].every(Number.isFinite)?new ie(a,i,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const i=this.camera.controls,s=()=>i.update();this.activeMapViewTweens.push(na.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),na.to(i.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(ut(e)),i=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return i||!!(a!=null&&a.center);if(!(a!=null&&a.center))return i;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,i,s,o,u,d,h,g,m,L;return[(s=(i=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:i.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var i,s,o,u;const t=ut(e);if(!t)return null;const a=(((i=this.mapJsonData)==null?void 0:i.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>ut(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:V(I({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var i,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(i=this.callbacks).onLayerStatus)==null||s.call(i,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=ut(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>ut(h.name)===a))return!1;const o=this.focusTownByName(e,I({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),i=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||i&&String(L.name||L.plot_name||"").trim()===i});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const i=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(i,this.depth+.34)||this.lngLatToScreenPoint(i,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),i=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(i)?null:[a,i]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),i=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(i&&String(g.id||"")===i||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,i,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Kr(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield Nr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let i=this.buildWktLayerFeatures(t);if((!t.length||!i.length)&&e.fallbackPath){const u=yield fetch(Kr(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],i=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:i}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const i=this.topicLayerContext;a.clear!==!1&&i.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),i.save(),i.lineJoin="round",i.lineCap="round",this.clipVectorLayerContext(i,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(i,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(i,e,o),this.drawSelectedVectorOverlay(i),i.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(i=>{const s=this.getVectorFeatureStyle(t,i);this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],i=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!i&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:$r,stroke:Uu,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:$r,stroke:qu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),i!=null&&i.geometry&&this.drawVectorFeature(e,i.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!nn(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const i=t==null?void 0:t.match;return i!=null&&i.field?String((s=e[i.field])!=null?s:"")===String(i.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const i=e==null?void 0:e.activeLegend;if((u=i==null?void 0:i.matches)!=null&&u.length||(d=i==null?void 0:i.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},i));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((i,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(i),this.getYakIndustryPointLabelPosition(i,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:i}}),this.yakIndustryPointLabels.slice(a.length).forEach(i=>{var s;i.visible=!1,(s=i.hide)==null||s.call(i),i.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(i=>{var s;return((s=i==null?void 0:i.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((i,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,i),d=this.getYakIndustryMarkerMaterial(u,i),h=this.lngLatToLayerLocalPoint(i.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(i);o||(o=new ea(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:i,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(i=>{i.visible=!1,i.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const i=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(i[0]),lat:Number(i[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),i=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(i);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new ta({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(i,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Dr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const i=document.createElement("canvas");i.width=112,i.height=112;const s=i.getContext("2d"),o=56,u=56;s.clearRect(0,0,i.width,i.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new Jn(i);return d.colorSpace=ra,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,i,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,i),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,i,s="#24F6C4"){if(e.save(),e.translate(a,i),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),i=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:ut((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=i||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=i||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(i=>this.parseMapMetricNumber(i));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var i;const a=this.lngLatToLayerLocalPoint((i=e==null?void 0:e.geometry)==null?void 0:i.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),i=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    +var Tl=Object.defineProperty,Sl=Object.defineProperties;var Ml=Object.getOwnPropertyDescriptors;var Ka=Object.getOwnPropertySymbols;var pr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable;var pa=Math.pow,hr=(b,e,t)=>e in b?Tl(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,I=(b,e)=>{for(var t in e||(e={}))pr.call(e,t)&&hr(b,t,e[t]);if(Ka)for(var t of Ka(e))fr.call(e,t)&&hr(b,t,e[t]);return b},V=(b,e)=>Sl(b,Ml(e));var mr=(b,e)=>{var t={};for(var a in b)pr.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&Ka)for(var a of Ka(b))e.indexOf(a)<0&&fr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,i)=>{var s=d=>{try{u(t.next(d))}catch(h){i(h)}},o=d=>{try{u(t.throw(d))}catch(h){i(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as es,h as ts,w as qt,o as x,c as A,a as f,d as $,L as kl,A as jt,g as k,M as $e,s as tt,v as Pl,C as Za,u as Y,j as Le,n as Ve,t as P,F as te,y as pe,b as j,x as se,K as Ct,B as Wt,e as Xa,H as Jt,f as Ja,O as fa}from"./index-1785858872961.js";import{H as Pe}from"./index.esm.min-b7db2517-1785858872961.js";import{_ as oe}from"./index-8ffdff7e-1785858872961.js";import{t as Jn,S as ra,u as ln,v as La,w as Cl,V as ie,F as Fl,C as vt,G as Te,c as xl,d as Nl,f as Rl,g as jn,L as Qt,D as Ie,a as be,h as Qa,R as ot,A as Ge,N as gr,b as qe,P as At,o as ea,n as ta,x as Il,T as Gl,B as _l,i as Al,j as Bl,k as El,l as $l,m as Vl,y as Ol,z as ma,E as yr,H as br,I as Dl,J as vr,q as wr,r as zl,s as Lr,K as ga,U as Hn,W as Tr,M as Wl}from"./screen2Standard-2d8b09ac-1785858872961.js";import{g as Ht,M as Yl,h as jl,L as Hl,B as ya,a as aa,E as Sr,G as en,D as ql,b as Ul,l as Kl,P as Mr,c as kr,d as Zl,m as Xl,t as Jl,k as lt,n as Ql,o as Pr,p as eu,q as tu,r as qn,s as ba,u as Cr,v as Fr,f as Bt,w as xr,x as au,e as nu,i as iu,j as ru,y as su}from"./data-9964a7a8-1785858872961.js";import{g as na}from"./index-e9f36657-1785858872961.js";import{h as ou,a as as,S as lu,W as Et,H as q,j as Un,k as uu,l as cu,m as du}from"./townshipBoundaries-8867fad4-1785858872961.js";import{b as hu,g as Nr,a as Rr,c as pu}from"./geoserver-ea89416e-1785858872961.js";import{_ as fu}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{_ as mu}from"./LayerPanel-5e7fd226-1785858872961.js";import{A as gu}from"./assets-0c374c8c-1785858872961.js";import{M as yu}from"./index-1891ee64-1785858872961.js";import{a as bu,b as vu,c as wu,d as Lu,g as Ir,e as Gr,f as Tu,h as Kn,i as Su,j as Mu,k as ku}from"./yakApi-4b33f49b-1785858872961.js";import{y as Pu}from"./livestockData-36ec0ae2-1785858872961.js";import"./index-d6700f13-1785858872961.js";const Cu=ou.map(b=>I({},b)),_r=as.map(b=>I({},b)),Fu=as.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),xu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],sa=256,Qn="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",Nu=900,Ru=10,Ut=new Map,oa={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Zn(b,e,t){const a=pa(2,t),i=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function Ar(b,e,t){const a=pa(2,t),i=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,o]}function tn(b,e,t){return Math.max(e,Math.min(t,b))}function ns(b,e,{centerLngLat:t,maxCols:a,maxRows:i}={}){const s=Zn(b.west,b.north,e),o=Zn(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,F=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(i)){const D=tn(Number(t[0]),b.west,b.east),J=tn(Number(t[1]),b.south,b.north),re=Zn(D,J,e);F=Math.floor(re.x),E=Math.floor(re.y);const K=Math.max(1,Math.min(Math.floor(a),d-u+1)),G=Math.max(1,Math.min(Math.floor(i),g-h+1));m=tn(F-Math.floor(K/2),u,d-K+1),S=tn(E-Math.floor(G/2),h,g-G+1),L=m+K-1,C=S+G-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:F,centerY:E,cols:L-m+1,rows:C-S+1}}function Iu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:i=oa}={}){return ns(i,b,{centerLngLat:e,maxCols:t,maxRows:a})}function Gu(b,e){const[t,a]=Ar(b.minX,b.minY,b.zoom),[i,s]=Ar(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,oa.south]),[u]=e([i,oa.south]),[,d]=e([oa.west,a]),[,h]=e([oa.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function _u(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const i=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);i.addColorStop(0,"rgba(80, 230, 255, 0.16)"),i.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=i,b.fillRect(0,0,t,a),b.restore()}function Au(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function Bu(b){const e=Ut.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{Ut.delete(b),t(null)},a.src=b})}function Eu(b){const e=Ut.get(b);if(e)return e;const t=Bu(b);for(Ut.set(b,t);Ut.size>Nu;){const a=Ut.keys().next().value;if(!a)break;Ut.delete(a)}return t}function $u(b,e,t,a=Qn){return String(a||Qn).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function Vu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:i,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:i}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let K=a.minX;K<=a.maxX;K+=1)for(let G=a.minY;G<=a.maxY;G+=1)m.push({x:K,y:G});m.sort((K,G)=>Math.abs(K.x-a.centerX)+Math.abs(K.y-a.centerY)-(Math.abs(G.x-a.centerX)+Math.abs(G.y-a.centerY)));let F=0;function E(){return he(this,null,function*(){for(;F0?S/L:0,J=S===0?"error":D>=.75?"success":"warning",re=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:J,text:re,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:i})})}function Br({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Qn,onTileStatus:i,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=ns(oa,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*sa,m.height=g.rows*sa;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):Au(L,m);const S=new Jn(m);S.colorSpace=ra,S.wrapS=ln,S.wrapT=ln,S.minFilter=La,S.magFilter=La,S.needsUpdate=!0;const C=Ht().center(b).scale(e).translate([0,0]),F=Gu(g,C);return Vu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:i,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),i==null||i({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:F,tileRange:g}}function Er(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(i=>{var u,d;const s=(d=(u=i.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!i.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function ut(b){return String(b||"").replace(/\s+/g,"").trim()}function le(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Yt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Wr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function Yr(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function Zu(b){return(b==null?void 0:b.showFlowLines)!==!1}function jr(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function va(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function Xu(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function nn(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Ju(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Hr(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function qr(b,e,t){const a=pa(2,t),i=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+i)/(1-i))/(4*Math.PI))*a}}function Ur(b,e,t){const a=pa(2,t),i=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,o]}function Qu(b,e){const t=qr(b.west,b.north,e),a=qr(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function ec(b,e,t,a){const[i,s]=Ur(b,e,t),[o,u]=Ur(b+1,e+1,t),d=q.east-q.west,h=q.north-q.south;return{x:(i-q.west)/d*a.width,y:(q.north-s)/h*a.height,width:(o-i)/d*a.width,height:(s-u)/h*a.height}}function tc(b){const e=ia.get(b);if(e)return e;const t=new Promise(a=>{const i=new Image;i.crossOrigin="anonymous",i.onload=()=>a(i),i.onerror=()=>{ia.delete(b),a(null)},i.src=b});for(ia.set(b,t);ia.size>Hu;){const a=ia.keys().next().value;if(!a)break;ia.delete(a)}return t}function Kr(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function ac(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function wa(b){const e=ac(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function Zr(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class nc extends Yl{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new Fl(466735,1,50),this.scene.background=new vt(466735),this.camera.instance.position.copy(zu),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Ou.clone(),this.defaultMapTarget=Du.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new jl(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const i=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(i)&&i>0?Math.min(an,i):lu;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(an,Math.max(this.satelliteTextureZoom,s)):an;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Wu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(_r.map(m=>[ut(m.name),m])),this.staticMapData={china:wa(this.assets.instance.getResource("china")),mapJson:wa(this.assets.instance.getResource("mapJson")),mapStroke:wa(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new Hl(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=na.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!va(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,i)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*i,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,i;this.flyLineFocusGroup.visible=!0,(i=(a=this.callbacks).onPlayComplete)==null||i.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,i)=>{e.to(a.scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,i)=>{e.to(a,{duration:1,delay:.1*i,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,i)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*i,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*i,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=le((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,i)=>{e.to(a.children[0].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*i,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new xl(13171711,4.2);this.scene.add(e);let t=new Nl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new Rl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:i}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),i.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new jn({color:new vt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),i=new ya(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Qt({color:e.lineColor,transparent:!0,opacity:.58}),o=new aa(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:i,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,i=new ie(0,0,-.08),s=new jn({color:new vt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Ie}),o=new ya(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:i,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Qt({color:new vt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new aa(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new ie(i.x,i.y,i.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const i=new be({color:403001,transparent:!0,opacity:.14,side:Ie,depthWrite:!1,fog:!1});new ya(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new ie(.05,-.05,-.03),material:i,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new Sr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new ie(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Qt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new aa(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Qa({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Ie,fog:!1});new en(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=ot,t.wrapT=ot,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Qa({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Ie,fog:!1});return new en(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const i=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(i);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const i=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(i.minLng+i.maxLng)/2,lat:(i.minLat+i.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Br({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,i]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=i;let s=new Sr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:i,renderOrder:9}),o=new Qa({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new en(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new vt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Er(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Qt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new be({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ge}),h=new aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=Et.width,e.height=Et.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new Jn(e);a.colorSpace=ra,a.wrapS=ln,a.wrapT=ln,a.minFilter=La,a.magFilter=La,this.enhanceTexture(a),a.needsUpdate=!0;const i=new be({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Ie,fog:!1}),s=this.createLayerUvBounds(),o=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ie(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:i,renderOrder:this.isHomeTopicPresentation()?24:18});Er(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=i,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,i;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=Zr((i=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:i.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([q.west,q.south]),[a]=e([q.east,q.south]),[,i]=e([q.west,q.north]),[,s]=e([q.west,q.south]);return{left:t,right:a,bottom:-s,top:-i}}setTopicLayer(e){var a,i;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"loading",text:`正在加载 ${e.name}`}),nn(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(I(I({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const i=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(i!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(F=>{var E,D;return F.type==="vector"&&((E=F.layer)==null?void 0:E.key)===((D=this.currentTopicLayer)==null?void 0:D.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((F,E)=>{var D,J;if(F.type==="image"){this.topicLayerContext.save();const re=E===g.length-1?Math.max(.78,(D=F.layer.opacity)!=null?D:.9):Math.min(.52,(J=F.layer.opacity)!=null?J:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,re)),this.drawTopicRasterImage(F.image,F.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(F.layer,F.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(nn(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?I({type:"image"},t):null)})}loadTopicLayerImage(e){return Hr(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=hu(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=Et.width,t.height=Et.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const i=this.getWmtsTopicZoom(e),s=Qu(q,i),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(i,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(i,m,L)),a.restore()}a.drawImage(i,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,i=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(i)&&i>0?Math.round(i):11;return Yt(s,3,Math.min(a,an))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Hr(e)?gr:La;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),i.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){i.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),i.save(),i.imageSmoothingEnabled=!0,i.imageSmoothingQuality="high",i.drawImage(o,0,0,a.width,a.height),i.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,i=this.topicLayerContext;if(!a||!i)return;const s=Yt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Yt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";i.save(),i.globalAlpha=s,i.filter=`drop-shadow(0 0 ${o}px ${u})`,i.drawImage(e,0,0,a.width,a.height),i.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,i=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=i?this.getLayerMapViewTarget(i):this.defaultMapTarget.clone(),o=i?this.getLayerMapViewCameraPosition(i,s):this.defaultMapCameraPosition.clone(),u=i&&Number.isFinite(i.duration)?i.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),i=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return i;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Yt(i,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),i=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(q.west,Math.min(q.east,Number(i[0])||102.58)),Math.max(q.south,Math.min(q.north,Number(i[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,V(I({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===i&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,i)}}}),this.applyDynamicSatelliteOverlay(o,i)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new be({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Ie,fog:!1}),t=new qe(new At(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,i=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(i,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,i;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(i=(a=this.animateTl)==null?void 0:a.pause)==null||i.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,i=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(i);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new ie(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],i=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(i)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([i,s]),d=new ie(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new ie(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),i=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,i,s].every(Number.isFinite)?new ie(a,i,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const i=this.camera.controls,s=()=>i.update();this.activeMapViewTweens.push(na.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),na.to(i.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(ut(e)),i=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return i||!!(a!=null&&a.center);if(!(a!=null&&a.center))return i;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,i,s,o,u,d,h,g,m,L;return[(s=(i=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:i.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var i,s,o,u;const t=ut(e);if(!t)return null;const a=(((i=this.mapJsonData)==null?void 0:i.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>ut(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:V(I({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var i,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(i=this.callbacks).onLayerStatus)==null||s.call(i,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=ut(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>ut(h.name)===a))return!1;const o=this.focusTownByName(e,I({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),i=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||i&&String(L.name||L.plot_name||"").trim()===i});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const i=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(i,this.depth+.34)||this.lngLatToScreenPoint(i,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),i=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(i)?null:[a,i]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),i=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(i&&String(g.id||"")===i||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,i,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(i=(a=this.callbacks).onLayerStatus)==null||i.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Kr(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield Nr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let i=this.buildWktLayerFeatures(t);if((!t.length||!i.length)&&e.fallbackPath){const u=yield fetch(Kr(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],i=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:i}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const i=this.topicLayerContext;a.clear!==!1&&i.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),i.save(),i.lineJoin="round",i.lineCap="round",this.clipVectorLayerContext(i,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(i,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(i,e,o),this.drawSelectedVectorOverlay(i),i.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(i=>{const s=this.getVectorFeatureStyle(t,i);this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,i.geometry,V(I({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],i=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!i&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:$r,stroke:Uu,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:$r,stroke:qu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),i!=null&&i.geometry&&this.drawVectorFeature(e,i.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!nn(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const i=t==null?void 0:t.match;return i!=null&&i.field?String((s=e[i.field])!=null?s:"")===String(i.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const i=e==null?void 0:e.activeLegend;if((u=i==null?void 0:i.matches)!=null&&u.length||(d=i==null?void 0:i.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},i));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((i,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(i),this.getYakIndustryPointLabelPosition(i,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:i}}),this.yakIndustryPointLabels.slice(a.length).forEach(i=>{var s;i.visible=!1,(s=i.hide)==null||s.call(i),i.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(i=>{var s;return((s=i==null?void 0:i.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((i,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,i),d=this.getYakIndustryMarkerMaterial(u,i),h=this.lngLatToLayerLocalPoint(i.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(i);o||(o=new ea(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:i,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(i=>{i.visible=!1,i.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const i=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(i[0]),lat:Number(i[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),i=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(i);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new ta({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(i,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Dr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const i=document.createElement("canvas");i.width=112,i.height=112;const s=i.getContext("2d"),o=56,u=56;s.clearRect(0,0,i.width,i.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new Jn(i);return d.colorSpace=ra,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,i,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,i),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,i,s="#24F6C4"){if(e.save(),e.translate(a,i),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),i=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:ut((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=i||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=i||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(i=>this.parseMapMetricNumber(i));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var i;const a=this.lngLatToLayerLocalPoint((i=e==null?void 0:e.geometry)==null?void 0:i.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),i=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    ${Se(i)}
    ${Se(a)}
    diff --git a/docs/assets/index-2044d487-balabala-1785726778446.css b/docs/assets/index-5221c8be-balabala-1785858872961.css similarity index 97% rename from docs/assets/index-2044d487-balabala-1785726778446.css rename to docs/assets/index-5221c8be-balabala-1785858872961.css index 7cbb1ad..22a7aeb 100644 --- a/docs/assets/index-2044d487-balabala-1785726778446.css +++ b/docs/assets/index-5221c8be-balabala-1785858872961.css @@ -1 +1 @@ -@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1785726778446.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785726778446.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1785726778446.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785726778446.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} +@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1785858872961.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785858872961.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1785858872961.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785858872961.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} diff --git a/docs/assets/index-57fe2e24-1785858872961.js b/docs/assets/index-57fe2e24-1785858872961.js new file mode 100644 index 0000000..e96d0e2 --- /dev/null +++ b/docs/assets/index-57fe2e24-1785858872961.js @@ -0,0 +1,2 @@ +var Ma=Object.defineProperty,Na=Object.defineProperties;var Pa=Object.getOwnPropertyDescriptors;var yn=Object.getOwnPropertySymbols;var Ta=Object.prototype.hasOwnProperty,Aa=Object.prototype.propertyIsEnumerable;var fn=(S,M,_)=>M in S?Ma(S,M,{enumerable:!0,configurable:!0,writable:!0,value:_}):S[M]=_,$=(S,M)=>{for(var _ in M||(M={}))Ta.call(M,_)&&fn(S,_,M[_]);if(yn)for(var _ of yn(M))Aa.call(M,_)&&fn(S,_,M[_]);return S},L=(S,M)=>Na(S,Pa(M));var ne=(S,M,_)=>new Promise((X,P)=>{var T=V=>{try{le(_.next(V))}catch(Z){P(Z)}},re=V=>{try{le(_.throw(V))}catch(Z){P(Z)}},le=V=>V.done?X(V.value):Promise.resolve(V.value).then(T,re);le((_=_.apply(S,M)).next())});import{_ as Ra,g as y,o as l,c as o,F as f,a as r,B as k,t as s,y as p,K as C,j as I,n as W,d as b,w as ke,q as Fa,h as Ia,A as Ze,b as Te,C as ae,x as Je,f as Qe,u as O,s as ce,H as gn,O as Ae}from"./index-1785858872961.js";import{H as hn}from"./index.esm.min-b7db2517-1785858872961.js";import{_ as pn}from"./index-8ffdff7e-1785858872961.js";import{M as Va}from"./index-1891ee64-1785858872961.js";import{a as mn,_ as bn}from"./FeatureInfoPanel-ca915481-1785858872961.js";import{_ as Ba}from"./LayerPanel-5e7fd226-1785858872961.js";import{_ as Da}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{A as za}from"./assets-0c374c8c-1785858872961.js";import{g as Re}from"./townshipBoundaries-8867fad4-1785858872961.js";import{q as Fe,r as Ha,s as wn}from"./screen2Standard-2d8b09ac-1785858872961.js";import{e as Ie,w as Ea,f as Ka,l as kn,m as _n,n as Ga,o as Oa,p as Wa,q as Ua,s as xn}from"./chartTheme-96368571-1785858872961.js";import{v as Ve,Y as z,g as et,c as ve,a as Sn,b as Ya,d as ja,e as qa,f as wt,h as kt,i as Xa,j as Za}from"./data-c85702ea-1785858872961.js";import"./index-e9f36657-1785858872961.js";import"./familyPastureData-f64283c3-1785858872961.js";import"./livestockData-36ec0ae2-1785858872961.js";const Ja={class:"credit-village-total"},Qa={class:"credit-grade-band","aria-label":"信用村等级比例"},er=["aria-label","onClick"],tr={class:"credit-grade-grid"},nr=["onClick"],ar={class:"credit-town-legend","aria-label":"信用村等级图例"},rr={class:"credit-town-list"},lr=["aria-label","onClick"],sr={class:"credit-town-stack","aria-hidden":"true"},or={class:"credit-town-count"},ir={class:"credit-authorization-layout"},ur={class:"credit-authorization-ring","aria-hidden":"true"},dr={viewBox:"0 0 128 128"},cr=["stroke","stroke-dasharray","stroke-dashoffset"],vr={class:"credit-authorization-list"},yr=["onClick"],fr={class:"credit-panel-note"},gr={class:"credit-institution-summary"},hr={class:"credit-institution-list"},pr=["onClick"],mr={class:"credit-rating-summary"},br={class:"credit-rating-list"},wr=["onClick"],kr={__name:"SocialCreditPanel",props:{panel:{type:Object,default:()=>({rows:[]})}},emits:["select"],setup(S,{emit:M}){const _=S,X=M,P=y(()=>{var g;return((g=_.panel)==null?void 0:g.variant)||""}),T=y(()=>{var g;return Array.isArray((g=_.panel)==null?void 0:g.rows)?_.panel.rows:[]}),re=y(()=>Math.max(1,...T.value.map(g=>Number(g.value||0)))),le=y(()=>{var g;return((g=T.value[0])==null?void 0:g.segments)||[]}),V=y(()=>{let g=0;return T.value.map(c=>{const d=Number(c.percent||0),A=L($({},c),{percent:d,offset:g});return g+=d,A})}),Z=["#37f2bd","#28e4d5","#30dcff","#48cfff","#7ab8ff","#8b9ead"];function J(g,c){X("select",{type:g,value:c})}function Q(g){return Math.max(1.5,Number(g||0)/re.value*100)}function _e(g){var d;const c=Number(((d=_.panel)==null?void 0:d.total)||0);return c>0?Number(g||0)/c*100:0}function tt(g){return Z[g%Z.length]}function Be(g){const c=(g.segments||[]).filter(d=>d.value>0).map(d=>`${d.name}${d.value}个`).join(",");return`${g.name}共${g.total}个信用村,${c}`}function m(g){const c=Number(g||0);return c.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(c)?0:1})}function x(g,c=1){return`${Number(g||0).toFixed(c)}%`}return(g,c)=>(l(),o("div",{class:W(["social-credit-panel",`is-${P.value}`])},[P.value==="villageOverview"?(l(),o(f,{key:0},[r("div",Ja,[c[0]||(c[0]=r("span",null,"信用村总数",-1)),r("strong",null,[k(s(m(S.panel.total)),1),r("em",null,s(S.panel.totalUnit||"个"),1)]),c[1]||(c[1]=r("small",null,"A—D级源表口径",-1))]),r("div",Qa,[(l(!0),o(f,null,p(T.value,d=>(l(),o("button",{key:d.key,type:"button",style:C({width:`${d.percent}%`,background:d.color}),"aria-label":`${d.displayName}${d.value}个村,占${d.percent}%`,onClick:A=>J("villageGrade",d.name)},null,12,er))),128))]),r("div",tr,[(l(!0),o(f,null,p(T.value,d=>(l(),o("button",{key:d.key,type:"button",style:C({"--credit-color":d.color}),onClick:A=>J("villageGrade",d.name)},[r("span",null,[c[2]||(c[2]=r("i",null,null,-1)),k(s(d.displayName),1)]),r("strong",null,[k(s(m(d.value)),1),c[3]||(c[3]=r("em",null,"个村",-1))]),r("small",null,s(x(d.percent)),1)],12,nr))),128))])],64)):P.value==="townGradeRank"?(l(),o(f,{key:1},[r("div",ar,[(l(!0),o(f,null,p(le.value,d=>(l(),o("span",{key:d.key},[r("i",{style:C({background:d.color})},null,4),k(s(d.key),1)]))),128)),c[4]||(c[4]=r("small",null,"单位:个村",-1))]),r("div",rr,[(l(!0),o(f,null,p(T.value,(d,A)=>(l(),o("button",{key:d.key,type:"button","aria-label":Be(d),onClick:N=>J("town",d.name)},[r("b",null,s(String(A+1).padStart(2,"0")),1),r("strong",null,s(d.name),1),r("span",sr,[(l(!0),o(f,null,p(d.segments.filter(N=>N.value>0),N=>(l(),o("i",{key:N.key,style:C({width:`${d.total>0?N.value/d.total*100:0}%`,background:N.color})},[r("em",null,s(N.key.replace("级",""))+s(N.value),1)],4))),128))]),r("span",or,[k(s(d.total),1),c[5]||(c[5]=r("em",null,"个",-1))])],8,lr))),128))])],64)):P.value==="authorization"?(l(),o(f,{key:2},[r("div",ir,[r("div",ur,[(l(),o("svg",dr,[c[6]||(c[6]=r("circle",{class:"credit-authorization-track",cx:"64",cy:"64",r:"48",pathLength:"100"},null,-1)),(l(!0),o(f,null,p(V.value,d=>(l(),o("circle",{key:d.key,class:"credit-authorization-segment",cx:"64",cy:"64",r:"48",pathLength:"100",stroke:d.color,"stroke-dasharray":`${d.percent} ${100-d.percent}`,"stroke-dashoffset":-d.offset},null,8,cr))),128))])),r("div",null,[r("strong",null,s(x(S.panel.authorizationRate,1)),1),c[7]||(c[7]=r("span",null,"授信率",-1))])]),r("div",vr,[(l(!0),o(f,null,p(T.value,d=>(l(),o("button",{key:d.key,type:"button",style:C({"--credit-color":d.color}),onClick:A=>J("authorization",d.statusValue)},[r("span",null,[c[8]||(c[8]=r("i",null,null,-1)),k(s(d.name),1)]),r("strong",null,[k(s(m(d.value)),1),c[9]||(c[9]=r("em",null,"户",-1))]),r("small",null,s(x(d.percent,d.percent<.1?2:1)),1)],12,yr))),128))])]),r("p",fr,"评定用户合计 "+s(m(S.panel.total))+" 户,授信状态完整闭环",1)],64)):P.value==="institutionRank"?(l(),o(f,{key:3},[r("div",gr,[c[11]||(c[11]=r("span",null,"评定机构",-1)),r("strong",null,[k(s(S.panel.institutionCount),1),c[10]||(c[10]=r("em",null,"家",-1))]),c[12]||(c[12]=r("small",null,"主值为评定用户数",-1))]),r("div",hr,[(l(!0),o(f,null,p(T.value,(d,A)=>(l(),o("button",{key:d.key,type:"button",onClick:N=>J("institution",d.name)},[r("b",null,s(A+1),1),r("div",null,[r("span",null,[r("strong",null,s(d.name),1),r("em",null,s(m(d.value))+"户",1)]),r("i",null,[r("u",{style:C({width:`${Q(d.value)}%`})},null,4)]),r("small",null,"已授信 "+s(m(d.authorizedCount))+"户 · 授信率 "+s(x(d.authorizationRate,1)),1)])],8,pr))),128))])],64)):P.value==="userRating"?(l(),o(f,{key:4},[r("div",mr,[c[14]||(c[14]=r("span",null,"全部星级",-1)),r("strong",null,[k(s(m(S.panel.total)),1),c[13]||(c[13]=r("em",null,"户",-1))]),c[15]||(c[15]=r("small",null,"五星至一星及其他",-1))]),r("div",br,[(l(!0),o(f,null,p(T.value,(d,A)=>(l(),o("button",{key:d.key||d.name,type:"button",style:C({"--rating-color":tt(A)}),onClick:N=>J("rating",d.name)},[r("span",null,[c[16]||(c[16]=r("i",null,null,-1)),k(s(d.name),1)]),r("u",null,[r("i",{style:C({width:`${Q(d.value)}%`})},null,4)]),r("strong",null,[k(s(m(d.value)),1),c[17]||(c[17]=r("em",null,"户",-1))]),r("small",null,s(x(_e(d.value),1)),1)],12,wr))),128))])],64)):I("",!0)],2))}},Cn=Ra(kr,[["__scopeId","data-v-86c9aa6d"]]);const _r={key:0,class:"industry-map-loading"},xr={key:2,class:"fgw-left industry-side-panel industry-side-panel--left"},Sr={class:"fgw-side-stack industry-side-stack is-left"},Cr=["aria-label"],$r={key:2,class:"industry-panel-empty"},Lr={key:3,class:"industry-stage-composition-chart"},Mr={class:"industry-stage-composition-chart__band","aria-hidden":"true"},Nr={class:"industry-stage-composition-chart__grid"},Pr={key:4,class:"industry-forage-trade-dashboard"},Tr={class:"industry-forage-trade-dashboard__hero"},Ar={class:"industry-forage-trade-dashboard__flows"},Rr={class:"industry-forage-trade-dashboard__metrics"},Fr={key:6,class:"industry-featured-base-list"},Ir=["disabled","aria-label","onClick"],Vr={class:"industry-featured-base__index"},Br={class:"industry-featured-base__copy"},Dr={key:7,class:"industry-leadership-mode-list"},zr={key:8,class:"industry-ledger-list"},Hr={key:3,class:"fgw-right industry-side-panel industry-side-panel--right"},Er={class:"fgw-side-stack industry-side-stack is-right"},Kr=["aria-label"],Gr={key:2,class:"industry-panel-empty"},Or={key:3,class:"industry-stage-composition-chart"},Wr={class:"industry-stage-composition-chart__band","aria-hidden":"true"},Ur={class:"industry-stage-composition-chart__grid"},Yr={key:4,class:"industry-forage-trade-dashboard"},jr={class:"industry-forage-trade-dashboard__hero"},qr={class:"industry-forage-trade-dashboard__flows"},Xr={class:"industry-forage-trade-dashboard__metrics"},Zr={key:5,class:"industry-tabbed-map-list"},Jr={class:"industry-tabbed-map-list__selector"},Qr={key:0,class:"industry-tabbed-map-list__menu"},el=["onClick"],tl={class:"industry-tabbed-map-list__tools"},nl=["placeholder"],al={class:"industry-tabbed-map-list__rows"},rl=["disabled","onClick"],ll={class:"industry-tabbed-map-list__name"},sl=["title"],ol={class:"industry-tabbed-map-list__meta"},il=["title"],ul={key:0,class:"industry-tabbed-map-list__empty"},dl={key:7,class:"industry-featured-base-list"},cl=["disabled","aria-label","onClick"],vl={class:"industry-featured-base__index"},yl={class:"industry-featured-base__copy"},fl={key:8,class:"industry-leadership-mode-list"},gl={key:9,class:"industry-ledger-list"},hl={class:"industry-credit-dialog",role:"dialog","aria-modal":"true","aria-label":"农牧户信用信息"},pl={class:"industry-credit-dialog__stats"},ml={class:"industry-credit-dialog__filters"},bl=["value"],wl=["value"],kl=["value"],_l=["value"],xl={class:"industry-credit-table"},Sl={key:0,class:"industry-credit-table__empty"},Cl={key:1,class:"industry-credit-table__empty is-error"},$l={key:2,class:"industry-credit-table__empty"},Ll=["title"],Ml=["title"],Nl=["data-grade"],Pl=["title"],Tl={class:"industry-credit-dialog__footer"},Al=["disabled"],Rl=["disabled"],Fl={class:"industry-bottom-switcher"},_t=12,$n=430,Ln=246,Zl={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(S,{expose:M,emit:_}){const X=S,P=_,T=Fe.sideCardWidth,re=b(typeof window=="undefined"?1080:window.innerHeight),le=Fe.sideCardGap,V=Fe.sidePanelTop,Z=Fe.sidePanelBottom,J=Fe.sideCardMinHeight,Q=y(()=>Ha(re.value)),_e=y(()=>wn(Q.value,2)),tt=y(()=>wn(Q.value,4)),Be={key:z,name:"产业概览",color:"#f0c35a",unit:"个",metricLabel:"产业点位",width:112},m=b(z),x=b(null),g=b(!1),c=b(null),d=b(""),A=b({x:0,y:0}),N=b(null),De=b(!1),H=b(null),xe=b({x:0,y:0}),ye=b(!1),ze=b(["artificial-grassland-plots"]),fe=b(z),ge=b(""),U=b(!1),He=b(!1),Se=b(!1),Ee=b(""),Ke=b([]),Ce=b(""),se=b(""),oe=b(""),ie=b(""),ue=b(""),de=b(""),Y=b(1),he=b(Ve.map(e=>e.key)),pe=b([]),Mn=new Set(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]);let Ge=null,nt=!1,me=!1,j=null,B=null,ee=null,at=0,$e=null,rt=!1,lt=!1;const q=y(()=>m.value===z),st=y(()=>q.value?Be:et(m.value));y(()=>m.value==="family-pasture");const Oe=y(()=>m.value==="artificial-grassland"),Nn=y(()=>(ve.townships||[]).map(e=>e.name)),Pn=y(()=>(ve.villageGradeRows||[]).map(e=>e.name)),Tn=y(()=>(ve.userRatingRows||[]).map(e=>e.name)),An=y(()=>Sn.map(e=>e.name)),ot=y(()=>{const e=String(Ce.value||"").trim().toLowerCase();return Ke.value.filter(t=>se.value&&t.town!==se.value||oe.value&&t.villageGrade!==oe.value||ie.value&&t.userRating!==ie.value||ue.value&&t.authorized!==ue.value||de.value&&t.institution!==de.value?!1:e?[t.name,t.town,t.village,t.institution,t.userRating].some(n=>String(n||"").toLowerCase().includes(e)):!0)}),it=y(()=>Math.max(1,Math.ceil(ot.value.length/_t))),xt=y(()=>{const e=(Y.value-1)*_t;return ot.value.slice(e,e+_t)}),Rn=y(()=>Se.value?"正在加载信用信息":`筛选结果 ${E(ot.value.length)} 户`),Fn=y(()=>Ve.map(e=>({key:e.key,name:jn(e.key,e.name),color:e.color}))),St=y(()=>{var t,n;const e=Rt();return e?[L($({},e),{color:((n=(t=e.legends)==null?void 0:t[0])==null?void 0:n.fillColor)||"#20D8FF"})]:[]}),In=y(()=>q.value?Ya():ja(m.value)),Ct=y(()=>qn(In.value)),$t=y(()=>{const e=Ct.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Tt(t,e.length))}),Lt=y(()=>{const e=Ct.value.right;return e.map(t=>Tt(t,e.length))}),Mt=y(()=>Pt(he.value)),Vn=y(()=>{const e=Re("yak-industry-chain","yak-industry-points");if(q.value){const n=pe.value.includes("artificial-grassland-plots")?St.value:[];if(!e)return n[0]||null;const a=Mt.value;if(!a.length){const[u,...h]=n;return u?L($({},u),{overlayLayers:h}):null}const i=a.map(u=>Ue(e,u)).filter(Boolean);if(!i.length){const[u,...h]=n;return u?L($({},u),{overlayLayers:h}):null}return L($({},e),{showPointLabels:!1,activeLegends:i,overlayLayers:n})}if(Oe.value){const n=[];if(ze.value.includes("artificial-grassland-plots")){const u=Rt();u&&n.push(u)}if(ze.value.includes("yak-industry-points")&&e){const u=Ue(e,"artificial-grassland");n.push(L($({},e),{showPointLabels:!1,activeLegend:u}))}if(!n.length)return null;const[a,...i]=n;return L($({},a),{overlayLayers:i})}const t=Ue(e,m.value);return e&&L($({},e),{showPointLabels:!1,activeLegend:t||Jn(m.value)})}),Bn=y(()=>[Be,...Ve].map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),Dn=y(()=>{if(q.value)return{showTownNames:!0,showBars:!1,showPointMarkers:!1,hideTownLabelStats:!0,title:"牦牛全产业链",metricLabel:"产业点位",unit:"个",rows:[]};const e=m.value==="family-pasture",t=Oe.value&&ze.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Oe.value||t,showMissingTownStats:e,hideTownLabelStats:e,title:e?"家庭生态牧场":`${st.value.name}排行`,metricLabel:e?"生态牧场":st.value.metricLabel,unit:st.value.unit,rows:e?qa():[]}}),We=y(()=>{var e;return wt(L($({},c.value||{}),{featuredBaseKey:d.value||((e=c.value)==null?void 0:e.featuredBaseKey)}))}),ut=y(()=>{const e=c.value;if(!e)return[];if(We.value){const t=We.value,n=kt(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"名称",value:t.name},{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"名称",value:F(e.name)},{label:"所在乡镇",value:F(e.town)},...kt(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"名称",value:F(e.name)},{label:"所属环节",value:F(e.stageName)},{label:"主体类型",value:F(e.categoryName)},{label:"所在乡镇",value:F(e.town)},{label:"能力规模",value:Ca(e)},...kt(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),zn=y(()=>{var e,t;return We.value?"重点示范基地":F(((e=c.value)==null?void 0:e.categoryName)||((t=c.value)==null?void 0:t.stageName))}),Hn=y(()=>{var e;return c.value?{id:c.value.id||c.value.key||c.value.name,layer:Re("yak-industry-chain","yak-industry-points"),properties:L($({},c.value),{name:((e=We.value)==null?void 0:e.name)||c.value.name})}:null}),En=y(()=>{var t,n,a;const e=((t=H.value)==null?void 0:t.properties)||{};return[{label:"图斑编号",value:F(e.plot_code||e.plotNo||e.id||e.name)},{label:"所在乡镇",value:F(e.town||e.town_name||e.townName)||"未识别"},{label:"所在村",value:F(e.village||e.village_name||e.villageName)||"未识别"},{label:"图斑面积",value:$a((n=e.area_mu)!=null?n:e.areaMu,(a=e.area_m2)!=null?a:e.areaM2)||"未计算"}]}),Kn=y(()=>Pe().panelWidth),Gn=y(()=>Pe().panelHeight),On=y(()=>{const{panelWidth:e,panelHeight:t}=Pe(),n=N.value;if(n){const i=pt(n.x,n.y);return{left:`${i.x}px`,top:`${i.y}px`,width:`${e}px`,"--feature-arrow-display":"none"}}const a=un(e,t);return{left:`${a.x}px`,top:`${a.y}px`,width:`${e}px`,"--feature-arrow-left":`${a.arrowLeft}px`,"--feature-arrow-top":`${a.arrowTop}px`,"--feature-arrow-rotate":a.arrowRotate,"--feature-panel-anchor-x":`${a.arrowLeft}px`}}),Wn=y(()=>{const t=Ln,n=452,a=1468,i=116,u=944,h=26,v={x:Math.max(n,Math.min(a,Number(xe.value.x||960))),y:Math.max(128,Math.min(960,Number(xe.value.y||540)))},w=Math.min(Math.max(v.x-460/2,n),a-460),R=v.y-t-h,K=R>=i,G=K?R:Math.min(Math.max(v.y+h,i),u-t),bt=Math.min(Math.max(v.x-w,26),460-26);return{left:`${w}px`,top:`${G}px`,"--feature-arrow-left":`${bt}px`,"--feature-arrow-top":K?`${t-6}px`:"-6px","--feature-arrow-rotate":K?"45deg":"225deg"}});ke(m,e=>{e===z?fe.value=z:fe.value=e,ge.value="",U.value=!1,va(e)},{immediate:!0}),Fa(()=>{ft(),window.addEventListener("resize",ft),window.addEventListener("pointerdown",Et),window.addEventListener("keydown",Dt),ya()}),Ia(()=>{var e,t;lt=!0,window.removeEventListener("resize",ft),window.removeEventListener("pointerdown",Et),window.removeEventListener("keydown",Dt),we(),qe(),j&&window.clearTimeout(j),B&&window.cancelAnimationFrame(B),(t=(e=x.value)==null?void 0:e.destroyMap)==null||t.call(e)}),ke(()=>X.active,e=>{var t,n,a,i;x.value&&(e?(gt(),(n=(t=x.value).resume)==null||n.call(t)):(i=(a=x.value).pause)==null||i.call(a))}),ke(ze,()=>{D()},{deep:!0}),ke([Ce,se,oe,ie,ue,de],()=>{Y.value=1}),ke(he,e=>{if(!q.value)return;const t=Pt(e),n=t.length===1?t[0]:z;fe.value!==n&&(fe.value=n,ge.value=""),D()},{deep:!0}),ke(pe,()=>{q.value&&D()},{deep:!0});function Un(e){e!==m.value&&(m.value=e,D())}function Nt(){return Ve.map(e=>e.key)}function Pt(e=[]){const t=new Set(Nt());return Array.from(new Set((Array.isArray(e)?e:[e]).map(n=>String(n||"")).filter(n=>t.has(n))))}function Yn(e){if(e===z){he.value=Nt(),pe.value=[];return}Ve.some(t=>t.key===e)&&(he.value=[e],pe.value=e==="artificial-grassland"?["artificial-grassland-plots"]:[])}function jn(e,t=""){var a;const n=Re("yak-industry-chain","yak-industry-points");return((a=Ue(n,e))==null?void 0:a.name)||t}function qn(e={}){const t=At(e.left),n=At(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Tt(e,t=0){if((e==null?void 0:e.preserveHeight)===!0&&Number((e==null?void 0:e.height)||0)>0)return L($({},e),{height:Number(e.height)});if((e==null?void 0:e.fixedHeight)===!0)return L($({},e),{height:Q.value});if((e==null?void 0:e.fillHeight)===!0)return L($({},e),{height:Xn(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return L($({},e),{height:Zn(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return L($({},e),{height:t===1&&!a?tt.value:n?_e.value:Q.value})}function Xn(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(re.value)||1080)-V-Z-le*Math.max(t-1,0);return Math.max(J,Math.floor(a/t))}function Zn(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return _e.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,i=n+25+t.length*a;return Math.min(_e.value,Math.max(Q.value,i))}function At(e=[]){return e.filter(Boolean)}function Ue(e,t){var n;return!((n=e==null?void 0:e.legends)!=null&&n.length)||!t?null:e.legends.find(a=>{var i;return((i=a.match)==null?void 0:i.value)===t||a.key===`yak-industry-${t}`||Array.isArray(a.matches)&&a.matches.some(u=>u.value===t)})||null}function Jn(e){const t=et(e);return{key:`yak-industry-empty-${e}`,name:t.name,fillColor:t.color,strokeColor:t.color,iconType:t.iconType,match:{field:"stageKey",value:e}}}function Rt(){var t;const e=Re("yak-industry-chain","artificial-grassland-plots");return e?L($({},e),{activeLegend:(t=e.legends)==null?void 0:t[0]}):null}function Ye(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Ft(e={}){return(e==null?void 0:e.hasMore)===!0&&String((e==null?void 0:e.key)||"").startsWith("social-service-credit-")}function dt(){return ne(this,arguments,function*(e={}){if(e.preserveFilters||It(),He.value=!0,Y.value=1,!(Ke.value.length||Se.value)){Se.value=!0,Ee.value="";try{const t="./".replace(/\/?$/,"/"),n=yield fetch(`${t}datas/yak-industry-chain/credit-rating-households.json`,{cache:"no-store"});if(!n.ok)throw new Error(`信用信息请求失败(${n.status})`);const a=yield n.json();if(Ke.value=Array.isArray(a==null?void 0:a.households)?a.households:[],!Ke.value.length)throw new Error("信用信息为空")}catch(t){Ee.value=(t==null?void 0:t.message)||"信用信息加载失败"}finally{Se.value=!1}}})}function It(){Ce.value="",se.value="",oe.value="",ie.value="",ue.value="",de.value=""}function Vt(e={}){It();const t=String(e.value||"");e.type==="town"&&(se.value=t),e.type==="villageGrade"&&(oe.value=t),e.type==="rating"&&(ie.value=t),e.type==="authorization"&&(ue.value=t),e.type==="institution"&&(de.value=t),dt({preserveFilters:!0})}function ct(){He.value=!1}function Bt(e){Y.value=Math.max(1,Math.min(it.value,Number(e)||1))}function Dt(e){e.key==="Escape"&&He.value&&ct()}function zt(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ht(e={}){return Array.isArray(e.tabs)?e.tabs:[]}function Le(e={}){const t=Ht(e);return t.find(n=>n.key===fe.value)||t[0]||{rows:[]}}function Qn(){U.value=!U.value}function ea(e={}){U.value=!1,ta(e)}function Et(e={}){var n;const t=e.target;(n=t==null?void 0:t.closest)!=null&&n.call(t,".industry-tabbed-map-list__selector")||(U.value=!1)}function ta(e={}){if(e.key){if(fe.value=e.key,ge.value="",q.value){Yn(e.key),D();return}if(e.key===z){m.value=z,D();return}e.key!==m.value&&(m.value=e.key,D())}}function vt(e={}){const t=Le(e),n=Kt(ge.value),a=Array.isArray(t.rows)?t.rows:[];return n?a.filter(i=>Kt(na(i)).includes(n)):a}function na(e={}){return[e.name,e.fullName,e.stageName,e.categoryName,e.town,e.village,e.address,e.valueText,e.extra,e.sourceSheet,e.searchText].filter(Boolean).join(" ")}function Kt(e=""){return String(e||"").replace(/\s+/g,"").toLowerCase()}function aa(e={}){const t=Le(e);return t!=null&&t.name?`搜索${t.name}、乡镇或村`:e.searchPlaceholder||"搜索主体、环节或乡镇"}function ra(e={}){const t=Le(e),n=Array.isArray(t.rows)?t.rows:[],a=vt(e);return a.length!==n.length?`${a.length}/${n.length}条`:`${n.length}条`}function Gt(e={}){return F(e.ledgerName||e.name||e.fullName||"未命名点位")}function Ot(e={}){return F([e.town,e.village||e.address].filter(Boolean).join(" / "))||"暂无区域"}function la(e={}){var a,i;const t=String(((a=c.value)==null?void 0:a.id)||((i=c.value)==null?void 0:i.key)||""),n=String(e.key||e.id||"");return!!(t&&n&&t===n)}function sa(){return ne(this,arguments,function*(e={}){yield ht(e)})}function Me(e={}){return Array.isArray(e.rows)?e.rows.filter(t=>Number((t==null?void 0:t.value)||0)>0):[]}function Wt(e={}){return Me(e).reduce((t,n)=>t+(Number(n==null?void 0:n.value)||0),0)||1}function Ut(e={},t={}){const n=Number(e==null?void 0:e.value)||0;return n?Math.max(4,Number((n/Wt(t)*100).toFixed(2))):0}function Yt(e={},t={}){const n=Number(e==null?void 0:e.value)||0;return n?Math.max(1.8,Number((n/Wt(t)*100).toFixed(2))):0}function je(e={},t=0){return e.color||e.fillColor||Ie[t%Ie.length]}function jt(e={}){return e.displayValue!==void 0&&e.displayValue!==null&&e.displayValue!==""?e.displayValue:E(Number(e.value||0))}function be(e={}){return(e==null?void 0:e.displayValue)!==void 0&&e.displayValue!==null&&e.displayValue!==""?e.displayValue:E(Number((e==null?void 0:e.value)||0))}function qt(e={}){return Array.isArray(e.rows)?e.rows.filter(t=>Number((t==null?void 0:t.value)||0)>0):[]}function Ne(e={},t=""){return qt(e).find(n=>n.key===t)||null}function te(e={}){return Ne(e,"forage-trade-sales-amount")||qt(e)[0]||{name:"销售金额",value:0,unit:"万元",extra:""}}function yt(e={}){return[Ne(e,"forage-trade-sales-amount"),Ne(e,"forage-trade-purchase-amount")].filter(Boolean)}function Xt(e={}){return[Ne(e,"forage-trade-plant-area"),Ne(e,"forage-trade-forage-ton")].filter(Boolean)}function Zt(e={},t={}){const n=Number((e==null?void 0:e.value)||0),a=Math.max(...yt(t).map(i=>Number((i==null?void 0:i.value)||0)),1);return Math.max(7,Math.round(n/a*100))}function Jt(e=0){return["#32dcff","#22f6b8"][e%2]}function Qt(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(u=>Number(u!=null&&u.zero?0:(u==null?void 0:u.value)||0)),a=Math.max(...n,1),i=oa(t);return Ea({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:Ka((u=[])=>{var G;const v=((G=(Array.isArray(u)?u:[u])[0])==null?void 0:G.data)||{},w=v.zero?"0":v.displayValue,R=v.unit||i||"",K=v.extra?`
    ${v.extra}`:"";return`${v.name||""}
    ${w}${R}${K}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:i?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${i}`,fill:kn,font:`10px ${Ga}`}}]:[],xAxis:{type:"category",data:t.map(u=>(u==null?void 0:u.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Oa,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?ua:ia}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Wa,type:"dashed"}}},series:[{type:"bar",data:t.map((u,h)=>{var R;const v=!!(u!=null&&u.zero||u!=null&&u.isZero),w=v?0:Number((u==null?void 0:u.value)||0);return{name:u==null?void 0:u.name,value:w,displayValue:(R=u==null?void 0:u.displayValue)!=null?R:E(w),unit:(u==null?void 0:u.unit)||i||"",extra:(u==null?void 0:u.extra)||"",zero:v,itemStyle:{color:v?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ca():da(h,u)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:_n,fontFamily:Ua,fontSize:10,fontWeight:700,formatter(u={}){var v;const h=u.data||{};return h.zero?"":(v=h.displayValue)!=null?v:E(Number(h.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function oa(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function ia(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` +`)}function ua(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function da(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:xn(Ie[e%Ie.length])}function ca(){return xn(Ie[0])}function E(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function ft(){re.value=typeof window=="undefined"?1080:window.innerHeight}function va(e=m.value){const t=e||m.value,n=t===z?Xa:t==="social-service"?Za(t):[];P("module-stats",{moduleKey:"yak-industry-chain",items:n})}function ya(){var e,t,n;Ge=new za,nt=!1,P("loading-progress",{progress:0}),(t=(e=Ge.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(a,i,u)=>{P("loading-progress",{progress:Math.floor(i/(u||1)*100),path:a,itemsLoaded:i,itemsTotal:u})}),(n=Ge.ready)==null||n.then(()=>{nt=!0,gt()}).catch(()=>{g.value=!0,P("map-ready")})}function gt(){lt||!X.active||!nt||me||(me=!0,j&&window.clearTimeout(j),j=window.setTimeout(()=>{j=null,en()},600))}function en(e=0){return ne(this,null,function*(){var n,a;if(lt)return;if(!X.active){me=!1;return}if(yield Ze(),!X.active){me=!1;return}const t=x.value;if((n=t==null?void 0:t.loadMap)==null||n.call(t,Ge),t!=null&&t.canvasMap){g.value=!0,P("loading-progress",{progress:100}),P("map-ready"),(a=t.play)==null||a.call(t);return}if(e<24){window.setTimeout(()=>en(e+1),120);return}me=!1,g.value=!0,P("map-ready")})}function fa(){j&&(window.clearTimeout(j),j=null)}function tn(){var e,t,n,a;(t=(e=x.value)==null?void 0:e.resume)==null||t.call(e),(a=(n=x.value)==null?void 0:n.refreshView)==null||a.call(n)}function ga(){var e,t;if(D(),(t=(e=x.value)==null?void 0:e.hasMap)!=null&&t.call(e)){g.value=!0,tn();return}fa(),g.value=!1,me=!1,Ze(()=>{gt()})}M({refreshMapView:tn,resetMap:ga});function ha(){ln(),U.value=!1}function pa(e={}){var n,a;const t=e.target;if((n=t==null?void 0:t.closest)!=null&&n.call(t,".industry-map-scene")&&!((a=t.closest)!=null&&a.call(t,".industry-map-feature-info, .industry-point-feature-info, .industry-map-layer-tools, .industry-bottom-switcher, .industry-side-panel"))){if(rt){rt=!1;return}ln(),U.value=!1}}function ma(e={}){var i,u,h,v;at+=1,qe();const t=e.feature||null;if(!t){D();return}rt=!0;const n=(t==null?void 0:t.properties)||{};if(((i=t==null?void 0:t.layer)==null?void 0:i.key)==="artificial-grassland-plots"){c.value=null,H.value=t;const w=e.screen||((h=(u=x.value)==null?void 0:u.getVectorFeatureScreen)==null?void 0:h.call(u,t.feature));w&&(xe.value=Xe(w)),ye.value=!!w;return}H.value=null,ye.value=!1;const a=_a(n);if(a.stageKey){const w=String(a.stageKey),R=Mt.value.map(String),K=q.value&&(!R.length||R.includes(w)),G=String(w)===String(m.value);if(!K&&!G){c.value=null,d.value="";return}d.value=((v=wt(a))==null?void 0:v.key)||"",mt(),c.value=a,A.value=Xe(e.screen);return}c.value=null,d.value=""}function ht(){return ne(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield ba(e);return}yield an(e)})}function ba(){return ne(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Oe.value||(m.value="artificial-grassland",yield Ze()),c.value=null,d.value="",H.value=null,xe.value={x:960,y:510},ye.value=!1,window.setTimeout(()=>nn(e),90))})}function nn(e={},t=0){var i,u,h;const n=(u=(i=x.value)==null?void 0:i.focusVectorFeature)==null?void 0:u.call(i,e);if(!(n!=null&&n.feature)){t<4&&window.setTimeout(()=>nn(e,t+1),180);return}H.value={id:((h=n.feature.properties)==null?void 0:h.id)||e.id,properties:n.feature.properties||{},feature:n.feature,layer:Re("yak-industry-chain","artificial-grassland-plots")};const a=H.value.id;window.setTimeout(()=>{var v;((v=H.value)==null?void 0:v.id)===a&&(wa(n.feature,n.screen),ye.value=!0)},820)}function wa(e,t=null){var a,i;const n=((i=(a=x.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:i.call(a,e))||t;n&&(xe.value=Xe(n))}function an(){return ne(this,arguments,function*(e={}){var a;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==m.value);t&&(m.value=e.stageKey,yield Ze());const n=ka(e);d.value=((a=wt(n))==null?void 0:a.key)||"",mt(),c.value=n,A.value={x:960,y:500},window.setTimeout(()=>{var u,h;const i=(h=(u=x.value)==null?void 0:u.focusYakIndustryPoint)==null?void 0:h.call(u,n);on(n,i),xa(n)},t?320:80)})}function rn(){return ne(this,arguments,function*(e={}){e.point&&(d.value=e.key,yield an(e.point))})}function D(){var t,n,a,i;qe(),c.value=null,d.value="",mt(),H.value=null,ye.value=!1,B&&(window.cancelAnimationFrame(B),B=null);const e=((n=(t=x.value)==null?void 0:t.canvasMap)==null?void 0:n.value)||((a=x.value)==null?void 0:a.canvasMap);(i=e==null?void 0:e.clearSelectedFeature)==null||i.call(e)}function ln(){const e=at;qe(),$e=window.setTimeout(()=>{$e=null,at===e&&D()},240)}function qe(){$e&&(window.clearTimeout($e),$e=null)}function ka(e={}){var u;const t=Number(e.longitude),n=Number(e.latitude),a=sn(e),i=((u=et(a))==null?void 0:u.name)||e.stageName;return L($({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:a,stageName:i,categoryName:F(e.categoryName||e.typeName||i),capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:n,geometry:Number.isFinite(t)&&Number.isFinite(n)?{type:"Point",coordinates:[t,n]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(n),status:e.status})}function _a(e={}){var a;const t=sn(e),n=((a=et(t))==null?void 0:a.name)||e.stageName;return L($({},e),{stageKey:t,stageName:n,categoryName:F(e.categoryName||e.typeName||n)})}function sn(e={}){return Mn.has(e.categoryCode)?"breeding-selection":e.stageKey}function on(e,t=null){var a,i;const n=((i=(a=x.value)==null?void 0:a.getYakIndustryPointScreen)==null?void 0:i.call(a,e))||(t==null?void 0:t.screen);n&&(A.value=Xe(n))}function xa(e,t=920){var i,u;B&&window.cancelAnimationFrame(B);const n=((u=(i=window.performance)==null?void 0:i.now)==null?void 0:u.call(i))||Date.now(),a=()=>{var v,w;if(!c.value||c.value.id!==e.id){B=null;return}if(on(e),(((w=(v=window.performance)==null?void 0:v.now)==null?void 0:w.call(v))||Date.now())-n(u==null?void 0:u.wide)||String((u==null?void 0:u.value)||"").length>18)?38:35;return{panelWidth:560,panelHeight:Math.min(430,Math.max(224,72+t*a))}}function un(e,t){const h={x:Math.max(24,Math.min(1896,Number(A.value.x||0))),y:Math.max(24,Math.min(1056,Number(A.value.y||0)))},v=T+46,w=1920-T-46,R=Math.min(Math.max(h.x-e/2,v),w-e),K=h.y-t-24,G=K>=156,bt=G?K:Math.min(Math.max(h.y+24,156),990-t),La=Math.min(Math.max(h.x-R,34),e-34);return{x:R,y:bt,arrowLeft:La,arrowTop:G?t-6:-6,arrowRotate:G?"45deg":"225deg"}}function pt(e,t){const{panelWidth:n,panelHeight:a}=Pe(),i=18;return{x:Math.min(Math.max(Number(e)||i,i),1920-n-i),y:Math.min(Math.max(Number(t)||92,92),1080-a-i)}}function mt(){we(),N.value=null}function Sa(e){var h,v,w,R;if(!c.value||e.button!==0)return;const t=e.target;if(!((h=t==null?void 0:t.closest)!=null&&h.call(t,".m-card-hd"))||(v=t.closest)!=null&&v.call(t,"button"))return;const n=vn(e),{panelWidth:a,panelHeight:i}=Pe(),u=N.value?pt(N.value.x,N.value.y):un(a,i);N.value={x:u.x,y:u.y},ee={pointerId:e.pointerId,startX:n.x,startY:n.y,originX:u.x,originY:u.y},De.value=!0,(R=(w=e.currentTarget)==null?void 0:w.setPointerCapture)==null||R.call(w,e.pointerId),e.preventDefault(),window.addEventListener("pointermove",dn),window.addEventListener("pointerup",we),window.addEventListener("pointercancel",we)}function dn(e){if(!ee)return;const t=vn(e),n=pt(ee.originX+t.x-ee.startX,ee.originY+t.y-ee.startY);N.value=n}function we(){!ee&&!De.value||(ee=null,De.value=!1,window.removeEventListener("pointermove",dn),window.removeEventListener("pointerup",we),window.removeEventListener("pointercancel",we))}function Ca(e){return e.capacity===void 0||e.capacity===null||e.capacity===""?"":`${e.capacity}${e.capacityUnit||""}`}function F(e){return String(e!=null?e:"").replace(/\bcxpt[-_./\s]*/gi,"").replace(/\s+/g," ").trim()}function $a(e,t){const n=Number(e);if(Number.isFinite(n)&&n>0)return`${cn(n)}亩`;const a=Number(t);return Number.isFinite(a)&&a>0?`${cn(a/666.6667)}亩`:""}function cn(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:""}function Xe(e={}){var v;const t=document.querySelector("#large-screen"),n=(v=t==null?void 0:t.getBoundingClientRect)==null?void 0:v.call(t),a=n!=null&&n.width?1920/n.width:1,i=n!=null&&n.height?1080/n.height:1,u=(n==null?void 0:n.left)||0,h=(n==null?void 0:n.top)||0;return{x:(Number(e.x)-u)*a,y:(Number(e.y)-h)*i}}function vn(e={}){var v;const t=document.querySelector("#large-screen"),n=(v=t==null?void 0:t.getBoundingClientRect)==null?void 0:v.call(t),a=n!=null&&n.width?1920/n.width:1,i=n!=null&&n.height?1080/n.height:1,u=(n==null?void 0:n.left)||0,h=(n==null?void 0:n.top)||0;return{x:(Number(e.clientX)-u)*a,y:(Number(e.clientY)-h)*i}}return(e,t)=>(l(),o("div",{class:"yak-industry-chain",onClickCapture:pa},[Te(Va,{ref_key:"mapSceneRef",ref:x,class:"industry-map-scene","active-layer":Vn.value,"map-ranking":Dn.value,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,onMapClick:ha,onFeatureInfo:ma},null,8,["active-layer","map-ranking"]),t[39]||(t[39]=r("div",{class:"industry-map-scrim"},null,-1)),g.value?I("",!0):(l(),o("div",_r,"3D地图加载中")),q.value?(l(),o("div",{key:1,class:"industry-map-layer-tools",style:C({height:`${$n}px`})},[Te(Ba,{modelValue:he.value,"onUpdate:modelValue":t[0]||(t[0]=n=>he.value=n),"overlay-keys":pe.value,"onUpdate:overlayKeys":t[1]||(t[1]=n=>pe.value=n),"topic-key":"yak-industry-chain",layers:Fn.value,"overlay-layers":St.value,width:248,height:$n,compact:"",multiple:"","show-legend":!1},null,8,["modelValue","overlay-keys","layers","overlay-layers"])],4)):I("",!0),$t.value.length?(l(),o("div",xr,[r("div",Sr,[(l(!0),o(f,null,p($t.value,n=>(l(),ae(pn,{key:n.key,class:W(["fgw-side-card industry-side-card left-card",`industry-side-card--${n.key}`]),title:n.title,width:O(T),height:n.height},{extra:Je(()=>[Ft(n)?(l(),o("button",{key:0,class:"industry-card-more",type:"button","aria-label":n.moreAriaLabel||"查看更多信用信息",onClick:t[2]||(t[2]=Qe(a=>dt(),["stop"]))},s(n.moreLabel||"查看更多"),9,Cr)):I("",!0)]),default:Je(()=>[n.renderer==="socialCredit"?(l(),ae(Cn,{key:0,panel:n,onSelect:Vt},null,8,["panel"])):Ye(n)&&zt(n)?(l(),ae(O(hn),{key:1,class:"industry-town-column-chart",option:Qt(n),autoresize:!0},null,8,["option"])):Ye(n)?(l(),o("div",$r," 暂无业务统计数据 ")):n.renderer==="stageComposition"?(l(),o("div",Lr,[r("div",Mr,[(l(!0),o(f,null,p(Me(n),(a,i)=>(l(),o("i",{key:a.key||a.name,style:C({width:`${Yt(a,n)}%`,background:je(a,i)})},null,4))),128))]),r("div",Nr,[(l(!0),o(f,null,p(Me(n),(a,i)=>(l(),o("div",{key:a.key||a.name,class:"industry-stage-composition-chart__item",style:C({"--stage-color":je(a,i),"--stage-width":`${Ut(a,n)}%`})},[r("span",null,s(a.name),1),r("strong",null,[k(s(jt(a)),1),r("em",null,s(a.unit),1)]),t[13]||(t[13]=r("small",{"aria-hidden":"true"},[r("b")],-1))],4))),128))])])):n.renderer==="forageTradeDashboard"?(l(),o("div",Pr,[r("div",Tr,[r("span",null,s(te(n).name),1),r("strong",null,[k(s(be(te(n))),1),r("em",null,s(te(n).unit),1)]),r("small",null,s(te(n).extra),1)]),r("div",Ar,[(l(!0),o(f,null,p(yt(n),(a,i)=>(l(),o("div",{key:a.key||a.name,class:"industry-forage-trade-dashboard__flow",style:C({"--trade-color":Jt(i),"--trade-width":`${Zt(a,n)}%`})},[r("span",null,s(a.name),1),r("strong",null,[k(s(be(a)),1),r("em",null,s(a.unit),1)]),t[14]||(t[14]=r("i",null,[r("b")],-1))],4))),128))]),r("div",Rr,[(l(!0),o(f,null,p(Xt(n),a=>(l(),o("div",{key:a.key||a.name},[r("span",null,s(a.name),1),r("strong",null,[k(s(be(a)),1),r("em",null,s(a.unit),1)])]))),128))])])):n.renderer==="business"?(l(),ae(mn,{key:5,panel:n,compact:"",onRowSelect:ht},null,8,["panel"])):n.renderer==="featured"?(l(),o("div",Fr,[(l(!0),o(f,null,p(n.rows,(a,i)=>(l(),o("button",{key:a.key,class:W(["industry-featured-base",{"is-active":d.value===a.key}]),type:"button",disabled:!a.point,"aria-label":`查看${a.name}`,onClick:u=>rn(a)},[r("span",Vr,s(`0${i+1}`),1),r("span",Br,[r("strong",null,s(a.name),1),r("em",null,s(a.town)+" · "+s(a.tag),1),r("small",null,s(a.summary),1)])],10,Ir))),128))])):n.renderer==="leadershipMode"?(l(),o("div",Dr,[(l(!0),o(f,null,p(n.rows,(a,i)=>(l(),o("div",{key:a.key,class:"industry-leadership-mode"},[r("i",{style:C({color:a.color,background:a.color})},null,4),r("span",null,s(`0${i+1}`),1),r("div",null,[r("strong",null,s(a.name),1),r("small",null,s(a.description),1)])]))),128))])):n.renderer==="ledger"?(l(),o("div",zr,[(l(!0),o(f,null,p(n.rows,a=>(l(),o("div",{key:a.key,class:"industry-ledger-row"},[r("div",null,[r("strong",null,s(a.name),1),r("span",null,s(a.typeName)+" / "+s(a.town),1)]),r("em",null,s(a.valueText),1)]))),128))])):I("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):I("",!0),Lt.value.length?(l(),o("div",Hr,[r("div",Er,[(l(!0),o(f,null,p(Lt.value,n=>(l(),o(f,{key:n.key},[n.placeholder?(l(),o("div",{key:0,class:"industry-side-card-placeholder",style:C({width:`${O(T)}px`,height:`${n.height}px`}),"aria-hidden":"true"},null,4)):(l(),ae(pn,{key:1,class:W(["fgw-side-card industry-side-card right-card",`industry-side-card--${n.key}`]),title:n.title,width:O(T),height:n.height},{extra:Je(()=>[Ft(n)?(l(),o("button",{key:0,class:"industry-card-more",type:"button","aria-label":n.moreAriaLabel||"查看更多信用信息",onClick:t[3]||(t[3]=Qe(a=>dt(),["stop"]))},s(n.moreLabel||"查看更多"),9,Kr)):I("",!0)]),default:Je(()=>[n.renderer==="socialCredit"?(l(),ae(Cn,{key:0,panel:n,onSelect:Vt},null,8,["panel"])):Ye(n)&&zt(n)?(l(),ae(O(hn),{key:1,class:"industry-town-column-chart",option:Qt(n),autoresize:!0},null,8,["option"])):Ye(n)?(l(),o("div",Gr," 暂无业务统计数据 ")):n.renderer==="stageComposition"?(l(),o("div",Or,[r("div",Wr,[(l(!0),o(f,null,p(Me(n),(a,i)=>(l(),o("i",{key:a.key||a.name,style:C({width:`${Yt(a,n)}%`,background:je(a,i)})},null,4))),128))]),r("div",Ur,[(l(!0),o(f,null,p(Me(n),(a,i)=>(l(),o("div",{key:a.key||a.name,class:"industry-stage-composition-chart__item",style:C({"--stage-color":je(a,i),"--stage-width":`${Ut(a,n)}%`})},[r("span",null,s(a.name),1),r("strong",null,[k(s(jt(a)),1),r("em",null,s(a.unit),1)]),t[15]||(t[15]=r("small",{"aria-hidden":"true"},[r("b")],-1))],4))),128))])])):n.renderer==="forageTradeDashboard"?(l(),o("div",Yr,[r("div",jr,[r("span",null,s(te(n).name),1),r("strong",null,[k(s(be(te(n))),1),r("em",null,s(te(n).unit),1)]),r("small",null,s(te(n).extra),1)]),r("div",qr,[(l(!0),o(f,null,p(yt(n),(a,i)=>(l(),o("div",{key:a.key||a.name,class:"industry-forage-trade-dashboard__flow",style:C({"--trade-color":Jt(i),"--trade-width":`${Zt(a,n)}%`})},[r("span",null,s(a.name),1),r("strong",null,[k(s(be(a)),1),r("em",null,s(a.unit),1)]),t[16]||(t[16]=r("i",null,[r("b")],-1))],4))),128))]),r("div",Xr,[(l(!0),o(f,null,p(Xt(n),a=>(l(),o("div",{key:a.key||a.name},[r("span",null,s(a.name),1),r("strong",null,[k(s(be(a)),1),r("em",null,s(a.unit),1)])]))),128))])])):n.renderer==="industryTabbedMapList"?(l(),o("div",Zr,[r("div",Jr,[t[18]||(t[18]=r("span",null,"点位类型",-1)),r("button",{type:"button",class:W(["industry-tabbed-map-list__select",{"is-open":U.value}]),onClick:Qe(Qn,["stop"])},[r("strong",null,s(Le(n).name),1),t[17]||(t[17]=r("i",{"aria-hidden":"true"},null,-1))],2),U.value?(l(),o("div",Qr,[(l(!0),o(f,null,p(Ht(n),a=>(l(),o("button",{key:a.key,type:"button",class:W({"is-active":Le(n).key===a.key}),onClick:i=>ea(a)},[r("span",null,s(a.name),1)],10,el))),128))])):I("",!0)]),r("div",tl,[ce(r("input",{"onUpdate:modelValue":t[4]||(t[4]=a=>ge.value=a),type:"search",placeholder:aa(n)},null,8,nl),[[gn,ge.value]]),r("small",null,s(ra(n)),1)]),t[20]||(t[20]=r("div",{class:"industry-tabbed-map-list__head","aria-hidden":"true"},[r("span",null,"名称"),r("span",null,"所属区域"),r("span",null,"定位")],-1)),r("div",al,[(l(!0),o(f,null,p(vt(n),a=>(l(),o("button",{key:a.key||a.id||a.name,type:"button",class:W(["industry-tabbed-map-list__row",{"is-active":la(a),"is-disabled":a.canLocate===!1}]),disabled:a.canLocate===!1,onClick:i=>sa(a)},[r("span",ll,[r("strong",{title:Gt(a)},s(Gt(a)),9,sl)]),r("span",ol,[r("span",{class:"industry-tabbed-map-list__area",title:Ot(a)},s(Ot(a)),9,il)]),t[19]||(t[19]=r("i",{class:"industry-tabbed-map-list__locate","aria-hidden":"true"},null,-1))],10,rl))),128)),vt(n).length?I("",!0):(l(),o("div",ul,s(n.emptyText||"无匹配产业点位"),1))])])):n.renderer==="business"?(l(),ae(mn,{key:6,panel:n,compact:"",onRowSelect:ht},null,8,["panel"])):n.renderer==="featured"?(l(),o("div",dl,[(l(!0),o(f,null,p(n.rows,(a,i)=>(l(),o("button",{key:a.key,class:W(["industry-featured-base",{"is-active":d.value===a.key}]),type:"button",disabled:!a.point,"aria-label":`查看${a.name}`,onClick:u=>rn(a)},[r("span",vl,s(`0${i+1}`),1),r("span",yl,[r("strong",null,s(a.name),1),r("em",null,s(a.town)+" · "+s(a.tag),1),r("small",null,s(a.summary),1)])],10,cl))),128))])):n.renderer==="leadershipMode"?(l(),o("div",fl,[(l(!0),o(f,null,p(n.rows,(a,i)=>(l(),o("div",{key:a.key,class:"industry-leadership-mode"},[r("i",{style:C({color:a.color,background:a.color})},null,4),r("span",null,s(`0${i+1}`),1),r("div",null,[r("strong",null,s(a.name),1),r("small",null,s(a.description),1)])]))),128))])):n.renderer==="ledger"?(l(),o("div",gl,[(l(!0),o(f,null,p(n.rows,a=>(l(),o("div",{key:a.key,class:"industry-ledger-row"},[r("div",null,[r("strong",null,s(a.name),1),r("span",null,s(a.typeName)+" / "+s(a.town),1)]),r("em",null,s(a.valueText),1)]))),128))])):I("",!0)]),_:2},1032,["class","title","width","height"]))],64))),128))])])):I("",!0),H.value&&ye.value?(l(),o("div",{key:4,class:"industry-map-feature-info",style:C(Wn.value)},[Te(bn,{title:"人工草地详情",feature:H.value,rows:En.value,width:460,height:Ln},null,8,["feature","rows"])],4)):I("",!0),c.value?(l(),o("div",{key:5,class:W(["industry-map-feature-info industry-point-feature-info",{"is-dragging":De.value}]),style:C(On.value),onPointerdown:Sa},[Te(bn,{title:zn.value,feature:Hn.value,rows:ut.value,width:Kn.value,height:Gn.value,closable:"",onClose:D},null,8,["title","feature","rows","width","height"])],38)):I("",!0),He.value?(l(),o("div",{key:6,class:"industry-credit-overlay",role:"presentation",onClick:Qe(ct,["self"])},[r("section",hl,[r("header",{class:"industry-credit-dialog__header"},[t[21]||(t[21]=r("div",null,[r("strong",null,"农牧户信用信息"),r("span",null,"红原县信用村、信用户评定结果")],-1)),r("button",{type:"button","aria-label":"关闭农牧户信用信息",onClick:ct},"×")]),r("div",pl,[r("div",null,[t[23]||(t[23]=r("span",null,"评定信用户",-1)),r("strong",null,[k(s(E(O(ve).totals.householdCount)),1),t[22]||(t[22]=r("em",null,"户",-1))])]),r("div",null,[t[25]||(t[25]=r("span",null,"已授信",-1)),r("strong",null,[k(s(E(O(ve).totals.authorizedCount)),1),t[24]||(t[24]=r("em",null,"户",-1))])]),r("div",null,[t[27]||(t[27]=r("span",null,"未授信",-1)),r("strong",null,[k(s(E(O(ve).totals.unauthorizedCount)),1),t[26]||(t[26]=r("em",null,"户",-1))])]),r("div",null,[t[29]||(t[29]=r("span",null,"信用村",-1)),r("strong",null,[k(s(E(O(ve).totals.villageCount)),1),t[28]||(t[28]=r("em",null,"个",-1))])]),r("div",null,[t[31]||(t[31]=r("span",null,"评定机构",-1)),r("strong",null,[k(s(E(O(Sn).length)),1),t[30]||(t[30]=r("em",null,"家",-1))])])]),r("div",ml,[ce(r("input",{"onUpdate:modelValue":t[5]||(t[5]=n=>Ce.value=n),type:"search",placeholder:"搜索姓名、乡镇、村或评定机构"},null,512),[[gn,Ce.value,void 0,{trim:!0}]]),ce(r("select",{"onUpdate:modelValue":t[6]||(t[6]=n=>se.value=n),"aria-label":"筛选乡镇"},[t[32]||(t[32]=r("option",{value:""},"全部乡镇",-1)),(l(!0),o(f,null,p(Nn.value,n=>(l(),o("option",{key:n,value:n},s(n),9,bl))),128))],512),[[Ae,se.value]]),ce(r("select",{"onUpdate:modelValue":t[7]||(t[7]=n=>oe.value=n),"aria-label":"筛选信用村等级"},[t[33]||(t[33]=r("option",{value:""},"全部村等级",-1)),(l(!0),o(f,null,p(Pn.value,n=>(l(),o("option",{key:n,value:n},s(n),9,wl))),128))],512),[[Ae,oe.value]]),ce(r("select",{"onUpdate:modelValue":t[8]||(t[8]=n=>ie.value=n),"aria-label":"筛选信用户星级"},[t[34]||(t[34]=r("option",{value:""},"全部星级",-1)),(l(!0),o(f,null,p(Tn.value,n=>(l(),o("option",{key:n,value:n},s(n),9,kl))),128))],512),[[Ae,ie.value]]),ce(r("select",{"onUpdate:modelValue":t[9]||(t[9]=n=>ue.value=n),"aria-label":"筛选授信状态"},[...t[35]||(t[35]=[r("option",{value:""},"全部授信状态",-1),r("option",{value:"是"},"已授信",-1),r("option",{value:"否"},"未授信",-1),r("option",{value:"未填写"},"未填写",-1)])],512),[[Ae,ue.value]]),ce(r("select",{"onUpdate:modelValue":t[10]||(t[10]=n=>de.value=n),"aria-label":"筛选评定机构"},[t[36]||(t[36]=r("option",{value:""},"全部评定机构",-1)),(l(!0),o(f,null,p(An.value,n=>(l(),o("option",{key:n,value:n},s(n),9,_l))),128))],512),[[Ae,de.value]]),r("small",null,s(Rn.value),1)]),r("div",xl,[t[37]||(t[37]=r("div",{class:"industry-credit-table__head","aria-hidden":"true"},[r("span",null,"姓名"),r("span",null,"乡镇"),r("span",null,"行政村"),r("span",null,"信用村等级"),r("span",null,"信用户星级"),r("span",null,"授信状态"),r("span",null,"评定机构")],-1)),Se.value?(l(),o("div",Sl,"信用信息加载中...")):Ee.value?(l(),o("div",Cl,s(Ee.value),1)):xt.value.length?(l(!0),o(f,{key:3},p(xt.value,n=>(l(),o("div",{key:n.id,class:"industry-credit-table__row"},[r("strong",{title:n.name},s(n.name),9,Ll),r("span",null,s(n.town),1),r("span",{title:n.village},s(n.village),9,Ml),r("span",null,[r("i",{class:"industry-credit-grade","data-grade":n.villageGrade},s(n.villageGrade),9,Nl)]),r("span",null,s(n.userRating),1),r("span",{class:W({"is-authorized":n.authorized==="是","is-unauthorized":n.authorized==="否"})},s(n.authorized==="是"?"已授信":n.authorized==="否"?"未授信":"未填写"),3),r("span",{title:n.institution},s(n.institution),9,Pl)]))),128)):(l(),o("div",$l,"无匹配信用信息"))]),r("footer",Tl,[t[38]||(t[38]=r("span",null,"数据展示已移除身份证号码和联系电话",-1)),r("div",null,[r("button",{type:"button",disabled:Y.value<=1,onClick:t[11]||(t[11]=n=>Bt(Y.value-1))},"上一页",8,Al),r("strong",null,s(Y.value)+" / "+s(it.value),1),r("button",{type:"button",disabled:Y.value>=it.value,onClick:t[12]||(t[12]=n=>Bt(Y.value+1))},"下一页",8,Rl)])])])])):I("",!0),r("div",Fl,[Te(Da,{"model-value":m.value,topics:Bn.value,compact:"","onUpdate:modelValue":Un},null,8,["model-value","topics"])])],32))}};export{Zl as default}; diff --git a/docs/assets/index-70900b52-1785726778446.js b/docs/assets/index-609f41df-1785858872961.js similarity index 98% rename from docs/assets/index-70900b52-1785726778446.js rename to docs/assets/index-609f41df-1785858872961.js index b79df3e..4927bc4 100644 --- a/docs/assets/index-70900b52-1785726778446.js +++ b/docs/assets/index-609f41df-1785858872961.js @@ -1 +1 @@ -var ca=Object.defineProperty,va=Object.defineProperties;var da=Object.getOwnPropertyDescriptors;var fe=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable;var be=Math.pow,pe=(k,y,d)=>y in k?ca(k,y,{enumerable:!0,configurable:!0,writable:!0,value:d}):k[y]=d,R=(k,y)=>{for(var d in y||(y={}))ga.call(y,d)&&pe(k,d,y[d]);if(fe)for(var d of fe(y))ya.call(y,d)&&pe(k,d,y[d]);return k},E=(k,y)=>va(k,da(y));var H=(k,y,d)=>new Promise((Y,K)=>{var q=C=>{try{x(d.next(C))}catch(m){K(m)}},Z=C=>{try{x(d.throw(C))}catch(m){K(m)}},x=C=>C.done?Y(C.value):Promise.resolve(C.value).then(q,Z);x((d=d.apply(k,y)).next())});import{_ as ke}from"./index-7b46d381-1785726778446.js";import{g as ma,a as fa,b as pa}from"./balanceApi-994e7f98-1785726778446.js";import{b as re,a as ie,n as ue,d as he,f as w,e as P,s as ba,p as _e}from"./data-56996d99-1785726778446.js";import{g as i,d as N,q as ka,h as ha,w as we,o as c,c as v,a as n,b as $e,x as Re,F as V,y as z,n as A,t as r,K as L,j as _a,u as G}from"./index-1785726778446.js";import"./index-e33f4373-1785726778446.js";import"./index-e9f36657-1785726778446.js";const wa={class:"grass-livestock-balance"},$a={class:"balance-selector"},Ra={class:"balance-scope-tabs"},Ca=["onClick"],Sa={class:"balance-target-list"},Na=["title","onClick"],xa={class:"balance-action-box"},Ba={"aria-live":"polite"},Ma=["disabled"],Aa={key:0,class:"balance-running"},Ta={class:"balance-running-head"},Pa={class:"balance-core-inner"},Va={class:"balance-running-title"},za={class:"balance-running-value"},La={class:"balance-progress-line"},Fa={class:"balance-live-process"},Ia={key:1,class:"balance-waiting"},Da={class:"balance-wait-core"},Ea={class:"balance-core-ring is-empty"},Ha={class:"balance-core-inner"},Ka=["disabled"],qa={class:"balance-preflight"},Oa={key:2,class:"balance-analysis"},ja={class:"balance-dashboard"},Ua={class:"balance-object-block"},Wa={class:"balance-core"},Ga={class:"balance-core-inner"},Ya={class:"balance-compare"},Ja={class:"balance-bar-row"},Qa={class:"balance-bar-row is-livestock"},Xa={class:"balance-detail"},Za={class:"balance-process"},en={class:"balance-section-title"},an={class:"balance-process-track"},nn={class:"balance-decision"},ln={class:"balance-section-title"},tn={class:"balance-conclusion"},sn={class:"balance-advice-list"},rn={class:"balance-overload-ranking"},un={class:"balance-rank-list"},on=["title"],cn=326,vn=1310,dn=128,gn=8,yn=11500,wn={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(k,{emit:y}){const d=k,Y=y,K=N(typeof window=="undefined"?1080:window.innerHeight),q=i(()=>{const e=Math.max(1080,Number(K.value)||1080);return Math.max(944,e-dn-gn)}),Z=i(()=>q.value),x=N("county"),C=N(""),m=N("idle"),h=N(0),$=N(0),b=N(""),M=N(!1),O=N({}),J=N(re.filter(e=>["county","town"].includes(e.type))),F=N(ie.map(e=>R({},e)));let S=!1,ee=0,Q=null,j=0,U=0,I=null;const X=i(()=>[...J.value,...F.value].map(e=>ue(O.value[e.key]||e,e))),Ce=i(()=>X.value.filter(e=>e.type==="county")),ae=i(()=>X.value.filter(e=>e.type==="town")),Se=i(()=>X.value.filter(e=>e.type==="village")),Ne=i(()=>x.value==="town"?ae.value:x.value==="village"?Se.value:Ce.value),o=i(()=>X.value.find(e=>e.key===C.value)||null),_=i(()=>!!o.value),ne=i(()=>!!b.value&&!M.value&&!J.value.length),p=i(()=>m.value==="running"),f=i(()=>_.value&&m.value==="done"),u=i(()=>he(o.value||{})),oe=i(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),xe=i(()=>{var e;return((e=oe.value.find(l=>l.key===x.value))==null?void 0:e.name)||"县"}),Be=i(()=>{if(!o.value)return"等待选择核算对象";if(o.value.areaCode){const e=o.value.scenarioVersion||"";return`行政区划 ${o.value.areaCode}${e?`|${e}`:""}`}return o.value.township||"核算对象"}),Me=i(()=>M.value?"正在加载核算对象":b.value?b.value:_.value?f.value?"分析已完成":p.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),Ae=i(()=>f.value?"草畜平衡分析舱":"草畜平衡分析"),Te=i(()=>M.value?"加载中":ne.value?"可重试":_.value?p.value?"分析中":"待开始":"待选择"),Pe=i(()=>M.value?"正在加载核算对象":ne.value?"核算对象暂未加载":_.value?p.value?`${o.value.name} 正在分析`:`${o.value.name} 待开始分析`:"先选择一个核算对象"),Ve=i(()=>M.value?"正在读取县、镇、村核算对象,请稍候。":b.value?b.value:_.value?p.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),ze=i(()=>{const e=u.value;return e.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${e.delta>0?"超载量":"承载余量"} ${w(Math.abs(e.delta))},承载利用率 ${P(e.usageRate)}。`}),Le=i(()=>u.value.risk.key==="healthy"?"保持监测":u.value.risk.key==="watch"?"基本平衡":u.value.risk.key==="light"?"关注调控":u.value.delta===null?"按结果表判定":u.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Fe=i(()=>u.value.risk.key==="healthy"||u.value.risk.key==="watch"?"保持监测":u.value.risk.key==="light"?"关注调控":u.value.delta===null?"结果表口径":u.value.delta>0?"需要调控":"保持监测"),Ie=i(()=>{const e=Math.max(0,Math.min(130,Number(u.value.usageRate)||0));return`${Math.round(e/130*360)}deg`}),De=i(()=>{const e=u.value,l=Number(e.overloadCount||0),a=l>=0?"超载量":"承载余量";return[{key:"productivity",index:"01",name:"草地承载核定",desc:`核算草地面积 ${w(e.areaRange)}亩|理论承载力 ${w(e.bearing)}头`},{key:"forage",index:"02",name:"载畜规模核定",desc:`牦牛存栏 ${w(e.yakNumber)}头|实际载畜量 ${w(e.livestock)}头`},{key:"livestock",index:"03",name:"承载状态对比",desc:`理论承载力 ${w(e.bearing)}头|实际载畜量 ${w(e.livestock)}头|${a} ${w(Math.abs(l))}头`},{key:"balance",index:"04",name:"平衡结果判定",desc:`超载率 ${P(e.overloadRate)}|承载利用率 ${P(e.usageRate)}|${e.risk.label}`}]}),T=i(()=>[{key:"area",index:"01",name:"草地面积统计",desc:"正在统计草地面积与范围",pending:"等待草地面积统计"},{key:"productivity",index:"02",name:"草地生产力核验",desc:"正在核验草地生产力指标",pending:"等待生产力数据"},{key:"capacity",index:"03",name:"理论承载核定",desc:"正在形成草地承载能力结果",pending:"等待承载力核定"},{key:"livestock",index:"04",name:"实际载畜汇总",desc:"正在汇总牦牛存栏与载畜规模",pending:"等待载畜数据"},{key:"comparison",index:"05",name:"承载状态对比",desc:"正在比对理论承载与实际载畜",pending:"等待承载状态对比"},{key:"balance",index:"06",name:"平衡结论生成",desc:"正在生成草畜平衡等级与建议",pending:"等待平衡结论"}]),ce=i(()=>T.value[Math.min($.value,T.value.length-1)]||T.value[0]),Ee=i(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:f.value?"草地生产力核算":_.value?"等待核算":"等待选择",state:_.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:f.value?"可利用草量折算":"分析后折算",state:p.value?"active":f.value?"done":_.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:f.value?"载畜压力折算":"等待折算",state:p.value?"active":f.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:f.value?u.value.risk.label:"等待判定",state:f.value?"done":"disabled"}]),He=i(()=>f.value?ba(o.value,u.value.risk):[]),ve=i(()=>ae.value.filter(e=>Number.isFinite(Number(e.overloadRate))).slice().sort((e,l)=>Number(l.overloadRate)-Number(e.overloadRate)).slice(0,10)),Ke=i(()=>Math.max(1,...ve.value.map(e=>Math.max(0,Number(e.overloadRate)||0)))),qe=i(()=>ve.value.map((e,l)=>E(R({},e),{rank:l+1})));function Oe(e){const l=Math.max(0,Number(e==null?void 0:e.overloadRate)||0);return Math.max(6,Math.min(100,l/Ke.value*100))}function je(e){const l=Number(e==null?void 0:e.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function Ue(e){const l=he(e||{});return`${(e==null?void 0:e.name)||"乡镇"}:理论${w(l.bearing)}头,实际${w(l.livestock)}头,超载${sa(l.overloadCount)}头,超载率${P(l.overloadRate)}`}function le(){K.value=typeof window=="undefined"?1080:window.innerHeight}ka(()=>{le(),window.addEventListener("resize",le),Y("loading-progress",{progress:100}),Y("map-ready"),de()}),ha(()=>{S=!0,window.removeEventListener("resize",le),ee+=1,j+=1,U+=1,W()}),we(()=>{var e;return(e=o.value)==null?void 0:e.key},()=>{m.value="idle",h.value=0,$.value=0,b.value="",I=null,W()}),we(()=>d.active,e=>{e||!p.value||(m.value="idle",h.value=0,$.value=0,b.value="",I=null,W())});function We(e){x.value=e,C.value="",m.value="idle",b.value=""}function Ge(e){e&&(x.value=["county","town","village"].includes(e.type)?e.type:"county",C.value=e.key,m.value="idle",b.value="")}function Ye(){if(!d.active||!o.value||p.value)return;m.value="running",h.value=0,$.value=0,b.value="",W();const e=Date.now();let l=!1;const a=Je().catch(t=>(l=!0,console.warn("[grassLivestockBalance] balance result unavailable",t),b.value=Qe(t,"当前对象的核算结果暂不可用,请稍后重试。"),null));I=a,Q=window.setInterval(()=>{if(S)return;const t=I===a?94:100,s=100/T.value.length;h.value=Math.min(t,h.value+1),$.value=Math.min(T.value.length-1,Math.floor(h.value/s))},120),a.finally(()=>H(this,null,function*(){const t=yn-(Date.now()-e);if(t>0&&(yield new Promise(s=>window.setTimeout(s,t))),!(S||m.value!=="running"||I!==a)){if(I=null,W(),!o.value){h.value=0,$.value=0,m.value="idle";return}if(l||!ye(o.value)){h.value=0,$.value=0,m.value="idle";return}h.value=100,$.value=T.value.length-1,yield new Promise(s=>window.setTimeout(s,900)),!(S||m.value!=="running")&&(m.value="done")}}))}function Je(){return H(this,null,function*(){const e=o.value;if(!e)throw new Error("请先选择具体核算对象");if(O.value[e.key])return O.value[e.key];if(ye(e))return e;const l=++ee,a=yield pa({areaCode:e.areaCode});if(S||l!==ee)return null;if(!a||typeof a!="object"||!Object.keys(a).length)throw new Error("未查询到该对象的草畜平衡结果");return O.value=E(R({},O.value),{[e.key]:a}),a})}function de(){return H(this,null,function*(){const e=++j;M.value=!0,b.value="";try{const l=yield ma();if(S||e!==j)return;const a=la(l);J.value=ge(re.filter(t=>["county","town"].includes(t.type)),a.filter(t=>["county","town"].includes(t.type))),F.value=ge(ie,a.filter(t=>t.type==="village")),b.value="",F.value.length||Xe()}catch(l){if(S||e!==j)return;console.warn("[grassLivestockBalance] area balance rows unavailable",l),J.value=re.filter(a=>["county","town"].includes(a.type)),F.value=ie.map(a=>R({},a)),b.value=""}finally{!S&&e===j&&(M.value=!1)}})}function Qe(e,l){const a=String((e==null?void 0:e.message)||"").trim();return/404|not found|暂无|未查询到/i.test(a)?"暂未查询到核算数据,请稍后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(a)?"核算服务暂时无法连接,请稍后重试。":l}function Xe(){return H(this,null,function*(){const e=++U,l=ae.value.filter(a=>a==null?void 0:a.areaCode).map(a=>R({},a));if(l.length)try{const a=yield Promise.all(l.map(t=>H(this,null,function*(){try{const s=yield fa(t.areaCode);return S||e!==U?[]:Ze(s,t)}catch(s){return[]}})));if(S||e!==U)return;F.value=a.flat()}catch(a){if(S||e!==U)return;F.value=[]}})}function Ze(e=[],l={}){const t=(Array.isArray(e)?e:[]).filter(s=>{const g=te(s),D=se(s);return!!(g||D)}).map((s,g)=>na(s,g,l)).filter(Boolean);return ea(t,l)}function ea(e=[],l={}){const a=new Map;return e.forEach(t=>{const s=aa(t,l),g=a.get(s);if(!g){a.set(s,E(R({},t),{duplicateSources:[t.source].filter(Boolean)}));return}const oa=!g.areaCode&&t.areaCode?R(R({},g),t):g;a.set(s,E(R({},oa),{duplicateSources:[...g.duplicateSources||[],t.source].filter(Boolean)}))}),[...a.values()]}function aa(e={},l={}){const a=String(e.name||"").replace(/\s+/g,"").trim();return`${String(e.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${a||e.areaCode||"unknown-village"}`}function na(e={},l=0,a={}){const t=te(e),s=se(e)||(t?`村级区划${t}`:"");return!t&&!s?null:{key:`village-${t||`${a.key||a.name}-${s}-${l}`}`,type:"village",name:s,areaCode:t,township:a.name,source:e,year:"2026"}}function la(e=[]){return(Array.isArray(e)?e:[]).map((l,a)=>ta(l,a)).filter(Boolean)}function ta(e={},l=0){const a=te(e),t=se(e)||(a?`核算对象${a}`:"");if(!a&&!t)return null;const s=String(e.type||e.areaType||e.area_type||"").trim(),g=a.length===6?"county":a.length===9?"town":a.length===12?"village":s||"area",D=["county","town","village"].includes(s)?s:g;return["county","town","village"].includes(D)?E(R({},e),{key:e.key||`${D}-${a||l}`,type:D,name:t,areaCode:a,year:e.year||"2026"}):null}function ge(e=[],l=[]){const a=new Map(l.map(s=>[String(s.areaCode||""),s])),t=e.map(s=>{const g=a.get(String(s.areaCode||""));return g?(a.delete(String(s.areaCode||"")),ue(g,s)):R({},s)});return a.forEach(s=>t.push(ue(s,s))),t.sort((s,g)=>String(s.areaCode||"").localeCompare(String(g.areaCode||""),"zh-CN"))}function ye(e={}){return["overloadRate","overload_rate","bearingCapacity","bearing_capacity","livestockCapacity","livestock_capacity"].some(l=>(e==null?void 0:e[l])!==void 0&&(e==null?void 0:e[l])!==null&&(e==null?void 0:e[l])!=="")}function te(e={}){return String(_e(e,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function se(e={}){return String(_e(e,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function sa(e){const l=Number(e)||0;return`${l>0?"+":l<0?"-":""}${w(Math.abs(l))}`}function W(){Q&&(window.clearInterval(Q),Q=null)}function ra(e){return f.value||p.value&&e<=$.value}function me(e){const l=u.value,a=ia(e),t=Number(l.overloadCount||0),s=t>=0?"超载量":"承载余量";return e===0?`草地面积 ${B(l.areaRange,a,1)}亩|范围数据${a>=.96?"已汇总":"汇总中"}`:e===1?`生产力资料核验 ${B(100,a)}%|草地产能数据${a>=.96?"已校验":"校验中"}`:e===2?`理论承载力 ${B(l.bearing,a)}头|承载能力结果${a>=.96?"已核定":"核定中"}`:e===3?`牦牛存栏 ${B(l.yakNumber,a)}头|实际载畜量 ${B(l.livestock,a)}头`:e===4?`理论承载力 ${B(l.bearing,a)}头|实际载畜量 ${B(l.livestock,a)}头|${s} ${B(Math.abs(t),a)}头`:`超载率 ${B(l.overloadRate,a,2)}%|承载利用率 ${B(l.usageRate,a,2)}%|${a>=.96?l.risk.label:"正在生成平衡结论"}`}function ia(e){if(f.value)return 1;if(!p.value)return 0;const l=100/T.value.length,a=Math.max(0,Math.min(1,(h.value-e*l)/l));return 1-be(1-a,3)}function B(e,l,a=0){return((Number(e)||0)*Math.max(0,Math.min(1,Number(l)||0))).toLocaleString("zh-CN",{minimumFractionDigits:a,maximumFractionDigits:a})}function ua(e){return e<$.value||f.value?"done":e===$.value&&p.value?"active":"pending"}return(e,l)=>(c(),v("div",wa,[l[15]||(l[15]=n("div",{class:"balance-backdrop","aria-hidden":"true"},[n("div",{class:"balance-orbit is-left"}),n("div",{class:"balance-orbit is-right"}),n("div",{class:"balance-energy-band"})],-1)),n("div",{class:"balance-screen",style:L({"--balance-card-height":`${q.value}px`})},[$e(ke,{class:"balance-card balance-target-card",title:"核算对象",width:cn,height:Z.value},{default:Re(()=>{var a;return[n("div",$a,[n("div",Ra,[(c(!0),v(V,null,z(oe.value,t=>(c(),v("button",{key:t.key,type:"button",class:A({active:x.value===t.key}),onClick:s=>We(t.key)},r(t.name),11,Ca))),128))]),n("div",Sa,[(c(!0),v(V,null,z(Ne.value,t=>{var s;return c(),v("button",{key:t.key,type:"button",class:A({active:t.key===((s=o.value)==null?void 0:s.key)}),title:t.name,onClick:g=>Ge(t)},[n("span",null,r(t.name),1)],10,Na)}),128))]),n("div",xa,[l[0]||(l[0]=n("span",null,"当前对象",-1)),n("strong",null,r(((a=o.value)==null?void 0:a.name)||"未选择"),1),n("small",Ba,r(Me.value),1),n("button",{type:"button",disabled:!_.value||p.value,onClick:Ye},r(p.value?"分析中...":f.value?"重新分析":"开始分析"),9,Ma)])])]}),_:1},8,["height"]),$e(ke,{class:"balance-card balance-sheet-card",title:Ae.value,width:vn,height:q.value},{default:Re(()=>[n("div",{class:A(["balance-sheet",{"is-ready":f.value,"is-running":p.value}])},[l[14]||(l[14]=n("div",{class:"balance-field-lines","aria-hidden":"true"},[n("i"),n("i"),n("i")],-1)),p.value?(c(),v("section",Aa,[n("div",Ta,[n("div",{class:"balance-core-ring is-running",style:L({"--usage-angle":`${h.value*3.6}deg`})},[n("div",Pa,[l[1]||(l[1]=n("span",null,"分析进度",-1)),n("strong",null,r(h.value)+"%",1),n("small",null,r(ce.value.name),1)])],4),n("div",Va,[n("span",null,r(o.value.name),1),n("strong",null,r(ce.value.desc),1),n("small",za,r(me($.value)),1),n("div",La,[n("i",{style:L({width:`${h.value}%`})},null,4)])])]),n("div",Fa,[(c(!0),v(V,null,z(T.value,(a,t)=>(c(),v("div",{key:a.key,class:A(["balance-live-step",`is-${ua(t)}`])},[n("span",null,r(a.index),1),n("div",null,[n("strong",null,r(a.name),1),n("p",null,r(ra(t)?me(t):a.pending),1)])],2))),128))])])):f.value?(c(),v("section",Oa,[n("div",ja,[n("div",Ua,[n("span",null,r(xe.value)+"核算对象",1),n("strong",null,r(o.value.name),1),n("small",null,r(Be.value),1)]),n("div",Wa,[n("div",{class:"balance-core-ring",style:L({"--usage-angle":Ie.value})},[n("div",Ga,[l[5]||(l[5]=n("span",null,"承载利用率",-1)),n("strong",null,r(G(P)(u.value.usageRate)),1),n("small",null,"超载率 "+r(G(P)(u.value.overloadRate)),1)])],4),l[6]||(l[6]=n("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),n("div",{class:A(["balance-verdict-card",`is-${u.value.risk.key}`])},[l[7]||(l[7]=n("span",null,"分析结论",-1)),n("strong",null,r(u.value.risk.label),1),n("small",null,r(Le.value),1)],2)]),n("div",Ya,[n("div",Ja,[l[8]||(l[8]=n("span",null,"理论承载力",-1)),n("div",null,[n("i",{style:L({width:`${u.value.bearingPercent}%`})},null,4)]),n("strong",null,r(G(w)(u.value.bearing))+"头",1)]),n("div",Qa,[l[9]||(l[9]=n("span",null,"实际载畜量",-1)),n("div",null,[n("i",{style:L({width:`${u.value.livestockPercent}%`})},null,4)]),n("strong",null,r(G(w)(u.value.livestock))+"头",1)])]),n("div",Xa,[n("div",Za,[n("div",en,[l[10]||(l[10]=n("span",null,"核算过程",-1)),n("small",null,r(o.value.year||"当前年度"),1)]),n("div",an,[(c(!0),v(V,null,z(Ee.value,a=>(c(),v("span",{key:`track-${a.key}`,class:A(`is-${a.state}`)},r(a.name),3))),128))]),(c(!0),v(V,null,z(De.value,a=>(c(),v("div",{key:a.key,class:"balance-formula-row"},[n("span",null,r(a.index),1),n("div",null,[n("strong",null,r(a.name),1),n("p",null,r(a.desc),1)])]))),128))]),n("div",nn,[n("div",ln,[l[11]||(l[11]=n("span",null,"结论与建议",-1)),n("small",null,r(Fe.value),1)]),n("div",tn,[n("strong",null,r(u.value.risk.description),1),n("p",null,r(ze.value),1)]),n("div",sn,[(c(!0),v(V,null,z(He.value,(a,t)=>(c(),v("div",{key:`${a}-${t}`,class:"balance-advice-item"},[n("span",null,r(t+1),1),n("p",null,r(a),1)]))),128))])]),n("div",rn,[l[13]||(l[13]=n("div",{class:"balance-section-title"},[n("span",null,"超载率排行"),n("small",null,"乡镇 Top10")],-1)),n("div",un,[(c(!0),v(V,null,z(qe.value,a=>(c(),v("div",{key:`overload-${a.key||a.name}`,class:A(["balance-rank-row",je(a)]),style:L({"--rank-progress":`${Oe(a)}%`}),title:Ue(a)},[n("span",null,r(a.rank),1),n("strong",null,r(a.name),1),l[12]||(l[12]=n("div",null,[n("i")],-1)),n("em",null,r(G(P)(a.overloadRate)),1)],14,on))),128))])])])])):(c(),v("section",Ia,[n("div",Da,[n("div",Ea,[n("div",Ha,[n("span",null,r(Te.value),1),n("strong",null,r(_.value?o.value.name:"草畜平衡"),1),n("small",null,r(_.value?"待执行模型分析":"等待核算对象"),1)])]),n("h2",null,r(Pe.value),1),n("p",null,r(Ve.value),1),ne.value?(c(),v("button",{key:0,class:"balance-retry-button",type:"button",disabled:M.value,onClick:de},r(M.value?"正在重新加载":"重新加载核算对象"),9,Ka)):_a("",!0)]),n("div",qa,[n("span",{class:A({active:_.value})},"对象锁定",2),l[2]||(l[2]=n("i",null,null,-1)),n("span",{class:A({active:_.value})},"等待启动分析",2),l[3]||(l[3]=n("i",null,null,-1)),l[4]||(l[4]=n("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{wn as default}; +var ca=Object.defineProperty,va=Object.defineProperties;var da=Object.getOwnPropertyDescriptors;var fe=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable;var be=Math.pow,pe=(k,y,d)=>y in k?ca(k,y,{enumerable:!0,configurable:!0,writable:!0,value:d}):k[y]=d,R=(k,y)=>{for(var d in y||(y={}))ga.call(y,d)&&pe(k,d,y[d]);if(fe)for(var d of fe(y))ya.call(y,d)&&pe(k,d,y[d]);return k},E=(k,y)=>va(k,da(y));var H=(k,y,d)=>new Promise((Y,K)=>{var q=C=>{try{x(d.next(C))}catch(m){K(m)}},Z=C=>{try{x(d.throw(C))}catch(m){K(m)}},x=C=>C.done?Y(C.value):Promise.resolve(C.value).then(q,Z);x((d=d.apply(k,y)).next())});import{_ as ke}from"./index-8ffdff7e-1785858872961.js";import{g as ma,a as fa,b as pa}from"./balanceApi-a2c0a6b6-1785858872961.js";import{b as re,a as ie,n as ue,d as he,f as w,e as P,s as ba,p as _e}from"./data-56996d99-1785858872961.js";import{g as i,d as N,q as ka,h as ha,w as we,o as c,c as v,a as n,b as $e,x as Re,F as V,y as z,n as A,t as r,K as L,j as _a,u as G}from"./index-1785858872961.js";import"./index-d6700f13-1785858872961.js";import"./index-e9f36657-1785858872961.js";const wa={class:"grass-livestock-balance"},$a={class:"balance-selector"},Ra={class:"balance-scope-tabs"},Ca=["onClick"],Sa={class:"balance-target-list"},Na=["title","onClick"],xa={class:"balance-action-box"},Ba={"aria-live":"polite"},Ma=["disabled"],Aa={key:0,class:"balance-running"},Ta={class:"balance-running-head"},Pa={class:"balance-core-inner"},Va={class:"balance-running-title"},za={class:"balance-running-value"},La={class:"balance-progress-line"},Fa={class:"balance-live-process"},Ia={key:1,class:"balance-waiting"},Da={class:"balance-wait-core"},Ea={class:"balance-core-ring is-empty"},Ha={class:"balance-core-inner"},Ka=["disabled"],qa={class:"balance-preflight"},Oa={key:2,class:"balance-analysis"},ja={class:"balance-dashboard"},Ua={class:"balance-object-block"},Wa={class:"balance-core"},Ga={class:"balance-core-inner"},Ya={class:"balance-compare"},Ja={class:"balance-bar-row"},Qa={class:"balance-bar-row is-livestock"},Xa={class:"balance-detail"},Za={class:"balance-process"},en={class:"balance-section-title"},an={class:"balance-process-track"},nn={class:"balance-decision"},ln={class:"balance-section-title"},tn={class:"balance-conclusion"},sn={class:"balance-advice-list"},rn={class:"balance-overload-ranking"},un={class:"balance-rank-list"},on=["title"],cn=326,vn=1310,dn=128,gn=8,yn=11500,wn={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(k,{emit:y}){const d=k,Y=y,K=N(typeof window=="undefined"?1080:window.innerHeight),q=i(()=>{const e=Math.max(1080,Number(K.value)||1080);return Math.max(944,e-dn-gn)}),Z=i(()=>q.value),x=N("county"),C=N(""),m=N("idle"),h=N(0),$=N(0),b=N(""),M=N(!1),O=N({}),J=N(re.filter(e=>["county","town"].includes(e.type))),F=N(ie.map(e=>R({},e)));let S=!1,ee=0,Q=null,j=0,U=0,I=null;const X=i(()=>[...J.value,...F.value].map(e=>ue(O.value[e.key]||e,e))),Ce=i(()=>X.value.filter(e=>e.type==="county")),ae=i(()=>X.value.filter(e=>e.type==="town")),Se=i(()=>X.value.filter(e=>e.type==="village")),Ne=i(()=>x.value==="town"?ae.value:x.value==="village"?Se.value:Ce.value),o=i(()=>X.value.find(e=>e.key===C.value)||null),_=i(()=>!!o.value),ne=i(()=>!!b.value&&!M.value&&!J.value.length),p=i(()=>m.value==="running"),f=i(()=>_.value&&m.value==="done"),u=i(()=>he(o.value||{})),oe=i(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),xe=i(()=>{var e;return((e=oe.value.find(l=>l.key===x.value))==null?void 0:e.name)||"县"}),Be=i(()=>{if(!o.value)return"等待选择核算对象";if(o.value.areaCode){const e=o.value.scenarioVersion||"";return`行政区划 ${o.value.areaCode}${e?`|${e}`:""}`}return o.value.township||"核算对象"}),Me=i(()=>M.value?"正在加载核算对象":b.value?b.value:_.value?f.value?"分析已完成":p.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),Ae=i(()=>f.value?"草畜平衡分析舱":"草畜平衡分析"),Te=i(()=>M.value?"加载中":ne.value?"可重试":_.value?p.value?"分析中":"待开始":"待选择"),Pe=i(()=>M.value?"正在加载核算对象":ne.value?"核算对象暂未加载":_.value?p.value?`${o.value.name} 正在分析`:`${o.value.name} 待开始分析`:"先选择一个核算对象"),Ve=i(()=>M.value?"正在读取县、镇、村核算对象,请稍候。":b.value?b.value:_.value?p.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),ze=i(()=>{const e=u.value;return e.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${e.delta>0?"超载量":"承载余量"} ${w(Math.abs(e.delta))},承载利用率 ${P(e.usageRate)}。`}),Le=i(()=>u.value.risk.key==="healthy"?"保持监测":u.value.risk.key==="watch"?"基本平衡":u.value.risk.key==="light"?"关注调控":u.value.delta===null?"按结果表判定":u.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Fe=i(()=>u.value.risk.key==="healthy"||u.value.risk.key==="watch"?"保持监测":u.value.risk.key==="light"?"关注调控":u.value.delta===null?"结果表口径":u.value.delta>0?"需要调控":"保持监测"),Ie=i(()=>{const e=Math.max(0,Math.min(130,Number(u.value.usageRate)||0));return`${Math.round(e/130*360)}deg`}),De=i(()=>{const e=u.value,l=Number(e.overloadCount||0),a=l>=0?"超载量":"承载余量";return[{key:"productivity",index:"01",name:"草地承载核定",desc:`核算草地面积 ${w(e.areaRange)}亩|理论承载力 ${w(e.bearing)}头`},{key:"forage",index:"02",name:"载畜规模核定",desc:`牦牛存栏 ${w(e.yakNumber)}头|实际载畜量 ${w(e.livestock)}头`},{key:"livestock",index:"03",name:"承载状态对比",desc:`理论承载力 ${w(e.bearing)}头|实际载畜量 ${w(e.livestock)}头|${a} ${w(Math.abs(l))}头`},{key:"balance",index:"04",name:"平衡结果判定",desc:`超载率 ${P(e.overloadRate)}|承载利用率 ${P(e.usageRate)}|${e.risk.label}`}]}),T=i(()=>[{key:"area",index:"01",name:"草地面积统计",desc:"正在统计草地面积与范围",pending:"等待草地面积统计"},{key:"productivity",index:"02",name:"草地生产力核验",desc:"正在核验草地生产力指标",pending:"等待生产力数据"},{key:"capacity",index:"03",name:"理论承载核定",desc:"正在形成草地承载能力结果",pending:"等待承载力核定"},{key:"livestock",index:"04",name:"实际载畜汇总",desc:"正在汇总牦牛存栏与载畜规模",pending:"等待载畜数据"},{key:"comparison",index:"05",name:"承载状态对比",desc:"正在比对理论承载与实际载畜",pending:"等待承载状态对比"},{key:"balance",index:"06",name:"平衡结论生成",desc:"正在生成草畜平衡等级与建议",pending:"等待平衡结论"}]),ce=i(()=>T.value[Math.min($.value,T.value.length-1)]||T.value[0]),Ee=i(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:f.value?"草地生产力核算":_.value?"等待核算":"等待选择",state:_.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:f.value?"可利用草量折算":"分析后折算",state:p.value?"active":f.value?"done":_.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:f.value?"载畜压力折算":"等待折算",state:p.value?"active":f.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:f.value?u.value.risk.label:"等待判定",state:f.value?"done":"disabled"}]),He=i(()=>f.value?ba(o.value,u.value.risk):[]),ve=i(()=>ae.value.filter(e=>Number.isFinite(Number(e.overloadRate))).slice().sort((e,l)=>Number(l.overloadRate)-Number(e.overloadRate)).slice(0,10)),Ke=i(()=>Math.max(1,...ve.value.map(e=>Math.max(0,Number(e.overloadRate)||0)))),qe=i(()=>ve.value.map((e,l)=>E(R({},e),{rank:l+1})));function Oe(e){const l=Math.max(0,Number(e==null?void 0:e.overloadRate)||0);return Math.max(6,Math.min(100,l/Ke.value*100))}function je(e){const l=Number(e==null?void 0:e.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function Ue(e){const l=he(e||{});return`${(e==null?void 0:e.name)||"乡镇"}:理论${w(l.bearing)}头,实际${w(l.livestock)}头,超载${sa(l.overloadCount)}头,超载率${P(l.overloadRate)}`}function le(){K.value=typeof window=="undefined"?1080:window.innerHeight}ka(()=>{le(),window.addEventListener("resize",le),Y("loading-progress",{progress:100}),Y("map-ready"),de()}),ha(()=>{S=!0,window.removeEventListener("resize",le),ee+=1,j+=1,U+=1,W()}),we(()=>{var e;return(e=o.value)==null?void 0:e.key},()=>{m.value="idle",h.value=0,$.value=0,b.value="",I=null,W()}),we(()=>d.active,e=>{e||!p.value||(m.value="idle",h.value=0,$.value=0,b.value="",I=null,W())});function We(e){x.value=e,C.value="",m.value="idle",b.value=""}function Ge(e){e&&(x.value=["county","town","village"].includes(e.type)?e.type:"county",C.value=e.key,m.value="idle",b.value="")}function Ye(){if(!d.active||!o.value||p.value)return;m.value="running",h.value=0,$.value=0,b.value="",W();const e=Date.now();let l=!1;const a=Je().catch(t=>(l=!0,console.warn("[grassLivestockBalance] balance result unavailable",t),b.value=Qe(t,"当前对象的核算结果暂不可用,请稍后重试。"),null));I=a,Q=window.setInterval(()=>{if(S)return;const t=I===a?94:100,s=100/T.value.length;h.value=Math.min(t,h.value+1),$.value=Math.min(T.value.length-1,Math.floor(h.value/s))},120),a.finally(()=>H(this,null,function*(){const t=yn-(Date.now()-e);if(t>0&&(yield new Promise(s=>window.setTimeout(s,t))),!(S||m.value!=="running"||I!==a)){if(I=null,W(),!o.value){h.value=0,$.value=0,m.value="idle";return}if(l||!ye(o.value)){h.value=0,$.value=0,m.value="idle";return}h.value=100,$.value=T.value.length-1,yield new Promise(s=>window.setTimeout(s,900)),!(S||m.value!=="running")&&(m.value="done")}}))}function Je(){return H(this,null,function*(){const e=o.value;if(!e)throw new Error("请先选择具体核算对象");if(O.value[e.key])return O.value[e.key];if(ye(e))return e;const l=++ee,a=yield pa({areaCode:e.areaCode});if(S||l!==ee)return null;if(!a||typeof a!="object"||!Object.keys(a).length)throw new Error("未查询到该对象的草畜平衡结果");return O.value=E(R({},O.value),{[e.key]:a}),a})}function de(){return H(this,null,function*(){const e=++j;M.value=!0,b.value="";try{const l=yield ma();if(S||e!==j)return;const a=la(l);J.value=ge(re.filter(t=>["county","town"].includes(t.type)),a.filter(t=>["county","town"].includes(t.type))),F.value=ge(ie,a.filter(t=>t.type==="village")),b.value="",F.value.length||Xe()}catch(l){if(S||e!==j)return;console.warn("[grassLivestockBalance] area balance rows unavailable",l),J.value=re.filter(a=>["county","town"].includes(a.type)),F.value=ie.map(a=>R({},a)),b.value=""}finally{!S&&e===j&&(M.value=!1)}})}function Qe(e,l){const a=String((e==null?void 0:e.message)||"").trim();return/404|not found|暂无|未查询到/i.test(a)?"暂未查询到核算数据,请稍后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(a)?"核算服务暂时无法连接,请稍后重试。":l}function Xe(){return H(this,null,function*(){const e=++U,l=ae.value.filter(a=>a==null?void 0:a.areaCode).map(a=>R({},a));if(l.length)try{const a=yield Promise.all(l.map(t=>H(this,null,function*(){try{const s=yield fa(t.areaCode);return S||e!==U?[]:Ze(s,t)}catch(s){return[]}})));if(S||e!==U)return;F.value=a.flat()}catch(a){if(S||e!==U)return;F.value=[]}})}function Ze(e=[],l={}){const t=(Array.isArray(e)?e:[]).filter(s=>{const g=te(s),D=se(s);return!!(g||D)}).map((s,g)=>na(s,g,l)).filter(Boolean);return ea(t,l)}function ea(e=[],l={}){const a=new Map;return e.forEach(t=>{const s=aa(t,l),g=a.get(s);if(!g){a.set(s,E(R({},t),{duplicateSources:[t.source].filter(Boolean)}));return}const oa=!g.areaCode&&t.areaCode?R(R({},g),t):g;a.set(s,E(R({},oa),{duplicateSources:[...g.duplicateSources||[],t.source].filter(Boolean)}))}),[...a.values()]}function aa(e={},l={}){const a=String(e.name||"").replace(/\s+/g,"").trim();return`${String(e.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${a||e.areaCode||"unknown-village"}`}function na(e={},l=0,a={}){const t=te(e),s=se(e)||(t?`村级区划${t}`:"");return!t&&!s?null:{key:`village-${t||`${a.key||a.name}-${s}-${l}`}`,type:"village",name:s,areaCode:t,township:a.name,source:e,year:"2026"}}function la(e=[]){return(Array.isArray(e)?e:[]).map((l,a)=>ta(l,a)).filter(Boolean)}function ta(e={},l=0){const a=te(e),t=se(e)||(a?`核算对象${a}`:"");if(!a&&!t)return null;const s=String(e.type||e.areaType||e.area_type||"").trim(),g=a.length===6?"county":a.length===9?"town":a.length===12?"village":s||"area",D=["county","town","village"].includes(s)?s:g;return["county","town","village"].includes(D)?E(R({},e),{key:e.key||`${D}-${a||l}`,type:D,name:t,areaCode:a,year:e.year||"2026"}):null}function ge(e=[],l=[]){const a=new Map(l.map(s=>[String(s.areaCode||""),s])),t=e.map(s=>{const g=a.get(String(s.areaCode||""));return g?(a.delete(String(s.areaCode||"")),ue(g,s)):R({},s)});return a.forEach(s=>t.push(ue(s,s))),t.sort((s,g)=>String(s.areaCode||"").localeCompare(String(g.areaCode||""),"zh-CN"))}function ye(e={}){return["overloadRate","overload_rate","bearingCapacity","bearing_capacity","livestockCapacity","livestock_capacity"].some(l=>(e==null?void 0:e[l])!==void 0&&(e==null?void 0:e[l])!==null&&(e==null?void 0:e[l])!=="")}function te(e={}){return String(_e(e,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function se(e={}){return String(_e(e,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function sa(e){const l=Number(e)||0;return`${l>0?"+":l<0?"-":""}${w(Math.abs(l))}`}function W(){Q&&(window.clearInterval(Q),Q=null)}function ra(e){return f.value||p.value&&e<=$.value}function me(e){const l=u.value,a=ia(e),t=Number(l.overloadCount||0),s=t>=0?"超载量":"承载余量";return e===0?`草地面积 ${B(l.areaRange,a,1)}亩|范围数据${a>=.96?"已汇总":"汇总中"}`:e===1?`生产力资料核验 ${B(100,a)}%|草地产能数据${a>=.96?"已校验":"校验中"}`:e===2?`理论承载力 ${B(l.bearing,a)}头|承载能力结果${a>=.96?"已核定":"核定中"}`:e===3?`牦牛存栏 ${B(l.yakNumber,a)}头|实际载畜量 ${B(l.livestock,a)}头`:e===4?`理论承载力 ${B(l.bearing,a)}头|实际载畜量 ${B(l.livestock,a)}头|${s} ${B(Math.abs(t),a)}头`:`超载率 ${B(l.overloadRate,a,2)}%|承载利用率 ${B(l.usageRate,a,2)}%|${a>=.96?l.risk.label:"正在生成平衡结论"}`}function ia(e){if(f.value)return 1;if(!p.value)return 0;const l=100/T.value.length,a=Math.max(0,Math.min(1,(h.value-e*l)/l));return 1-be(1-a,3)}function B(e,l,a=0){return((Number(e)||0)*Math.max(0,Math.min(1,Number(l)||0))).toLocaleString("zh-CN",{minimumFractionDigits:a,maximumFractionDigits:a})}function ua(e){return e<$.value||f.value?"done":e===$.value&&p.value?"active":"pending"}return(e,l)=>(c(),v("div",wa,[l[15]||(l[15]=n("div",{class:"balance-backdrop","aria-hidden":"true"},[n("div",{class:"balance-orbit is-left"}),n("div",{class:"balance-orbit is-right"}),n("div",{class:"balance-energy-band"})],-1)),n("div",{class:"balance-screen",style:L({"--balance-card-height":`${q.value}px`})},[$e(ke,{class:"balance-card balance-target-card",title:"核算对象",width:cn,height:Z.value},{default:Re(()=>{var a;return[n("div",$a,[n("div",Ra,[(c(!0),v(V,null,z(oe.value,t=>(c(),v("button",{key:t.key,type:"button",class:A({active:x.value===t.key}),onClick:s=>We(t.key)},r(t.name),11,Ca))),128))]),n("div",Sa,[(c(!0),v(V,null,z(Ne.value,t=>{var s;return c(),v("button",{key:t.key,type:"button",class:A({active:t.key===((s=o.value)==null?void 0:s.key)}),title:t.name,onClick:g=>Ge(t)},[n("span",null,r(t.name),1)],10,Na)}),128))]),n("div",xa,[l[0]||(l[0]=n("span",null,"当前对象",-1)),n("strong",null,r(((a=o.value)==null?void 0:a.name)||"未选择"),1),n("small",Ba,r(Me.value),1),n("button",{type:"button",disabled:!_.value||p.value,onClick:Ye},r(p.value?"分析中...":f.value?"重新分析":"开始分析"),9,Ma)])])]}),_:1},8,["height"]),$e(ke,{class:"balance-card balance-sheet-card",title:Ae.value,width:vn,height:q.value},{default:Re(()=>[n("div",{class:A(["balance-sheet",{"is-ready":f.value,"is-running":p.value}])},[l[14]||(l[14]=n("div",{class:"balance-field-lines","aria-hidden":"true"},[n("i"),n("i"),n("i")],-1)),p.value?(c(),v("section",Aa,[n("div",Ta,[n("div",{class:"balance-core-ring is-running",style:L({"--usage-angle":`${h.value*3.6}deg`})},[n("div",Pa,[l[1]||(l[1]=n("span",null,"分析进度",-1)),n("strong",null,r(h.value)+"%",1),n("small",null,r(ce.value.name),1)])],4),n("div",Va,[n("span",null,r(o.value.name),1),n("strong",null,r(ce.value.desc),1),n("small",za,r(me($.value)),1),n("div",La,[n("i",{style:L({width:`${h.value}%`})},null,4)])])]),n("div",Fa,[(c(!0),v(V,null,z(T.value,(a,t)=>(c(),v("div",{key:a.key,class:A(["balance-live-step",`is-${ua(t)}`])},[n("span",null,r(a.index),1),n("div",null,[n("strong",null,r(a.name),1),n("p",null,r(ra(t)?me(t):a.pending),1)])],2))),128))])])):f.value?(c(),v("section",Oa,[n("div",ja,[n("div",Ua,[n("span",null,r(xe.value)+"核算对象",1),n("strong",null,r(o.value.name),1),n("small",null,r(Be.value),1)]),n("div",Wa,[n("div",{class:"balance-core-ring",style:L({"--usage-angle":Ie.value})},[n("div",Ga,[l[5]||(l[5]=n("span",null,"承载利用率",-1)),n("strong",null,r(G(P)(u.value.usageRate)),1),n("small",null,"超载率 "+r(G(P)(u.value.overloadRate)),1)])],4),l[6]||(l[6]=n("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),n("div",{class:A(["balance-verdict-card",`is-${u.value.risk.key}`])},[l[7]||(l[7]=n("span",null,"分析结论",-1)),n("strong",null,r(u.value.risk.label),1),n("small",null,r(Le.value),1)],2)]),n("div",Ya,[n("div",Ja,[l[8]||(l[8]=n("span",null,"理论承载力",-1)),n("div",null,[n("i",{style:L({width:`${u.value.bearingPercent}%`})},null,4)]),n("strong",null,r(G(w)(u.value.bearing))+"头",1)]),n("div",Qa,[l[9]||(l[9]=n("span",null,"实际载畜量",-1)),n("div",null,[n("i",{style:L({width:`${u.value.livestockPercent}%`})},null,4)]),n("strong",null,r(G(w)(u.value.livestock))+"头",1)])]),n("div",Xa,[n("div",Za,[n("div",en,[l[10]||(l[10]=n("span",null,"核算过程",-1)),n("small",null,r(o.value.year||"当前年度"),1)]),n("div",an,[(c(!0),v(V,null,z(Ee.value,a=>(c(),v("span",{key:`track-${a.key}`,class:A(`is-${a.state}`)},r(a.name),3))),128))]),(c(!0),v(V,null,z(De.value,a=>(c(),v("div",{key:a.key,class:"balance-formula-row"},[n("span",null,r(a.index),1),n("div",null,[n("strong",null,r(a.name),1),n("p",null,r(a.desc),1)])]))),128))]),n("div",nn,[n("div",ln,[l[11]||(l[11]=n("span",null,"结论与建议",-1)),n("small",null,r(Fe.value),1)]),n("div",tn,[n("strong",null,r(u.value.risk.description),1),n("p",null,r(ze.value),1)]),n("div",sn,[(c(!0),v(V,null,z(He.value,(a,t)=>(c(),v("div",{key:`${a}-${t}`,class:"balance-advice-item"},[n("span",null,r(t+1),1),n("p",null,r(a),1)]))),128))])]),n("div",rn,[l[13]||(l[13]=n("div",{class:"balance-section-title"},[n("span",null,"超载率排行"),n("small",null,"乡镇 Top10")],-1)),n("div",un,[(c(!0),v(V,null,z(qe.value,a=>(c(),v("div",{key:`overload-${a.key||a.name}`,class:A(["balance-rank-row",je(a)]),style:L({"--rank-progress":`${Oe(a)}%`}),title:Ue(a)},[n("span",null,r(a.rank),1),n("strong",null,r(a.name),1),l[12]||(l[12]=n("div",null,[n("i")],-1)),n("em",null,r(G(P)(a.overloadRate)),1)],14,on))),128))])])])])):(c(),v("section",Ia,[n("div",Da,[n("div",Ea,[n("div",Ha,[n("span",null,r(Te.value),1),n("strong",null,r(_.value?o.value.name:"草畜平衡"),1),n("small",null,r(_.value?"待执行模型分析":"等待核算对象"),1)])]),n("h2",null,r(Pe.value),1),n("p",null,r(Ve.value),1),ne.value?(c(),v("button",{key:0,class:"balance-retry-button",type:"button",disabled:M.value,onClick:de},r(M.value?"正在重新加载":"重新加载核算对象"),9,Ka)):_a("",!0)]),n("div",qa,[n("span",{class:A({active:_.value})},"对象锁定",2),l[2]||(l[2]=n("i",null,null,-1)),n("span",{class:A({active:_.value})},"等待启动分析",2),l[3]||(l[3]=n("i",null,null,-1)),l[4]||(l[4]=n("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{wn as default}; diff --git a/docs/assets/index-69cc5a72-1785726778446.js b/docs/assets/index-69cc5a72-1785726778446.js deleted file mode 100644 index 516ddbe..0000000 --- a/docs/assets/index-69cc5a72-1785726778446.js +++ /dev/null @@ -1,2 +0,0 @@ -var wn=Object.defineProperty,kn=Object.defineProperties;var _n=Object.getOwnPropertyDescriptors;var la=Object.getOwnPropertySymbols;var xn=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable;var oa=(C,_,b)=>_ in C?wn(C,_,{enumerable:!0,configurable:!0,writable:!0,value:b}):C[_]=b,w=(C,_)=>{for(var b in _||(_={}))xn.call(_,b)&&oa(C,b,_[b]);if(la)for(var b of la(_))Sn.call(_,b)&&oa(C,b,_[b]);return C},k=(C,_)=>kn(C,_n(_));var j=(C,_,b)=>new Promise((Z,R)=>{var q=V=>{try{ce(b.next(V))}catch(ye){R(ye)}},de=V=>{try{ce(b.throw(V))}catch(ye){R(ye)}},ce=V=>V.done?Z(V.value):Promise.resolve(V.value).then(q,de);ce((b=b.apply(C,_)).next())});import{g as y,d as v,w as oe,q as Mn,h as Cn,A as Ge,o,c as u,b as Me,a as r,j as L,K as P,F as h,y as m,C as ie,x as Ye,f as Ue,u as W,t as i,B as T,n as G,s as Ce,H as ia,O as vt}from"./index-1785726778446.js";import{H as ua}from"./index.esm.min-4f309085-1785726778446.js";import{_ as da}from"./index-7b46d381-1785726778446.js";import{M as Ln}from"./index-7b548b42-1785726778446.js";import{a as ca,_ as ya}from"./FeatureInfoPanel-e0a0d741-1785726778446.js";import{_ as Pn}from"./LayerPanel-921f9e3d-1785726778446.js";import{_ as Tn}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{A as Nn}from"./assets-5661f996-1785726778446.js";import{g as Le}from"./townshipBoundaries-8867fad4-1785726778446.js";import{q as Pe,r as $n,s as va}from"./screen2Standard-f38b9a2d-1785726778446.js";import{e as Te,w as An,f as Rn,l as fa,m as ga,n as Fn,o as In,p as Bn,q as Dn,s as ha}from"./chartTheme-330b271e-1785726778446.js";import{v as Ne,Y as A,g as je,c as ue,a as Vn,b as Hn,d as zn,e as ft,f as gt,i as En}from"./data-6350cbbd-1785726778446.js";import"./index-e9f36657-1785726778446.js";import"./familyPastureData-f64283c3-1785726778446.js";import"./livestockData-36ec0ae2-1785726778446.js";const Kn={key:0,class:"industry-map-loading"},On={key:2,class:"fgw-left industry-side-panel industry-side-panel--left"},Wn={class:"fgw-side-stack industry-side-stack is-left"},Gn={key:1,class:"industry-panel-empty"},Yn={key:2,class:"industry-stage-composition-chart"},Un={class:"industry-stage-composition-chart__band","aria-hidden":"true"},jn={class:"industry-stage-composition-chart__grid"},qn={key:3,class:"industry-forage-trade-dashboard"},Xn={class:"industry-forage-trade-dashboard__hero"},Zn={class:"industry-forage-trade-dashboard__flows"},Jn={class:"industry-forage-trade-dashboard__metrics"},Qn={key:5,class:"industry-featured-base-list"},er=["disabled","aria-label","onClick"],tr={class:"industry-featured-base__index"},ar={class:"industry-featured-base__copy"},nr={key:6,class:"industry-leadership-mode-list"},rr={key:7,class:"industry-ledger-list"},sr={key:3,class:"fgw-right industry-side-panel industry-side-panel--right"},lr={class:"fgw-side-stack industry-side-stack is-right"},or={key:1,class:"industry-panel-empty"},ir={key:2,class:"industry-stage-composition-chart"},ur={class:"industry-stage-composition-chart__band","aria-hidden":"true"},dr={class:"industry-stage-composition-chart__grid"},cr={key:3,class:"industry-forage-trade-dashboard"},yr={class:"industry-forage-trade-dashboard__hero"},vr={class:"industry-forage-trade-dashboard__flows"},fr={class:"industry-forage-trade-dashboard__metrics"},gr={key:4,class:"industry-tabbed-map-list"},hr={class:"industry-tabbed-map-list__selector"},pr={key:0,class:"industry-tabbed-map-list__menu"},mr=["onClick"],br={class:"industry-tabbed-map-list__tools"},wr=["placeholder"],kr={class:"industry-tabbed-map-list__rows"},_r=["disabled","onClick"],xr={class:"industry-tabbed-map-list__name"},Sr=["title"],Mr={class:"industry-tabbed-map-list__meta"},Cr=["title"],Lr={key:0,class:"industry-tabbed-map-list__empty"},Pr={key:6,class:"industry-featured-base-list"},Tr=["disabled","aria-label","onClick"],Nr={class:"industry-featured-base__index"},$r={class:"industry-featured-base__copy"},Ar={key:7,class:"industry-leadership-mode-list"},Rr={key:8,class:"industry-ledger-list"},Fr={class:"industry-credit-dialog",role:"dialog","aria-modal":"true","aria-label":"农牧户信用信息"},Ir={class:"industry-credit-dialog__stats"},Br={class:"industry-credit-dialog__filters"},Dr=["value"],Vr=["value"],Hr={class:"industry-credit-table"},zr={key:0,class:"industry-credit-table__empty"},Er={key:1,class:"industry-credit-table__empty is-error"},Kr={key:2,class:"industry-credit-table__empty"},Or=["title"],Wr=["title"],Gr=["data-grade"],Yr=["title"],Ur={class:"industry-credit-dialog__footer"},jr=["disabled"],qr=["disabled"],Xr={class:"industry-bottom-switcher"},ht=12,pa=430,ma=246,vs={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(C,{expose:_,emit:b}){const Z=C,R=b,q=Pe.sideCardWidth,de=v(typeof window=="undefined"?1080:window.innerHeight),ce=Pe.sideCardGap,V=Pe.sidePanelTop,ye=Pe.sidePanelBottom,ba=Pe.sideCardMinHeight,ve=y(()=>$n(de.value)),qe=y(()=>va(ve.value,2)),wa=y(()=>va(ve.value,4)),pt={key:A,name:"产业概览",color:"#f0c35a",unit:"个",metricLabel:"产业点位",width:112},p=v(A),x=v(null),J=v(!1),f=v(null),F=v(""),fe=v({x:0,y:0}),X=v(null),$e=v(!1),I=v(null),ge=v({x:0,y:0}),Q=v(!1),Ae=v(["artificial-grassland-plots"]),ee=v(A),te=v(""),H=v(!1),Re=v(!1),he=v(!1),Fe=v(""),Ie=v([]),Be=v(""),pe=v(""),me=v(""),be=v(""),z=v(1),ae=v(Ne.map(e=>e.key)),ne=v([]),ka=new Set(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]);let De=null,Xe=!1,re=!1,E=null,N=null,Y=null,Ze=0,we=null,Je=!1,Qe=!1;const K=y(()=>p.value===A),et=y(()=>K.value?pt:je(p.value));y(()=>p.value==="family-pasture");const Ve=y(()=>p.value==="artificial-grassland"),_a=y(()=>(ue.townships||[]).map(e=>e.name)),xa=y(()=>(ue.userRatingRows||[]).map(e=>e.name)),tt=y(()=>{const e=String(Be.value||"").trim().toLowerCase();return Ie.value.filter(t=>pe.value&&t.town!==pe.value||me.value&&t.userRating!==me.value||be.value&&t.authorized!==be.value?!1:e?[t.name,t.town,t.village,t.institution,t.userRating].some(a=>String(a||"").toLowerCase().includes(e)):!0)}),at=y(()=>Math.max(1,Math.ceil(tt.value.length/ht))),mt=y(()=>{const e=(z.value-1)*ht;return tt.value.slice(e,e+ht)}),Sa=y(()=>he.value?"正在加载信用信息":`筛选结果 ${O(tt.value.length)} 户`),Ma=y(()=>Ne.map(e=>({key:e.key,name:Ha(e.key,e.name),color:e.color}))),bt=y(()=>{var t,a;const e=Pt();return e?[k(w({},e),{color:((a=(t=e.legends)==null?void 0:t[0])==null?void 0:a.fillColor)||"#20D8FF"})]:[]}),Ca=y(()=>K.value?Vn():Hn(p.value)),wt=y(()=>za(Ca.value)),kt=y(()=>{const e=wt.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Ct(t,e.length))}),_t=y(()=>{const e=wt.value.right;return e.map(t=>Ct(t,e.length))}),xt=y(()=>Mt(ae.value)),La=y(()=>{const e=Le("yak-industry-chain","yak-industry-points");if(K.value){const a=ne.value.includes("artificial-grassland-plots")?bt.value:[];if(!e)return a[0]||null;const n=xt.value;if(!n.length){const[l,...c]=a;return l?k(w({},l),{overlayLayers:c}):null}const s=n.map(l=>ze(e,l)).filter(Boolean);if(!s.length){const[l,...c]=a;return l?k(w({},l),{overlayLayers:c}):null}return k(w({},e),{showPointLabels:!1,activeLegends:s,overlayLayers:a})}if(Ve.value){const a=[];if(Ae.value.includes("artificial-grassland-plots")){const l=Pt();l&&a.push(l)}if(Ae.value.includes("yak-industry-points")&&e){const l=ze(e,"artificial-grassland");a.push(k(w({},e),{showPointLabels:!1,activeLegend:l}))}if(!a.length)return null;const[n,...s]=a;return k(w({},n),{overlayLayers:s})}const t=ze(e,p.value);return e&&k(w({},e),{showPointLabels:!1,activeLegend:t||Oa(p.value)})}),Pa=y(()=>[pt,...Ne].map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),Ta=y(()=>{if(K.value)return{showTownNames:!0,showBars:!1,showPointMarkers:!1,hideTownLabelStats:!0,title:"牦牛全产业链",metricLabel:"产业点位",unit:"个",rows:[]};const e=p.value==="family-pasture",t=Ve.value&&Ae.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Ve.value||t,showMissingTownStats:e,hideTownLabelStats:e,title:e?"家庭生态牧场":`${et.value.name}排行`,metricLabel:e?"生态牧场":et.value.metricLabel,unit:et.value.unit,rows:e?zn():[]}}),He=y(()=>{var e;return ft(k(w({},f.value||{}),{featuredBaseKey:F.value||((e=f.value)==null?void 0:e.featuredBaseKey)}))}),nt=y(()=>{const e=f.value;if(!e)return[];if(He.value){const t=He.value,a=gt(e).filter(n=>["设计存栏","年出栏量"].includes(n.label));return[{label:"名称",value:t.name},{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...a].filter(n=>n.value!==void 0&&n.value!==null&&String(n.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"名称",value:M(e.name)},{label:"所在乡镇",value:M(e.town)},...gt(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"名称",value:M(e.name)},{label:"所属环节",value:M(e.stageName)},{label:"主体类型",value:M(e.categoryName)},{label:"所在乡镇",value:M(e.town)},{label:"能力规模",value:pn(e)},...gt(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),Na=y(()=>{var e,t;return He.value?"重点示范基地":M(((e=f.value)==null?void 0:e.categoryName)||((t=f.value)==null?void 0:t.stageName))}),$a=y(()=>{var e;return f.value?{id:f.value.id||f.value.key||f.value.name,layer:Le("yak-industry-chain","yak-industry-points"),properties:k(w({},f.value),{name:((e=He.value)==null?void 0:e.name)||f.value.name})}:null}),Aa=y(()=>{var t,a,n;const e=((t=I.value)==null?void 0:t.properties)||{};return[{label:"图斑编号",value:M(e.plot_code||e.plotNo||e.id||e.name)},{label:"所在乡镇",value:M(e.town||e.town_name||e.townName)||"未识别"},{label:"所在村",value:M(e.village||e.village_name||e.villageName)||"未识别"},{label:"图斑面积",value:mn((a=e.area_mu)!=null?a:e.areaMu,(n=e.area_m2)!=null?n:e.areaM2)||"未计算"}]}),Ra=y(()=>Se().panelWidth),Fa=y(()=>Se().panelHeight),Ia=y(()=>{const{panelWidth:e,panelHeight:t}=Se(),a=X.value;if(a){const s=dt(a.x,a.y);return{left:`${s.x}px`,top:`${s.y}px`,width:`${e}px`,"--feature-arrow-display":"none"}}const n=aa(e,t);return{left:`${n.x}px`,top:`${n.y}px`,width:`${e}px`,"--feature-arrow-left":`${n.arrowLeft}px`,"--feature-arrow-top":`${n.arrowTop}px`,"--feature-arrow-rotate":n.arrowRotate,"--feature-panel-anchor-x":`${n.arrowLeft}px`}}),Ba=y(()=>{const t=ma,a=452,n=1468,s=116,l=944,c=26,d={x:Math.max(a,Math.min(n,Number(ge.value.x||960))),y:Math.max(128,Math.min(960,Number(ge.value.y||540)))},g=Math.min(Math.max(d.x-460/2,a),n-460),S=d.y-t-c,B=S>=s,D=B?S:Math.min(Math.max(d.y+c,s),l-t),yt=Math.min(Math.max(d.x-g,26),460-26);return{left:`${g}px`,top:`${D}px`,"--feature-arrow-left":`${yt}px`,"--feature-arrow-top":B?`${t-6}px`:"-6px","--feature-arrow-rotate":B?"45deg":"225deg"}});oe(p,e=>{e===A?ee.value=A:ee.value=e,te.value="",H.value=!1,nn(e)},{immediate:!0}),Mn(()=>{ot(),window.addEventListener("resize",ot),window.addEventListener("pointerdown",It),window.addEventListener("keydown",At),rn()}),Cn(()=>{var e,t;Qe=!0,window.removeEventListener("resize",ot),window.removeEventListener("pointerdown",It),window.removeEventListener("keydown",At),le(),Oe(),E&&window.clearTimeout(E),N&&window.cancelAnimationFrame(N),(t=(e=x.value)==null?void 0:e.destroyMap)==null||t.call(e)}),oe(()=>Z.active,e=>{var t,a,n,s;x.value&&(e?(it(),(a=(t=x.value).resume)==null||a.call(t)):(s=(n=x.value).pause)==null||s.call(n))}),oe(Ae,()=>{$()},{deep:!0}),oe([Be,pe,me,be],()=>{z.value=1}),oe(ae,e=>{if(!K.value)return;const t=Mt(e),a=t.length===1?t[0]:A;ee.value!==a&&(ee.value=a,te.value=""),$()},{deep:!0}),oe(ne,()=>{K.value&&$()},{deep:!0});function Da(e){e!==p.value&&(p.value=e,$())}function St(){return Ne.map(e=>e.key)}function Mt(e=[]){const t=new Set(St());return Array.from(new Set((Array.isArray(e)?e:[e]).map(a=>String(a||"")).filter(a=>t.has(a))))}function Va(e){if(e===A){ae.value=St(),ne.value=[];return}Ne.some(t=>t.key===e)&&(ae.value=[e],ne.value=e==="artificial-grassland"?["artificial-grassland-plots"]:[])}function Ha(e,t=""){var n;const a=Le("yak-industry-chain","yak-industry-points");return((n=ze(a,e))==null?void 0:n.name)||t}function za(e={}){const t=Lt(e.left),a=Lt(e.right);if(a.length)return{left:t,right:a};const n=[...t,...a];return n.length<=4?{left:n,right:[]}:{left:t,right:a}}function Ct(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return k(w({},e),{height:ve.value});if((e==null?void 0:e.fillHeight)===!0)return k(w({},e),{height:Ea(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return k(w({},e),{height:Ka(e)});const a=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,n=(e==null?void 0:e.keepSpanHeight)===!0;return k(w({},e),{height:t===1&&!n?wa.value:a?qe.value:ve.value})}function Ea(e=1){const t=Math.max(1,Number(e)||1),n=Math.max(1080,Number(de.value)||1080)-V-ye-ce*Math.max(t-1,0);return Math.max(ba,Math.floor(n/t))}function Ka(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return qe.value;const t=Array.isArray(e.rows)?e.rows:[],a=100,n=32,s=a+25+t.length*n;return Math.min(qe.value,Math.max(ve.value,s))}function Lt(e=[]){return e.filter(Boolean)}function ze(e,t){var a;return!((a=e==null?void 0:e.legends)!=null&&a.length)||!t?null:e.legends.find(n=>{var s;return((s=n.match)==null?void 0:s.value)===t||n.key===`yak-industry-${t}`||Array.isArray(n.matches)&&n.matches.some(l=>l.value===t)})||null}function Oa(e){const t=je(e);return{key:`yak-industry-empty-${e}`,name:t.name,fillColor:t.color,strokeColor:t.color,iconType:t.iconType,match:{field:"stageKey",value:e}}}function Pt(){var t;const e=Le("yak-industry-chain","artificial-grassland-plots");return e?k(w({},e),{activeLegend:(t=e.legends)==null?void 0:t[0]}):null}function Ee(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Tt(e={}){return(e==null?void 0:e.hasMore)===!0&&String((e==null?void 0:e.key)||"").startsWith("social-service-credit-")}function Nt(){return j(this,null,function*(){if(Re.value=!0,z.value=1,!(Ie.value.length||he.value)){he.value=!0,Fe.value="";try{const e="./".replace(/\/?$/,"/"),t=yield fetch(`${e}datas/yak-industry-chain/credit-rating-households.json`,{cache:"no-store"});if(!t.ok)throw new Error(`信用信息请求失败(${t.status})`);const a=yield t.json();if(Ie.value=Array.isArray(a==null?void 0:a.households)?a.households:[],!Ie.value.length)throw new Error("信用信息为空")}catch(e){Fe.value=(e==null?void 0:e.message)||"信用信息加载失败"}finally{he.value=!1}}})}function rt(){Re.value=!1}function $t(e){z.value=Math.max(1,Math.min(at.value,Number(e)||1))}function At(e){e.key==="Escape"&&Re.value&&rt()}function Rt(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ft(e={}){return Array.isArray(e.tabs)?e.tabs:[]}function ke(e={}){const t=Ft(e);return t.find(a=>a.key===ee.value)||t[0]||{rows:[]}}function Wa(){H.value=!H.value}function Ga(e={}){H.value=!1,Ya(e)}function It(e={}){var a;const t=e.target;(a=t==null?void 0:t.closest)!=null&&a.call(t,".industry-tabbed-map-list__selector")||(H.value=!1)}function Ya(e={}){if(e.key){if(ee.value=e.key,te.value="",K.value){Va(e.key),$();return}if(e.key===A){p.value=A,$();return}e.key!==p.value&&(p.value=e.key,$())}}function st(e={}){const t=ke(e),a=Bt(te.value),n=Array.isArray(t.rows)?t.rows:[];return a?n.filter(s=>Bt(Ua(s)).includes(a)):n}function Ua(e={}){return[e.name,e.fullName,e.stageName,e.categoryName,e.town,e.village,e.address,e.valueText,e.extra,e.sourceSheet,e.searchText].filter(Boolean).join(" ")}function Bt(e=""){return String(e||"").replace(/\s+/g,"").toLowerCase()}function ja(e={}){const t=ke(e);return t!=null&&t.name?`搜索${t.name}、乡镇或村`:e.searchPlaceholder||"搜索主体、环节或乡镇"}function qa(e={}){const t=ke(e),a=Array.isArray(t.rows)?t.rows:[],n=st(e);return n.length!==a.length?`${n.length}/${a.length}条`:`${a.length}条`}function Dt(e={}){return M(e.ledgerName||e.name||e.fullName||"未命名点位")}function Vt(e={}){return M([e.town,e.village||e.address].filter(Boolean).join(" / "))||"暂无区域"}function Xa(e={}){var n,s;const t=String(((n=f.value)==null?void 0:n.id)||((s=f.value)==null?void 0:s.key)||""),a=String(e.key||e.id||"");return!!(t&&a&&t===a)}function Za(){return j(this,arguments,function*(e={}){yield ut(e)})}function _e(e={}){return Array.isArray(e.rows)?e.rows.filter(t=>Number((t==null?void 0:t.value)||0)>0):[]}function Ht(e={}){return _e(e).reduce((t,a)=>t+(Number(a==null?void 0:a.value)||0),0)||1}function zt(e={},t={}){const a=Number(e==null?void 0:e.value)||0;return a?Math.max(4,Number((a/Ht(t)*100).toFixed(2))):0}function Et(e={},t={}){const a=Number(e==null?void 0:e.value)||0;return a?Math.max(1.8,Number((a/Ht(t)*100).toFixed(2))):0}function Ke(e={},t=0){return e.color||e.fillColor||Te[t%Te.length]}function Kt(e={}){return e.displayValue!==void 0&&e.displayValue!==null&&e.displayValue!==""?e.displayValue:O(Number(e.value||0))}function se(e={}){return(e==null?void 0:e.displayValue)!==void 0&&e.displayValue!==null&&e.displayValue!==""?e.displayValue:O(Number((e==null?void 0:e.value)||0))}function Ot(e={}){return Array.isArray(e.rows)?e.rows.filter(t=>Number((t==null?void 0:t.value)||0)>0):[]}function xe(e={},t=""){return Ot(e).find(a=>a.key===t)||null}function U(e={}){return xe(e,"forage-trade-sales-amount")||Ot(e)[0]||{name:"销售金额",value:0,unit:"万元",extra:""}}function lt(e={}){return[xe(e,"forage-trade-sales-amount"),xe(e,"forage-trade-purchase-amount")].filter(Boolean)}function Wt(e={}){return[xe(e,"forage-trade-plant-area"),xe(e,"forage-trade-forage-ton")].filter(Boolean)}function Gt(e={},t={}){const a=Number((e==null?void 0:e.value)||0),n=Math.max(...lt(t).map(s=>Number((s==null?void 0:s.value)||0)),1);return Math.max(7,Math.round(a/n*100))}function Yt(e=0){return["#32dcff","#22f6b8"][e%2]}function Ut(e={}){const t=Array.isArray(e.rows)?e.rows:[],a=t.map(l=>Number(l!=null&&l.zero?0:(l==null?void 0:l.value)||0)),n=Math.max(...a,1),s=Ja(t);return An({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:Rn((l=[])=>{var D;const d=((D=(Array.isArray(l)?l:[l])[0])==null?void 0:D.data)||{},g=d.zero?"0":d.displayValue,S=d.unit||s||"",B=d.extra?`
    ${d.extra}`:"";return`${d.name||""}
    ${g}${S}${B}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:fa,font:`10px ${Fn}`}}]:[],xAxis:{type:"category",data:t.map(l=>(l==null?void 0:l.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:In,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?en:Qa}},yAxis:{type:"value",min:0,max:Math.ceil(n*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Bn,type:"dashed"}}},series:[{type:"bar",data:t.map((l,c)=>{var S;const d=!!(l!=null&&l.zero||l!=null&&l.isZero),g=d?0:Number((l==null?void 0:l.value)||0);return{name:l==null?void 0:l.name,value:g,displayValue:(S=l==null?void 0:l.displayValue)!=null?S:O(g),unit:(l==null?void 0:l.unit)||s||"",extra:(l==null?void 0:l.extra)||"",zero:d,itemStyle:{color:d?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?an():tn(c,l)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:ga,fontFamily:Dn,fontSize:10,fontWeight:700,formatter(l={}){var d;const c=l.data||{};return c.zero?"":(d=c.displayValue)!=null?d:O(Number(c.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function Ja(e=[]){const t=[...new Set(e.map(a=>a==null?void 0:a.unit).filter(Boolean))];return t.length===1?t[0]:""}function Qa(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` -`)}function en(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function tn(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:ha(Te[e%Te.length])}function an(){return ha(Te[0])}function O(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function ot(){de.value=typeof window=="undefined"?1080:window.innerHeight}function nn(e=p.value){const t=e||p.value;R("module-stats",{moduleKey:"yak-industry-chain",items:t===A?En:[]})}function rn(){var e,t,a;De=new Nn,Xe=!1,R("loading-progress",{progress:0}),(t=(e=De.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(n,s,l)=>{R("loading-progress",{progress:Math.floor(s/(l||1)*100),path:n,itemsLoaded:s,itemsTotal:l})}),(a=De.ready)==null||a.then(()=>{Xe=!0,it()}).catch(()=>{J.value=!0,R("map-ready")})}function it(){Qe||!Z.active||!Xe||re||(re=!0,E&&window.clearTimeout(E),E=window.setTimeout(()=>{E=null,jt()},600))}function jt(e=0){return j(this,null,function*(){var a,n;if(Qe)return;if(!Z.active){re=!1;return}if(yield Ge(),!Z.active){re=!1;return}const t=x.value;if((a=t==null?void 0:t.loadMap)==null||a.call(t,De),t!=null&&t.canvasMap){J.value=!0,R("loading-progress",{progress:100}),R("map-ready"),(n=t.play)==null||n.call(t);return}if(e<24){window.setTimeout(()=>jt(e+1),120);return}re=!1,J.value=!0,R("map-ready")})}function sn(){E&&(window.clearTimeout(E),E=null)}function qt(){var e,t,a,n;(t=(e=x.value)==null?void 0:e.resume)==null||t.call(e),(n=(a=x.value)==null?void 0:a.refreshView)==null||n.call(a)}function ln(){var e,t;if($(),(t=(e=x.value)==null?void 0:e.hasMap)!=null&&t.call(e)){J.value=!0,qt();return}sn(),J.value=!1,re=!1,Ge(()=>{it()})}_({refreshMapView:qt,resetMap:ln});function on(){Qt(),H.value=!1}function un(e={}){var a,n;const t=e.target;if((a=t==null?void 0:t.closest)!=null&&a.call(t,".industry-map-scene")&&!((n=t.closest)!=null&&n.call(t,".industry-map-feature-info, .industry-point-feature-info, .industry-map-layer-tools, .industry-bottom-switcher, .industry-side-panel"))){if(Je){Je=!1;return}Qt(),H.value=!1}}function dn(e={}){var s,l,c,d;Ze+=1,Oe();const t=e.feature||null;if(!t){$();return}Je=!0;const a=(t==null?void 0:t.properties)||{};if(((s=t==null?void 0:t.layer)==null?void 0:s.key)==="artificial-grassland-plots"){f.value=null,I.value=t;const g=e.screen||((c=(l=x.value)==null?void 0:l.getVectorFeatureScreen)==null?void 0:c.call(l,t.feature));g&&(ge.value=We(g)),Q.value=!!g;return}I.value=null,Q.value=!1;const n=fn(a);if(n.stageKey){const g=String(n.stageKey),S=xt.value.map(String),B=K.value&&(!S.length||S.includes(g)),D=String(g)===String(p.value);if(!B&&!D){f.value=null,F.value="";return}F.value=((d=ft(n))==null?void 0:d.key)||"",ct(),f.value=n,fe.value=We(e.screen);return}f.value=null,F.value=""}function ut(){return j(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield cn(e);return}yield Zt(e)})}function cn(){return j(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Ve.value||(p.value="artificial-grassland",yield Ge()),f.value=null,F.value="",I.value=null,ge.value={x:960,y:510},Q.value=!1,window.setTimeout(()=>Xt(e),90))})}function Xt(e={},t=0){var s,l,c;const a=(l=(s=x.value)==null?void 0:s.focusVectorFeature)==null?void 0:l.call(s,e);if(!(a!=null&&a.feature)){t<4&&window.setTimeout(()=>Xt(e,t+1),180);return}I.value={id:((c=a.feature.properties)==null?void 0:c.id)||e.id,properties:a.feature.properties||{},feature:a.feature,layer:Le("yak-industry-chain","artificial-grassland-plots")};const n=I.value.id;window.setTimeout(()=>{var d;((d=I.value)==null?void 0:d.id)===n&&(yn(a.feature,a.screen),Q.value=!0)},820)}function yn(e,t=null){var n,s;const a=((s=(n=x.value)==null?void 0:n.getVectorFeatureScreen)==null?void 0:s.call(n,e))||t;a&&(ge.value=We(a))}function Zt(){return j(this,arguments,function*(e={}){var n;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==p.value);t&&(p.value=e.stageKey,yield Ge());const a=vn(e);F.value=((n=ft(a))==null?void 0:n.key)||"",ct(),f.value=a,fe.value={x:960,y:500},window.setTimeout(()=>{var l,c;const s=(c=(l=x.value)==null?void 0:l.focusYakIndustryPoint)==null?void 0:c.call(l,a);ta(a,s),gn(a)},t?320:80)})}function Jt(){return j(this,arguments,function*(e={}){e.point&&(F.value=e.key,yield Zt(e.point))})}function $(){var t,a,n,s;Oe(),f.value=null,F.value="",ct(),I.value=null,Q.value=!1,N&&(window.cancelAnimationFrame(N),N=null);const e=((a=(t=x.value)==null?void 0:t.canvasMap)==null?void 0:a.value)||((n=x.value)==null?void 0:n.canvasMap);(s=e==null?void 0:e.clearSelectedFeature)==null||s.call(e)}function Qt(){const e=Ze;Oe(),we=window.setTimeout(()=>{we=null,Ze===e&&$()},240)}function Oe(){we&&(window.clearTimeout(we),we=null)}function vn(e={}){var l;const t=Number(e.longitude),a=Number(e.latitude),n=ea(e),s=((l=je(n))==null?void 0:l.name)||e.stageName;return k(w({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:n,stageName:s,categoryName:M(e.categoryName||e.typeName||s),capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:a,geometry:Number.isFinite(t)&&Number.isFinite(a)?{type:"Point",coordinates:[t,a]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(a),status:e.status})}function fn(e={}){var n;const t=ea(e),a=((n=je(t))==null?void 0:n.name)||e.stageName;return k(w({},e),{stageKey:t,stageName:a,categoryName:M(e.categoryName||e.typeName||a)})}function ea(e={}){return ka.has(e.categoryCode)?"breeding-selection":e.stageKey}function ta(e,t=null){var n,s;const a=((s=(n=x.value)==null?void 0:n.getYakIndustryPointScreen)==null?void 0:s.call(n,e))||(t==null?void 0:t.screen);a&&(fe.value=We(a))}function gn(e,t=920){var s,l;N&&window.cancelAnimationFrame(N);const a=((l=(s=window.performance)==null?void 0:s.now)==null?void 0:l.call(s))||Date.now(),n=()=>{var d,g;if(!f.value||f.value.id!==e.id){N=null;return}if(ta(e),(((g=(d=window.performance)==null?void 0:d.now)==null?void 0:g.call(d))||Date.now())-a(l==null?void 0:l.wide)||String((l==null?void 0:l.value)||"").length>18)?38:35;return{panelWidth:560,panelHeight:Math.min(430,Math.max(224,72+t*n))}}function aa(e,t){const c={x:Math.max(24,Math.min(1896,Number(fe.value.x||0))),y:Math.max(24,Math.min(1056,Number(fe.value.y||0)))},d=q+46,g=1920-q-46,S=Math.min(Math.max(c.x-e/2,d),g-e),B=c.y-t-24,D=B>=156,yt=D?B:Math.min(Math.max(c.y+24,156),990-t),bn=Math.min(Math.max(c.x-S,34),e-34);return{x:S,y:yt,arrowLeft:bn,arrowTop:D?t-6:-6,arrowRotate:D?"45deg":"225deg"}}function dt(e,t){const{panelWidth:a,panelHeight:n}=Se(),s=18;return{x:Math.min(Math.max(Number(e)||s,s),1920-a-s),y:Math.min(Math.max(Number(t)||92,92),1080-n-s)}}function ct(){le(),X.value=null}function hn(e){var c,d,g,S;if(!f.value||e.button!==0)return;const t=e.target;if(!((c=t==null?void 0:t.closest)!=null&&c.call(t,".m-card-hd"))||(d=t.closest)!=null&&d.call(t,"button"))return;const a=sa(e),{panelWidth:n,panelHeight:s}=Se(),l=X.value?dt(X.value.x,X.value.y):aa(n,s);X.value={x:l.x,y:l.y},Y={pointerId:e.pointerId,startX:a.x,startY:a.y,originX:l.x,originY:l.y},$e.value=!0,(S=(g=e.currentTarget)==null?void 0:g.setPointerCapture)==null||S.call(g,e.pointerId),e.preventDefault(),window.addEventListener("pointermove",na),window.addEventListener("pointerup",le),window.addEventListener("pointercancel",le)}function na(e){if(!Y)return;const t=sa(e),a=dt(Y.originX+t.x-Y.startX,Y.originY+t.y-Y.startY);X.value=a}function le(){!Y&&!$e.value||(Y=null,$e.value=!1,window.removeEventListener("pointermove",na),window.removeEventListener("pointerup",le),window.removeEventListener("pointercancel",le))}function pn(e){return e.capacity===void 0||e.capacity===null||e.capacity===""?"":`${e.capacity}${e.capacityUnit||""}`}function M(e){return String(e!=null?e:"").replace(/\bcxpt[-_./\s]*/gi,"").replace(/\s+/g," ").trim()}function mn(e,t){const a=Number(e);if(Number.isFinite(a)&&a>0)return`${ra(a)}亩`;const n=Number(t);return Number.isFinite(n)&&n>0?`${ra(n/666.6667)}亩`:""}function ra(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:""}function We(e={}){var d;const t=document.querySelector("#large-screen"),a=(d=t==null?void 0:t.getBoundingClientRect)==null?void 0:d.call(t),n=a!=null&&a.width?1920/a.width:1,s=a!=null&&a.height?1080/a.height:1,l=(a==null?void 0:a.left)||0,c=(a==null?void 0:a.top)||0;return{x:(Number(e.x)-l)*n,y:(Number(e.y)-c)*s}}function sa(e={}){var d;const t=document.querySelector("#large-screen"),a=(d=t==null?void 0:t.getBoundingClientRect)==null?void 0:d.call(t),n=a!=null&&a.width?1920/a.width:1,s=a!=null&&a.height?1080/a.height:1,l=(a==null?void 0:a.left)||0,c=(a==null?void 0:a.top)||0;return{x:(Number(e.clientX)-l)*n,y:(Number(e.clientY)-c)*s}}return(e,t)=>(o(),u("div",{class:"yak-industry-chain",onClickCapture:un},[Me(Ln,{ref_key:"mapSceneRef",ref:x,class:"industry-map-scene","active-layer":La.value,"map-ranking":Ta.value,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,onMapClick:on,onFeatureInfo:dn},null,8,["active-layer","map-ranking"]),t[31]||(t[31]=r("div",{class:"industry-map-scrim"},null,-1)),J.value?L("",!0):(o(),u("div",Kn,"3D地图加载中")),K.value?(o(),u("div",{key:1,class:"industry-map-layer-tools",style:P({height:`${pa}px`})},[Me(Pn,{modelValue:ae.value,"onUpdate:modelValue":t[0]||(t[0]=a=>ae.value=a),"overlay-keys":ne.value,"onUpdate:overlayKeys":t[1]||(t[1]=a=>ne.value=a),"topic-key":"yak-industry-chain",layers:Ma.value,"overlay-layers":bt.value,width:248,height:pa,compact:"",multiple:"","show-legend":!1},null,8,["modelValue","overlay-keys","layers","overlay-layers"])],4)):L("",!0),kt.value.length?(o(),u("div",On,[r("div",Wn,[(o(!0),u(h,null,m(kt.value,a=>(o(),ie(da,{key:a.key,class:G(["fgw-side-card industry-side-card left-card",`industry-side-card--${a.key}`]),title:a.title,width:W(q),height:a.height},{extra:Ye(()=>[Tt(a)?(o(),u("button",{key:0,class:"industry-card-more",type:"button",onClick:Ue(Nt,["stop"])}," 查看更多 ")):L("",!0)]),default:Ye(()=>[Ee(a)&&Rt(a)?(o(),ie(W(ua),{key:0,class:"industry-town-column-chart",option:Ut(a),autoresize:!0},null,8,["option"])):Ee(a)?(o(),u("div",Gn," 暂无业务统计数据 ")):a.renderer==="stageComposition"?(o(),u("div",Yn,[r("div",Un,[(o(!0),u(h,null,m(_e(a),(n,s)=>(o(),u("i",{key:n.key||n.name,style:P({width:`${Et(n,a)}%`,background:Ke(n,s)})},null,4))),128))]),r("div",jn,[(o(!0),u(h,null,m(_e(a),(n,s)=>(o(),u("div",{key:n.key||n.name,class:"industry-stage-composition-chart__item",style:P({"--stage-color":Ke(n,s),"--stage-width":`${zt(n,a)}%`})},[r("span",null,i(n.name),1),r("strong",null,[T(i(Kt(n)),1),r("em",null,i(n.unit),1)]),t[9]||(t[9]=r("small",{"aria-hidden":"true"},[r("b")],-1))],4))),128))])])):a.renderer==="forageTradeDashboard"?(o(),u("div",qn,[r("div",Xn,[r("span",null,i(U(a).name),1),r("strong",null,[T(i(se(U(a))),1),r("em",null,i(U(a).unit),1)]),r("small",null,i(U(a).extra),1)]),r("div",Zn,[(o(!0),u(h,null,m(lt(a),(n,s)=>(o(),u("div",{key:n.key||n.name,class:"industry-forage-trade-dashboard__flow",style:P({"--trade-color":Yt(s),"--trade-width":`${Gt(n,a)}%`})},[r("span",null,i(n.name),1),r("strong",null,[T(i(se(n)),1),r("em",null,i(n.unit),1)]),t[10]||(t[10]=r("i",null,[r("b")],-1))],4))),128))]),r("div",Jn,[(o(!0),u(h,null,m(Wt(a),n=>(o(),u("div",{key:n.key||n.name},[r("span",null,i(n.name),1),r("strong",null,[T(i(se(n)),1),r("em",null,i(n.unit),1)])]))),128))])])):a.renderer==="business"?(o(),ie(ca,{key:4,panel:a,compact:"",onRowSelect:ut},null,8,["panel"])):a.renderer==="featured"?(o(),u("div",Qn,[(o(!0),u(h,null,m(a.rows,(n,s)=>(o(),u("button",{key:n.key,class:G(["industry-featured-base",{"is-active":F.value===n.key}]),type:"button",disabled:!n.point,"aria-label":`查看${n.name}`,onClick:l=>Jt(n)},[r("span",tr,i(`0${s+1}`),1),r("span",ar,[r("strong",null,i(n.name),1),r("em",null,i(n.town)+" · "+i(n.tag),1),r("small",null,i(n.summary),1)])],10,er))),128))])):a.renderer==="leadershipMode"?(o(),u("div",nr,[(o(!0),u(h,null,m(a.rows,(n,s)=>(o(),u("div",{key:n.key,class:"industry-leadership-mode"},[r("i",{style:P({color:n.color,background:n.color})},null,4),r("span",null,i(`0${s+1}`),1),r("div",null,[r("strong",null,i(n.name),1),r("small",null,i(n.description),1)])]))),128))])):a.renderer==="ledger"?(o(),u("div",rr,[(o(!0),u(h,null,m(a.rows,n=>(o(),u("div",{key:n.key,class:"industry-ledger-row"},[r("div",null,[r("strong",null,i(n.name),1),r("span",null,i(n.typeName)+" / "+i(n.town),1)]),r("em",null,i(n.valueText),1)]))),128))])):L("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):L("",!0),_t.value.length?(o(),u("div",sr,[r("div",lr,[(o(!0),u(h,null,m(_t.value,a=>(o(),u(h,{key:a.key},[a.placeholder?(o(),u("div",{key:0,class:"industry-side-card-placeholder",style:P({width:`${W(q)}px`,height:`${a.height}px`}),"aria-hidden":"true"},null,4)):(o(),ie(da,{key:1,class:G(["fgw-side-card industry-side-card right-card",`industry-side-card--${a.key}`]),title:a.title,width:W(q),height:a.height},{extra:Ye(()=>[Tt(a)?(o(),u("button",{key:0,class:"industry-card-more",type:"button",onClick:Ue(Nt,["stop"])}," 查看更多 ")):L("",!0)]),default:Ye(()=>[Ee(a)&&Rt(a)?(o(),ie(W(ua),{key:0,class:"industry-town-column-chart",option:Ut(a),autoresize:!0},null,8,["option"])):Ee(a)?(o(),u("div",or," 暂无业务统计数据 ")):a.renderer==="stageComposition"?(o(),u("div",ir,[r("div",ur,[(o(!0),u(h,null,m(_e(a),(n,s)=>(o(),u("i",{key:n.key||n.name,style:P({width:`${Et(n,a)}%`,background:Ke(n,s)})},null,4))),128))]),r("div",dr,[(o(!0),u(h,null,m(_e(a),(n,s)=>(o(),u("div",{key:n.key||n.name,class:"industry-stage-composition-chart__item",style:P({"--stage-color":Ke(n,s),"--stage-width":`${zt(n,a)}%`})},[r("span",null,i(n.name),1),r("strong",null,[T(i(Kt(n)),1),r("em",null,i(n.unit),1)]),t[11]||(t[11]=r("small",{"aria-hidden":"true"},[r("b")],-1))],4))),128))])])):a.renderer==="forageTradeDashboard"?(o(),u("div",cr,[r("div",yr,[r("span",null,i(U(a).name),1),r("strong",null,[T(i(se(U(a))),1),r("em",null,i(U(a).unit),1)]),r("small",null,i(U(a).extra),1)]),r("div",vr,[(o(!0),u(h,null,m(lt(a),(n,s)=>(o(),u("div",{key:n.key||n.name,class:"industry-forage-trade-dashboard__flow",style:P({"--trade-color":Yt(s),"--trade-width":`${Gt(n,a)}%`})},[r("span",null,i(n.name),1),r("strong",null,[T(i(se(n)),1),r("em",null,i(n.unit),1)]),t[12]||(t[12]=r("i",null,[r("b")],-1))],4))),128))]),r("div",fr,[(o(!0),u(h,null,m(Wt(a),n=>(o(),u("div",{key:n.key||n.name},[r("span",null,i(n.name),1),r("strong",null,[T(i(se(n)),1),r("em",null,i(n.unit),1)])]))),128))])])):a.renderer==="industryTabbedMapList"?(o(),u("div",gr,[r("div",hr,[t[14]||(t[14]=r("span",null,"点位类型",-1)),r("button",{type:"button",class:G(["industry-tabbed-map-list__select",{"is-open":H.value}]),onClick:Ue(Wa,["stop"])},[r("strong",null,i(ke(a).name),1),t[13]||(t[13]=r("i",{"aria-hidden":"true"},null,-1))],2),H.value?(o(),u("div",pr,[(o(!0),u(h,null,m(Ft(a),n=>(o(),u("button",{key:n.key,type:"button",class:G({"is-active":ke(a).key===n.key}),onClick:s=>Ga(n)},[r("span",null,i(n.name),1)],10,mr))),128))])):L("",!0)]),r("div",br,[Ce(r("input",{"onUpdate:modelValue":t[2]||(t[2]=n=>te.value=n),type:"search",placeholder:ja(a)},null,8,wr),[[ia,te.value]]),r("small",null,i(qa(a)),1)]),t[16]||(t[16]=r("div",{class:"industry-tabbed-map-list__head","aria-hidden":"true"},[r("span",null,"名称"),r("span",null,"所属区域"),r("span",null,"定位")],-1)),r("div",kr,[(o(!0),u(h,null,m(st(a),n=>(o(),u("button",{key:n.key||n.id||n.name,type:"button",class:G(["industry-tabbed-map-list__row",{"is-active":Xa(n),"is-disabled":n.canLocate===!1}]),disabled:n.canLocate===!1,onClick:s=>Za(n)},[r("span",xr,[r("strong",{title:Dt(n)},i(Dt(n)),9,Sr)]),r("span",Mr,[r("span",{class:"industry-tabbed-map-list__area",title:Vt(n)},i(Vt(n)),9,Cr)]),t[15]||(t[15]=r("i",{class:"industry-tabbed-map-list__locate","aria-hidden":"true"},null,-1))],10,_r))),128)),st(a).length?L("",!0):(o(),u("div",Lr,i(a.emptyText||"无匹配产业点位"),1))])])):a.renderer==="business"?(o(),ie(ca,{key:5,panel:a,compact:"",onRowSelect:ut},null,8,["panel"])):a.renderer==="featured"?(o(),u("div",Pr,[(o(!0),u(h,null,m(a.rows,(n,s)=>(o(),u("button",{key:n.key,class:G(["industry-featured-base",{"is-active":F.value===n.key}]),type:"button",disabled:!n.point,"aria-label":`查看${n.name}`,onClick:l=>Jt(n)},[r("span",Nr,i(`0${s+1}`),1),r("span",$r,[r("strong",null,i(n.name),1),r("em",null,i(n.town)+" · "+i(n.tag),1),r("small",null,i(n.summary),1)])],10,Tr))),128))])):a.renderer==="leadershipMode"?(o(),u("div",Ar,[(o(!0),u(h,null,m(a.rows,(n,s)=>(o(),u("div",{key:n.key,class:"industry-leadership-mode"},[r("i",{style:P({color:n.color,background:n.color})},null,4),r("span",null,i(`0${s+1}`),1),r("div",null,[r("strong",null,i(n.name),1),r("small",null,i(n.description),1)])]))),128))])):a.renderer==="ledger"?(o(),u("div",Rr,[(o(!0),u(h,null,m(a.rows,n=>(o(),u("div",{key:n.key,class:"industry-ledger-row"},[r("div",null,[r("strong",null,i(n.name),1),r("span",null,i(n.typeName)+" / "+i(n.town),1)]),r("em",null,i(n.valueText),1)]))),128))])):L("",!0)]),_:2},1032,["class","title","width","height"]))],64))),128))])])):L("",!0),I.value&&Q.value?(o(),u("div",{key:4,class:"industry-map-feature-info",style:P(Ba.value)},[Me(ya,{title:"人工草地详情",feature:I.value,rows:Aa.value,width:460,height:ma},null,8,["feature","rows"])],4)):L("",!0),f.value?(o(),u("div",{key:5,class:G(["industry-map-feature-info industry-point-feature-info",{"is-dragging":$e.value}]),style:P(Ia.value),onPointerdown:hn},[Me(ya,{title:Na.value,feature:$a.value,rows:nt.value,width:Ra.value,height:Fa.value,closable:"",onClose:$},null,8,["title","feature","rows","width","height"])],38)):L("",!0),Re.value?(o(),u("div",{key:6,class:"industry-credit-overlay",role:"presentation",onClick:Ue(rt,["self"])},[r("section",Fr,[r("header",{class:"industry-credit-dialog__header"},[t[17]||(t[17]=r("div",null,[r("strong",null,"农牧户信用信息"),r("span",null,"红原县信用村、信用户评定结果")],-1)),r("button",{type:"button","aria-label":"关闭农牧户信用信息",onClick:rt},"×")]),r("div",Ir,[r("div",null,[t[19]||(t[19]=r("span",null,"评定信用户",-1)),r("strong",null,[T(i(O(W(ue).totals.householdCount)),1),t[18]||(t[18]=r("em",null,"户",-1))])]),r("div",null,[t[21]||(t[21]=r("span",null,"信用村",-1)),r("strong",null,[T(i(O(W(ue).totals.villageCount)),1),t[20]||(t[20]=r("em",null,"个",-1))])]),r("div",null,[t[23]||(t[23]=r("span",null,"已授信",-1)),r("strong",null,[T(i(O(W(ue).totals.authorizedCount)),1),t[22]||(t[22]=r("em",null,"户",-1))])]),r("div",null,[t[25]||(t[25]=r("span",null,"授信率",-1)),r("strong",null,[T(i(O(W(ue).totals.authorizationRate)),1),t[24]||(t[24]=r("em",null,"%",-1))])])]),r("div",Br,[Ce(r("input",{"onUpdate:modelValue":t[3]||(t[3]=a=>Be.value=a),type:"search",placeholder:"搜索姓名、乡镇、村或评定机构"},null,512),[[ia,Be.value,void 0,{trim:!0}]]),Ce(r("select",{"onUpdate:modelValue":t[4]||(t[4]=a=>pe.value=a),"aria-label":"筛选乡镇"},[t[26]||(t[26]=r("option",{value:""},"全部乡镇",-1)),(o(!0),u(h,null,m(_a.value,a=>(o(),u("option",{key:a,value:a},i(a),9,Dr))),128))],512),[[vt,pe.value]]),Ce(r("select",{"onUpdate:modelValue":t[5]||(t[5]=a=>me.value=a),"aria-label":"筛选信用户等级"},[t[27]||(t[27]=r("option",{value:""},"全部等级",-1)),(o(!0),u(h,null,m(xa.value,a=>(o(),u("option",{key:a,value:a},i(a),9,Vr))),128))],512),[[vt,me.value]]),Ce(r("select",{"onUpdate:modelValue":t[6]||(t[6]=a=>be.value=a),"aria-label":"筛选授信状态"},[...t[28]||(t[28]=[r("option",{value:""},"全部授信状态",-1),r("option",{value:"是"},"已授信",-1),r("option",{value:"否"},"未授信",-1),r("option",{value:"未填写"},"未填写",-1)])],512),[[vt,be.value]]),r("small",null,i(Sa.value),1)]),r("div",Hr,[t[29]||(t[29]=r("div",{class:"industry-credit-table__head","aria-hidden":"true"},[r("span",null,"姓名"),r("span",null,"乡镇"),r("span",null,"行政村"),r("span",null,"信用村等级"),r("span",null,"信用户等级"),r("span",null,"授信状态"),r("span",null,"评定机构")],-1)),he.value?(o(),u("div",zr,"信用信息加载中...")):Fe.value?(o(),u("div",Er,i(Fe.value),1)):mt.value.length?(o(!0),u(h,{key:3},m(mt.value,a=>(o(),u("div",{key:a.id,class:"industry-credit-table__row"},[r("strong",{title:a.name},i(a.name),9,Or),r("span",null,i(a.town),1),r("span",{title:a.village},i(a.village),9,Wr),r("span",null,[r("i",{class:"industry-credit-grade","data-grade":a.villageGrade},i(a.villageGrade),9,Gr)]),r("span",null,i(a.userRating),1),r("span",{class:G({"is-authorized":a.authorized==="是","is-unauthorized":a.authorized==="否"})},i(a.authorized==="是"?"已授信":a.authorized==="否"?"未授信":"未填写"),3),r("span",{title:a.institution},i(a.institution),9,Yr)]))),128)):(o(),u("div",Kr,"无匹配信用信息"))]),r("footer",Ur,[t[30]||(t[30]=r("span",null,"数据展示已移除身份证号码和联系电话",-1)),r("div",null,[r("button",{type:"button",disabled:z.value<=1,onClick:t[7]||(t[7]=a=>$t(z.value-1))},"上一页",8,jr),r("strong",null,i(z.value)+" / "+i(at.value),1),r("button",{type:"button",disabled:z.value>=at.value,onClick:t[8]||(t[8]=a=>$t(z.value+1))},"下一页",8,qr)])])])])):L("",!0),r("div",Xr,[Me(Tn,{"model-value":p.value,topics:Pa.value,compact:"","onUpdate:modelValue":Da},null,8,["model-value","topics"])])],32))}};export{vs as default}; diff --git a/docs/assets/index-c4c25a3c-balabala-1785726778446.css b/docs/assets/index-78b4d605-balabala-1785858872961.css similarity index 99% rename from docs/assets/index-c4c25a3c-balabala-1785726778446.css rename to docs/assets/index-78b4d605-balabala-1785858872961.css index 8aabcae..a91b481 100644 --- a/docs/assets/index-c4c25a3c-balabala-1785726778446.css +++ b/docs/assets/index-78b4d605-balabala-1785858872961.css @@ -1 +1 @@ -.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{position:relative;transform:translate3d(0,16px,0);transform-origin:center;opacity:0;display:flex;justify-content:center;align-items:center;gap:9px;padding:5px 34px 5px 12px;min-width:126px;height:50px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4);box-sizing:border-box}.map .provinces-label .provinces-label-copy{display:grid;justify-items:center;gap:2px;width:100%;min-width:0;text-align:center}.map .provinces-label .town-name{color:#ebfdffdb;font-size:13px;font-weight:700;line-height:15px;white-space:nowrap}.map .provinces-label .number{color:#fff;font-size:20px;font-weight:700;line-height:22px}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{position:absolute;top:50%;right:11px;color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700;transform:translateY(-50%)}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translate3d(0,18px,0);transform-origin:center}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1785726778446.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:max-content;transform:translate(-50%);pointer-events:auto}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-empty{display:flex;grid-column:1/-1;align-items:center;justify-content:center;gap:10px;color:#eefdffb8;font-size:14px;font-weight:700}.home-balance-empty i{width:8px;height:8px;border-radius:50%;background:#30dcff;box-shadow:0 0 12px #30dcffdb;animation:home-balance-loading 1.25s ease-in-out infinite}@keyframes home-balance-loading{50%{opacity:.3;transform:scale(.72)}}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} +.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{position:relative;transform:translate3d(0,16px,0);transform-origin:center;opacity:0;display:flex;justify-content:center;align-items:center;gap:9px;padding:5px 34px 5px 12px;min-width:126px;height:50px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4);box-sizing:border-box}.map .provinces-label .provinces-label-copy{display:grid;justify-items:center;gap:2px;width:100%;min-width:0;text-align:center}.map .provinces-label .town-name{color:#ebfdffdb;font-size:13px;font-weight:700;line-height:15px;white-space:nowrap}.map .provinces-label .number{color:#fff;font-size:20px;font-weight:700;line-height:22px}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{position:absolute;top:50%;right:11px;color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700;transform:translateY(-50%)}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translate3d(0,18px,0);transform-origin:center}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1785858872961.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:max-content;transform:translate(-50%);pointer-events:auto}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-empty{display:flex;grid-column:1/-1;align-items:center;justify-content:center;gap:10px;color:#eefdffb8;font-size:14px;font-weight:700}.home-balance-empty i{width:8px;height:8px;border-radius:50%;background:#30dcff;box-shadow:0 0 12px #30dcffdb;animation:home-balance-loading 1.25s ease-in-out infinite}@keyframes home-balance-loading{50%{opacity:.3;transform:scale(.72)}}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} diff --git a/docs/assets/index-8d752fbe-balabala-1785726778446.css b/docs/assets/index-8d752fbe-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-8d752fbe-balabala-1785726778446.css rename to docs/assets/index-8d752fbe-balabala-1785858872961.css diff --git a/docs/assets/index-7b46d381-1785726778446.js b/docs/assets/index-8ffdff7e-1785858872961.js similarity index 96% rename from docs/assets/index-7b46d381-1785726778446.js rename to docs/assets/index-8ffdff7e-1785858872961.js index 146be4f..07f6033 100644 --- a/docs/assets/index-7b46d381-1785726778446.js +++ b/docs/assets/index-8ffdff7e-1785858872961.js @@ -1,4 +1,4 @@ -import{g as p,q as g,P as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,K as u,d as w}from"./index-1785726778446.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1785726778446.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1785726778446.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1785726778446.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1785726778446.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1785726778446.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],k=["x1"],D=["id","x1"],O=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],K={class:"m-card-bd-content"},J={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 +import{g as p,q as g,P as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,K as u,d as w}from"./index-1785858872961.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1785858872961.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1785858872961.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1785858872961.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1785858872961.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1785858872961.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],k=["x1"],D=["id","x1"],O=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],K={class:"m-card-bd-content"},J={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 L165.707 -0.207107 L165.414 -0.5 H165 diff --git a/docs/assets/index-3dc02a03-1785726778446.js b/docs/assets/index-9499675e-1785858872961.js similarity index 98% rename from docs/assets/index-3dc02a03-1785726778446.js rename to docs/assets/index-9499675e-1785858872961.js index e5e400c..4d63312 100644 --- a/docs/assets/index-3dc02a03-1785726778446.js +++ b/docs/assets/index-9499675e-1785858872961.js @@ -1,4 +1,4 @@ -var $i=Object.defineProperty,Di=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Fo=Object.getOwnPropertySymbols;var Vi=Object.prototype.hasOwnProperty,ji=Object.prototype.propertyIsEnumerable;var Eo=(T,i,r)=>i in T?$i(T,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):T[i]=r,R=(T,i)=>{for(var r in i||(i={}))Vi.call(i,r)&&Eo(T,r,i[r]);if(Fo)for(var r of Fo(i))ji.call(i,r)&&Eo(T,r,i[r]);return T},z=(T,i)=>Di(T,zi(i));var re=(T,i,r)=>new Promise((c,l)=>{var m=p=>{try{b(r.next(p))}catch(S){l(S)}},y=p=>{try{b(r.throw(p))}catch(S){l(S)}},b=p=>p.done?c(p.value):Promise.resolve(p.value).then(m,y);b((r=r.apply(T,i)).next())});import{h as an,w as Ct,o as I,c as E,a as M,d as O,L as Wi,g as N,M as Le,q as Ui,A as Y,s as Oo,v as Bo,b as Kt,C as Te,j as Q,K as kt,u as at,F as Be,y as Re,x as Pa,B as Ki,n as ot,e as qt,f as Ae,t as V,T as qi,N as Yi}from"./index-1785726778446.js";import{l as Ro,g as Qi,E as Ji}from"./live-scene-1-e9556509-1785726778446.js";import{H as Ca}from"./index.esm.min-4f309085-1785726778446.js";import{_ as Ho}from"./index-7b46d381-1785726778446.js";import{g as La,C as Zi,H as Xi,a as er,M as tr}from"./index-7b548b42-1785726778446.js";import{O as ar,P as De,a as se,D as rt,C as pe,A as Me,b as te,e as or,F as nr,G as xe,c as ir,d as rr,f as sr,g as Go,L as $o,V as ee,h as Do,R as Se,B as lr,S as Ta,i as ur,j as cr,k as dr,l as fr,N as hr,Q as mr,T as pr,m as gr,n as zo,o as Vo,p as yr,q as jo,r as vr}from"./screen2Standard-f38b9a2d-1785726778446.js";import{M as br,g as wr,h as xr,L as Sr,B as Wo,a as Aa,E as Mr,G as kr,D as Pr,b as Cr,l as Ia,P as Uo,c as Ko,d as Lr,s as Na,f as Yt,e as Tr,i as Ar,j as Ir,k as qo}from"./data-112f1d11-1785726778446.js";import{g as st}from"./index-e9f36657-1785726778446.js";import{h as Nr,a as on,f as _r,g as Fr,b as Er}from"./townshipBoundaries-8867fad4-1785726778446.js";import{R as Or,r as Br,a as Rr,c as Hr,o as Gr,s as $r,p as Dr,b as Yo,d as zr,h as Vr,g as Qo,e as jr,f as Wr,i as Ur,j as Kr,k as qr,l as Yr,m as Qr,n as Jr,_ as Zr}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{_ as Xr,a as Jo}from"./FeatureInfoPanel-e0a0d741-1785726778446.js";import{g as Zo,a as es}from"./openApi-70e9578a-1785726778446.js";import{c as ts,F as as,g as os,a as ns}from"./featurePanelLayout-b5234356-1785726778446.js";import{g as is}from"./yakApi-185e6ecc-1785726778446.js";import{w as He,f as _a}from"./chartTheme-330b271e-1785726778446.js";import{g as rs}from"./balanceApi-994e7f98-1785726778446.js";import{b as Fa,c as ss,n as ls}from"./data-56996d99-1785726778446.js";import{h as us,y as cs}from"./data-e7a95cad-1785726778446.js";import{f as ds}from"./familyPastureData-f64283c3-1785726778446.js";import"./index-e33f4373-1785726778446.js";import"./livestockData-36ec0ae2-1785726778446.js";import"./geoserver-d05ee620-1785726778446.js";class fs extends ar{constructor(i,r){super(),this.config=Object.assign({color1:16566615,color2:16777215},r),this.assets={instance:null},this.assets.instance=i.assets.instance,this.sceneGroup=i.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let i=this.config.color1,r=new De(1.5,1.5,1),c=new De(1,3,1);c.translate(0,1,0);let l=new se({color:i,transparent:!0,fog:!1,side:rt,depthWrite:!1}),m=l.clone();m.map=this.assets.instance.getResource("focusArrows");let y=l.clone();y.map=this.assets.instance.getResource("focusBar");let b=l.clone();b.map=this.assets.instance.getResource("focusBg");let p=l.clone();p.color=new pe(this.config.color2),p.map=this.assets.instance.getResource("focusMidQuan");let S=l.clone();S.map=this.assets.instance.getResource("focusMoveBg"),S.blending=Me;let L=new te(r,m),P=new te(c,y);P.rotation.x=Math.PI/2;let A=P.clone();A.rotation.y=Math.PI/2;let k=new te(r,b),C=new te(r,p),F=new te(r,S),H=[C,k,L,F,P,A];H.map(j=>{j.renderOrder=99}),this.add(...H);let B=0;F.scale.setScalar(B),this.animateElements={focusMidQuan:C,focusArrows:L,focusMoveBg:F},this.startAnimate()}startAnimate(){let i=st.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),r=st.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=st.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),l=st.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[i,r,c,l]}pausedAnimate(){this.gsapObjects.map(i=>{i.paused=!0})}destroy(){this.gsapObjects.map(i=>{i.kill()}),or(this)}}const hs=Nr.map(T=>R({},T)),Xo=on.map(T=>R({},T)),ms=on.map(T=>{var i,r;return{name:T.name,value:T.value,lng:(i=T.center)==null?void 0:i[0],lat:(r=T.center)==null?void 0:r[1]}}),ps=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function Ea(T){return T.sort((i,r)=>r.value-i.value),T}function gs(T){return T?typeof T=="string"?JSON.parse(T):T:null}function Oa(T){const i=gs(T);return i!=null&&i.features&&i.features.forEach(r=>{var c;((c=r.geometry)==null?void 0:c.type)==="Polygon"&&(r.geometry.coordinates=[r.geometry.coordinates])}),i}function ys(T,i){var r;try{return(r=T==null?void 0:T.getResource)==null?void 0:r.call(T,i)}catch(c){return null}}function vs(T,i,r){const c=Number(T);return Number.isFinite(c)?Math.max(i,Math.min(r,c)):i}class bs extends br{constructor(i,r,c={}){var l;super(i,{maxPixelRatio:(l=c.maxPixelRatio)!=null?l:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=wr().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new nr(1058614,1,50),this.scene.background=new pe(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new xr(this.renderer.instance,this.camera.instance,this.canvas),this.assets=r,this.staticMapData={china:Oa(ys(this.assets.instance,"china")),mapJson:Oa(this.assets.instance.getResource("mapJson")),mapStroke:Oa(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(i){var r;return i&&(this.sceneTweens.push(i),this.scenePaused&&((r=i.pause)==null||r.call(i)),i)}addSceneTimer(i){return i&&this.sceneTimers.push(i),i}init(){this.labelGroup=new xe,this.label3d=new Sr(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new xe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let i=st.timeline({onComplete:()=>{}});i.pause(),this.animateTl=i,i.addLabel("focusMap",1.5),i.addLabel("focusMapOpacity",2),i.addLabel("bar",3),i.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),i.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),i.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),i.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),i.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((r,c)=>{let l=r.element.querySelector(".other-label");i.to(l,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),i.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),i.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),i.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var r,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(r=this.options).onPlayComplete)==null||c.call(r)}},"focusMapOpacity"),(this.allBar||[]).map((r,c)=>{if(r.userData.name==="邛溪镇")return!1;i.to(r.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((r,c)=>{i.to(r,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((r,c)=>{let l=r.element.querySelector(".provinces-label-wrap"),m=r.element.querySelector(".number .value"),y=Number(m.innerText),b={score:0};i.to(l,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),i.to(b,{duration:1,delay:.2*c,score:y,onUpdate:p},"bar");function p(){m.innerText=b.score.toFixed(0)}}),(this.allGuangquan||[]).map((r,c)=>{i.to(r.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),i.to(r.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let i=new ir(16777215,5);this.scene.add(i);let r=new rr(16777215,5);r.position.set(-30,6,-8),r.castShadow=!0,r.shadow.radius=20,r.shadow.mapSize.width=1024,r.shadow.mapSize.height=1024,this.scene.add(r),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(i){const r=new sr(1924702,i.intensity,i.distance);r.position.set(i.x,i.y,i.z),this.scene.add(r)}createMap(){let i=new xe,r=new xe;this.focusMapGroup=r;let{china:c,chinaTopLine:l}=this.createChina(),{map:m,mapTop:y,mapLine:b}=this.createProvince();c==null||c.setParent(i),l==null||l.setParent(i),this.createDiffuse(),m.setParent(r),y.setParent(r),b.setParent(r),r.position.set(0,0,-.01),r.scale.set(1,1,0),i.add(r),i.rotation.x=-Math.PI/2,i.position.set(0,.2,0),this.scene.add(i),this.showDataOverlays?(this.createBar(),this.updateTownLabelVisibility()):(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var b;let i={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},r=this.staticMapData.china;if(!((b=r==null?void 0:r.features)!=null&&b.length))return{china:null,chinaTopLine:null};let c=new Go({color:new pe(i.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),l=new Wo(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),m=new $o({color:i.lineColor}),y=new Aa(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:m,renderOrder:3});return y.lineGroup.position.z+=.01,{china:l,chinaTopLine:y}}createProvince(){let i=this.staticMapData.mapJson,[r,c]=this.createProvinceMaterial();this.focusMapTopMaterial=r,this.focusMapSideMaterial=c;let l=new Mr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,.11),data:i,depth:this.depth,topFaceMaterial:r,sideMaterial:c,renderOrder:9}),m=new Do({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(m),this.defaultMaterial=m,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new pe("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let y=new Wo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,this.depth+.22),data:i,material:m,renderOrder:2});y.mapGroup.children.map(p=>{p.children.map(S=>{S.type==="Mesh"&&this.eventElement.push(S)})}),this.mapLineMaterial=new $o({color:16777215,opacity:0,transparent:!0,fog:!1});let b=new Aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:i,material:this.mapLineMaterial,renderOrder:3});return b.lineGroup.position.z+=this.depth+.23,{map:l,mapTop:y,mapLine:b}}createProvinceMaterial(){let i=new Go({color:16777215,transparent:!0,opacity:0,fog:!1,side:rt});i.onBeforeCompile=l=>{l.uniforms=z(R({},l.uniforms),{uColor1:{value:new pe(2780818)},uColor2:{value:new pe(1058614)}}),l.vertexShader=l.vertexShader.replace("void main() {",` +var $i=Object.defineProperty,Di=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Fo=Object.getOwnPropertySymbols;var Vi=Object.prototype.hasOwnProperty,ji=Object.prototype.propertyIsEnumerable;var Eo=(T,i,r)=>i in T?$i(T,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):T[i]=r,R=(T,i)=>{for(var r in i||(i={}))Vi.call(i,r)&&Eo(T,r,i[r]);if(Fo)for(var r of Fo(i))ji.call(i,r)&&Eo(T,r,i[r]);return T},z=(T,i)=>Di(T,zi(i));var re=(T,i,r)=>new Promise((c,l)=>{var m=p=>{try{b(r.next(p))}catch(S){l(S)}},y=p=>{try{b(r.throw(p))}catch(S){l(S)}},b=p=>p.done?c(p.value):Promise.resolve(p.value).then(m,y);b((r=r.apply(T,i)).next())});import{h as an,w as Ct,o as I,c as E,a as M,d as O,L as Wi,g as N,M as Le,q as Ui,A as Y,s as Oo,v as Bo,b as Kt,C as Te,j as Q,K as kt,u as at,F as Be,y as Re,x as Pa,B as Ki,n as ot,e as qt,f as Ae,t as V,T as qi,N as Yi}from"./index-1785858872961.js";import{l as Ro,g as Qi,E as Ji}from"./live-scene-1-3ac6252d-1785858872961.js";import{H as Ca}from"./index.esm.min-b7db2517-1785858872961.js";import{_ as Ho}from"./index-8ffdff7e-1785858872961.js";import{g as La,C as Zi,H as Xi,a as er,M as tr}from"./index-1891ee64-1785858872961.js";import{O as ar,P as De,a as se,D as rt,C as pe,A as Me,b as te,e as or,F as nr,G as xe,c as ir,d as rr,f as sr,g as Go,L as $o,V as ee,h as Do,R as Se,B as lr,S as Ta,i as ur,j as cr,k as dr,l as fr,N as hr,Q as mr,T as pr,m as gr,n as zo,o as Vo,p as yr,q as jo,r as vr}from"./screen2Standard-2d8b09ac-1785858872961.js";import{M as br,g as wr,h as xr,L as Sr,B as Wo,a as Aa,E as Mr,G as kr,D as Pr,b as Cr,l as Ia,P as Uo,c as Ko,d as Lr,s as Na,f as Yt,e as Tr,i as Ar,j as Ir,k as qo}from"./data-9964a7a8-1785858872961.js";import{g as st}from"./index-e9f36657-1785858872961.js";import{h as Nr,a as on,f as _r,g as Fr,b as Er}from"./townshipBoundaries-8867fad4-1785858872961.js";import{R as Or,r as Br,a as Rr,c as Hr,o as Gr,s as $r,p as Dr,b as Yo,d as zr,h as Vr,g as Qo,e as jr,f as Wr,i as Ur,j as Kr,k as qr,l as Yr,m as Qr,n as Jr,_ as Zr}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{_ as Xr,a as Jo}from"./FeatureInfoPanel-ca915481-1785858872961.js";import{g as Zo,a as es}from"./openApi-2c22e142-1785858872961.js";import{c as ts,F as as,g as os,a as ns}from"./featurePanelLayout-07907d63-1785858872961.js";import{g as is}from"./yakApi-4b33f49b-1785858872961.js";import{w as He,f as _a}from"./chartTheme-96368571-1785858872961.js";import{g as rs}from"./balanceApi-a2c0a6b6-1785858872961.js";import{b as Fa,c as ss,n as ls}from"./data-56996d99-1785858872961.js";import{h as us,y as cs}from"./data-33173954-1785858872961.js";import{f as ds}from"./familyPastureData-f64283c3-1785858872961.js";import"./index-d6700f13-1785858872961.js";import"./livestockData-36ec0ae2-1785858872961.js";import"./geoserver-ea89416e-1785858872961.js";class fs extends ar{constructor(i,r){super(),this.config=Object.assign({color1:16566615,color2:16777215},r),this.assets={instance:null},this.assets.instance=i.assets.instance,this.sceneGroup=i.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let i=this.config.color1,r=new De(1.5,1.5,1),c=new De(1,3,1);c.translate(0,1,0);let l=new se({color:i,transparent:!0,fog:!1,side:rt,depthWrite:!1}),m=l.clone();m.map=this.assets.instance.getResource("focusArrows");let y=l.clone();y.map=this.assets.instance.getResource("focusBar");let b=l.clone();b.map=this.assets.instance.getResource("focusBg");let p=l.clone();p.color=new pe(this.config.color2),p.map=this.assets.instance.getResource("focusMidQuan");let S=l.clone();S.map=this.assets.instance.getResource("focusMoveBg"),S.blending=Me;let L=new te(r,m),P=new te(c,y);P.rotation.x=Math.PI/2;let A=P.clone();A.rotation.y=Math.PI/2;let k=new te(r,b),C=new te(r,p),F=new te(r,S),H=[C,k,L,F,P,A];H.map(j=>{j.renderOrder=99}),this.add(...H);let B=0;F.scale.setScalar(B),this.animateElements={focusMidQuan:C,focusArrows:L,focusMoveBg:F},this.startAnimate()}startAnimate(){let i=st.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),r=st.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=st.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),l=st.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[i,r,c,l]}pausedAnimate(){this.gsapObjects.map(i=>{i.paused=!0})}destroy(){this.gsapObjects.map(i=>{i.kill()}),or(this)}}const hs=Nr.map(T=>R({},T)),Xo=on.map(T=>R({},T)),ms=on.map(T=>{var i,r;return{name:T.name,value:T.value,lng:(i=T.center)==null?void 0:i[0],lat:(r=T.center)==null?void 0:r[1]}}),ps=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function Ea(T){return T.sort((i,r)=>r.value-i.value),T}function gs(T){return T?typeof T=="string"?JSON.parse(T):T:null}function Oa(T){const i=gs(T);return i!=null&&i.features&&i.features.forEach(r=>{var c;((c=r.geometry)==null?void 0:c.type)==="Polygon"&&(r.geometry.coordinates=[r.geometry.coordinates])}),i}function ys(T,i){var r;try{return(r=T==null?void 0:T.getResource)==null?void 0:r.call(T,i)}catch(c){return null}}function vs(T,i,r){const c=Number(T);return Number.isFinite(c)?Math.max(i,Math.min(r,c)):i}class bs extends br{constructor(i,r,c={}){var l;super(i,{maxPixelRatio:(l=c.maxPixelRatio)!=null?l:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=wr().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new nr(1058614,1,50),this.scene.background=new pe(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new xr(this.renderer.instance,this.camera.instance,this.canvas),this.assets=r,this.staticMapData={china:Oa(ys(this.assets.instance,"china")),mapJson:Oa(this.assets.instance.getResource("mapJson")),mapStroke:Oa(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(i){var r;return i&&(this.sceneTweens.push(i),this.scenePaused&&((r=i.pause)==null||r.call(i)),i)}addSceneTimer(i){return i&&this.sceneTimers.push(i),i}init(){this.labelGroup=new xe,this.label3d=new Sr(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new xe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let i=st.timeline({onComplete:()=>{}});i.pause(),this.animateTl=i,i.addLabel("focusMap",1.5),i.addLabel("focusMapOpacity",2),i.addLabel("bar",3),i.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),i.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),i.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),i.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),i.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((r,c)=>{let l=r.element.querySelector(".other-label");i.to(l,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),i.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),i.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),i.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var r,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(r=this.options).onPlayComplete)==null||c.call(r)}},"focusMapOpacity"),(this.allBar||[]).map((r,c)=>{if(r.userData.name==="邛溪镇")return!1;i.to(r.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((r,c)=>{i.to(r,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((r,c)=>{let l=r.element.querySelector(".provinces-label-wrap"),m=r.element.querySelector(".number .value"),y=Number(m.innerText),b={score:0};i.to(l,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),i.to(b,{duration:1,delay:.2*c,score:y,onUpdate:p},"bar");function p(){m.innerText=b.score.toFixed(0)}}),(this.allGuangquan||[]).map((r,c)=>{i.to(r.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),i.to(r.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let i=new ir(16777215,5);this.scene.add(i);let r=new rr(16777215,5);r.position.set(-30,6,-8),r.castShadow=!0,r.shadow.radius=20,r.shadow.mapSize.width=1024,r.shadow.mapSize.height=1024,this.scene.add(r),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(i){const r=new sr(1924702,i.intensity,i.distance);r.position.set(i.x,i.y,i.z),this.scene.add(r)}createMap(){let i=new xe,r=new xe;this.focusMapGroup=r;let{china:c,chinaTopLine:l}=this.createChina(),{map:m,mapTop:y,mapLine:b}=this.createProvince();c==null||c.setParent(i),l==null||l.setParent(i),this.createDiffuse(),m.setParent(r),y.setParent(r),b.setParent(r),r.position.set(0,0,-.01),r.scale.set(1,1,0),i.add(r),i.rotation.x=-Math.PI/2,i.position.set(0,.2,0),this.scene.add(i),this.showDataOverlays?(this.createBar(),this.updateTownLabelVisibility()):(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var b;let i={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},r=this.staticMapData.china;if(!((b=r==null?void 0:r.features)!=null&&b.length))return{china:null,chinaTopLine:null};let c=new Go({color:new pe(i.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),l=new Wo(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),m=new $o({color:i.lineColor}),y=new Aa(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:m,renderOrder:3});return y.lineGroup.position.z+=.01,{china:l,chinaTopLine:y}}createProvince(){let i=this.staticMapData.mapJson,[r,c]=this.createProvinceMaterial();this.focusMapTopMaterial=r,this.focusMapSideMaterial=c;let l=new Mr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,.11),data:i,depth:this.depth,topFaceMaterial:r,sideMaterial:c,renderOrder:9}),m=new Do({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(m),this.defaultMaterial=m,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new pe("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let y=new Wo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,this.depth+.22),data:i,material:m,renderOrder:2});y.mapGroup.children.map(p=>{p.children.map(S=>{S.type==="Mesh"&&this.eventElement.push(S)})}),this.mapLineMaterial=new $o({color:16777215,opacity:0,transparent:!0,fog:!1});let b=new Aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:i,material:this.mapLineMaterial,renderOrder:3});return b.lineGroup.position.z+=this.depth+.23,{map:l,mapTop:y,mapLine:b}}createProvinceMaterial(){let i=new Go({color:16777215,transparent:!0,opacity:0,fog:!1,side:rt});i.onBeforeCompile=l=>{l.uniforms=z(R({},l.uniforms),{uColor1:{value:new pe(2780818)},uColor2:{value:new pe(1058614)}}),l.vertexShader=l.vertexShader.replace("void main() {",` attribute float alpha; varying vec3 vPosition; varying float vAlpha; @@ -112,4 +112,4 @@ var $i=Object.defineProperty,Di=Object.defineProperties;var zi=Object.getOwnProp
    - `,new ee(A,-k,i.depth+1.9)),S.setLabelStyle(P,.015,"x"),P.setParent(L),P.visible=!1,P}}emitTownClick(i={},r="region"){var l,m;const c=i.name||i.fullName;c&&((m=(l=this.options)==null?void 0:l.onTownClick)==null||m.call(l,z(R({},i),{name:c,source:r})))}setSceneMode(i="default"){this.sceneMode=i,this.applySceneMode()}setDataOverlaysVisible(i=!0){this.showDataOverlays=!!i,this.applySceneMode()}updateTownLabelVisibility(){const i=new Set((this.allProvinceLabel||[]).map(c=>{var l;return(l=c==null?void 0:c.userData)==null?void 0:l.name}).filter(Boolean)),r=this.showDataOverlays&&this.sceneMode!=="trade";(this.otherLabel||[]).forEach(c=>{var l;((l=c==null?void 0:c.userData)==null?void 0:l.labelType)==="town-label"&&(c.visible=!(r&&i.has(c.userData.name)))})}applySceneMode(){var r,c,l,m;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(r=this.allProvinceLabel)==null||r.forEach(y=>{y.visible=!1}),(c=this.allGuangquan)==null||c.forEach(y=>{y.visible=!1}),this.updateTownLabelVisibility();return}const i=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=i||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=i||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(i?7534280:2781042),this.flyLineMaterial.opacity=i?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(i?.32:.5,i?3:2),this.scatterGroup&&(this.scatterGroup.visible=!i&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!i&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!i),(l=this.allProvinceLabel)==null||l.forEach(y=>{y.visible=!i}),(m=this.allGuangquan)==null||m.forEach(y=>{y.visible=!i}),this.updateTownLabelVisibility()}createInfoPointLabelLoop(){var i;this.scenePaused||!((i=this.infoLabelElement)!=null&&i.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((r,c)=>{this.infoPointIndex===c?r.visible=!0:r.visible=!1})},3e3))}createStorke(){const i=this.staticMapData.mapStroke,r=this.assets.instance.getResource("pathLine3");r.wrapS=r.wrapT=Se,r.repeat.set(2,1);let c=new Aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,this.depth+.24),data:i,material:new se({color:2868444,map:r,alphaMap:r,fog:!1,transparent:!0,opacity:1,blending:Me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{r.offset.x+=.005})}geoProjection(i){return this.geoProjectionFn(i)}updateTownLabelScale(){var b,p,S;const i=this.otherLabel||[],r=(b=this.camera)==null?void 0:b.instance,c=(S=(p=this.camera)==null?void 0:p.controls)==null?void 0:S.target;if(!i.length||!r||!c)return;const l=r.position.distanceTo(c),m=vs(l*72e-5,.011,.026),y=l>45?"0.76":l<22?"0.94":"1";i.forEach(L=>{var A,k,C;if(((A=L==null?void 0:L.userData)==null?void 0:A.labelType)!=="town-label")return;L.scale.set(m,m,m);const P=(C=(k=L.element)==null?void 0:k.querySelector)==null?void 0:C.call(k,".other-label");P&&(P.style.opacity=y)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var i,r;this.scenePaused=!0,(r=(i=this.time)==null?void 0:i.pause)==null||r.call(i),this.sceneTweens.forEach(c=>{var l;return(l=c==null?void 0:c.pause)==null?void 0:l.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var i,r,c;this.scenePaused=!1,(r=(i=this.time)==null?void 0:i.resume)==null||r.call(i),this.sceneTweens.forEach(l=>{var m;return(m=l==null?void 0:l.resume)==null?void 0:m.call(l)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(i=>clearTimeout(i)),this.sceneTimers=[],this.sceneTweens.forEach(i=>{var r;return(r=i==null?void 0:i.kill)==null?void 0:r.call(i)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const ws={class:"map"},xs={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(T,{expose:i,emit:r}){const c=O(null),l=Wi(null),m=T,y=r;let b=!1;an(()=>{A()});function p(k){var C,F,H,B;l.value||!c.value||(l.value=new bs(c.value,k,{showDataOverlays:m.showDataOverlays,maxPixelRatio:m.maxPixelRatio||void 0,onTownClick:j=>y("town-click",j),onPlayComplete:()=>y("play-complete")}),(F=(C=l.value).setSceneMode)==null||F.call(C,m.sceneMode),(B=(H=l.value).setDataOverlaysVisible)==null||B.call(H,m.showDataOverlays),l.value.time.pause())}function S(){return re(this,null,function*(){var k,C,F,H;l.value&&(L(),!(b||l.value.mapAnimationDone)&&(b=!0,(C=(k=l.value.animateTl)==null?void 0:k.timeScale)==null||C.call(k,1),(H=(F=l.value.animateTl)==null?void 0:F.play)==null||H.call(F)))})}function L(){var k,C;l.value&&((C=(k=l.value).resumeScene)==null||C.call(k),l.value.resumeScene||l.value.time.resume())}function P(){var k,C,F,H,B,j;l.value&&((C=(k=l.value.animateTl)==null?void 0:k.pause)==null||C.call(k),(H=(F=l.value).pauseScene)==null||H.call(F),l.value.pauseScene||(j=(B=l.value.time)==null?void 0:B.pause)==null||j.call(B))}function A(){var k,C;(C=(k=l.value)==null?void 0:k.destroy)==null||C.call(k),l.value=null}return i({loadMap:p,play:S,resume:L,pause:P,destroyMap:A,canvasMap:l}),Ct(()=>m.sceneMode,k=>{var C,F;(F=(C=l.value)==null?void 0:C.setSceneMode)==null||F.call(C,k)},{immediate:!0}),Ct(()=>m.showDataOverlays,k=>{var C,F;(F=(C=l.value)==null?void 0:C.setDataOverlaysVisible)==null||F.call(C,k)}),(k,C)=>(I(),E("div",ws,[M("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Ss=""+new URL("flyline6-525edf67-balabala-1785726778446.png",import.meta.url).href;class Ms{constructor(i={}){this.options=i||{},this.init()}init(){this.instance=new Or,this.instance.addLoader(yr,"FileLoader");const i={type:"File",name:"china",path:La(Zi)},r=[{type:"File",name:"mapJson",path:La(Xi)},{type:"File",name:"mapStroke",path:La(er)},{type:"Texture",name:"rotationBorder1",path:Br},{type:"Texture",name:"rotationBorder2",path:Rr},{type:"Texture",name:"chinaBlurLine",path:Hr},{type:"Texture",name:"ocean",path:Gr},{type:"Texture",name:"side",path:$r},{type:"Texture",name:"pathLine3",path:Dr}],c=[{type:"Texture",name:"flyline",path:Yo},{type:"Texture",name:"pathLine",path:Yo},{type:"Texture",name:"pathLine2",path:zr},{type:"Texture",name:"huiguang",path:Vr},{type:"Texture",name:"guangquan1",path:Qo},{type:"Texture",name:"guangquan2",path:jr},{type:"Texture",name:"flyLineFocus",path:Qo},{type:"Texture",name:"mapFlyline",path:Ss},{type:"Texture",name:"arrow",path:Wr},{type:"Texture",name:"point",path:Ur},{type:"Texture",name:"focusArrows",path:Kr},{type:"Texture",name:"focusBar",path:qr},{type:"Texture",name:"focusBg",path:Yr},{type:"Texture",name:"focusMidQuan",path:Qr},{type:"Texture",name:"focusMoveBg",path:Jr}],l=this.options.showDataOverlays===!1?r:[i,...r,...c];this.instance.loadAll(l)}}const ks={class:"home-dashboard"},Ps={class:"home-bottom-switcher"},Cs={class:"home-left"},Ls={class:"home-side-stack is-left"},Ts={class:"home-right"},As={class:"home-side-stack is-right"},Is=["aria-label","onClick"],Ns={key:0,class:"home-video-monitor"},_s=["disabled"],Fs=["data-video-index","onClick","onKeydown"],Es={key:0,class:"home-video-loading"},Os={key:1,class:"home-video-error"},Bs=["onClick"],Rs={class:"home-video-point-name"},Hs=["disabled"],Gs={key:1,class:"home-forecast-trend-card"},$s={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},Ds=["onClick"],zs={key:3,class:"home-balance-gauge-grid"},Vs={key:0,class:"home-balance-empty","aria-live":"polite"},js={class:"home-balance-gauge-head"},Ws={class:"home-balance-gauge-ring"},Us={class:"home-balance-gauge-value"},Ks={class:"home-balance-gauge-name"},qs={class:"home-balance-gauge-extra"},Ys=["data-monitoring-updated-at"],Qs={class:"home-more-dialog-head"},Js={key:0,class:"home-video-modal-grid"},Zs=["data-video-index","onClick","onKeydown"],Xs={key:0,class:"home-video-loading"},el={key:1,class:"home-video-error"},tl=["onClick"],al={class:"home-video-point-name"},ol={key:1,class:"home-more-empty"},nl={key:2,class:"home-more-pager"},il=["disabled"],rl=["disabled"],sl={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},ll={class:"home-more-dialog home-balance-dialog"},ul={class:"home-more-dialog-head"},cl={class:"home-balance-modal-grid"},dl={class:"home-balance-modal-title"},fl={class:"home-balance-modal-value"},hl="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",ml=4,en=6e4,pl=15e3,tn=1e4,Ba="#ffffff",Ge="#ffffff",Ce="rgba(246, 253, 255, 0.92)",nt="rgba(242, 253, 255, 0.9)",Pt="rgba(218, 250, 255, 0.28)",gl=12e3,yl=9,$e="home-3d",it=9,Dl={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(T,{expose:i,emit:r}){const l=JSON.parse(ds).records||[],m=new Map(l.map(e=>[Number(e.matchedPointNo||e.markerNo||0),e]).filter(([e])=>Number.isFinite(e)&&e>0)),y=Co(l,e=>Lo(e.town,e.village)),b=Co(l,e=>St(e.town)),p={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},S=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),L=T,P=r,A=O(null),k=O(null),C=O(null),F=O(null),H=new Map,B=O({}),j=new Map;let G=!1,Lt=!1,Tt=null,lt=null;const J=new Map,ke=new Map,Qt=new Set,Jt=new Map;let Ie=null,ut="",Ra=!1,ct=null,At=!1,dt=0,ze=0,ft=null,le=null,ht=!1,Zt=!1,mt=0;const Ne=new Map,ue=O(0),ae=O([]),Ha=O(""),Xt=O(0),ce=O(0),Z=O(!1),oe=O(1),pt=O(!1),de=O(null),ea=O(!1),It=O(Fa.filter(e=>["county","town"].includes(e.type))),ta=O(!1),aa=O(""),oa=O("month"),na=O(!1),Ga=O(!1),U=O(""),nn=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=Yi({}),rn=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],$a=jo.sideCardWidth,Da=O(typeof window=="undefined"?1080:window.innerHeight);jo.sideCardGap;const Ve=N(()=>vr(Da.value)),Nt=N(()=>Ve.value),sn=Nt,ln=Lr("2028"),ia=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],_t=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92},{key:"pasture",name:"家庭牧场",color:"#30DCFF",width:112}],un={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},za={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},K=O($e),ne=O(null),je=O(!1),We=O(!1),ye=O(null),ie=N(()=>K.value!==$e),cn=N(()=>L.active&&!ie.value),Va=N(()=>{var d,f,w;const e=K.value,t=za[e];if(!t)return null;const a=_r.find(g=>g.key===t.topicKey),o=fi(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const n=un[e],s=t.legendKey?(o.legends||[]).find(g=>g.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(g=>(o.legends||[]).find(v=>v.key===g)).filter(Boolean):[];return t.type==="vector"?z(R({},o),{activeLegend:s||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=_t.find(g=>g.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(f=t.opacity)!=null?f:o.opacity,homePresentationMaxOpacity:(w=t.opacity)!=null?w:.96,showPointLabels:!1,hidePointFeatures:!1}):n?z(R({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:n.opacity,homePresentationMaxOpacity:n.maxOpacity,softMask:!1,homeGlowColor:n.glowColor,homeGlowBlur:n.glowBlur,homeGlowOpacity:n.glowOpacity,sldBody:hi(o.layerName,n)}):null}),ra=N(()=>!!ye.value),dn=as,ja=N(()=>ts({point:ye.value?pi(ye.value):null,rowCount:ne.value?Wa.value.length||Sa(ne.value):0,loading:We.value,empty:je.value||!ne.value})),fn=N(()=>ja.value.height),hn=N(()=>ja.value.style),mn=N(()=>{var t;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情",yak:"牦牛识别详情",pasture:"家庭牧场详情"}[K.value]||`${((t=_t.find(a=>a.key===K.value))==null?void 0:t.name)||"地图"}详情`}),Wa=N(()=>{var t;if(K.value!=="pasture")return[];const e=((t=ne.value)==null?void 0:t.properties)||{};return yi(e)?vi(e,ne.value):[]}),Ua=N(()=>Vt(Na.length)),Ue=N(()=>Vt(Yt.length)),Ka=N(()=>ri(oa.value)),qa=N(()=>si(ln,Ka.value.key)),gt=N(()=>Vt(qa.value.labels.length)),Ft=N(()=>It.value.filter(t=>(t==null?void 0:t.name)&&t.type==="town").map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",bearingCapacity:t.bearingCapacity,livestockCapacity:t.livestockCapacity,overloadCount:Number(t.livestockCapacity||0)-Number(t.bearingCapacity||0),extra:`理论 ${W(t.bearingCapacity)}|实际 ${W(t.livestockCapacity)}|超载 ${W(Number(t.livestockCapacity||0)-Number(t.bearingCapacity||0))}头`}))),pn=N(()=>It.value.find(e=>(e==null?void 0:e.type)==="county"&&String(e.areaCode||"")==="513233")||ss),gn=N(()=>ta.value?"正在读取最新草畜平衡数据":aa.value||"暂无草畜平衡数据"),Et=N(()=>{const e=Ft.value,t=3,a=e.length?Math.floor(ue.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,n)=>e[(a+n)%e.length])}),yn=N(()=>{const e=Et.value.length;return e?ue.value%e:0}),Ot={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ro,playUrl:"",hdPlayUrl:"",token:""};function ve(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ke=N(()=>ae.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>ve(e.live))),sa=N(()=>{const e=Ke.value;if(!e.length)return 0;const t=X(ce.value),a=e.findIndex(n=>n.index===t),o=a>=0?a:0;return pt.value||na.value||Z.value?o:(Math.floor(ue.value/ml)+o)%e.length}),D=N(()=>{var e,t;return ae.value.length?Z.value?X(ce.value):(t=(e=Ke.value[sa.value])==null?void 0:e.index)!=null?t:0:0}),vn=N(()=>ae.value[D.value]||Ot),Ya=N(()=>Fn(Ke.value,sa.value,Ot)),bn=N(()=>ae.value.filter(e=>ve(e)).length),yt=N(()=>ae.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(ve(t.live))-Number(ve(e.live))||e.index-t.index)),vt=N(()=>Math.max(1,Math.ceil(yt.value.length/it))),Qa=N(()=>{const e=(oe.value-1)*it;return yt.value.slice(e,e+it).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),wn=N(()=>us.map(e=>e.key==="today-outflow"?z(R({},e),{value:Xt.value}):e.key==="county-overload-rate"?z(R({},e),{value:pn.value.overloadRate}):e)),xn=N(()=>{const e=ei();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:ii(e,"生产力"),height:Ve.value}:null}),Sn=N(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:Nt.value,option:ni(cs,"牦牛存栏")})),Mn=N(()=>[ba(Oe("grassland","grassland-town"),"草地面积"),ba(Oe("wetland","wetland-town-area"),"湿地面积"),ba(Oe("grassland","grassland-type-proportion"),"草原类别"),xn.value].filter(Boolean).map((e,t)=>ti(e,`forest-grass-wet-${t}`))),kn=N(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:sn.value,live:vn.value},Sn.value,{key:"yak-structure",title:"畜群结构",height:Nt.value,option:Pn.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:Nt.value,max:100,rows:Et.value}]),Pn=N(()=>He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:rn,tooltip:_a(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${W(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=Na.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:Ce,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:Ge,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:Na.map((e,t)=>({name:e.name,value:e.count,selected:t===Ua.value}))}]}));N(()=>He({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:z(R({},_a()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=Yt[e[0].dataIndex];return`${t.label}
    预测存栏:${W(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:Yt.map(e=>e.shortLabel),axisLabel:{color:nt,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:nt,fontSize:10,margin:4,formatter:e=>Mo(e,1)},splitLine:{lineStyle:{color:Pt,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:Yt.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new Le(0,0,0,1,[{offset:0,color:t===Ue.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ue.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ue.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ue.value?16:8,shadowColor:t===Ue.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new Le(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:Ge,fontSize:10,formatter:({value:e})=>Mo(e)}}]})),N(()=>{const e=Ka.value,t=qa.value,a=ci(t),o=li(a.length,e.key);return He({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:z(R({},_a()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(n){var w,g,v;const s=Array.isArray(n)?n:[n],u=s.find(h=>h.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(v=(g=u==null?void 0:u.dataIndex)!=null?g:(w=s[0])==null?void 0:w.dataIndex)!=null?v:0];if(!d)return"";const f=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${W(d.close)}头`,`较上期:${di(f)}头`,`繁殖补充:${W(d.birth)}头`,`出栏扣减:${W(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:Ce,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:nt,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:nt,fontSize:10,formatter:we},splitLine:{lineStyle:{color:Pt,type:"dashed"}}},{type:"value",axisLabel:{color:Ce,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:ui(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((n,s)=>({value:n.close,symbolSize:s===gt.value?7:3,itemStyle:{color:s===gt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},So("繁殖补充",t.births,"#8bf7ff",1,!1,gt.value),So("出栏扣减",t.outflow,"#48cfff",1,!1,gt.value)]})}),Ui(()=>{wa(),window.addEventListener("resize",wa),window.addEventListener("keydown",Po),document.addEventListener("pointerdown",_o,!0),document.addEventListener("click",go,!0),io(),ho(),la()}),an(()=>{var e,t,a,o;G=!0,mt+=1,window.removeEventListener("resize",wa),window.removeEventListener("keydown",Po),document.removeEventListener("pointerdown",_o,!0),document.removeEventListener("click",go,!0),Wt(),bo(),be(),ro(),ca(),fa(),j.clear(),(t=(e=A.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=k.value)==null?void 0:a.destroyMap)==null||o.call(a),An()}),Ct(D,()=>{if(!Z.value){if(!na.value&&!Ga.value&&!J.size){U.value="";return}be({resetError:!0})}}),Ct(K,e=>{var t,a;if(he(),e===$e){(a=(t=A.value)==null?void 0:t.pause)==null||a.call(t),Y(()=>{Bt(),_e()});return}Xa(),Y(()=>{var o,n;(n=(o=A.value)==null?void 0:o.resume)==null||n.call(o)})}),Ct(()=>L.active,e=>{var t,a;e?(la(),In(),oo(),ho(),Ra?Rt(0):to()):(Lt=!1,(a=(t=A.value)==null?void 0:t.pause)==null||a.call(t),Xa(),ca(),fa(),be({resetError:!0}),Gt(),$t())});function la(){Lt=!1,P("loading-progress",{progress:0}),Y(()=>{var e,t,a,o;if(ie.value){(t=(e=A.value)==null?void 0:e.hasMap)!=null&&t.call(e)?qe():(o=(a=A.value)==null?void 0:a.loadMap)==null||o.call(a);return}Bt()})}function Bt(){if(!(G||!L.active||ie.value)){if(eo()){_e(),qe();return}if(Zt){Za();return}ht||(ht=!0,le=new Ms({showDataOverlays:!1}),le.instance.on("onProgress",Cn),le.instance.on("onLoad",Ja),le.instance.on("onError",Ln),le.instance.loaded&&Ja())}}function Cn(e,t,a){if(G||ie.value)return;const o=Math.max(1,Number(a)||1),n=Math.max(0,Number(t)||0);P("loading-progress",{progress:Math.min(98,Math.floor(n/o*92))})}function Ja(){G||(ht=!1,Zt=!0,P("loading-progress",{progress:96}),Y(Za))}function Ln(e){ht=!1,console.warn("[home] 3D map assets load failed",e),qe()}function Za(){var e,t,a,o;G||!L.active||ie.value||!le||((t=(e=k.value)==null?void 0:e.loadMap)==null||t.call(e,le),_e(),(o=(a=k.value)==null?void 0:a.play)==null||o.call(a),qe())}function _e(){var a,o,n,s,u,d,f,w;const e=k.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=eo();(n=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||n.call(o),(s=t==null?void 0:t.resize)==null||s.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(w=(f=t==null?void 0:t.label3d)==null?void 0:f.update)==null||w.call(f)}function Xa(){var e,t;(t=(e=k.value)==null?void 0:e.pause)==null||t.call(e)}function eo(){var t;const e=(t=k.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Tn(){ie.value||qe()}function An(){var e,t;(t=(e=le==null?void 0:le.instance)==null?void 0:e.destroy)==null||t.call(e),le=null,ht=!1,Zt=!1}function qe(){G||Lt||(Lt=!0,P("loading-progress",{progress:100}),P("map-ready"),to())}function ua(e={}){var t,a,o,n,s,u,d,f,w;if(!ie.value){_e();return}if((a=(t=A.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(n=(o=A.value)==null?void 0:o.resetView)==null||n.call(o),(s=A.value)!=null&&s.resetView||(d=(u=A.value)==null?void 0:u.refreshView)==null||d.call(u);return}(w=(f=A.value)==null?void 0:f.refreshView)==null||w.call(f)}function In(){K.value!==$e&&!za[K.value]&&(K.value=$e);const e=()=>{if(!(G||!L.active)){if(ie.value){ua({reset:!0});return}Bt(),_e()}};Y(()=>{e(),window.setTimeout(e,180)})}function Nn(){var e,t;if(he(),!ie.value){_e();return}if((t=(e=A.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ua({reset:!0});return}la(),Y(()=>{var a,o;(o=(a=A.value)==null?void 0:a.resume)==null||o.call(a)})}function _n(){if(he(),K.value===$e){Y(()=>{Bt(),_e()});return}K.value=$e}i({refreshMapView:ua,resetMap:Nn,showDefaultThreeMap:_n});function to(){ca();const e=()=>{Ie=null,ut="",!(G||!L.active)&&(Ra=!0,Xn(),so(),En(),L.active&&oo())};if(typeof window.requestIdleCallback=="function"){ut="idle",Ie=window.requestIdleCallback(e,{timeout:1800});return}ut="timeout",Ie=window.setTimeout(e,650)}function ca(){Ie&&(ut==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Ie):window.clearTimeout(Ie),Ie=null,ut="")}function da(e,t){e&&(t?j.set(e,t):j.delete(e))}function ao(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?H.set(a,e):H.delete(a)),t!=null&&t.isActive&&(C.value=e||null)}function Fn(e=[],t=0,a=Ot){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const n=(t+o.length)%o.length,s=o[n],u=(s==null?void 0:s.live)||s||a,d=Number.isFinite(Number(s==null?void 0:s.index))?Number(s.index):n;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function oo(){!L.active||G||(fa(),Tt=window.setInterval(no,2600),lt=window.setTimeout(no,800))}function fa(){Tt&&(window.clearInterval(Tt),Tt=null),lt&&(window.clearTimeout(lt),lt=null)}function no(){G||!L.active||(lt=null,ue.value+=1,Qn(),Jn(),Zn())}function io(){P("module-stats",{moduleKey:"home",items:wn.value})}function En(){return re(this,null,function*(){var t,a;const e=On(new Date);try{const o=yield is({year:Number(e.slice(0,4)),startDate:e,endDate:e}),n=(o==null?void 0:o.metrics)||{},s=Number((a=(t=n.headCount)!=null?t:n.head_count)!=null?a:0);Xt.value=Number.isFinite(s)?s:0}catch(o){Xt.value=0}G||io()})}function On(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function Rt(e=en){ro(),!(G||!L.active)&&(ct=window.setTimeout(()=>{if(ct=null,!(G||!L.active)){if(At){Rt(tn);return}so()}},Math.max(0,Number(e)||0)))}function ro(){ct&&(window.clearTimeout(ct),ct=null)}function so(){return re(this,null,function*(){if(At){Rt(tn);return}At=!0;let e=en;try{const t=yield Qi({includeOffline:!0,includeHidden:!0});if(G)return;Rn(t)}catch(t){if(G)return;e=pl,ae.value.length||(U.value="监控接口暂不可用"),window.setTimeout(()=>{G||U.value==="监控接口暂不可用"&&(U.value="")},2400)}finally{At=!1,G||Rt(e)}})}function Pe(e){return String((e==null?void 0:e.key)||(e==null?void 0:e.device)||(e==null?void 0:e.title)||"").trim()}function Bn(e=[],t=[]){const a=new Map;t.forEach(s=>{const u=Pe(s);u&&!a.has(u)&&a.set(u,s)});const o=[],n=new Set;return e.forEach(s=>{const u=Pe(s),d=u?a.get(u):null;!d||n.has(u)||(o.push(d),n.add(u))}),t.forEach(s=>{const u=Pe(s);u&&n.has(u)||(o.push(s),u&&n.add(u))}),o}function Rn(e=[]){const t=ae.value,a=D.value,o=Pe(t[a]),n=t.filter(ve).map(Pe),s=Bn(t,Array.isArray(e)?e:[]),u=t.some((v,h)=>Pe(v)!==Pe(s[h])),d=s.filter(ve).map(Pe),f=n.length!==d.length||n.some((v,h)=>v!==d[h]);u?be({resetError:!0}):t.forEach((v,h)=>{if(!J.has(String(h))&&!ge[String(h)])return;const x=s[h];(!x||!ve(x))&&Ze(h,{resetError:!0})}),ae.value=s,Ha.value=new Date().toISOString();let w=o?s.findIndex(v=>Pe(v)===o):-1;if(w<0||!ve(s[w])?(w=s.findIndex(v=>ve(v)),ce.value=Math.max(0,w),pt.value=!1,ue.value=0):!Z.value&&(f||u)?(ce.value=w,ue.value=0):Z.value&&(ce.value=w),s.filter(v=>ve(v)).length?["暂无在线可播放摄像头","监控接口暂不可用"].includes(U.value)&&(U.value=""):(be({resetError:!0}),U.value="暂无在线可播放摄像头"),Z.value){const v=yt.value.findIndex(h=>h.index===ce.value);oe.value=Math.floor(Math.max(0,v)/it)+1}else oe.value=Math.min(oe.value,vt.value)}function X(e){const t=ae.value.length;return t?((Number(e)||0)+t)%t:0}function fe(e){return String(X(e))}function lo(e){const t=fe(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function bt(e){return ge[fe(e)]||{}}function wt(e){return`${nn}-${fe(e)}`}function ha(e){return!!bt(e).playing}function Ht(e){return!!bt(e).loading}function Ye(e){const t=bt(e).error;return t||(X(e)===D.value?U.value:"")}function uo(e){const t=bt(e);return!!(t.playing||t.loading)}function Fe(){const e=Object.values(ge);na.value=e.some(t=>t.playing),Ga.value=e.some(t=>t.loading)}function co(e,t=!0,a=D.value){const o=(e==null?void 0:e.image)||Ro;return ha(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function Hn(){mo(-1)}function Gn(){mo(1)}function $n(){const e=D.value;be({resetError:!0}),ce.value=e,pt.value=!0,ue.value=0;const t=yt.value.findIndex(a=>a.index===e);oe.value=Math.floor(Math.max(0,t)/it)+1,Z.value=!0,Y(()=>pa())}function Gt(){Z.value&&(be({resetError:!0}),Z.value=!1)}function fo(e){var o,n;const t=Math.max(1,Math.min(vt.value,Number(e)||1));if(t===oe.value)return;be({resetError:!0}),oe.value=t;const a=(t-1)*it;ce.value=(n=(o=yt.value[a])==null?void 0:o.index)!=null?n:0,Y(()=>pa())}function Dn(){ea.value=!0}function ho(){return re(this,null,function*(){const e=++mt;ta.value=!0,aa.value="";try{const t=yield rs();if(G||e!==mt)return;const a=new Map;t.forEach(o=>{const n=ls(o,o);if(!["county","town"].includes(n.type)||!n.name)return;const s=n.areaCode||n.key||n.name;a.set(String(s),n)}),Fa.filter(o=>["county","town"].includes(o.type)).forEach(o=>{const n=String(o.areaCode||o.key||o.name);a.has(n)||a.set(n,R({},o))}),It.value=[...a.values()].sort((o,n)=>String(o.areaCode||o.name).localeCompare(String(n.areaCode||n.name),"zh-CN"))}catch(t){if(G||e!==mt)return;console.warn("[home] balance rows unavailable",t),It.value=Fa.filter(a=>["county","town"].includes(a.type)),aa.value=""}finally{!G&&e===mt&&(ta.value=!1)}})}function $t(){ea.value=!1}function mo(e){var n,s;const t=Ke.value,a=t.length;if(!a)return;be({resetError:!0});const o=sa.value;ce.value=(s=(n=t[(o+e+a)%a])==null?void 0:n.index)!=null?s:0,pt.value=!0,ue.value=0}function Ee(e){if(!ae.value.length){Un();return}const a=X(e),o=fe(a),n=bt(a);if(ce.value=a,pt.value=!0,ue.value=0,Qt.has(o)||J.has(o)||(n.playing||n.loading)&&!n.error){Je(a);return}Qt.add(o),Y(()=>re(this,null,function*(){try{yield vo(a,{stopOthers:!Z.value})}finally{Qt.delete(o)}}))}function po(e,t){Vn(t==null?void 0:t.target)||Ee(e)}function go(e){var n,s,u,d,f,w,g,v,h,x;const t=((s=(n=e==null?void 0:e.target)==null?void 0:n.closest)==null?void 0:s.call(n,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(_=>String((_==null?void 0:_.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((w=(f=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:f.dataset)==null?void 0:w.videoIndex),o=(g=de.value)!=null?g:Number.isFinite(a)?a:D.value;(v=e.preventDefault)==null||v.call(e),(h=e.stopPropagation)==null||h.call(e),(x=e.stopImmediatePropagation)==null||x.call(e),zn(o)}function zn(e){return re(this,null,function*(){var n,s;const t=X(e);if(de.value===t){Dt();return}de.value!==null&&Dt();const a=document.getElementById(`${wt(t)}-wrap`);if(!a)return;de.value=t,yield Y();const o=(s=(n=F.value)==null?void 0:n.querySelector)==null?void 0:s.call(n,".home-video-web-player-slot");if(!o){de.value=null;return}o.appendChild(a),Je(t),Qe(t)})}function Dt(e={}){var n;const{restore:t=!0}=e,a=de.value;if(a===null)return;const o=document.getElementById(`${wt(a)}-wrap`);if(t&&o){const s=zt(a)||C.value,u=(n=s==null?void 0:s.querySelector)==null?void 0:n.call(s,".home-video-player-host");u&&u.appendChild(o)}de.value=null,t&&Y(()=>{Je(a),Qe(a)})}function Vn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function jn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...Ft.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function Wn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function yo(e){return{"--balance-color":Wn(e),"--balance-progress":`${jn(e)}%`}}function Un(){return re(this,null,function*(){return vo(D.value,{stopOthers:!Z.value})})}function vo(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,n=X(e),s=ae.value[n]||Ot,u=fe(n);let d=lo(n);if((s==null?void 0:s.status)!=="直播中"||!(s!=null&&s.hdPlayUrl)||!(s!=null&&s.token)){d.error=(s==null?void 0:s.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,n===D.value&&(U.value=d.error),Fe();return}if(J.has(u)||(d.playing||d.loading)&&!d.error)return;ce.value=n,ue.value=0,o?be({resetError:!0}):(J.has(u)||d.loading)&&Ze(n,{resetError:!0}),d=lo(n),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,n===D.value&&(U.value=""),Fe(),yield Y();const f=(ke.get(u)||0)+1;ke.set(u,f);let w=null;qn(n,f);try{const g=zt(n)||C.value,v=wt(n);if(!Kn(g,v))throw new Error("视频容器未就绪");const{width:h,height:x}=wo(g,340,92);if(w=new Ji.EZUIKitPlayer({id:v,accessToken:s.token,url:s.hdPlayUrl,audio:0,width:h,height:x,themeData:Yn(),handleError(_){f===ke.get(u)&&(xt(n),console.warn("EZUIKit player error",_),ga(w),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,ke.set(u,f+1),J.delete(u),ya(n),n===D.value&&(U.value=d.error),Fe())},handleSuccess(){f===ke.get(u)&&(xt(n),d.error="",d.ready=!0,d.loading=!1,n===D.value&&(U.value=""),Je(n),Qe(n),ma(v),Fe())},fullScreenChangeCallBack(){}}),f!==ke.get(u)){ga(w),ya(n);return}J.set(u,w),d.playing=!0,Fe(),Y(()=>{Je(n),Qe(n),ma(v)})}catch(g){xt(n),console.warn("EZUIKit init error",g),d.error="视频加载失败",n===D.value&&(U.value=d.error),Ze(n,{resetError:!1})}})}function ma(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function Qe(e=D.value,t=0){if(typeof window=="undefined")return;const a=X(e),o=fe(a),n=Ne.get(o);t===0&&n&&window.cancelAnimationFrame(n);const s=window.requestAnimationFrame(()=>{Je(a),t<8?Qe(a,t+1):Ne.delete(o)});Ne.set(o,s)}function bo(e){if(typeof window!="undefined"){if(e!==void 0){const t=fe(e),a=Ne.get(t);a&&window.cancelAnimationFrame(a),Ne.delete(t);return}Ne.forEach(t=>window.cancelAnimationFrame(t)),Ne.clear()}}function pa(){Array.from(J.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&Qe(t)})}function wo(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),n=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,s=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(n||1)),height:Math.max(1,Math.floor(s||1))}}function zt(e=D.value){if(typeof document=="undefined")return null;const t=X(e),a=Z.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const n=H.get(t);return n!=null&&n.isConnected?n:null}function Kn(e,t){var n;const a=(n=e==null?void 0:e.querySelector)==null?void 0:n.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function Je(e=D.value){var et,tt;if(typeof document=="undefined")return;const t=X(e),a=fe(t),o=wt(t),n=de.value===t&&F.value?F.value:zt(t)||C.value,s=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=s||u;if(!n||!d)return;const{width:f,height:w}=wo(n),g=J.get(a);try{s&&u&&g&&typeof g.reSize=="function"?g.reSize(f,w):s&&u&&g&&typeof g.autoResize=="function"&&g.autoResize()}catch(q){console.warn("EZUIKit resize failed",q)}const v={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${f}px`,height:`${w}px`};Object.assign(d.style,v,{display:"block",verticalAlign:"top"}),s&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const h=document.getElementById(`EZUIKitPlayer-${o}`);h&&(h.setAttribute("width",String(f)),h.setAttribute("height",String(w)));const x=document.getElementById(`${o}-player`),_=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),me=[d,u,x,_==null?void 0:_.parentElement,_,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from(((et=d==null?void 0:d.querySelectorAll)==null?void 0:et.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((tt=u==null?void 0:u.querySelectorAll)==null?void 0:tt.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),h].filter(Boolean);Array.from(new Set(me)).forEach(q=>{var Mt,Ut;(Mt=q.setAttribute)==null||Mt.call(q,"width",String(f)),(Ut=q.setAttribute)==null||Ut.call(q,"height",String(w)),Object.assign(q.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),ma(o)}function be(e={}){Array.from(J.keys()).forEach(t=>{Ze(Number(t),e)}),Object.keys(ge).forEach(t=>{J.has(t)||Ze(Number(t),e)}),Fe()}function Ze(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,n=X(e),s=fe(n);bo(n),xt(n);const u=J.get(s);J.delete(s),ke.set(s,(ke.get(s)||0)+1),u&&ga(u),a&&ya(n);const d=ge[s];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[s]),n===D.value&&o&&(U.value=""),Fe()}function qn(e,t){const a=X(e),o=fe(a);xt(a);const n=window.setTimeout(()=>{const s=ge[o];t!==ke.get(o)||!(s!=null&&s.loading)||(s.error="视频加载超时",a===D.value&&(U.value=s.error),Ze(a,{resetError:!1}))},gl);Jt.set(o,n)}function xt(e){const t=fe(e),a=Jt.get(t);a&&(window.clearTimeout(a),Jt.delete(t))}function ga(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function ya(e=D.value){var d;if(typeof document=="undefined")return;const t=X(e),a=wt(t),o=document.getElementById(`${a}-wrap`),n=document.getElementById(a),s=zt(t)||C.value,u=(d=s==null?void 0:s.querySelector)==null?void 0:d.call(s,".home-video-player-host");de.value===t&&Dt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),n!=null&&n.isConnected&&n.remove()}function Yn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function Qn(){const e=j.get("yak-structure");va(e,"畜群结构",Ua.value)}function Jn(){const e=j.get("yak-three-year-forecast");va(e,"预测存栏",Ue.value)}function Zn(){const e=j.get("yak-forecast-trend");va(e,"预测存栏",gt.value)}function va(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function Vt(e){return e?ue.value%e:0}function Xn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Zo("grassland","grassland-distribution"),Zo("wetland","wetland-distribution")]);G||(B.value={grassland:e,wetland:t})})}function Oe(e,t){const a=B.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(n=>(n==null?void 0:n.key)===t)}function ba(e,t){return e?z(R({},e),{title:t}):null}function ei(){var w,g,v,h;const e=((w=Oe("grassland","grassland-town"))==null?void 0:w.rows)||[],t=((g=Oe("wetland","wetland-town-area"))==null?void 0:g.rows)||[],a=((v=Oe("grassland","grassland-productivity-town"))==null?void 0:v.rows)||[],o=((h=Oe("wetland","wetland-mu-yield"))==null?void 0:h.rows)||[],n=jt(e),s=jt(t),u=jt(a),d=jt(o);return[...new Set([...e,...t,...a,...o].map(x=>x==null?void 0:x.name).filter(Boolean))].map((x,_)=>{const $=n.get(x)||0,me=s.get(x)||0,Xe=u.get(x)||0,et=d.get(x)||0;let tt=0,q=0;$>0&&Xe>0&&(tt+=$*Xe,q+=$),me>0&&et>0&&(tt+=me*et,q+=me);const Mt=[Xe,et].filter(ka=>ka>0),Ut=q>0?tt/q:Mt.reduce((ka,Gi)=>ka+Gi,0)/Math.max(Mt.length,1);return{key:`home-pasture-productivity-${x}`,name:x,value:Number(Ut.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:_}}).filter(x=>x.value>0)}function jt(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function ti(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value,option:ai(e,e.title)}):a.includes("wetland-town-area")?z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value,option:oi(e,e.title)}):a.includes("grassland-type-proportion")?z(R({},e),{key:`home-${t}-${e.key}`,fixedActiveIndex:!0,height:Ve.value}):z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value})}function ai(e,t,a={}){var w;const o=(e.rows||[]).filter(g=>Number.isFinite(Number(g.value))).slice(0,10),n=((w=o.find(g=>g.unit))==null?void 0:w.unit)||"万亩",s=o.map(g=>Number(g.value)||0),u=Math.max(...s,1),d=Math.ceil(u*1.14),f=a.showTrendLine===!0;return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${n}`,left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var _;const v=Array.isArray(g)?g:[g],h=v.find($=>$.seriesName===t)||v[0],x=o[(_=h==null?void 0:h.dataIndex)!=null?_:0];return x?`${x.name}
    ${t}:${W(x.value)}${x.unit||n}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(g=>g.name),axisLabel:{interval:0,hideOverlap:!1,color:Ba,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:ko},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(g=>g.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Pt,opacity:1,width:.3}},axisLabel:{color:nt,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:7,stack:"b",z:3,data:o.map(g=>Number(g.value)||0),label:{show:!0,position:"top",distance:9,color:Ge,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},itemStyle:{borderRadius:2,color:new Le(0,0,0,1,[{offset:0,color:"#43d9e8"},{offset:.58,color:"rgba(67, 217, 232, 0.72)"},{offset:1,color:"rgba(67, 217, 232, 0.16)"}])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:"rgba(67, 217, 232, 0.18)"}}},...f?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:s,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:Ge,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],{type:"bar",barWidth:18,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:"rgba(67, 217, 232, 0.3)",opacity:.08},tooltip:{show:!1},z:0}]})}function oi(e,t){var d;const a=(e.rows||[]).filter(f=>Number.isFinite(Number(f.value))).sort((f,w)=>(Number(w.value)||0)-(Number(f.value)||0)).slice(0,10),o=((d=a.find(f=>f.unit))==null?void 0:d.unit)||"万亩",n=a.map(f=>Number(f.value)||0),s=Math.max(...n,1),u=Math.ceil(s*1.2);return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${o}`,left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.08}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(f){var h;const w=Array.isArray(f)?f:[f],g=w.find(x=>x.seriesName===t)||w[0],v=a[(h=g==null?void 0:g.dataIndex)!=null?h:0];return v?`${v.name}
    ${t}:${W(v.value)}${v.unit||o}`:""}},grid:{left:58,right:74,top:42,bottom:14,containLabel:!1},xAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{show:!1},splitLine:{show:!0,lineStyle:{color:Pt,type:[2,4],width:.3}}},yAxis:{type:"category",inverse:!0,data:a.map(f=>f.name),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:Ba,fontSize:10,fontWeight:700,margin:8}},series:[{name:"背景",type:"bar",barWidth:8,barGap:"-100%",data:a.map(()=>u),itemStyle:{color:"rgba(74, 145, 165, 0.13)",borderColor:"rgba(95, 208, 235, 0.12)",borderWidth:1},emphasis:{disabled:!0},tooltip:{show:!1},z:0},{name:t,type:"bar",barWidth:8,data:n,label:{show:!0,position:"right",distance:8,color:Ge,fontSize:10,fontWeight:700,formatter:({value:f})=>`${W(f)}${o}`},itemStyle:{borderRadius:[0,5,5,0],color:new Le(0,0,1,0,[{offset:0,color:"rgba(50, 170, 255, 0.22)"},{offset:.45,color:"#35d6ff"},{offset:1,color:"#8dfbff"}])},emphasis:{itemStyle:{shadowBlur:3,shadowColor:"rgba(53, 214, 255, 0.16)"}},z:2}]})}function ni(e=[],t="数值"){var v;const a=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"],o=new Map(a.map((h,x)=>[h,x])),n=e.filter(h=>Number.isFinite(Number(h.value))).sort((h,x)=>{var _,$;return((_=o.get(h.name))!=null?_:99)-(($=o.get(x.name))!=null?$:99)}).slice(0,10),s=((v=n.find(h=>h.unit))==null?void 0:v.unit)||"头",u=n.map(h=>Number(h.value)||0),d=Math.max(...u,1),f=Math.ceil(d*1.16/1e4)*1e4,w=Vt(n.length),g=new Set(u.map((h,x)=>({value:h,index:x})).sort((h,x)=>x.value-h.value).slice(0,3).map(h=>h.index));return He({animation:!0,animationDuration:760,animationDurationUpdate:520,animationEasing:"cubicOut",title:{text:`单位:${s}`,left:12,top:8,textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.18)"}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(h){var me;const x=Array.isArray(h)?h:[h],_=x.find(Xe=>Xe.seriesName===t)||x[0],$=n[(me=_==null?void 0:_.dataIndex)!=null?me:0];return $?`${$.name}
    ${t}:${W($.value)}${$.unit||s}`:""}},grid:{left:46,right:20,top:38,bottom:28,containLabel:!1},xAxis:{type:"category",boundaryGap:!1,data:n.map(h=>h.name),axisLine:{show:!0,lineStyle:{color:"rgba(141, 251, 255, 0.32)"}},axisTick:{show:!1},axisLabel:{show:!0,interval:0,margin:8,color:Ce,fontSize:9,formatter:h=>String(h).replace(/[乡镇]$/,"")}},yAxis:{type:"value",min:0,max:f,splitNumber:4,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:Ce,fontSize:9,margin:7,formatter:h=>we(h)},splitLine:{show:!0,lineStyle:{color:"rgba(112, 209, 230, 0.25)",type:[4,4],width:.7}}},series:[{name:t,type:"line",smooth:.16,showSymbol:!0,symbol:"circle",symbolSize:(h,x)=>x.dataIndex===w?7:4,data:u,label:{show:!0,position:"top",distance:5,color:Ge,fontSize:10,fontWeight:700,formatter:({value:h,dataIndex:x})=>g.has(x)?we(h):""},lineStyle:{width:2.5,color:"#8dfbff",shadowBlur:7,shadowColor:"rgba(48, 220, 255, 0.68)"},areaStyle:{color:new Le(0,0,0,1,[{offset:0,color:"rgba(73, 241, 255, 0.72)"},{offset:.38,color:"rgba(38, 197, 235, 0.26)"},{offset:1,color:"rgba(13, 78, 111, 0.03)"}])},itemStyle:{color(h){return h.dataIndex===w?"#ffffff":"#38e6f7"},borderColor:"#8dfbff",borderWidth:1,shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.58)"},emphasis:{scale:!0,itemStyle:{color:"#ffffff",shadowBlur:5,shadowColor:"rgba(141, 251, 255, 0.2)"}},z:2}]})}function ii(e=[],t="数值"){var d;const a=e.filter(f=>Number.isFinite(Number(f.value))).slice(0,10),o=((d=a.find(f=>f.unit))==null?void 0:d.unit)||"",n=a.map(f=>Number(f.value)||0),s=Math.max(...n,1),u=Math.ceil(s*1.12);return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(f){var h;const g=(Array.isArray(f)?f:[f])[0],v=a[(h=g==null?void 0:g.dataIndex)!=null?h:0];return v?`${v.name}
    ${t}:${W(v.value)}${v.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(f=>f.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ba,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:ko}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Pt,opacity:1,width:.3}},axisLabel:{color:nt,fontSize:10,formatter:we}},series:[{name:t,data:n,type:"line",smooth:!0,symbol:hl,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:Ge,fontSize:10,fontWeight:700,formatter:({value:f})=>we(f)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new Le(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new Le(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function xo(e){return String((e==null?void 0:e.key)||"").includes("grassland-town")}function So(e,t,a,o=0,n=!1,s=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===s?10:5,itemStyle:{color:d===s?"#ffffff":a},label:{show:d===s,position:"top",color:a,fontSize:10,formatter:({value:f})=>we(f)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:n?{color:new Le(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function ri(e){return ia.find(t=>t.key===e)||ia[2]}function si(e,t="month"){if(t==="month")return Tr(e);const a=Ar(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),n=t==="week"?7:1,s=Math.ceil(o/n)+1,u=Array.from({length:s},(g,v)=>{const h=Math.min(o,v*n);return Ir(h)}),d=u.map((g,v)=>{const x=Math.min(o,v*n)/o,_=Math.sin(v/(t==="week"?1.8:8.5))*Math.sin(Math.PI*x)*Math.min(360,e.months*18);return Math.round(qo+(e.stock-qo)*x+_)}),f=u.map((g,v)=>Math.round(e.births*(Math.min(o,v*n)/o))),w=u.map((g,v)=>Math.round(e.outflow*(Math.min(o,v*n)/o)));return{labels:u,stock:d,births:f,outflow:w}}function li(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function ui(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function ci(e){return(e.labels||[]).map((t,a)=>{var g,v,h,x,_,$;const o=Number(((g=e.stock)==null?void 0:g[Math.max(a-1,0)])||0),n=Number(((v=e.stock)==null?void 0:v[a])||o),s=Math.max(0,Number(((h=e.births)==null?void 0:h[a])||0)-Number(((x=e.births)==null?void 0:x[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((_=e.outflow)==null?void 0:_[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((s+u)*.18)),f=Math.max(o,n)+Math.max(d,Math.round(s*.32)),w=Math.max(0,Math.min(o,n)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:n,low:w,high:f,birth:s,outflow:u,value:[o,n,w,f]}})}function W(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function di(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${W(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Mo(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function ko(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function fi(e){if(!e)return null;const t=Fr(e.topicKey,e.layerKey);if(t)return t;const a=Er(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function hi(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",n=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,s=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${n}${s}round`}function mi(e){_t.some(t=>t.key===e)&&(K.value=e,he())}function Po(e){if(e.key==="Escape"){if(de.value!==null){Dt();return}Gt(),$t()}}function wa(){Da.value=typeof window=="undefined"?1080:window.innerHeight,pa()}function pi(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(n)?{x:960,y:540}:o>=0&&o<=1920&&n>=0&&n<=1080&&(o>a.width||n>a.height)?{x:o,y:n}:{x:(o-a.left)/a.width*1920,y:(n-a.top)/a.height*1080}}function xa(e,t){var a,o,n,s;return((o=(a=A.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((s=(n=A.value)==null?void 0:n.getVectorFeatureScreen)==null?void 0:s.call(n,e))||t}function gi(){if(!ra.value||!ne.value)return;const e=xa(ne.value,ye.value);if(!e)return;const t=ye.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(ye.value=e)}function Sa(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>Ao(o,t[o])).length}function yi(e={}){return e.categoryCode==="YC-FAMILY-PASTURE"||e.stageKey==="family-pasture"}function vi(e={},t=null){const a=bi(e,t),o=a.metrics||{},n=a.attributes||{},s=[],u=(d,f,w="")=>{To(f)&&s.push({label:d,value:Pi(f,w)})};return u("名称",a.name||a.fullName),u("所在乡镇",a.town||a.areaName),u("户主",a.owner||n.户主),u("建设年份",a.constructionYear,"年"),u("所在村",a.village||a.address),u("标准化暖棚",o["标准化暖棚 (㎡)"],"㎡"),u("生产管理用房",o["管理用房 (㎡)"],"㎡"),u("饲草料库",o["饲草料库 (㎡)"],"㎡"),u("活动场地及通道",o["活动场地及通道 (㎡)"],"㎡"),u("草料配套",a.grassSupportText||n.草料配套),s.some(d=>d.label==="草料配套")||u("设施配置",a.facilityDetail||n.设施配置),s}function bi(e={},t=null){const a=ki(e),s=(a?m.get(a):null)||wi(e,t)||null;return z(R(R({},e),s||{}),{name:(s==null?void 0:s.name)||e.name||e.fullName,fullName:(s==null?void 0:s.name)||e.fullName||e.name,town:(s==null?void 0:s.town)||e.town||e.areaName,village:(s==null?void 0:s.village)||e.village||e.address,address:(s==null?void 0:s.village)||e.address,markerNo:a||e.markerNo})}function Co(e=[],t){const a=new Map;return e.forEach(o=>{const n=t(o);n&&(a.has(n)||a.set(n,[]),a.get(n).push(o))}),a.forEach(o=>{o.sort((n,s)=>Number(n.matchedPointNo||0)-Number(s.matchedPointNo||0))}),a}function wi(e={},t=null){const a=St(e.town||e.areaName||e.matchedPointTown),o=St(e.village||e.address||e.matchedPointVillage),n=y.get(Lo(a,o))||[],s=b.get(a)||[],u=n.length?n:s;return u.length?xi(u,Mi(e,t)):null}function xi(e=[],t=null){var a;return t?((a=e.map((o,n)=>({record:o,index:n,distance:Si(t,{longitude:Number(o.longitude),latitude:Number(o.latitude)})})).sort((o,n)=>o.distance-n.distance||o.index-n.index)[0])==null?void 0:a.record)||e[0]||null:e[0]||null}function Si(e={},t={}){const a=Number(e.longitude),o=Number(e.latitude),n=Number(t.longitude),s=Number(t.latitude);return[a,o,n,s].every(Number.isFinite)?Math.hypot(a-n,o-s):Number.POSITIVE_INFINITY}function Mi(e={},t=null){var s,u,d,f,w,g,v,h,x,_,$,me;const a=Ma((f=(d=(u=(s=e.longitude)!=null?s:e.lng)!=null?u:e.lon)!=null?d:e.jd)!=null?f:e.x,(v=(g=(w=e.latitude)!=null?w:e.lat)!=null?g:e.wd)!=null?v:e.y);if(a)return a;const o=Ma((h=t==null?void 0:t.lngLat)==null?void 0:h.lng,(x=t==null?void 0:t.lngLat)==null?void 0:x.lat);if(o)return o;const n=(t==null?void 0:t.geometry)||((_=t==null?void 0:t.feature)==null?void 0:_.geometry);return(n==null?void 0:n.type)==="Point"?Ma(($=n.coordinates)==null?void 0:$[0],(me=n.coordinates)==null?void 0:me[1]):null}function Ma(e,t){const a=Number(e),o=Number(t);return!Number.isFinite(a)||!Number.isFinite(o)?null:{longitude:a,latitude:o}}function Lo(e,t){const a=St(e),o=St(t);return a&&o?`${a}::${o}`:""}function St(e){return String(e||"").trim().replace(/\s+/g,"")}function ki(e={}){const t=Number(e.matchedPointNo||e.markerNo||0);if(Number.isFinite(t)&&t>0)return t;const o=[e.pointName,e.name,e.fullName,e.id,e.key].filter(Boolean).join(" ").match(/地图标记\s*(\d+)\s*号点/),n=o?Number(o[1]):0;return Number.isFinite(n)&&n>0?n:0}function To(e){return e!=null&&String(e).trim()!==""}function Pi(e,t=""){if(!To(e))return"";const a=String(e).trim();return t?a.endsWith(t)?a:`${a}${t}`:a}function Ao(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!S.has(String(e||"").toLowerCase())}function Io(e={}){const t=String(K.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Ci(e={}){const t=No(e.lng),a=No(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function No(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Li(){return re(this,arguments,function*(e={}){var f,w,g,v,h,x;const t=Number((f=e==null?void 0:e.lngLat)==null?void 0:f.lng),a=Number((w=e==null?void 0:e.lngLat)==null?void 0:w.lat),o=Va.value,n=Io(o);if(!Number.isFinite(t)||!Number.isFinite(a)){he();return}if(!n){Hi();return}const s=++dt,u=ze,d=e.screen||{x:960,y:540};ye.value=null,ne.value=null,je.value=!1,We.value=!0,(v=(g=A.value)==null?void 0:g.clearSelectedFeature)==null||v.call(g);try{const _=yield Ti(o,{lng:t,lat:a},n);if(s!==dt||G)return;if(!_){ze===u&&he();return}ne.value=_,je.value=!1,(x=(h=A.value)==null?void 0:h.highlightFeature)==null||x.call(h,_,{highlightTone:"v21"}),ye.value=xa(_,d)}catch(_){s===dt&&ze===u&&he()}finally{s===dt&&(We.value=!1)}})}function Ti(o,n){return re(this,arguments,function*(e,t,a=Io(e)){const s=Ci(t);if(!s)return null;let u=null;a==="grassland"?u=yield os({wkt:s}):a==="wetland"?u=yield ns({wkt:s}):a==="woodland"&&(u=yield es(s));const d=Ai(u,a);if(!Ni(d))return null;const f=Fi(d,e,t,a);return Sa(f)>0?f:null})}function Ai(e,t){var o,n,s,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(n=e==null?void 0:e.data)==null?void 0:n.grassland,(s=e==null?void 0:e.data)==null?void 0:s.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const f=Ii(d);if(f)return f}return null}function Ii(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Ni(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(_i)?!0:Object.keys(e).some(t=>Ao(t,e[t]))}function _i(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Fi(e,t,a,o){const n=Oi(e),s=Ei(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:s},geometry:s,layer:t,lngLat:a}}function Ei(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Oi(e={}){const t=R({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const n=o==null?void 0:o.value;if(n==null||n==="")return;const s=p[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Bi(u),s].filter(Boolean).forEach(f=>{(t[f]===void 0||t[f]===null||t[f]==="")&&(t[f]=n)})}),t}function Bi(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function Ri(e){var a,o;ze+=1,Wt();const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||Sa(t)<=0){he();return}ne.value=t,je.value=!1,e!=null&&e.screen&&(ye.value=xa(t,e.screen))}function he(){var e,t;Wt(),dt+=1,ne.value=null,je.value=!1,We.value=!1,ye.value=null,(t=(e=A.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Hi(){const e=ze;Wt(),ft=window.setTimeout(()=>{ft=null,ze===e&&he()},80)}function Wt(){ft&&(window.clearTimeout(ft),ft=null)}function _o(e){if(!ra.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||he()}return(e,t)=>(I(),E("div",ks,[Oo(Kt(xs,{ref_key:"threeMapSceneRef",ref:k,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Tn},null,512),[[Bo,cn.value]]),ie.value?Oo((I(),Te(tr,{key:0,ref_key:"mapSceneRef",ref:A,class:"home-map-scene home-remote-map-scene",active:L.active&&ie.value,"active-layer":Va.value,"admin-boundary-line-scale":1.65,"initial-zoom":yl,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!0,"emit-empty-feature-info-on-miss":!1,"hide-town-label-stats":"",onReady:qe,onFeatureLoading:t[0]||(t[0]=a=>We.value=a),onFeatureInfo:Ri,onMapClick:Li,onViewChange:gi},null,8,["active","active-layer"])),[[Bo,ie.value]]):Q("",!0),t[13]||(t[13]=M("div",{class:"home-map-scrim"},null,-1)),M("div",Ps,[Kt(Zr,{"model-value":K.value,topics:_t,"onUpdate:modelValue":mi},null,8,["model-value"])]),ra.value?(I(),E("div",{key:1,class:"home-map-feature-info",style:kt(hn.value)},[Kt(Xr,{title:mn.value,feature:ne.value,empty:je.value,loading:We.value,width:at(dn),height:fn.value,rows:Wa.value,closable:"",onClose:he},null,8,["title","feature","empty","loading","width","height","rows"])],4)):Q("",!0),M("div",Cs,[M("div",Ls,[(I(!0),E(Be,null,Re(Mn.value,a=>(I(),Te(Ho,{key:a.key,class:"home-card left-card",title:a.title,width:at($a),height:a.height},{default:Pa(()=>[a.option?(I(),Te(at(Ca),{key:0,ref_for:!0,ref:o=>da(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(I(),Te(Jo,{key:1,panel:a,compact:"","column-label-standard":xo(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),M("div",Ts,[M("div",As,[(I(!0),E(Be,null,Re(kn.value,a=>(I(),Te(Ho,{key:a.key,class:ot(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:at($a),height:a.height},{extra:Pa(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(I(),E("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?$n():Dn()},[...t[3]||(t[3]=[Ki(" 更多 ",-1),M("span",{"aria-hidden":"true"},"›",-1)])],8,Is)):Q("",!0)]),default:Pa(()=>[a.type==="video"?(I(),E("div",Ns,[M("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ke.value.length<=1,onClick:Hn},"‹",8,_s),M("div",{class:ot(["home-video-grid",{"is-single":Ya.value.length<=1}])},[(I(!0),E(Be,null,Re(Ya.value,o=>(I(),E("div",{key:o.key,ref_for:!0,ref:n=>ao(n,o),"data-video-index":o.index,class:ot(["home-video-screen",{"is-active":o.isActive,"is-playing":ha(o.index),"is-loading":Ht(o.index)}]),style:kt(co(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:n=>po(o.index,n),onKeydown:[qt(Ae(n=>Ee(o.index),["prevent"]),["enter"]),qt(Ae(n=>Ee(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=M("div",{class:"home-video-player-host"},null,-1)),Ht(o.index)?(I(),E("div",Es,"加载中")):Q("",!0),Ye(o.index)?(I(),E("div",Os,V(Ye(o.index)),1)):Q("",!0),o.live.hdPlayUrl&&(!uo(o.index)||Ye(o.index))?(I(),E("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Ae(n=>Ee(o.index),["stop"])},null,8,Bs)):Q("",!0),M("div",Rs,V(o.live.title),1)],46,Fs))),128))],2),M("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ke.value.length<=1,onClick:Gn},"›",8,Hs)])):a.key==="yak-forecast-trend"?(I(),E("div",Gs,[M("div",$s,[(I(),E(Be,null,Re(ia,o=>M("button",{key:o.key,type:"button",class:ot({active:o.key===oa.value}),onClick:n=>oa.value=o.key},V(o.label),11,Ds)),64))]),Kt(at(Ca),{ref_for:!0,ref:o=>da(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(I(),Te(at(Ca),{key:2,ref_for:!0,ref:o=>da(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(I(),E("div",zs,[Et.value.length?Q("",!0):(I(),E("div",Vs,[t[5]||(t[5]=M("i",null,null,-1)),M("span",null,V(gn.value),1)])),(I(!0),E(Be,null,Re(Et.value,(o,n)=>(I(),E("div",{key:o.key,class:ot(["home-balance-gauge-card",{"is-active":n===yn.value}]),style:kt(yo(o))},[M("div",js,[M("strong",null,V(o.status),1)]),M("div",Ws,[M("div",Us,[M("strong",null,V(W(o.value)),1),t[6]||(t[6]=M("em",null,"%",-1))])]),M("div",Ks,V(o.name),1),M("div",qs,V(o.extra),1)],6))),128))])):(I(),Te(Jo,{key:4,panel:a,compact:"","column-label-standard":xo(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),Z.value?(I(),E("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Ae(Gt,["self"])},[M("section",{class:"home-more-dialog home-video-dialog","data-monitoring-updated-at":Ha.value},[M("header",Qs,[M("div",null,[t[7]||(t[7]=M("h2",null,"基地监控",-1)),M("p",null,"共 "+V(ae.value.length)+" 路,在线 "+V(bn.value)+" 路",1)]),M("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:Gt},"×")]),Qa.value.length?(I(),E("div",Js,[(I(!0),E(Be,null,Re(Qa.value,a=>(I(),E("div",{key:a.key,ref_for:!0,ref:o=>ao(o,a),"data-video-index":a.index,class:ot(["home-video-modal-item home-video-screen",{"is-active":a.index===D.value,"is-playing":ha(a.index),"is-loading":Ht(a.index),"is-offline":a.live.status!=="直播中"}]),style:kt(co(a.live,a.index===D.value,a.index)),role:"button",tabindex:"0",onClick:o=>po(a.index,o),onKeydown:[qt(Ae(o=>Ee(a.index),["prevent"]),["enter"]),qt(Ae(o=>Ee(a.index),["prevent"]),["space"])]},[t[8]||(t[8]=M("div",{class:"home-video-player-host"},null,-1)),Ht(a.index)?(I(),E("div",Xs,"加载中")):Q("",!0),Ye(a.index)?(I(),E("div",el,V(Ye(a.index)),1)):Q("",!0),a.live.hdPlayUrl&&(!uo(a.index)||Ye(a.index))?(I(),E("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Ae(o=>Ee(a.index),["stop"])},null,8,tl)):Q("",!0),M("span",al,V(a.live.title),1)],46,Zs))),128))])):(I(),E("div",ol,"暂无监控数据")),vt.value>1?(I(),E("footer",nl,[M("button",{type:"button",disabled:oe.value<=1,onClick:t[1]||(t[1]=a=>fo(oe.value-1))},"上一页",8,il),M("span",null,V(oe.value)+" / "+V(vt.value),1),M("button",{type:"button",disabled:oe.value>=vt.value,onClick:t[2]||(t[2]=a=>fo(oe.value+1))},"下一页",8,rl)])):Q("",!0)],8,Ys)])):Q("",!0),(I(),Te(qi,{to:"body"},[de.value!==null?(I(),E("div",sl,[M("div",{ref_key:"homeVideoWebStageRef",ref:F,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[9]||(t[9]=[M("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):Q("",!0)])),ea.value?(I(),E("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Ae($t,["self"])},[M("section",ll,[M("header",ul,[M("div",null,[t[10]||(t[10]=M("h2",null,"全县乡镇草畜平衡",-1)),M("p",null,"全部 "+V(Ft.value.length)+" 个乡镇,理论承载、实际载畜、超载数量与超载率统一按结果库口径",1)]),M("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:$t},"×")]),M("div",cl,[(I(!0),E(Be,null,Re(Ft.value,a=>(I(),E("article",{key:a.key,class:"home-balance-modal-item",style:kt(yo(a))},[M("div",dl,[M("strong",null,V(a.name),1),M("span",null,V(a.status),1)]),M("div",fl,[M("strong",null,V(W(a.value)),1),t[11]||(t[11]=M("em",null,"%",-1))]),t[12]||(t[12]=M("div",{class:"home-balance-modal-track"},[M("i")],-1)),M("p",null,V(a.extra),1)],4))),128))])])])):Q("",!0)]))}};export{Dl as default}; + `,new ee(A,-k,i.depth+1.9)),S.setLabelStyle(P,.015,"x"),P.setParent(L),P.visible=!1,P}}emitTownClick(i={},r="region"){var l,m;const c=i.name||i.fullName;c&&((m=(l=this.options)==null?void 0:l.onTownClick)==null||m.call(l,z(R({},i),{name:c,source:r})))}setSceneMode(i="default"){this.sceneMode=i,this.applySceneMode()}setDataOverlaysVisible(i=!0){this.showDataOverlays=!!i,this.applySceneMode()}updateTownLabelVisibility(){const i=new Set((this.allProvinceLabel||[]).map(c=>{var l;return(l=c==null?void 0:c.userData)==null?void 0:l.name}).filter(Boolean)),r=this.showDataOverlays&&this.sceneMode!=="trade";(this.otherLabel||[]).forEach(c=>{var l;((l=c==null?void 0:c.userData)==null?void 0:l.labelType)==="town-label"&&(c.visible=!(r&&i.has(c.userData.name)))})}applySceneMode(){var r,c,l,m;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(r=this.allProvinceLabel)==null||r.forEach(y=>{y.visible=!1}),(c=this.allGuangquan)==null||c.forEach(y=>{y.visible=!1}),this.updateTownLabelVisibility();return}const i=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=i||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=i||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(i?7534280:2781042),this.flyLineMaterial.opacity=i?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(i?.32:.5,i?3:2),this.scatterGroup&&(this.scatterGroup.visible=!i&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!i&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!i),(l=this.allProvinceLabel)==null||l.forEach(y=>{y.visible=!i}),(m=this.allGuangquan)==null||m.forEach(y=>{y.visible=!i}),this.updateTownLabelVisibility()}createInfoPointLabelLoop(){var i;this.scenePaused||!((i=this.infoLabelElement)!=null&&i.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((r,c)=>{this.infoPointIndex===c?r.visible=!0:r.visible=!1})},3e3))}createStorke(){const i=this.staticMapData.mapStroke,r=this.assets.instance.getResource("pathLine3");r.wrapS=r.wrapT=Se,r.repeat.set(2,1);let c=new Aa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new ee(0,0,this.depth+.24),data:i,material:new se({color:2868444,map:r,alphaMap:r,fog:!1,transparent:!0,opacity:1,blending:Me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{r.offset.x+=.005})}geoProjection(i){return this.geoProjectionFn(i)}updateTownLabelScale(){var b,p,S;const i=this.otherLabel||[],r=(b=this.camera)==null?void 0:b.instance,c=(S=(p=this.camera)==null?void 0:p.controls)==null?void 0:S.target;if(!i.length||!r||!c)return;const l=r.position.distanceTo(c),m=vs(l*72e-5,.011,.026),y=l>45?"0.76":l<22?"0.94":"1";i.forEach(L=>{var A,k,C;if(((A=L==null?void 0:L.userData)==null?void 0:A.labelType)!=="town-label")return;L.scale.set(m,m,m);const P=(C=(k=L.element)==null?void 0:k.querySelector)==null?void 0:C.call(k,".other-label");P&&(P.style.opacity=y)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var i,r;this.scenePaused=!0,(r=(i=this.time)==null?void 0:i.pause)==null||r.call(i),this.sceneTweens.forEach(c=>{var l;return(l=c==null?void 0:c.pause)==null?void 0:l.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var i,r,c;this.scenePaused=!1,(r=(i=this.time)==null?void 0:i.resume)==null||r.call(i),this.sceneTweens.forEach(l=>{var m;return(m=l==null?void 0:l.resume)==null?void 0:m.call(l)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(i=>clearTimeout(i)),this.sceneTimers=[],this.sceneTweens.forEach(i=>{var r;return(r=i==null?void 0:i.kill)==null?void 0:r.call(i)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const ws={class:"map"},xs={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(T,{expose:i,emit:r}){const c=O(null),l=Wi(null),m=T,y=r;let b=!1;an(()=>{A()});function p(k){var C,F,H,B;l.value||!c.value||(l.value=new bs(c.value,k,{showDataOverlays:m.showDataOverlays,maxPixelRatio:m.maxPixelRatio||void 0,onTownClick:j=>y("town-click",j),onPlayComplete:()=>y("play-complete")}),(F=(C=l.value).setSceneMode)==null||F.call(C,m.sceneMode),(B=(H=l.value).setDataOverlaysVisible)==null||B.call(H,m.showDataOverlays),l.value.time.pause())}function S(){return re(this,null,function*(){var k,C,F,H;l.value&&(L(),!(b||l.value.mapAnimationDone)&&(b=!0,(C=(k=l.value.animateTl)==null?void 0:k.timeScale)==null||C.call(k,1),(H=(F=l.value.animateTl)==null?void 0:F.play)==null||H.call(F)))})}function L(){var k,C;l.value&&((C=(k=l.value).resumeScene)==null||C.call(k),l.value.resumeScene||l.value.time.resume())}function P(){var k,C,F,H,B,j;l.value&&((C=(k=l.value.animateTl)==null?void 0:k.pause)==null||C.call(k),(H=(F=l.value).pauseScene)==null||H.call(F),l.value.pauseScene||(j=(B=l.value.time)==null?void 0:B.pause)==null||j.call(B))}function A(){var k,C;(C=(k=l.value)==null?void 0:k.destroy)==null||C.call(k),l.value=null}return i({loadMap:p,play:S,resume:L,pause:P,destroyMap:A,canvasMap:l}),Ct(()=>m.sceneMode,k=>{var C,F;(F=(C=l.value)==null?void 0:C.setSceneMode)==null||F.call(C,k)},{immediate:!0}),Ct(()=>m.showDataOverlays,k=>{var C,F;(F=(C=l.value)==null?void 0:C.setDataOverlaysVisible)==null||F.call(C,k)}),(k,C)=>(I(),E("div",ws,[M("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Ss=""+new URL("flyline6-525edf67-balabala-1785858872961.png",import.meta.url).href;class Ms{constructor(i={}){this.options=i||{},this.init()}init(){this.instance=new Or,this.instance.addLoader(yr,"FileLoader");const i={type:"File",name:"china",path:La(Zi)},r=[{type:"File",name:"mapJson",path:La(Xi)},{type:"File",name:"mapStroke",path:La(er)},{type:"Texture",name:"rotationBorder1",path:Br},{type:"Texture",name:"rotationBorder2",path:Rr},{type:"Texture",name:"chinaBlurLine",path:Hr},{type:"Texture",name:"ocean",path:Gr},{type:"Texture",name:"side",path:$r},{type:"Texture",name:"pathLine3",path:Dr}],c=[{type:"Texture",name:"flyline",path:Yo},{type:"Texture",name:"pathLine",path:Yo},{type:"Texture",name:"pathLine2",path:zr},{type:"Texture",name:"huiguang",path:Vr},{type:"Texture",name:"guangquan1",path:Qo},{type:"Texture",name:"guangquan2",path:jr},{type:"Texture",name:"flyLineFocus",path:Qo},{type:"Texture",name:"mapFlyline",path:Ss},{type:"Texture",name:"arrow",path:Wr},{type:"Texture",name:"point",path:Ur},{type:"Texture",name:"focusArrows",path:Kr},{type:"Texture",name:"focusBar",path:qr},{type:"Texture",name:"focusBg",path:Yr},{type:"Texture",name:"focusMidQuan",path:Qr},{type:"Texture",name:"focusMoveBg",path:Jr}],l=this.options.showDataOverlays===!1?r:[i,...r,...c];this.instance.loadAll(l)}}const ks={class:"home-dashboard"},Ps={class:"home-bottom-switcher"},Cs={class:"home-left"},Ls={class:"home-side-stack is-left"},Ts={class:"home-right"},As={class:"home-side-stack is-right"},Is=["aria-label","onClick"],Ns={key:0,class:"home-video-monitor"},_s=["disabled"],Fs=["data-video-index","onClick","onKeydown"],Es={key:0,class:"home-video-loading"},Os={key:1,class:"home-video-error"},Bs=["onClick"],Rs={class:"home-video-point-name"},Hs=["disabled"],Gs={key:1,class:"home-forecast-trend-card"},$s={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},Ds=["onClick"],zs={key:3,class:"home-balance-gauge-grid"},Vs={key:0,class:"home-balance-empty","aria-live":"polite"},js={class:"home-balance-gauge-head"},Ws={class:"home-balance-gauge-ring"},Us={class:"home-balance-gauge-value"},Ks={class:"home-balance-gauge-name"},qs={class:"home-balance-gauge-extra"},Ys=["data-monitoring-updated-at"],Qs={class:"home-more-dialog-head"},Js={key:0,class:"home-video-modal-grid"},Zs=["data-video-index","onClick","onKeydown"],Xs={key:0,class:"home-video-loading"},el={key:1,class:"home-video-error"},tl=["onClick"],al={class:"home-video-point-name"},ol={key:1,class:"home-more-empty"},nl={key:2,class:"home-more-pager"},il=["disabled"],rl=["disabled"],sl={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},ll={class:"home-more-dialog home-balance-dialog"},ul={class:"home-more-dialog-head"},cl={class:"home-balance-modal-grid"},dl={class:"home-balance-modal-title"},fl={class:"home-balance-modal-value"},hl="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",ml=4,en=6e4,pl=15e3,tn=1e4,Ba="#ffffff",Ge="#ffffff",Ce="rgba(246, 253, 255, 0.92)",nt="rgba(242, 253, 255, 0.9)",Pt="rgba(218, 250, 255, 0.28)",gl=12e3,yl=9,$e="home-3d",it=9,Dl={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(T,{expose:i,emit:r}){const l=JSON.parse(ds).records||[],m=new Map(l.map(e=>[Number(e.matchedPointNo||e.markerNo||0),e]).filter(([e])=>Number.isFinite(e)&&e>0)),y=Co(l,e=>Lo(e.town,e.village)),b=Co(l,e=>St(e.town)),p={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},S=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),L=T,P=r,A=O(null),k=O(null),C=O(null),F=O(null),H=new Map,B=O({}),j=new Map;let G=!1,Lt=!1,Tt=null,lt=null;const J=new Map,ke=new Map,Qt=new Set,Jt=new Map;let Ie=null,ut="",Ra=!1,ct=null,At=!1,dt=0,ze=0,ft=null,le=null,ht=!1,Zt=!1,mt=0;const Ne=new Map,ue=O(0),ae=O([]),Ha=O(""),Xt=O(0),ce=O(0),Z=O(!1),oe=O(1),pt=O(!1),de=O(null),ea=O(!1),It=O(Fa.filter(e=>["county","town"].includes(e.type))),ta=O(!1),aa=O(""),oa=O("month"),na=O(!1),Ga=O(!1),U=O(""),nn=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=Yi({}),rn=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],$a=jo.sideCardWidth,Da=O(typeof window=="undefined"?1080:window.innerHeight);jo.sideCardGap;const Ve=N(()=>vr(Da.value)),Nt=N(()=>Ve.value),sn=Nt,ln=Lr("2028"),ia=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],_t=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92},{key:"pasture",name:"家庭牧场",color:"#30DCFF",width:112}],un={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},za={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},K=O($e),ne=O(null),je=O(!1),We=O(!1),ye=O(null),ie=N(()=>K.value!==$e),cn=N(()=>L.active&&!ie.value),Va=N(()=>{var d,f,w;const e=K.value,t=za[e];if(!t)return null;const a=_r.find(g=>g.key===t.topicKey),o=fi(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const n=un[e],s=t.legendKey?(o.legends||[]).find(g=>g.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(g=>(o.legends||[]).find(v=>v.key===g)).filter(Boolean):[];return t.type==="vector"?z(R({},o),{activeLegend:s||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=_t.find(g=>g.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(f=t.opacity)!=null?f:o.opacity,homePresentationMaxOpacity:(w=t.opacity)!=null?w:.96,showPointLabels:!1,hidePointFeatures:!1}):n?z(R({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:n.opacity,homePresentationMaxOpacity:n.maxOpacity,softMask:!1,homeGlowColor:n.glowColor,homeGlowBlur:n.glowBlur,homeGlowOpacity:n.glowOpacity,sldBody:hi(o.layerName,n)}):null}),ra=N(()=>!!ye.value),dn=as,ja=N(()=>ts({point:ye.value?pi(ye.value):null,rowCount:ne.value?Wa.value.length||Sa(ne.value):0,loading:We.value,empty:je.value||!ne.value})),fn=N(()=>ja.value.height),hn=N(()=>ja.value.style),mn=N(()=>{var t;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情",yak:"牦牛识别详情",pasture:"家庭牧场详情"}[K.value]||`${((t=_t.find(a=>a.key===K.value))==null?void 0:t.name)||"地图"}详情`}),Wa=N(()=>{var t;if(K.value!=="pasture")return[];const e=((t=ne.value)==null?void 0:t.properties)||{};return yi(e)?vi(e,ne.value):[]}),Ua=N(()=>Vt(Na.length)),Ue=N(()=>Vt(Yt.length)),Ka=N(()=>ri(oa.value)),qa=N(()=>si(ln,Ka.value.key)),gt=N(()=>Vt(qa.value.labels.length)),Ft=N(()=>It.value.filter(t=>(t==null?void 0:t.name)&&t.type==="town").map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",bearingCapacity:t.bearingCapacity,livestockCapacity:t.livestockCapacity,overloadCount:Number(t.livestockCapacity||0)-Number(t.bearingCapacity||0),extra:`理论 ${W(t.bearingCapacity)}|实际 ${W(t.livestockCapacity)}|超载 ${W(Number(t.livestockCapacity||0)-Number(t.bearingCapacity||0))}头`}))),pn=N(()=>It.value.find(e=>(e==null?void 0:e.type)==="county"&&String(e.areaCode||"")==="513233")||ss),gn=N(()=>ta.value?"正在读取最新草畜平衡数据":aa.value||"暂无草畜平衡数据"),Et=N(()=>{const e=Ft.value,t=3,a=e.length?Math.floor(ue.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,n)=>e[(a+n)%e.length])}),yn=N(()=>{const e=Et.value.length;return e?ue.value%e:0}),Ot={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ro,playUrl:"",hdPlayUrl:"",token:""};function ve(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ke=N(()=>ae.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>ve(e.live))),sa=N(()=>{const e=Ke.value;if(!e.length)return 0;const t=X(ce.value),a=e.findIndex(n=>n.index===t),o=a>=0?a:0;return pt.value||na.value||Z.value?o:(Math.floor(ue.value/ml)+o)%e.length}),D=N(()=>{var e,t;return ae.value.length?Z.value?X(ce.value):(t=(e=Ke.value[sa.value])==null?void 0:e.index)!=null?t:0:0}),vn=N(()=>ae.value[D.value]||Ot),Ya=N(()=>Fn(Ke.value,sa.value,Ot)),bn=N(()=>ae.value.filter(e=>ve(e)).length),yt=N(()=>ae.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(ve(t.live))-Number(ve(e.live))||e.index-t.index)),vt=N(()=>Math.max(1,Math.ceil(yt.value.length/it))),Qa=N(()=>{const e=(oe.value-1)*it;return yt.value.slice(e,e+it).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),wn=N(()=>us.map(e=>e.key==="today-outflow"?z(R({},e),{value:Xt.value}):e.key==="county-overload-rate"?z(R({},e),{value:pn.value.overloadRate}):e)),xn=N(()=>{const e=ei();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:ii(e,"生产力"),height:Ve.value}:null}),Sn=N(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:Nt.value,option:ni(cs,"牦牛存栏")})),Mn=N(()=>[ba(Oe("grassland","grassland-town"),"草地面积"),ba(Oe("wetland","wetland-town-area"),"湿地面积"),ba(Oe("grassland","grassland-type-proportion"),"草原类别"),xn.value].filter(Boolean).map((e,t)=>ti(e,`forest-grass-wet-${t}`))),kn=N(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:sn.value,live:vn.value},Sn.value,{key:"yak-structure",title:"畜群结构",height:Nt.value,option:Pn.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:Nt.value,max:100,rows:Et.value}]),Pn=N(()=>He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:rn,tooltip:_a(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${W(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=Na.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:Ce,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:Ge,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:Na.map((e,t)=>({name:e.name,value:e.count,selected:t===Ua.value}))}]}));N(()=>He({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:z(R({},_a()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=Yt[e[0].dataIndex];return`${t.label}
    预测存栏:${W(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:Yt.map(e=>e.shortLabel),axisLabel:{color:nt,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:nt,fontSize:10,margin:4,formatter:e=>Mo(e,1)},splitLine:{lineStyle:{color:Pt,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:Yt.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new Le(0,0,0,1,[{offset:0,color:t===Ue.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ue.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ue.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ue.value?16:8,shadowColor:t===Ue.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new Le(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:Ge,fontSize:10,formatter:({value:e})=>Mo(e)}}]})),N(()=>{const e=Ka.value,t=qa.value,a=ci(t),o=li(a.length,e.key);return He({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:z(R({},_a()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(n){var w,g,v;const s=Array.isArray(n)?n:[n],u=s.find(h=>h.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(v=(g=u==null?void 0:u.dataIndex)!=null?g:(w=s[0])==null?void 0:w.dataIndex)!=null?v:0];if(!d)return"";const f=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${W(d.close)}头`,`较上期:${di(f)}头`,`繁殖补充:${W(d.birth)}头`,`出栏扣减:${W(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:Ce,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:nt,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:nt,fontSize:10,formatter:we},splitLine:{lineStyle:{color:Pt,type:"dashed"}}},{type:"value",axisLabel:{color:Ce,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:ui(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((n,s)=>({value:n.close,symbolSize:s===gt.value?7:3,itemStyle:{color:s===gt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},So("繁殖补充",t.births,"#8bf7ff",1,!1,gt.value),So("出栏扣减",t.outflow,"#48cfff",1,!1,gt.value)]})}),Ui(()=>{wa(),window.addEventListener("resize",wa),window.addEventListener("keydown",Po),document.addEventListener("pointerdown",_o,!0),document.addEventListener("click",go,!0),io(),ho(),la()}),an(()=>{var e,t,a,o;G=!0,mt+=1,window.removeEventListener("resize",wa),window.removeEventListener("keydown",Po),document.removeEventListener("pointerdown",_o,!0),document.removeEventListener("click",go,!0),Wt(),bo(),be(),ro(),ca(),fa(),j.clear(),(t=(e=A.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=k.value)==null?void 0:a.destroyMap)==null||o.call(a),An()}),Ct(D,()=>{if(!Z.value){if(!na.value&&!Ga.value&&!J.size){U.value="";return}be({resetError:!0})}}),Ct(K,e=>{var t,a;if(he(),e===$e){(a=(t=A.value)==null?void 0:t.pause)==null||a.call(t),Y(()=>{Bt(),_e()});return}Xa(),Y(()=>{var o,n;(n=(o=A.value)==null?void 0:o.resume)==null||n.call(o)})}),Ct(()=>L.active,e=>{var t,a;e?(la(),In(),oo(),ho(),Ra?Rt(0):to()):(Lt=!1,(a=(t=A.value)==null?void 0:t.pause)==null||a.call(t),Xa(),ca(),fa(),be({resetError:!0}),Gt(),$t())});function la(){Lt=!1,P("loading-progress",{progress:0}),Y(()=>{var e,t,a,o;if(ie.value){(t=(e=A.value)==null?void 0:e.hasMap)!=null&&t.call(e)?qe():(o=(a=A.value)==null?void 0:a.loadMap)==null||o.call(a);return}Bt()})}function Bt(){if(!(G||!L.active||ie.value)){if(eo()){_e(),qe();return}if(Zt){Za();return}ht||(ht=!0,le=new Ms({showDataOverlays:!1}),le.instance.on("onProgress",Cn),le.instance.on("onLoad",Ja),le.instance.on("onError",Ln),le.instance.loaded&&Ja())}}function Cn(e,t,a){if(G||ie.value)return;const o=Math.max(1,Number(a)||1),n=Math.max(0,Number(t)||0);P("loading-progress",{progress:Math.min(98,Math.floor(n/o*92))})}function Ja(){G||(ht=!1,Zt=!0,P("loading-progress",{progress:96}),Y(Za))}function Ln(e){ht=!1,console.warn("[home] 3D map assets load failed",e),qe()}function Za(){var e,t,a,o;G||!L.active||ie.value||!le||((t=(e=k.value)==null?void 0:e.loadMap)==null||t.call(e,le),_e(),(o=(a=k.value)==null?void 0:a.play)==null||o.call(a),qe())}function _e(){var a,o,n,s,u,d,f,w;const e=k.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=eo();(n=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||n.call(o),(s=t==null?void 0:t.resize)==null||s.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(w=(f=t==null?void 0:t.label3d)==null?void 0:f.update)==null||w.call(f)}function Xa(){var e,t;(t=(e=k.value)==null?void 0:e.pause)==null||t.call(e)}function eo(){var t;const e=(t=k.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Tn(){ie.value||qe()}function An(){var e,t;(t=(e=le==null?void 0:le.instance)==null?void 0:e.destroy)==null||t.call(e),le=null,ht=!1,Zt=!1}function qe(){G||Lt||(Lt=!0,P("loading-progress",{progress:100}),P("map-ready"),to())}function ua(e={}){var t,a,o,n,s,u,d,f,w;if(!ie.value){_e();return}if((a=(t=A.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(n=(o=A.value)==null?void 0:o.resetView)==null||n.call(o),(s=A.value)!=null&&s.resetView||(d=(u=A.value)==null?void 0:u.refreshView)==null||d.call(u);return}(w=(f=A.value)==null?void 0:f.refreshView)==null||w.call(f)}function In(){K.value!==$e&&!za[K.value]&&(K.value=$e);const e=()=>{if(!(G||!L.active)){if(ie.value){ua({reset:!0});return}Bt(),_e()}};Y(()=>{e(),window.setTimeout(e,180)})}function Nn(){var e,t;if(he(),!ie.value){_e();return}if((t=(e=A.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ua({reset:!0});return}la(),Y(()=>{var a,o;(o=(a=A.value)==null?void 0:a.resume)==null||o.call(a)})}function _n(){if(he(),K.value===$e){Y(()=>{Bt(),_e()});return}K.value=$e}i({refreshMapView:ua,resetMap:Nn,showDefaultThreeMap:_n});function to(){ca();const e=()=>{Ie=null,ut="",!(G||!L.active)&&(Ra=!0,Xn(),so(),En(),L.active&&oo())};if(typeof window.requestIdleCallback=="function"){ut="idle",Ie=window.requestIdleCallback(e,{timeout:1800});return}ut="timeout",Ie=window.setTimeout(e,650)}function ca(){Ie&&(ut==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Ie):window.clearTimeout(Ie),Ie=null,ut="")}function da(e,t){e&&(t?j.set(e,t):j.delete(e))}function ao(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?H.set(a,e):H.delete(a)),t!=null&&t.isActive&&(C.value=e||null)}function Fn(e=[],t=0,a=Ot){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const n=(t+o.length)%o.length,s=o[n],u=(s==null?void 0:s.live)||s||a,d=Number.isFinite(Number(s==null?void 0:s.index))?Number(s.index):n;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function oo(){!L.active||G||(fa(),Tt=window.setInterval(no,2600),lt=window.setTimeout(no,800))}function fa(){Tt&&(window.clearInterval(Tt),Tt=null),lt&&(window.clearTimeout(lt),lt=null)}function no(){G||!L.active||(lt=null,ue.value+=1,Qn(),Jn(),Zn())}function io(){P("module-stats",{moduleKey:"home",items:wn.value})}function En(){return re(this,null,function*(){var t,a;const e=On(new Date);try{const o=yield is({year:Number(e.slice(0,4)),startDate:e,endDate:e}),n=(o==null?void 0:o.metrics)||{},s=Number((a=(t=n.headCount)!=null?t:n.head_count)!=null?a:0);Xt.value=Number.isFinite(s)?s:0}catch(o){Xt.value=0}G||io()})}function On(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function Rt(e=en){ro(),!(G||!L.active)&&(ct=window.setTimeout(()=>{if(ct=null,!(G||!L.active)){if(At){Rt(tn);return}so()}},Math.max(0,Number(e)||0)))}function ro(){ct&&(window.clearTimeout(ct),ct=null)}function so(){return re(this,null,function*(){if(At){Rt(tn);return}At=!0;let e=en;try{const t=yield Qi({includeOffline:!0,includeHidden:!0});if(G)return;Rn(t)}catch(t){if(G)return;e=pl,ae.value.length||(U.value="监控接口暂不可用"),window.setTimeout(()=>{G||U.value==="监控接口暂不可用"&&(U.value="")},2400)}finally{At=!1,G||Rt(e)}})}function Pe(e){return String((e==null?void 0:e.key)||(e==null?void 0:e.device)||(e==null?void 0:e.title)||"").trim()}function Bn(e=[],t=[]){const a=new Map;t.forEach(s=>{const u=Pe(s);u&&!a.has(u)&&a.set(u,s)});const o=[],n=new Set;return e.forEach(s=>{const u=Pe(s),d=u?a.get(u):null;!d||n.has(u)||(o.push(d),n.add(u))}),t.forEach(s=>{const u=Pe(s);u&&n.has(u)||(o.push(s),u&&n.add(u))}),o}function Rn(e=[]){const t=ae.value,a=D.value,o=Pe(t[a]),n=t.filter(ve).map(Pe),s=Bn(t,Array.isArray(e)?e:[]),u=t.some((v,h)=>Pe(v)!==Pe(s[h])),d=s.filter(ve).map(Pe),f=n.length!==d.length||n.some((v,h)=>v!==d[h]);u?be({resetError:!0}):t.forEach((v,h)=>{if(!J.has(String(h))&&!ge[String(h)])return;const x=s[h];(!x||!ve(x))&&Ze(h,{resetError:!0})}),ae.value=s,Ha.value=new Date().toISOString();let w=o?s.findIndex(v=>Pe(v)===o):-1;if(w<0||!ve(s[w])?(w=s.findIndex(v=>ve(v)),ce.value=Math.max(0,w),pt.value=!1,ue.value=0):!Z.value&&(f||u)?(ce.value=w,ue.value=0):Z.value&&(ce.value=w),s.filter(v=>ve(v)).length?["暂无在线可播放摄像头","监控接口暂不可用"].includes(U.value)&&(U.value=""):(be({resetError:!0}),U.value="暂无在线可播放摄像头"),Z.value){const v=yt.value.findIndex(h=>h.index===ce.value);oe.value=Math.floor(Math.max(0,v)/it)+1}else oe.value=Math.min(oe.value,vt.value)}function X(e){const t=ae.value.length;return t?((Number(e)||0)+t)%t:0}function fe(e){return String(X(e))}function lo(e){const t=fe(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function bt(e){return ge[fe(e)]||{}}function wt(e){return`${nn}-${fe(e)}`}function ha(e){return!!bt(e).playing}function Ht(e){return!!bt(e).loading}function Ye(e){const t=bt(e).error;return t||(X(e)===D.value?U.value:"")}function uo(e){const t=bt(e);return!!(t.playing||t.loading)}function Fe(){const e=Object.values(ge);na.value=e.some(t=>t.playing),Ga.value=e.some(t=>t.loading)}function co(e,t=!0,a=D.value){const o=(e==null?void 0:e.image)||Ro;return ha(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function Hn(){mo(-1)}function Gn(){mo(1)}function $n(){const e=D.value;be({resetError:!0}),ce.value=e,pt.value=!0,ue.value=0;const t=yt.value.findIndex(a=>a.index===e);oe.value=Math.floor(Math.max(0,t)/it)+1,Z.value=!0,Y(()=>pa())}function Gt(){Z.value&&(be({resetError:!0}),Z.value=!1)}function fo(e){var o,n;const t=Math.max(1,Math.min(vt.value,Number(e)||1));if(t===oe.value)return;be({resetError:!0}),oe.value=t;const a=(t-1)*it;ce.value=(n=(o=yt.value[a])==null?void 0:o.index)!=null?n:0,Y(()=>pa())}function Dn(){ea.value=!0}function ho(){return re(this,null,function*(){const e=++mt;ta.value=!0,aa.value="";try{const t=yield rs();if(G||e!==mt)return;const a=new Map;t.forEach(o=>{const n=ls(o,o);if(!["county","town"].includes(n.type)||!n.name)return;const s=n.areaCode||n.key||n.name;a.set(String(s),n)}),Fa.filter(o=>["county","town"].includes(o.type)).forEach(o=>{const n=String(o.areaCode||o.key||o.name);a.has(n)||a.set(n,R({},o))}),It.value=[...a.values()].sort((o,n)=>String(o.areaCode||o.name).localeCompare(String(n.areaCode||n.name),"zh-CN"))}catch(t){if(G||e!==mt)return;console.warn("[home] balance rows unavailable",t),It.value=Fa.filter(a=>["county","town"].includes(a.type)),aa.value=""}finally{!G&&e===mt&&(ta.value=!1)}})}function $t(){ea.value=!1}function mo(e){var n,s;const t=Ke.value,a=t.length;if(!a)return;be({resetError:!0});const o=sa.value;ce.value=(s=(n=t[(o+e+a)%a])==null?void 0:n.index)!=null?s:0,pt.value=!0,ue.value=0}function Ee(e){if(!ae.value.length){Un();return}const a=X(e),o=fe(a),n=bt(a);if(ce.value=a,pt.value=!0,ue.value=0,Qt.has(o)||J.has(o)||(n.playing||n.loading)&&!n.error){Je(a);return}Qt.add(o),Y(()=>re(this,null,function*(){try{yield vo(a,{stopOthers:!Z.value})}finally{Qt.delete(o)}}))}function po(e,t){Vn(t==null?void 0:t.target)||Ee(e)}function go(e){var n,s,u,d,f,w,g,v,h,x;const t=((s=(n=e==null?void 0:e.target)==null?void 0:n.closest)==null?void 0:s.call(n,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(_=>String((_==null?void 0:_.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((w=(f=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:f.dataset)==null?void 0:w.videoIndex),o=(g=de.value)!=null?g:Number.isFinite(a)?a:D.value;(v=e.preventDefault)==null||v.call(e),(h=e.stopPropagation)==null||h.call(e),(x=e.stopImmediatePropagation)==null||x.call(e),zn(o)}function zn(e){return re(this,null,function*(){var n,s;const t=X(e);if(de.value===t){Dt();return}de.value!==null&&Dt();const a=document.getElementById(`${wt(t)}-wrap`);if(!a)return;de.value=t,yield Y();const o=(s=(n=F.value)==null?void 0:n.querySelector)==null?void 0:s.call(n,".home-video-web-player-slot");if(!o){de.value=null;return}o.appendChild(a),Je(t),Qe(t)})}function Dt(e={}){var n;const{restore:t=!0}=e,a=de.value;if(a===null)return;const o=document.getElementById(`${wt(a)}-wrap`);if(t&&o){const s=zt(a)||C.value,u=(n=s==null?void 0:s.querySelector)==null?void 0:n.call(s,".home-video-player-host");u&&u.appendChild(o)}de.value=null,t&&Y(()=>{Je(a),Qe(a)})}function Vn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function jn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...Ft.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function Wn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function yo(e){return{"--balance-color":Wn(e),"--balance-progress":`${jn(e)}%`}}function Un(){return re(this,null,function*(){return vo(D.value,{stopOthers:!Z.value})})}function vo(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,n=X(e),s=ae.value[n]||Ot,u=fe(n);let d=lo(n);if((s==null?void 0:s.status)!=="直播中"||!(s!=null&&s.hdPlayUrl)||!(s!=null&&s.token)){d.error=(s==null?void 0:s.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,n===D.value&&(U.value=d.error),Fe();return}if(J.has(u)||(d.playing||d.loading)&&!d.error)return;ce.value=n,ue.value=0,o?be({resetError:!0}):(J.has(u)||d.loading)&&Ze(n,{resetError:!0}),d=lo(n),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,n===D.value&&(U.value=""),Fe(),yield Y();const f=(ke.get(u)||0)+1;ke.set(u,f);let w=null;qn(n,f);try{const g=zt(n)||C.value,v=wt(n);if(!Kn(g,v))throw new Error("视频容器未就绪");const{width:h,height:x}=wo(g,340,92);if(w=new Ji.EZUIKitPlayer({id:v,accessToken:s.token,url:s.hdPlayUrl,audio:0,width:h,height:x,themeData:Yn(),handleError(_){f===ke.get(u)&&(xt(n),console.warn("EZUIKit player error",_),ga(w),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,ke.set(u,f+1),J.delete(u),ya(n),n===D.value&&(U.value=d.error),Fe())},handleSuccess(){f===ke.get(u)&&(xt(n),d.error="",d.ready=!0,d.loading=!1,n===D.value&&(U.value=""),Je(n),Qe(n),ma(v),Fe())},fullScreenChangeCallBack(){}}),f!==ke.get(u)){ga(w),ya(n);return}J.set(u,w),d.playing=!0,Fe(),Y(()=>{Je(n),Qe(n),ma(v)})}catch(g){xt(n),console.warn("EZUIKit init error",g),d.error="视频加载失败",n===D.value&&(U.value=d.error),Ze(n,{resetError:!1})}})}function ma(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function Qe(e=D.value,t=0){if(typeof window=="undefined")return;const a=X(e),o=fe(a),n=Ne.get(o);t===0&&n&&window.cancelAnimationFrame(n);const s=window.requestAnimationFrame(()=>{Je(a),t<8?Qe(a,t+1):Ne.delete(o)});Ne.set(o,s)}function bo(e){if(typeof window!="undefined"){if(e!==void 0){const t=fe(e),a=Ne.get(t);a&&window.cancelAnimationFrame(a),Ne.delete(t);return}Ne.forEach(t=>window.cancelAnimationFrame(t)),Ne.clear()}}function pa(){Array.from(J.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&Qe(t)})}function wo(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),n=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,s=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(n||1)),height:Math.max(1,Math.floor(s||1))}}function zt(e=D.value){if(typeof document=="undefined")return null;const t=X(e),a=Z.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const n=H.get(t);return n!=null&&n.isConnected?n:null}function Kn(e,t){var n;const a=(n=e==null?void 0:e.querySelector)==null?void 0:n.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function Je(e=D.value){var et,tt;if(typeof document=="undefined")return;const t=X(e),a=fe(t),o=wt(t),n=de.value===t&&F.value?F.value:zt(t)||C.value,s=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=s||u;if(!n||!d)return;const{width:f,height:w}=wo(n),g=J.get(a);try{s&&u&&g&&typeof g.reSize=="function"?g.reSize(f,w):s&&u&&g&&typeof g.autoResize=="function"&&g.autoResize()}catch(q){console.warn("EZUIKit resize failed",q)}const v={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${f}px`,height:`${w}px`};Object.assign(d.style,v,{display:"block",verticalAlign:"top"}),s&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const h=document.getElementById(`EZUIKitPlayer-${o}`);h&&(h.setAttribute("width",String(f)),h.setAttribute("height",String(w)));const x=document.getElementById(`${o}-player`),_=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),me=[d,u,x,_==null?void 0:_.parentElement,_,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from(((et=d==null?void 0:d.querySelectorAll)==null?void 0:et.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((tt=u==null?void 0:u.querySelectorAll)==null?void 0:tt.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),h].filter(Boolean);Array.from(new Set(me)).forEach(q=>{var Mt,Ut;(Mt=q.setAttribute)==null||Mt.call(q,"width",String(f)),(Ut=q.setAttribute)==null||Ut.call(q,"height",String(w)),Object.assign(q.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),ma(o)}function be(e={}){Array.from(J.keys()).forEach(t=>{Ze(Number(t),e)}),Object.keys(ge).forEach(t=>{J.has(t)||Ze(Number(t),e)}),Fe()}function Ze(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,n=X(e),s=fe(n);bo(n),xt(n);const u=J.get(s);J.delete(s),ke.set(s,(ke.get(s)||0)+1),u&&ga(u),a&&ya(n);const d=ge[s];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[s]),n===D.value&&o&&(U.value=""),Fe()}function qn(e,t){const a=X(e),o=fe(a);xt(a);const n=window.setTimeout(()=>{const s=ge[o];t!==ke.get(o)||!(s!=null&&s.loading)||(s.error="视频加载超时",a===D.value&&(U.value=s.error),Ze(a,{resetError:!1}))},gl);Jt.set(o,n)}function xt(e){const t=fe(e),a=Jt.get(t);a&&(window.clearTimeout(a),Jt.delete(t))}function ga(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function ya(e=D.value){var d;if(typeof document=="undefined")return;const t=X(e),a=wt(t),o=document.getElementById(`${a}-wrap`),n=document.getElementById(a),s=zt(t)||C.value,u=(d=s==null?void 0:s.querySelector)==null?void 0:d.call(s,".home-video-player-host");de.value===t&&Dt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),n!=null&&n.isConnected&&n.remove()}function Yn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function Qn(){const e=j.get("yak-structure");va(e,"畜群结构",Ua.value)}function Jn(){const e=j.get("yak-three-year-forecast");va(e,"预测存栏",Ue.value)}function Zn(){const e=j.get("yak-forecast-trend");va(e,"预测存栏",gt.value)}function va(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function Vt(e){return e?ue.value%e:0}function Xn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Zo("grassland","grassland-distribution"),Zo("wetland","wetland-distribution")]);G||(B.value={grassland:e,wetland:t})})}function Oe(e,t){const a=B.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(n=>(n==null?void 0:n.key)===t)}function ba(e,t){return e?z(R({},e),{title:t}):null}function ei(){var w,g,v,h;const e=((w=Oe("grassland","grassland-town"))==null?void 0:w.rows)||[],t=((g=Oe("wetland","wetland-town-area"))==null?void 0:g.rows)||[],a=((v=Oe("grassland","grassland-productivity-town"))==null?void 0:v.rows)||[],o=((h=Oe("wetland","wetland-mu-yield"))==null?void 0:h.rows)||[],n=jt(e),s=jt(t),u=jt(a),d=jt(o);return[...new Set([...e,...t,...a,...o].map(x=>x==null?void 0:x.name).filter(Boolean))].map((x,_)=>{const $=n.get(x)||0,me=s.get(x)||0,Xe=u.get(x)||0,et=d.get(x)||0;let tt=0,q=0;$>0&&Xe>0&&(tt+=$*Xe,q+=$),me>0&&et>0&&(tt+=me*et,q+=me);const Mt=[Xe,et].filter(ka=>ka>0),Ut=q>0?tt/q:Mt.reduce((ka,Gi)=>ka+Gi,0)/Math.max(Mt.length,1);return{key:`home-pasture-productivity-${x}`,name:x,value:Number(Ut.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:_}}).filter(x=>x.value>0)}function jt(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function ti(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value,option:ai(e,e.title)}):a.includes("wetland-town-area")?z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value,option:oi(e,e.title)}):a.includes("grassland-type-proportion")?z(R({},e),{key:`home-${t}-${e.key}`,fixedActiveIndex:!0,height:Ve.value}):z(R({},e),{key:`home-${t}-${e.key}`,height:Ve.value})}function ai(e,t,a={}){var w;const o=(e.rows||[]).filter(g=>Number.isFinite(Number(g.value))).slice(0,10),n=((w=o.find(g=>g.unit))==null?void 0:w.unit)||"万亩",s=o.map(g=>Number(g.value)||0),u=Math.max(...s,1),d=Math.ceil(u*1.14),f=a.showTrendLine===!0;return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${n}`,left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var _;const v=Array.isArray(g)?g:[g],h=v.find($=>$.seriesName===t)||v[0],x=o[(_=h==null?void 0:h.dataIndex)!=null?_:0];return x?`${x.name}
    ${t}:${W(x.value)}${x.unit||n}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(g=>g.name),axisLabel:{interval:0,hideOverlap:!1,color:Ba,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:ko},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(g=>g.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Pt,opacity:1,width:.3}},axisLabel:{color:nt,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:7,stack:"b",z:3,data:o.map(g=>Number(g.value)||0),label:{show:!0,position:"top",distance:9,color:Ge,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},itemStyle:{borderRadius:2,color:new Le(0,0,0,1,[{offset:0,color:"#43d9e8"},{offset:.58,color:"rgba(67, 217, 232, 0.72)"},{offset:1,color:"rgba(67, 217, 232, 0.16)"}])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:"rgba(67, 217, 232, 0.18)"}}},...f?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:s,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:Ge,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],{type:"bar",barWidth:18,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:"rgba(67, 217, 232, 0.3)",opacity:.08},tooltip:{show:!1},z:0}]})}function oi(e,t){var d;const a=(e.rows||[]).filter(f=>Number.isFinite(Number(f.value))).sort((f,w)=>(Number(w.value)||0)-(Number(f.value)||0)).slice(0,10),o=((d=a.find(f=>f.unit))==null?void 0:d.unit)||"万亩",n=a.map(f=>Number(f.value)||0),s=Math.max(...n,1),u=Math.ceil(s*1.2);return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${o}`,left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.08}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(f){var h;const w=Array.isArray(f)?f:[f],g=w.find(x=>x.seriesName===t)||w[0],v=a[(h=g==null?void 0:g.dataIndex)!=null?h:0];return v?`${v.name}
    ${t}:${W(v.value)}${v.unit||o}`:""}},grid:{left:58,right:74,top:42,bottom:14,containLabel:!1},xAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{show:!1},splitLine:{show:!0,lineStyle:{color:Pt,type:[2,4],width:.3}}},yAxis:{type:"category",inverse:!0,data:a.map(f=>f.name),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:Ba,fontSize:10,fontWeight:700,margin:8}},series:[{name:"背景",type:"bar",barWidth:8,barGap:"-100%",data:a.map(()=>u),itemStyle:{color:"rgba(74, 145, 165, 0.13)",borderColor:"rgba(95, 208, 235, 0.12)",borderWidth:1},emphasis:{disabled:!0},tooltip:{show:!1},z:0},{name:t,type:"bar",barWidth:8,data:n,label:{show:!0,position:"right",distance:8,color:Ge,fontSize:10,fontWeight:700,formatter:({value:f})=>`${W(f)}${o}`},itemStyle:{borderRadius:[0,5,5,0],color:new Le(0,0,1,0,[{offset:0,color:"rgba(50, 170, 255, 0.22)"},{offset:.45,color:"#35d6ff"},{offset:1,color:"#8dfbff"}])},emphasis:{itemStyle:{shadowBlur:3,shadowColor:"rgba(53, 214, 255, 0.16)"}},z:2}]})}function ni(e=[],t="数值"){var v;const a=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"],o=new Map(a.map((h,x)=>[h,x])),n=e.filter(h=>Number.isFinite(Number(h.value))).sort((h,x)=>{var _,$;return((_=o.get(h.name))!=null?_:99)-(($=o.get(x.name))!=null?$:99)}).slice(0,10),s=((v=n.find(h=>h.unit))==null?void 0:v.unit)||"头",u=n.map(h=>Number(h.value)||0),d=Math.max(...u,1),f=Math.ceil(d*1.16/1e4)*1e4,w=Vt(n.length),g=new Set(u.map((h,x)=>({value:h,index:x})).sort((h,x)=>x.value-h.value).slice(0,3).map(h=>h.index));return He({animation:!0,animationDuration:760,animationDurationUpdate:520,animationEasing:"cubicOut",title:{text:`单位:${s}`,left:12,top:8,textStyle:{color:Ce,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.18)"}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(h){var me;const x=Array.isArray(h)?h:[h],_=x.find(Xe=>Xe.seriesName===t)||x[0],$=n[(me=_==null?void 0:_.dataIndex)!=null?me:0];return $?`${$.name}
    ${t}:${W($.value)}${$.unit||s}`:""}},grid:{left:46,right:20,top:38,bottom:28,containLabel:!1},xAxis:{type:"category",boundaryGap:!1,data:n.map(h=>h.name),axisLine:{show:!0,lineStyle:{color:"rgba(141, 251, 255, 0.32)"}},axisTick:{show:!1},axisLabel:{show:!0,interval:0,margin:8,color:Ce,fontSize:9,formatter:h=>String(h).replace(/[乡镇]$/,"")}},yAxis:{type:"value",min:0,max:f,splitNumber:4,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:Ce,fontSize:9,margin:7,formatter:h=>we(h)},splitLine:{show:!0,lineStyle:{color:"rgba(112, 209, 230, 0.25)",type:[4,4],width:.7}}},series:[{name:t,type:"line",smooth:.16,showSymbol:!0,symbol:"circle",symbolSize:(h,x)=>x.dataIndex===w?7:4,data:u,label:{show:!0,position:"top",distance:5,color:Ge,fontSize:10,fontWeight:700,formatter:({value:h,dataIndex:x})=>g.has(x)?we(h):""},lineStyle:{width:2.5,color:"#8dfbff",shadowBlur:7,shadowColor:"rgba(48, 220, 255, 0.68)"},areaStyle:{color:new Le(0,0,0,1,[{offset:0,color:"rgba(73, 241, 255, 0.72)"},{offset:.38,color:"rgba(38, 197, 235, 0.26)"},{offset:1,color:"rgba(13, 78, 111, 0.03)"}])},itemStyle:{color(h){return h.dataIndex===w?"#ffffff":"#38e6f7"},borderColor:"#8dfbff",borderWidth:1,shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.58)"},emphasis:{scale:!0,itemStyle:{color:"#ffffff",shadowBlur:5,shadowColor:"rgba(141, 251, 255, 0.2)"}},z:2}]})}function ii(e=[],t="数值"){var d;const a=e.filter(f=>Number.isFinite(Number(f.value))).slice(0,10),o=((d=a.find(f=>f.unit))==null?void 0:d.unit)||"",n=a.map(f=>Number(f.value)||0),s=Math.max(...n,1),u=Math.ceil(s*1.12);return He({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:Ce,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(f){var h;const g=(Array.isArray(f)?f:[f])[0],v=a[(h=g==null?void 0:g.dataIndex)!=null?h:0];return v?`${v.name}
    ${t}:${W(v.value)}${v.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(f=>f.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ba,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:ko}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Pt,opacity:1,width:.3}},axisLabel:{color:nt,fontSize:10,formatter:we}},series:[{name:t,data:n,type:"line",smooth:!0,symbol:hl,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:Ge,fontSize:10,fontWeight:700,formatter:({value:f})=>we(f)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new Le(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new Le(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function xo(e){return String((e==null?void 0:e.key)||"").includes("grassland-town")}function So(e,t,a,o=0,n=!1,s=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===s?10:5,itemStyle:{color:d===s?"#ffffff":a},label:{show:d===s,position:"top",color:a,fontSize:10,formatter:({value:f})=>we(f)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:n?{color:new Le(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function ri(e){return ia.find(t=>t.key===e)||ia[2]}function si(e,t="month"){if(t==="month")return Tr(e);const a=Ar(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),n=t==="week"?7:1,s=Math.ceil(o/n)+1,u=Array.from({length:s},(g,v)=>{const h=Math.min(o,v*n);return Ir(h)}),d=u.map((g,v)=>{const x=Math.min(o,v*n)/o,_=Math.sin(v/(t==="week"?1.8:8.5))*Math.sin(Math.PI*x)*Math.min(360,e.months*18);return Math.round(qo+(e.stock-qo)*x+_)}),f=u.map((g,v)=>Math.round(e.births*(Math.min(o,v*n)/o))),w=u.map((g,v)=>Math.round(e.outflow*(Math.min(o,v*n)/o)));return{labels:u,stock:d,births:f,outflow:w}}function li(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function ui(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function ci(e){return(e.labels||[]).map((t,a)=>{var g,v,h,x,_,$;const o=Number(((g=e.stock)==null?void 0:g[Math.max(a-1,0)])||0),n=Number(((v=e.stock)==null?void 0:v[a])||o),s=Math.max(0,Number(((h=e.births)==null?void 0:h[a])||0)-Number(((x=e.births)==null?void 0:x[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((_=e.outflow)==null?void 0:_[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((s+u)*.18)),f=Math.max(o,n)+Math.max(d,Math.round(s*.32)),w=Math.max(0,Math.min(o,n)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:n,low:w,high:f,birth:s,outflow:u,value:[o,n,w,f]}})}function W(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function di(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${W(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Mo(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function ko(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function fi(e){if(!e)return null;const t=Fr(e.topicKey,e.layerKey);if(t)return t;const a=Er(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function hi(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",n=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,s=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${n}${s}round`}function mi(e){_t.some(t=>t.key===e)&&(K.value=e,he())}function Po(e){if(e.key==="Escape"){if(de.value!==null){Dt();return}Gt(),$t()}}function wa(){Da.value=typeof window=="undefined"?1080:window.innerHeight,pa()}function pi(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(n)?{x:960,y:540}:o>=0&&o<=1920&&n>=0&&n<=1080&&(o>a.width||n>a.height)?{x:o,y:n}:{x:(o-a.left)/a.width*1920,y:(n-a.top)/a.height*1080}}function xa(e,t){var a,o,n,s;return((o=(a=A.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((s=(n=A.value)==null?void 0:n.getVectorFeatureScreen)==null?void 0:s.call(n,e))||t}function gi(){if(!ra.value||!ne.value)return;const e=xa(ne.value,ye.value);if(!e)return;const t=ye.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(ye.value=e)}function Sa(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>Ao(o,t[o])).length}function yi(e={}){return e.categoryCode==="YC-FAMILY-PASTURE"||e.stageKey==="family-pasture"}function vi(e={},t=null){const a=bi(e,t),o=a.metrics||{},n=a.attributes||{},s=[],u=(d,f,w="")=>{To(f)&&s.push({label:d,value:Pi(f,w)})};return u("名称",a.name||a.fullName),u("所在乡镇",a.town||a.areaName),u("户主",a.owner||n.户主),u("建设年份",a.constructionYear,"年"),u("所在村",a.village||a.address),u("标准化暖棚",o["标准化暖棚 (㎡)"],"㎡"),u("生产管理用房",o["管理用房 (㎡)"],"㎡"),u("饲草料库",o["饲草料库 (㎡)"],"㎡"),u("活动场地及通道",o["活动场地及通道 (㎡)"],"㎡"),u("草料配套",a.grassSupportText||n.草料配套),s.some(d=>d.label==="草料配套")||u("设施配置",a.facilityDetail||n.设施配置),s}function bi(e={},t=null){const a=ki(e),s=(a?m.get(a):null)||wi(e,t)||null;return z(R(R({},e),s||{}),{name:(s==null?void 0:s.name)||e.name||e.fullName,fullName:(s==null?void 0:s.name)||e.fullName||e.name,town:(s==null?void 0:s.town)||e.town||e.areaName,village:(s==null?void 0:s.village)||e.village||e.address,address:(s==null?void 0:s.village)||e.address,markerNo:a||e.markerNo})}function Co(e=[],t){const a=new Map;return e.forEach(o=>{const n=t(o);n&&(a.has(n)||a.set(n,[]),a.get(n).push(o))}),a.forEach(o=>{o.sort((n,s)=>Number(n.matchedPointNo||0)-Number(s.matchedPointNo||0))}),a}function wi(e={},t=null){const a=St(e.town||e.areaName||e.matchedPointTown),o=St(e.village||e.address||e.matchedPointVillage),n=y.get(Lo(a,o))||[],s=b.get(a)||[],u=n.length?n:s;return u.length?xi(u,Mi(e,t)):null}function xi(e=[],t=null){var a;return t?((a=e.map((o,n)=>({record:o,index:n,distance:Si(t,{longitude:Number(o.longitude),latitude:Number(o.latitude)})})).sort((o,n)=>o.distance-n.distance||o.index-n.index)[0])==null?void 0:a.record)||e[0]||null:e[0]||null}function Si(e={},t={}){const a=Number(e.longitude),o=Number(e.latitude),n=Number(t.longitude),s=Number(t.latitude);return[a,o,n,s].every(Number.isFinite)?Math.hypot(a-n,o-s):Number.POSITIVE_INFINITY}function Mi(e={},t=null){var s,u,d,f,w,g,v,h,x,_,$,me;const a=Ma((f=(d=(u=(s=e.longitude)!=null?s:e.lng)!=null?u:e.lon)!=null?d:e.jd)!=null?f:e.x,(v=(g=(w=e.latitude)!=null?w:e.lat)!=null?g:e.wd)!=null?v:e.y);if(a)return a;const o=Ma((h=t==null?void 0:t.lngLat)==null?void 0:h.lng,(x=t==null?void 0:t.lngLat)==null?void 0:x.lat);if(o)return o;const n=(t==null?void 0:t.geometry)||((_=t==null?void 0:t.feature)==null?void 0:_.geometry);return(n==null?void 0:n.type)==="Point"?Ma(($=n.coordinates)==null?void 0:$[0],(me=n.coordinates)==null?void 0:me[1]):null}function Ma(e,t){const a=Number(e),o=Number(t);return!Number.isFinite(a)||!Number.isFinite(o)?null:{longitude:a,latitude:o}}function Lo(e,t){const a=St(e),o=St(t);return a&&o?`${a}::${o}`:""}function St(e){return String(e||"").trim().replace(/\s+/g,"")}function ki(e={}){const t=Number(e.matchedPointNo||e.markerNo||0);if(Number.isFinite(t)&&t>0)return t;const o=[e.pointName,e.name,e.fullName,e.id,e.key].filter(Boolean).join(" ").match(/地图标记\s*(\d+)\s*号点/),n=o?Number(o[1]):0;return Number.isFinite(n)&&n>0?n:0}function To(e){return e!=null&&String(e).trim()!==""}function Pi(e,t=""){if(!To(e))return"";const a=String(e).trim();return t?a.endsWith(t)?a:`${a}${t}`:a}function Ao(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!S.has(String(e||"").toLowerCase())}function Io(e={}){const t=String(K.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Ci(e={}){const t=No(e.lng),a=No(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function No(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Li(){return re(this,arguments,function*(e={}){var f,w,g,v,h,x;const t=Number((f=e==null?void 0:e.lngLat)==null?void 0:f.lng),a=Number((w=e==null?void 0:e.lngLat)==null?void 0:w.lat),o=Va.value,n=Io(o);if(!Number.isFinite(t)||!Number.isFinite(a)){he();return}if(!n){Hi();return}const s=++dt,u=ze,d=e.screen||{x:960,y:540};ye.value=null,ne.value=null,je.value=!1,We.value=!0,(v=(g=A.value)==null?void 0:g.clearSelectedFeature)==null||v.call(g);try{const _=yield Ti(o,{lng:t,lat:a},n);if(s!==dt||G)return;if(!_){ze===u&&he();return}ne.value=_,je.value=!1,(x=(h=A.value)==null?void 0:h.highlightFeature)==null||x.call(h,_,{highlightTone:"v21"}),ye.value=xa(_,d)}catch(_){s===dt&&ze===u&&he()}finally{s===dt&&(We.value=!1)}})}function Ti(o,n){return re(this,arguments,function*(e,t,a=Io(e)){const s=Ci(t);if(!s)return null;let u=null;a==="grassland"?u=yield os({wkt:s}):a==="wetland"?u=yield ns({wkt:s}):a==="woodland"&&(u=yield es(s));const d=Ai(u,a);if(!Ni(d))return null;const f=Fi(d,e,t,a);return Sa(f)>0?f:null})}function Ai(e,t){var o,n,s,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(n=e==null?void 0:e.data)==null?void 0:n.grassland,(s=e==null?void 0:e.data)==null?void 0:s.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const f=Ii(d);if(f)return f}return null}function Ii(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Ni(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(_i)?!0:Object.keys(e).some(t=>Ao(t,e[t]))}function _i(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Fi(e,t,a,o){const n=Oi(e),s=Ei(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:s},geometry:s,layer:t,lngLat:a}}function Ei(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Oi(e={}){const t=R({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const n=o==null?void 0:o.value;if(n==null||n==="")return;const s=p[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Bi(u),s].filter(Boolean).forEach(f=>{(t[f]===void 0||t[f]===null||t[f]==="")&&(t[f]=n)})}),t}function Bi(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function Ri(e){var a,o;ze+=1,Wt();const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||Sa(t)<=0){he();return}ne.value=t,je.value=!1,e!=null&&e.screen&&(ye.value=xa(t,e.screen))}function he(){var e,t;Wt(),dt+=1,ne.value=null,je.value=!1,We.value=!1,ye.value=null,(t=(e=A.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Hi(){const e=ze;Wt(),ft=window.setTimeout(()=>{ft=null,ze===e&&he()},80)}function Wt(){ft&&(window.clearTimeout(ft),ft=null)}function _o(e){if(!ra.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||he()}return(e,t)=>(I(),E("div",ks,[Oo(Kt(xs,{ref_key:"threeMapSceneRef",ref:k,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Tn},null,512),[[Bo,cn.value]]),ie.value?Oo((I(),Te(tr,{key:0,ref_key:"mapSceneRef",ref:A,class:"home-map-scene home-remote-map-scene",active:L.active&&ie.value,"active-layer":Va.value,"admin-boundary-line-scale":1.65,"initial-zoom":yl,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!0,"emit-empty-feature-info-on-miss":!1,"hide-town-label-stats":"",onReady:qe,onFeatureLoading:t[0]||(t[0]=a=>We.value=a),onFeatureInfo:Ri,onMapClick:Li,onViewChange:gi},null,8,["active","active-layer"])),[[Bo,ie.value]]):Q("",!0),t[13]||(t[13]=M("div",{class:"home-map-scrim"},null,-1)),M("div",Ps,[Kt(Zr,{"model-value":K.value,topics:_t,"onUpdate:modelValue":mi},null,8,["model-value"])]),ra.value?(I(),E("div",{key:1,class:"home-map-feature-info",style:kt(hn.value)},[Kt(Xr,{title:mn.value,feature:ne.value,empty:je.value,loading:We.value,width:at(dn),height:fn.value,rows:Wa.value,closable:"",onClose:he},null,8,["title","feature","empty","loading","width","height","rows"])],4)):Q("",!0),M("div",Cs,[M("div",Ls,[(I(!0),E(Be,null,Re(Mn.value,a=>(I(),Te(Ho,{key:a.key,class:"home-card left-card",title:a.title,width:at($a),height:a.height},{default:Pa(()=>[a.option?(I(),Te(at(Ca),{key:0,ref_for:!0,ref:o=>da(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(I(),Te(Jo,{key:1,panel:a,compact:"","column-label-standard":xo(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),M("div",Ts,[M("div",As,[(I(!0),E(Be,null,Re(kn.value,a=>(I(),Te(Ho,{key:a.key,class:ot(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:at($a),height:a.height},{extra:Pa(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(I(),E("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?$n():Dn()},[...t[3]||(t[3]=[Ki(" 更多 ",-1),M("span",{"aria-hidden":"true"},"›",-1)])],8,Is)):Q("",!0)]),default:Pa(()=>[a.type==="video"?(I(),E("div",Ns,[M("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ke.value.length<=1,onClick:Hn},"‹",8,_s),M("div",{class:ot(["home-video-grid",{"is-single":Ya.value.length<=1}])},[(I(!0),E(Be,null,Re(Ya.value,o=>(I(),E("div",{key:o.key,ref_for:!0,ref:n=>ao(n,o),"data-video-index":o.index,class:ot(["home-video-screen",{"is-active":o.isActive,"is-playing":ha(o.index),"is-loading":Ht(o.index)}]),style:kt(co(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:n=>po(o.index,n),onKeydown:[qt(Ae(n=>Ee(o.index),["prevent"]),["enter"]),qt(Ae(n=>Ee(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=M("div",{class:"home-video-player-host"},null,-1)),Ht(o.index)?(I(),E("div",Es,"加载中")):Q("",!0),Ye(o.index)?(I(),E("div",Os,V(Ye(o.index)),1)):Q("",!0),o.live.hdPlayUrl&&(!uo(o.index)||Ye(o.index))?(I(),E("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Ae(n=>Ee(o.index),["stop"])},null,8,Bs)):Q("",!0),M("div",Rs,V(o.live.title),1)],46,Fs))),128))],2),M("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ke.value.length<=1,onClick:Gn},"›",8,Hs)])):a.key==="yak-forecast-trend"?(I(),E("div",Gs,[M("div",$s,[(I(),E(Be,null,Re(ia,o=>M("button",{key:o.key,type:"button",class:ot({active:o.key===oa.value}),onClick:n=>oa.value=o.key},V(o.label),11,Ds)),64))]),Kt(at(Ca),{ref_for:!0,ref:o=>da(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(I(),Te(at(Ca),{key:2,ref_for:!0,ref:o=>da(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(I(),E("div",zs,[Et.value.length?Q("",!0):(I(),E("div",Vs,[t[5]||(t[5]=M("i",null,null,-1)),M("span",null,V(gn.value),1)])),(I(!0),E(Be,null,Re(Et.value,(o,n)=>(I(),E("div",{key:o.key,class:ot(["home-balance-gauge-card",{"is-active":n===yn.value}]),style:kt(yo(o))},[M("div",js,[M("strong",null,V(o.status),1)]),M("div",Ws,[M("div",Us,[M("strong",null,V(W(o.value)),1),t[6]||(t[6]=M("em",null,"%",-1))])]),M("div",Ks,V(o.name),1),M("div",qs,V(o.extra),1)],6))),128))])):(I(),Te(Jo,{key:4,panel:a,compact:"","column-label-standard":xo(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),Z.value?(I(),E("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Ae(Gt,["self"])},[M("section",{class:"home-more-dialog home-video-dialog","data-monitoring-updated-at":Ha.value},[M("header",Qs,[M("div",null,[t[7]||(t[7]=M("h2",null,"基地监控",-1)),M("p",null,"共 "+V(ae.value.length)+" 路,在线 "+V(bn.value)+" 路",1)]),M("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:Gt},"×")]),Qa.value.length?(I(),E("div",Js,[(I(!0),E(Be,null,Re(Qa.value,a=>(I(),E("div",{key:a.key,ref_for:!0,ref:o=>ao(o,a),"data-video-index":a.index,class:ot(["home-video-modal-item home-video-screen",{"is-active":a.index===D.value,"is-playing":ha(a.index),"is-loading":Ht(a.index),"is-offline":a.live.status!=="直播中"}]),style:kt(co(a.live,a.index===D.value,a.index)),role:"button",tabindex:"0",onClick:o=>po(a.index,o),onKeydown:[qt(Ae(o=>Ee(a.index),["prevent"]),["enter"]),qt(Ae(o=>Ee(a.index),["prevent"]),["space"])]},[t[8]||(t[8]=M("div",{class:"home-video-player-host"},null,-1)),Ht(a.index)?(I(),E("div",Xs,"加载中")):Q("",!0),Ye(a.index)?(I(),E("div",el,V(Ye(a.index)),1)):Q("",!0),a.live.hdPlayUrl&&(!uo(a.index)||Ye(a.index))?(I(),E("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Ae(o=>Ee(a.index),["stop"])},null,8,tl)):Q("",!0),M("span",al,V(a.live.title),1)],46,Zs))),128))])):(I(),E("div",ol,"暂无监控数据")),vt.value>1?(I(),E("footer",nl,[M("button",{type:"button",disabled:oe.value<=1,onClick:t[1]||(t[1]=a=>fo(oe.value-1))},"上一页",8,il),M("span",null,V(oe.value)+" / "+V(vt.value),1),M("button",{type:"button",disabled:oe.value>=vt.value,onClick:t[2]||(t[2]=a=>fo(oe.value+1))},"下一页",8,rl)])):Q("",!0)],8,Ys)])):Q("",!0),(I(),Te(qi,{to:"body"},[de.value!==null?(I(),E("div",sl,[M("div",{ref_key:"homeVideoWebStageRef",ref:F,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[9]||(t[9]=[M("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):Q("",!0)])),ea.value?(I(),E("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Ae($t,["self"])},[M("section",ll,[M("header",ul,[M("div",null,[t[10]||(t[10]=M("h2",null,"全县乡镇草畜平衡",-1)),M("p",null,"全部 "+V(Ft.value.length)+" 个乡镇,理论承载、实际载畜、超载数量与超载率统一按结果库口径",1)]),M("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:$t},"×")]),M("div",cl,[(I(!0),E(Be,null,Re(Ft.value,a=>(I(),E("article",{key:a.key,class:"home-balance-modal-item",style:kt(yo(a))},[M("div",dl,[M("strong",null,V(a.name),1),M("span",null,V(a.status),1)]),M("div",fl,[M("strong",null,V(W(a.value)),1),t[11]||(t[11]=M("em",null,"%",-1))]),t[12]||(t[12]=M("div",{class:"home-balance-modal-track"},[M("i")],-1)),M("p",null,V(a.extra),1)],4))),128))])])])):Q("",!0)]))}};export{Dl as default}; diff --git a/docs/assets/index-b3415e08-balabala-1785726778446.css b/docs/assets/index-b3415e08-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-b3415e08-balabala-1785726778446.css rename to docs/assets/index-b3415e08-balabala-1785858872961.css diff --git a/docs/assets/index-30f157a6-1785726778446.js b/docs/assets/index-b8ef4803-1785858872961.js similarity index 97% rename from docs/assets/index-30f157a6-1785726778446.js rename to docs/assets/index-b8ef4803-1785858872961.js index 22c774f..b8f45c6 100644 --- a/docs/assets/index-30f157a6-1785726778446.js +++ b/docs/assets/index-b8ef4803-1785858872961.js @@ -1 +1 @@ -var It=Object.defineProperty,Bt=Object.defineProperties;var Yt=Object.getOwnPropertyDescriptors;var jt=Object.getOwnPropertySymbols;var qt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable;var kt=(h,g,y)=>g in h?It(h,g,{enumerable:!0,configurable:!0,writable:!0,value:y}):h[g]=y,le=(h,g)=>{for(var y in g||(g={}))qt.call(g,y)&&kt(h,y,g[y]);if(jt)for(var y of jt(g))Ut.call(g,y)&&kt(h,y,g[y]);return h},_e=(h,g)=>Bt(h,Yt(g));var B=(h,g,y)=>new Promise((k,x)=>{var u=R=>{try{M(y.next(R))}catch(T){x(T)}},q=R=>{try{M(y.throw(R))}catch(T){x(T)}},M=R=>R.done?k(R.value):Promise.resolve(R.value).then(u,q);M((y=y.apply(h,g)).next())});import{g as At}from"./index-e9f36657-1785726778446.js";/* empty css */import{_ as Lt}from"./index-7b46d381-1785726778446.js";import{d as Wt,i as Ye,g as zt,b as Et}from"./townshipBoundaries-8867fad4-1785726778446.js";import{r as Ft,n as Pt}from"./index-e33f4373-1785726778446.js";import{c as Ht,F as Gt,b as Jt}from"./featurePanelLayout-b5234356-1785726778446.js";import{A as Qt}from"./assets-5661f996-1785726778446.js";import{q as Zt,r as Xt,s as Kt}from"./screen2Standard-f38b9a2d-1785726778446.js";import{M as en}from"./index-7b548b42-1785726778446.js";import{_ as tn}from"./LayerPanel-921f9e3d-1785726778446.js";import{a as $t,_ as nn}from"./FeatureInfoPanel-e0a0d741-1785726778446.js";import{_ as an}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{_ as xt,g as v,w as Ne,q as Tt,h as Dt,o as c,c as m,a as r,t as f,F as he,y as be,n as je,K as Me,s as mt,O as yt,u as We,j as X,d as C,N as _t,A as qe,b as $e,C as rt,x as Nt,z as sn}from"./index-1785726778446.js";import{b as it,e as ht,r as rn,a as ln,p as on,g as un,c as bt,d as cn}from"./data-aa09e6f1-1785726778446.js";import"./data-56996d99-1785726778446.js";const dn="/openApi";function vn(h){return B(this,null,function*(){const g=yield Ft(`${dn}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:h},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:h})}),y=Pt(g);return pn(Array.isArray(y)?y[0]||{}:y||{})})}const gn={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function pn(h={}){return!h||typeof h!="object"?{}:Object.entries(h).reduce((g,[y,k])=>{g[y]=k;const x=gn[y];return x&&g[x]===void 0&&(g[x]=k),g},{})}const fn={class:"engineering-analysis-panel"},mn={class:"analysis-card-head"},yn={class:"analysis-type-list",role:"radiogroup","aria-label":"工程类型"},_n=["disabled","aria-checked","onClick"],hn={class:"analysis-type-main"},bn={class:"analysis-filter-grid","aria-label":"动态筛选条件"},wn={class:"is-wide"},Sn=["disabled"],Cn=["value"],jn=["disabled"],kn=["disabled"],An={class:"analysis-filter-note"},Ln={key:0},En={key:1},$n={key:2},Nn={key:3},Mn=["disabled","aria-busy"],Fn={key:0,class:"analysis-submit-spinner"},Pn={key:1},xn={key:2},Tn={key:0,class:"analysis-progress","aria-live":"polite"},Dn=["aria-valuenow","aria-busy"],Rn={key:1,class:"analysis-step-list","aria-label":"空间分析步骤"},On={key:2,class:"analysis-error"},Vn={key:0,class:"analysis-card analysis-result-card"},In={class:"analysis-card-head is-result"},Bn={key:0,class:"analysis-result-summary is-loading"},Yn={class:"is-final"},qn={key:1,class:"analysis-result-summary"},Un={class:"is-excluded"},Wn={class:"is-final"},zn={class:"analysis-result-list"},Hn=["aria-pressed","onClick"],Gn={key:0},Jn={key:1},Qn={key:2},Zn={key:0},Xn={key:1},Kn={key:2,class:"analysis-excluded-projects"},ea={class:"analysis-excluded-project-list"},ta=["title"],na=["disabled"],aa={class:"analysis-result-foot"},Ue="/geoserver/ne/ows",wt="ne:t_ecological_engineering_suitability_layer",sa="ne:t_ecological_engineering_suitability_export_layer",ra="ne:t_ecological_restoration_project_layer",ia=750,Mt=5e3,la=18,oa=420,ua=18e3,St="#FFD43B",ca={__name:"EngineeringAnalysisPanel",emits:["analysis-reset","analysis-batch","analysis-complete","analysis-state","result-visibility"],setup(h,{emit:g}){const y=g,k=[{key:"prepare",label:"初始化分析环境",description:"正在准备空间索引与工程参数",minimumDuration:1400},{key:"validate",label:"校验业务条件",description:"正在校验乡镇、工程类型与时间范围",minimumDuration:1500},{key:"count",label:"计算基础候选区",description:"正在统计满足基础条件的候选图斑",minimumDuration:2e3},{key:"exclude",label:"排除历史项目",description:"正在比对既有工程与重复实施范围",minimumDuration:2200},{key:"overlay",label:"执行空间叠加",description:"正在叠加生态约束与工程适宜条件",minimumDuration:1400},{key:"generate",label:"生成适宜图斑",description:"正在分批生成并渲染适宜实施区域",minimumDuration:0},{key:"verify",label:"汇总校验结果",description:"正在汇总面积、数量与空间完整性",minimumDuration:2200}],x=[{key:"forest-conservation",name:"封山育林",color:St},{key:"grassland-improvement",name:"草原改良",color:St},{key:"artificial-grass",name:"人工种草",color:St}],u=C([x[0].key]),q=C(""),M=C("same"),R=C(3),T=C(null),O=C("idle"),U=C(""),_=C(""),F=C(null),S=C("loading"),H=C(-1),K=_t({}),ie=_t({}),ve=_t({});let E=null,oe=0;const pe=Wt,L=v(()=>O.value==="running"),V=v(()=>O.value==="done"),ne=v(()=>u.value.length>0&&!L.value&&(M.value==="none"||S.value==="ready")),Fe=v(()=>x),ue=v(()=>{var t;return((t=x.find(a=>a.key===u.value[0]))==null?void 0:t.name)||"请选择工程"}),ce=v(()=>x.filter(t=>u.value.includes(t.key)).map(t=>K[t.key]||Re(t))),Pe=v(()=>{const t=Number(T.value);return Number.isFinite(t)?t-Number(R.value)+1:null}),D=v(()=>{const t=`${Pe.value}—${T.value} 年`,a=F.value?`项目库更新至 ${F.value} 年 · `:"",o=M.value==="all"?`排除 ${t} 内实施过任一工程的相交地块`:`排除 ${t} 内实施过同类工程的相交地块`;return`${a}${o}`}),W=v(()=>k[H.value]||null),ze=v(()=>k.map((t,a)=>_e(le({},t),{index:a,status:V.value||aL.value?`第 ${H.value+1}/${k.length} 步`:V.value?"分析完成":"等待分析"),ee=v(()=>ce.value.reduce((t,a)=>t+Number(a.baseCount||0),0)),fe=v(()=>ce.value.reduce((t,a)=>t+Number(a.targetCount||0),0)),ae=v(()=>ce.value.reduce((t,a)=>t+Number(a.loadedCount||0),0)),xe=v(()=>Math.max(0,ee.value-fe.value)),we=v(()=>ce.value.reduce((t,a)=>t+Number(a.loadedAreaMu||0),0)/1e4),Te=v(()=>Math.max(0,...ce.value.map(t=>Number(t.loadedPage||0)))),se=v(()=>Object.values(ve).map(t=>_e(le({},t),{areaMu:Number(Number(t.areaMu||0).toFixed(2))})).sort((t,a)=>a.areaMu-t.areaMu)),He=v(()=>se.value.reduce((t,a)=>t+Number(a.areaMu||0),0)/1e4),De=v(()=>{var p;if(V.value)return 100;if(!L.value)return 0;const t=100/k.length,a=Math.max(0,H.value)*t,i=((p=W.value)==null?void 0:p.key)==="generate"&&fe.value?Math.min(.96,ae.value/fe.value):.42;return Math.min(99,Math.max(1,Math.round(a+i*t)))}),ot=v(()=>{var t;return L.value&&((t=W.value)==null?void 0:t.key)==="generate"?`正在分批渲染${ue.value}图斑,已生成 ${re(ae.value)} 个`:L.value&&W.value?W.value.description:V.value?`分析完成,共形成 ${re(ae.value)} 个可实施候选图斑`:"正在准备空间分析"}),Ge=v(()=>{const t=q.value||"红原县全域";return M.value==="none"?`${t} · 未排除历史项目`:`${t} · ${Pe.value}—${T.value} 年未实施条件`});Ne([u,q,M,R,T],()=>{!V.value&&O.value!=="error"||(O.value="idle",H.value=-1,U.value="",_.value="",Object.keys(K).forEach(t=>delete K[t]),y("analysis-reset"))}),Tt(()=>gt()),Dt(()=>Ae());function Re(t){return _e(le({},t),{status:"idle",baseCount:0,targetCount:0,loadedCount:0,loadedAreaMu:0,loadedPage:0,visible:!0})}function Je(t){L.value||u.value[0]!==t&&(u.value=[t])}function ut(){return B(this,null,function*(){var i,p,A,j;if(!ne.value)return;Ae();const t=++oe,a=((p=(i=window.performance)==null?void 0:i.now)==null?void 0:p.call(i))||Date.now();E=new AbortController,O.value="running",U.value="",_.value="";const o=nt();Object.keys(K).forEach($=>delete K[$]),Object.keys(ie).forEach($=>delete ie[$]),Object.keys(ve).forEach($=>delete ve[$]),u.value.forEach($=>{const P=x.find(I=>I.key===$);K[$]=Re(P),K[$].status="counting"}),y("analysis-reset");try{yield ge(0,t,E.signal),yield ge(1,t,E.signal),yield ge(2,t,E.signal,()=>B(this,null,function*(){yield Promise.all(u.value.map(P=>B(this,null,function*(){const I=K[P],[J,Q]=yield Promise.all([Xe(Oe(P,!1,o),E.signal),Xe(Oe(P,!0,o),E.signal)]);G(t),I.baseCount=J,I.targetCount=Q,I.status="queued"})))})),yield ge(3,t,E.signal,()=>B(this,null,function*(){yield Promise.all(u.value.map(P=>Ve(P,o,t,E.signal)))})),yield ge(4,t,E.signal),yield ge(5,t,E.signal,()=>B(this,null,function*(){for(const P of u.value)G(t),yield Qe(K[P],o,t,E.signal)})),yield ge(6,t,E.signal),G(t);const $=(((j=(A=window.performance)==null?void 0:A.now)==null?void 0:j.call(A))||Date.now())-a;yield Ee(Math.max(0,ua-$),E.signal),G(t),O.value="done",H.value=k.length,y("analysis-state",{state:"done",stepNumber:k.length,stepTotal:k.length,progress:100}),_.value=Ze(o),y("analysis-complete",{rows:ce.value,filters:o,statistics:Ie(o)})}catch($){if(($==null?void 0:$.name)==="AbortError"||t!==oe)return;O.value="error",H.value=-1,y("analysis-state",{state:"error"}),U.value="工程适宜区服务暂时无法连接,请稍后重试。",_.value="",y("analysis-reset")}finally{t===oe&&(E=null)}})}function Qe(t,a,o,i){return B(this,null,function*(){if(t.status="loading",!t.targetCount){t.status="done";return}let p=0;for(;p{var ye;return J+Number(((ye=Q==null?void 0:Q.properties)==null?void 0:ye.source_area_mu)||0)},0),pt(I,a),y("analysis-batch",{key:t.key,name:t.name,color:t.color,features:I,loadedCount:t.loadedCount,targetCount:t.targetCount}),ke(),yield Le(i)}p+=j.length}t.status="done"})}function Oe(t,a,o=nt()){const i=[`engineering_type='${me(t)}'`];return i.push(...ct(o,a)),i.join(" AND ")}function Ze(t){const o=[`eng_type IN (${t.engineeringTypes.map(i=>`'${me(i)}'`).join(",")})`];if(t.township&&o.push(`town_name='${me(t.township)}'`),t.projectFilterMode!=="none"){const i=t.projectFilterMode==="all"?"last_year":"same_year";o.push(`(${i} IS NULL OR ${i}<${Number(t.startYear)})`)}return o.join(" AND ")}function ct(t,a){const o=[];if(t.township&&o.push(`township_name='${me(t.township)}'`),a&&t.projectFilterMode!=="none"){const i=t.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year";o.push(`(${i} IS NULL OR ${i}<${Number(t.startYear)})`)}return o}function dt(t,a){const o=[`engineering_type='${me(t)}'`];if(a.township&&o.push(`township_name='${me(a.township)}'`),a.projectFilterMode==="none")return"EXCLUDE";const i=a.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year";return o.push(`${i}>=${Number(a.startYear)}`),o.join(" AND ")}function Xe(t,a){return B(this,null,function*(){const o=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:wt,resultType:"hits",CQL_FILTER:t}),i=yield fetch(`${Ue}?${o}`,{credentials:"same-origin",signal:a});if(!i.ok)throw new Error(`HTTP ${i.status}`);const p=yield i.text(),A=p.match(/numberMatched="(\d+)"/i)||p.match(/numberOfFeatures="(\d+)"/i);return Number((A==null?void 0:A[1])||0)})}function Ke(t,a,o){return B(this,null,function*(){const i=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:wt,outputFormat:"application/json",srsName:"EPSG:4326",count:String(ia),startIndex:String(a),sortBy:"id",CQL_FILTER:t}),p=yield fetch(`${Ue}?${i}`,{credentials:"same-origin",signal:o});if(!p.ok)throw new Error(`HTTP ${p.status}`);return p.json()})}function Ve(t,a,o,i){return B(this,null,function*(){if(a.projectFilterMode==="none")return;const p=a.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year",A=a.projectFilterMode==="all"?"latest_project_name":"latest_same_type_project_name",j=dt(t,a);let $=0;for(;;){G(o);const P=yield vt(j,p,A,$,i);G(o);const I=Array.isArray(P.features)?P.features:[];if(I.forEach(J=>{const Q=(J==null?void 0:J.properties)||{},ye=String(Q[A]||"未标注项目").trim()||"未标注项目",st=Number(Q[p])||null,Ce=ve[ye]||{name:ye,latestYear:st,featureCount:0,areaMu:0};Ce.latestYear=Math.max(Number(Ce.latestYear||0),Number(st||0))||null,Ce.featureCount+=1,Ce.areaMu+=Number(Q.source_area_mu||0),ve[ye]=Ce}),I.length{const p=(i==null?void 0:i.properties)||{},A=String(p[o]||"未标注").trim()||"未标注",j=ie[A]||{name:A,featureCount:0,areaMu:0};j.featureCount+=1,j.areaMu+=Number(p.source_area_mu||0),ie[A]=j})}function Ie(t){return{engineeringType:t.engineeringTypes[0],engineeringName:ue.value,scopeName:t.township||"红原县全域",dimensionLabel:t.township?"村":"乡镇",baseCount:ee.value,excludedCount:xe.value,finalCount:ae.value,finalAreaMu:we.value*1e4,projectDataLatestYear:F.value,filters:t,excludedProjects:se.value.map(a=>le({},a)),distribution:Object.values(ie).map(a=>_e(le({},a),{areaMu:Number(a.areaMu.toFixed(2))})).sort((a,o)=>o.areaMu-a.areaMu)}}function et(t){!t||t.status==="idle"||(t.visible=t.visible===!1,y("result-visibility",{key:t.key,visible:t.visible}))}function ft(){if(!V.value||!_.value||!ae.value)return;const t=new Date,o=`ecological_engineering_suitability_${[t.getFullYear(),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")].join("")}.zip`,i=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:sa,outputFormat:"shape-zip",srsName:"EPSG:4326",CQL_FILTER:_.value,format_options:`charset:UTF-8;filename:${o}`}),p=document.createElement("a");p.href=`${Ue}?${i}`,p.download=o,document.body.appendChild(p),p.click(),p.remove()}function tt(t){return t.status==="counting"?"核对中":t.status==="queued"?"等待加载":t.status==="loading"?"加载中":t.status==="error"?"异常":t.visible===!1?"已隐藏":"地图显示"}function nt(){return{engineeringTypes:[...u.value],township:q.value,projectFilterMode:M.value,recentYears:R.value,startYear:Pe.value,endYear:T.value}}function ge(t,a,o,i=null){return B(this,null,function*(){var P,I,J,Q;G(a),H.value=t,ke();const p=k[t],A=((I=(P=window.performance)==null?void 0:P.now)==null?void 0:I.call(P))||Date.now(),j=i?yield i():void 0;G(a);const $=(((Q=(J=window.performance)==null?void 0:J.now)==null?void 0:Q.call(J))||Date.now())-A;return yield Ee(Math.max(0,Number((p==null?void 0:p.minimumDuration)||0)-$),o),G(a),j})}function ke(){const t=W.value;y("analysis-state",{state:"running",stepKey:(t==null?void 0:t.key)||"prepare",stepLabel:(t==null?void 0:t.label)||"准备空间分析",stepDescription:(t==null?void 0:t.description)||"正在准备空间分析",stepNumber:Math.max(1,H.value+1),stepTotal:k.length,progress:De.value})}function at(t){return t==="done"?"完成":t==="active"?"进行中":"等待"}function Ae(){E&&E.abort(),E=null}function G(t){if(t!==oe)throw new DOMException("Analysis superseded","AbortError")}function Le(t){return Ee(oa,t)}function Ee(t,a){return t?a!=null&&a.aborted?Promise.reject(new DOMException("Analysis aborted","AbortError")):new Promise((o,i)=>{const p=window.setTimeout(A,t);a==null||a.addEventListener("abort",j,{once:!0});function A(){a==null||a.removeEventListener("abort",j),o()}function j(){window.clearTimeout(p),i(new DOMException("Analysis aborted","AbortError"))}}):Promise.resolve()}function me(t){return String(t!=null?t:"").replace(/'/g,"''")}function re(t){const a=Number(t);return Number.isFinite(a)?Math.round(a).toLocaleString("zh-CN"):"0"}function Se(t){const a=Number(t);return Number.isFinite(a)?a>=100?a.toFixed(1):a>=10?a.toFixed(2):a.toFixed(3):"0"}return(t,a)=>{var o;return c(),m("div",fn,[r("section",{class:je(["analysis-card analysis-workbench",{"is-running":L.value}])},[r("header",mn,[a[3]||(a[3]=r("div",null,[r("span",null,"生态工程实施分析"),r("small",null,"基础候选区 + 动态业务条件")],-1)),r("strong",null,f(lt.value),1)]),a[11]||(a[11]=r("div",{class:"analysis-section-title"},[r("span",null,"01"),r("strong",null,"工程类型"),r("em",null,"单选")],-1)),r("div",yn,[(c(!0),m(he,null,be(Fe.value,i=>(c(),m("button",{key:i.key,type:"button",class:je(["analysis-type-row",{"is-selected":u.value.includes(i.key)}]),disabled:L.value,role:"radio","aria-checked":u.value.includes(i.key),onClick:p=>Je(i.key)},[r("i",{class:"analysis-type-check",style:Me({"--type-color":i.color})},null,4),r("div",hn,[r("strong",null,f(i.name),1)])],10,_n))),128))]),a[12]||(a[12]=r("div",{class:"analysis-section-title is-filter"},[r("span",null,"02"),r("strong",null,"动态筛选条件"),r("em",null,"3 项条件")],-1)),r("div",bn,[r("label",wn,[a[5]||(a[5]=r("span",null,"所属乡镇",-1)),mt(r("select",{"onUpdate:modelValue":a[0]||(a[0]=i=>q.value=i),"data-testid":"analysis-town",disabled:L.value},[a[4]||(a[4]=r("option",{value:""},"全县",-1)),(c(!0),m(he,null,be(We(pe),i=>(c(),m("option",{key:i,value:i},f(i),9,Cn))),128))],8,Sn),[[yt,q.value]])]),r("label",null,[a[7]||(a[7]=r("span",null,"已有项目",-1)),mt(r("select",{"onUpdate:modelValue":a[1]||(a[1]=i=>M.value=i),"data-testid":"analysis-project-filter",disabled:L.value},[...a[6]||(a[6]=[r("option",{value:"same"},"排除同类工程",-1),r("option",{value:"all"},"排除全部工程",-1),r("option",{value:"none"},"不排除",-1)])],8,jn),[[yt,M.value]])]),r("label",null,[a[9]||(a[9]=r("span",null,"未实施年限",-1)),mt(r("select",{"onUpdate:modelValue":a[2]||(a[2]=i=>R.value=i),"data-testid":"analysis-recent-years",disabled:L.value||M.value==="none"},[...a[8]||(a[8]=[r("option",{value:1},"最近 1 年",-1),r("option",{value:3},"最近 3 年",-1),r("option",{value:5},"最近 5 年",-1)])],8,kn),[[yt,R.value,void 0,{number:!0}]])])]),r("div",An,[a[10]||(a[10]=r("i",null,null,-1)),M.value==="none"?(c(),m("span",Ln,"保留与已有工程相交的候选地块")):S.value==="loading"?(c(),m("span",En,"正在读取项目库最新实施年份…")):S.value==="error"?(c(),m("span",$n,"项目库年份读取失败,暂不能执行历史项目排除")):(c(),m("span",Nn,f(D.value),1))]),r("button",{type:"button",class:"analysis-submit","data-testid":"analysis-submit",disabled:!ne.value,"aria-busy":L.value,onClick:ut},[L.value?(c(),m("span",Fn)):X("",!0),r("span",null,f(L.value?"空间分析进行中":V.value?"重新分析":"开始分析"),1),L.value?(c(),m("strong",Pn,f(((o=W.value)==null?void 0:o.label)||"准备中"),1)):(c(),m("strong",xn,f(ue.value),1))],8,Mn),L.value||V.value?(c(),m("div",Tn,[r("div",{role:"progressbar","aria-label":"分析进度","aria-valuenow":De.value,"aria-busy":L.value,"aria-valuemin":"0","aria-valuemax":"100"},[r("i",{style:Me({width:`${De.value}%`})},null,4)],8,Dn),r("span",null,f(ot.value),1)])):X("",!0),L.value||V.value?(c(),m("div",Rn,[(c(!0),m(he,null,be(ze.value,i=>(c(),m("div",{key:i.key,class:je(["analysis-step-item",`is-${i.status}`])},[r("i",null,f(String(i.index+1).padStart(2,"0")),1),r("span",null,f(i.label),1),r("em",null,f(at(i.status)),1)],2))),128))])):X("",!0),U.value?(c(),m("p",On,f(U.value),1)):X("",!0)],2),L.value||V.value?(c(),m("section",Vn,[r("header",In,[r("div",null,[a[13]||(a[13]=r("span",null,"可实施区域",-1)),r("small",null,f(Ge.value),1)]),r("strong",null,f(re(ae.value))+" 个"+f(L.value?"已加载":""),1)]),L.value?(c(),m("div",Bn,[r("div",null,[a[14]||(a[14]=r("span",null,"已加载图斑",-1)),r("strong",null,f(re(ae.value)),1),a[15]||(a[15]=r("small",null,"个",-1))]),r("div",null,[a[16]||(a[16]=r("span",null,"已加载面积",-1)),r("strong",null,f(Se(we.value)),1),a[17]||(a[17]=r("small",null,"万亩",-1))]),r("div",Yn,[a[18]||(a[18]=r("span",null,"当前批次",-1)),r("strong",null,f(Te.value||"—"),1),r("small",null,f(Te.value?"页":"准备中"),1)])])):(c(),m("div",qn,[r("div",null,[a[19]||(a[19]=r("span",null,"基础候选",-1)),r("strong",null,f(re(ee.value)),1),a[20]||(a[20]=r("small",null,"个图斑",-1))]),r("div",Un,[a[21]||(a[21]=r("span",null,"项目排除",-1)),r("strong",null,f(re(xe.value)),1),a[22]||(a[22]=r("small",null,"个图斑",-1))]),r("div",Wn,[a[23]||(a[23]=r("span",null,"最终可实施",-1)),r("strong",null,f(Se(we.value)),1),a[24]||(a[24]=r("small",null,"万亩",-1))])])),r("div",zn,[(c(!0),m(he,null,be(ce.value,i=>(c(),m("button",{key:i.key,type:"button",class:je(["analysis-result-row",[`is-${i.status}`,{"is-hidden":i.visible===!1}]]),"aria-pressed":i.visible!==!1,onClick:p=>et(i)},[r("i",{style:Me({"--type-color":i.color})},null,4),r("div",null,[r("strong",null,f(i.name),1),i.status==="loading"?(c(),m("span",Gn,"正在读取第 "+f(i.loadedPage)+" 页",1)):i.status==="error"?(c(),m("span",Jn,"加载失败")):(c(),m("span",Qn,f(Se(i.loadedAreaMu/1e4))+" 万亩",1))]),i.status==="loading"?(c(),m("b",Zn,"已加载 "+f(re(i.loadedCount))+" 个",1)):(c(),m("b",Xn,f(re(i.loadedCount))+" 个图斑",1)),r("em",null,f(i.visible===!1?"已隐藏":tt(i)),1)],10,Hn))),128))]),V.value&&se.value.length?(c(),m("section",Kn,[r("header",null,[a[25]||(a[25]=r("strong",null,"排除项目与候选面积",-1)),r("em",null,"合计 "+f(Se(He.value))+" 万亩",1)]),r("div",ea,[(c(!0),m(he,null,be(se.value,(i,p)=>(c(),m("div",{key:i.name,class:"analysis-excluded-project-row"},[r("span",null,f(p+1),1),r("div",null,[r("strong",{title:i.name},f(i.name),9,ta),r("small",null,f(i.latestYear?`${i.latestYear} 年 · `:"")+"排除 "+f(re(i.featureCount))+" 个相交图斑",1)]),r("b",null,f(Se(i.areaMu/1e4))+" 万亩",1)]))),128))])])):X("",!0),V.value?(c(),m("button",{key:3,type:"button",class:"analysis-export","data-testid":"analysis-export-shp",disabled:!_.value||!ae.value,onClick:ft},[...a[26]||(a[26]=[r("span",null,"导出本次分析结果",-1),r("strong",null,"SHP",-1)])],8,na)):X("",!0),r("footer",aa,f(L.value?"正在逐批叠加候选图斑,最终统计将在加载完成后生成。":"结果已排除初筛禁入范围;工程立项前仍需结合连片度、权属和现场踏勘复核。"),1)])):X("",!0)])}}},da=xt(ca,[["__scopeId","data-v-84da35a2"]]),va="/openApi";function ga(){return B(this,arguments,function*(h={}){const g=yield Ft(`${va}/ai/ecological-engineering/advice`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataJson:JSON.stringify({engineeringName:h.engineeringName,scopeName:h.scopeName,dimensionLabel:h.dimensionLabel,baseCount:h.baseCount,excludedCount:h.excludedCount,finalCount:h.finalCount,finalAreaMu:h.finalAreaMu,projectDataLatestYear:h.projectDataLatestYear,filters:h.filters,distribution:(h.distribution||[]).slice(0,30),excludedProjects:(h.excludedProjects||[]).slice(0,30)})}),timeout:7e4});if((g==null?void 0:g.success)===!1||(g==null?void 0:g.code)!==void 0&&![0,200,"0","200"].includes(g.code))throw new Error((g==null?void 0:g.message)||(g==null?void 0:g.msg)||"DeepSeek分析建议生成失败");return Pt(g)})}const pa={class:"engineering-statistics-panel","data-testid":"engineering-statistics-panel","aria-label":"生态工程分析统计","aria-live":"polite"},fa={class:"statistics-head"},ma={class:"advice-section"},ya={key:0,class:"advice-loading","data-testid":"engineering-advice-status"},_a={key:1,class:"advice-list"},ha={key:2,class:"advice-error"},ba={__name:"EngineeringStatisticsPanel",props:{statistics:{type:Object,required:!0}},setup(h){const g=h,y=C(!1),k=C(""),x=C("");let u=0;const q=v(()=>{var _;return Array.isArray((_=g.statistics)==null?void 0:_.distribution)?g.statistics.distribution:[]}),M=v(()=>{var S;const _=[],F=q.value[0];return F&&_.push(`优先核查${F.name}等候选面积较集中的区域,进一步评价地块连片度和施工可达性。`),Number(((S=g.statistics)==null?void 0:S.excludedCount)||0)>0?_.push(`对已排除的 ${U(g.statistics.excludedCount)} 个历史项目相交图斑复核项目边界、实施年份和工程类型,避免重复建设。`):_.push("本次年份条件未排除历史项目相交图斑,建议结合项目库更新时间确认筛选时段是否完整。"),_.push("候选结果用于工程初筛,立项前仍需完成权属核验、现场踏勘和实施方案论证。"),_}),R=v(()=>{const _=String(k.value||"").split(/\n+/).map(F=>F.replace(/^\s*(?:[-•]|\d+[.、)])\s*/,"").trim()).filter(Boolean);return _.length?_.slice(0,5):M.value}),T=v(()=>y.value?"DeepSeek自动研判中":k.value?"DeepSeek研判":"系统初步建议");Ne(()=>g.statistics,_=>{const F=++u;k.value="",x.value="",y.value=!1,_&&O(F,_)},{immediate:!0});function O(_,F){return B(this,null,function*(){y.value=!0,x.value="";try{const S=yield ga(F);if(_!==u)return;if(k.value=String((S==null?void 0:S.advice)||(S==null?void 0:S.content)||"").trim(),!k.value)throw new Error("DeepSeek未返回有效建议")}catch(S){if(_!==u)return;x.value=/404/.test(String((S==null?void 0:S.message)||""))?"DeepSeek建议接口尚未部署,已保留系统初步建议。":(S==null?void 0:S.message)||"DeepSeek暂时不可用,已保留系统初步建议。"}finally{_===u&&(y.value=!1)}})}function U(_){const F=Number(_);return Number.isFinite(F)?Math.round(F).toLocaleString("zh-CN"):"0"}return(_,F)=>(c(),m("aside",pa,[r("header",fa,[r("div",null,[F[0]||(F[0]=r("span",null,"分析建议",-1)),r("small",null,f(h.statistics.engineeringName)+" · "+f(h.statistics.scopeName),1)]),r("strong",null,f(T.value),1)]),r("section",ma,[y.value?(c(),m("div",ya,[...F[1]||(F[1]=[r("span",{class:"advice-spinner"},null,-1),r("span",null,"DeepSeek 正在自动生成分析建议…",-1)])])):(c(),m("ol",_a,[(c(!0),m(he,null,be(R.value,(S,H)=>(c(),m("li",{key:`${H}-${S}`},f(S),1))),128))])),x.value?(c(),m("p",ha,f(x.value),1)):X("",!0)])]))}},wa=xt(ba,[["__scopeId","data-v-fb17a135"]]);const Sa={class:"forest-grass-wet ecological-protection"},Ca={class:"forest-grass-wet-ui ecological-protection-ui"},ja={key:0,class:"fgw-left"},ka={class:"fgw-side-stack is-left"},Aa={key:1,class:"fgw-right"},La={class:"fgw-side-stack is-right"},Ea={key:3,class:"engineering-map-loading",role:"status","aria-live":"polite"},$a={class:"engineering-map-loading__description"},Na={class:"engineering-map-loading__progress","aria-hidden":"true"},Ma={class:"fgw-bottom-topic ecological-bottom-topic"},Fa={key:0,class:"loading"},Pa={class:"loading-progress"},xa={class:"value"},Za={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(h,{expose:g,emit:y}){const k=h,x=y,u=C(null),q=C(""),M=C(""),R=C(it({},"ecological-redline")),T=C(null),O=C(!1),U=C(!1),_=C(null),F=C(0),S=C(k.showLoading),H=C(null),K=C({type:"idle",text:"等待生态保护图层加载"}),ie=C(null),ve=C(!1),E=C({});let oe=null,pe=!1,L=!1,V=!1,ne=null,Fe=0,ue=0;const ce=new Map,Pe=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),D=v(()=>Ye.some(e=>e.key===k.activeView)?k.activeView:"ecological-redline"),W=v(()=>D.value==="engineering-analysis"),ze=v(()=>["restoration","engineering-analysis"].includes(D.value)),lt=v(()=>ht.includes(D.value)),ee=v(()=>q.value?zt(D.value,q.value):null),fe=v(()=>{var e;return(((e=ee.value)==null?void 0:e.legends)||[]).find(n=>n.key===M.value)||null}),ae=v(()=>{var e;return((e=ee.value)==null?void 0:e.legends)||[]}),xe=v(()=>Et(D.value)),we=v(()=>xe.value.length<=2&&ae.value.length<=6),Te=v(()=>{if(W.value)return 112;if(!we.value)return 430;const e=Math.max(1,xe.value.length),n=Math.max(1,Math.ceil(ae.value.length/2)),s=e*34+Math.max(0,e-1)*5,l=30+n*28;return Math.max(196,Math.min(340,72+s+l))}),se=v(()=>{const e=ee.value;return e?fe.value?_e(le({},e),{cqlFilter:fe.value.cqlFilter||e.cqlFilter,activeLegend:fe.value,name:fe.value.name||e.name}):e:null}),He=v(()=>lt.value?R.value:D.value==="restoration"?rn:D.value==="engineering-analysis"?ln:on),De=v(()=>He.value.left||[]),ot=v(()=>He.value.right||[]),Ge=C(typeof window=="undefined"?1080:window.innerHeight),Re=Zt.sideCardWidth,Je=v(()=>Xt(Ge.value)),ut=v(()=>Kt(Je.value,2)),Qe=v(()=>!!_.value),Oe=Gt,Ze=v(()=>Ht({point:_.value?ge(_.value):null,rowCount:T.value?Le(T.value):0,loading:U.value,empty:O.value||!T.value})),ct=v(()=>Ze.value.height),dt=v(()=>Ze.value.style),Xe=v(()=>{var n;return{"ecological-redline":"生态保护红线详情","natural-protected-area":"自然保护地详情","national-park":"国家公园详情",restoration:"生态修复详情","engineering-analysis":"生态工程详情"}[D.value]||`${((n=ee.value)==null?void 0:n.name)||"生态图斑"}详情`});Tt(()=>{ke(),window.addEventListener("resize",ke),document.addEventListener("pointerdown",Ct,!0),pt(),Ke(D.value)}),Dt(()=>{pe=!0,ne&&window.clearTimeout(ne),window.removeEventListener("resize",ke),document.removeEventListener("pointerdown",Ct,!0)}),Ne(D,e=>{Ke(e)}),Ne(q,()=>{M.value="",Z()}),Ne(M,()=>{Z()}),Ne(()=>k.active,e=>{var n,s,l,d;u.value&&(e?(Ie(),(s=(n=u.value).resume)==null||s.call(n)):(d=(l=u.value).pause)==null||d.call(l))});function Ke(e){var l,d,b,w,N,Y,z;const n=Ye.find(te=>te.key===e)||Ye[0],s=Et(e);ie.value=null,ve.value=!1,E.value={},M.value="",q.value=n.defaultLayerKey||((l=s[0])==null?void 0:l.key)||"",H.value=un(e),(b=(d=u.value)==null?void 0:d.setBoundaryDrawing)==null||b.call(d,!1),(N=(w=u.value)==null?void 0:w.clearAnalysisBoundary)==null||N.call(w),e!=="engineering-analysis"&&((z=(Y=u.value)==null?void 0:Y.clearEngineeringSuitability)==null||z.call(Y)),Z(),ht.includes(e)&&(R.value=it({},e),gt(e)),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:ht.includes(e)?bt({},e):cn(e)}),Ve()}function Ve(e=0){const n=se.value||ee.value;!(n!=null&&n.mapView)&&!(n!=null&&n.cameraPosition)||qe(()=>{var l,d;!((d=(l=u.value)==null?void 0:l.focusLayerMapView)==null?void 0:d.call(l,n))&&e<12&&window.setTimeout(()=>Ve(e+1),120)})}function vt(e){const n=Ye.some(s=>s.key===e)?e:"ecological-redline";n!==D.value&&x("view-change",n)}function gt(e){return B(this,null,function*(){const n=++Fe;try{const l=ce.get(e)||(yield vn(e));if(n!==Fe||D.value!==e)return;ce.set(e,l),R.value=it(l,e),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:bt(l,e)})}catch(s){if(n!==Fe||D.value!==e)return;R.value=it({},e),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:bt({},e)}),K.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",s)}})}function pt(){var s;oe=new Qt;const e={progress:0};oe.instance.on("onProgress",(l,d,b)=>{const w=Math.floor(d/b*100);At.to(e,{progress:w,onUpdate:()=>{F.value=Math.floor(e.progress)}})});const n=()=>{pe||L||(L=!0,Ie())};oe.instance.on("onLoad",n),(s=oe.ready)==null||s.then(n).catch(()=>{pe||(K.value={type:"error",text:"地图资源加载失败"})})}function Ie(){pe||!k.active||!L||V||(V=!0,ne&&window.clearTimeout(ne),ne=window.setTimeout(()=>{ne=null,et()},600))}function et(e=0){return B(this,null,function*(){var s,l,d,b,w;if(pe)return;if(!k.active){V=!1;return}if(yield qe(),!k.active){V=!1;return}if(!!((l=(s=u.value)==null?void 0:s.loadMap)!=null&&l.call(s,oe)||(b=(d=u.value)==null?void 0:d.hasMap)!=null&&b.call(d))){yield Vt(),yield qe(),(w=u.value)==null||w.play(),Ve();return}if(e<24){window.setTimeout(()=>et(e+1),120);return}V=!1})}function ft(){ne&&(window.clearTimeout(ne),ne=null)}function tt(){var e,n,s,l;(n=(e=u.value)==null?void 0:e.resume)==null||n.call(e),(l=(s=u.value)==null?void 0:s.refreshView)==null||l.call(s)}function nt(){var e,n,s,l,d,b;if(Z(),(n=(e=u.value)==null?void 0:e.setBoundaryDrawing)==null||n.call(e,!1),(l=(s=u.value)==null?void 0:s.clearAnalysisBoundary)==null||l.call(s),(b=(d=u.value)==null?void 0:d.hasMap)!=null&&b.call(d)){tt();return}ft(),V=!1,qe(()=>{Ie()})}g({refreshMapView:tt,resetMap:nt});function ge(e){const n=document.querySelector(".ecological-protection"),s=n==null?void 0:n.getBoundingClientRect();return!(s!=null&&s.width)||!(s!=null&&s.height)?e:{x:(e.x-s.left)/s.width*1920,y:(e.y-s.top)/s.height*1080}}function ke(){Ge.value=typeof window=="undefined"?1080:window.innerHeight}function at(e,n){return`${D.value}-${n}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function Ae(e){return(e==null?void 0:e.span)===2}function G(e){return Ae(e)?ut.value:Je.value}function Le(e){const n=(e==null?void 0:e.properties)||{};return Object.keys(n).filter(s=>Ee(s,n[s])).length}function Ee(e,n){return n==null||n===""||Array.isArray(n)||typeof n=="object"?!1:!Pe.has(String(e||"").toLowerCase())}function me(e={}){const n=re(e.lng),s=re(e.lat);return n===""||s===""?"":`POINT(${n} ${s})`}function re(e){const n=Number(e);return Number.isFinite(n)?n.toFixed(8).replace(/\.?0+$/,""):""}function Se(){return B(this,arguments,function*(e={}){var b,w,N,Y,z,te;if(!ze.value||W.value)return;if(t(e.overlayLayer||se.value||ee.value)){Z();return}const n=Number((b=e==null?void 0:e.lngLat)==null?void 0:b.lng),s=Number((w=e==null?void 0:e.lngLat)==null?void 0:w.lat);if(!Number.isFinite(n)||!Number.isFinite(s)){Z();return}const l=++ue,d=e.screen||{x:960,y:540};_.value=null,T.value=null,O.value=!1,U.value=!0;try{const de=yield Jt(me({lng:n,lat:s}));if(l!==ue||pe)return;const Be=a(de,e);if(!Be||Le(Be)<=0){Z();return}T.value=Be,_.value=((Y=(N=u.value)==null?void 0:N.getVectorFeatureAnchorScreen)==null?void 0:Y.call(N,Be))||d,O.value=!1,(te=(z=u.value)==null?void 0:z.highlightFeature)==null||te.call(z,Be,{highlightTone:"v21"})}catch(de){if(l!==ue)return;Z()}finally{l===ue&&(U.value=!1)}})}function t(e=se.value){const n=String((e==null?void 0:e.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(n)||String((e==null?void 0:e.dataPath)||"").includes("ecological_restoration_projects")}function a(e,n={}){var b,w,N;const s=i((e==null?void 0:e.project)||((b=e==null?void 0:e.data)==null?void 0:b.project)||(e==null?void 0:e.data)||e);if(!p(s))return null;const l=j(s,e),d=s.geom||s.geometry||s.wkt||null;return{id:s.id||l.id||l.project_name||`project-${(w=n==null?void 0:n.lngLat)==null?void 0:w.lng}-${(N=n==null?void 0:n.lngLat)==null?void 0:N.lat}`,properties:l,feature:{type:"Feature",properties:l,geometry:d},geometry:d,layer:n.overlayLayer||se.value||ee.value,lngLat:n.lngLat}}function o(e,n={}){var Y,z,te;const s=e!=null&&e.feature&&e.feature.type==="Feature"?_e(le({},e.feature),{id:e.id||e.feature.id,layer:e.layer,lngLat:e.lngLat}):e,l=(s==null?void 0:s.type)==="Feature"?s:((Y=s==null?void 0:s.feature)==null?void 0:Y.type)==="Feature"?s.feature:null,d=(s==null?void 0:s.properties)||(l==null?void 0:l.properties)||{},b=(s==null?void 0:s.geometry)||(l==null?void 0:l.geometry)||d.geometry||d.geom||d.wkt||null,w=j(d,n),N=(s==null?void 0:s.id)||(l==null?void 0:l.id)||w.id||w.gid||w.project_id||w.project_name||`project-${((z=n==null?void 0:n.lngLat)==null?void 0:z.lng)||""}-${((te=n==null?void 0:n.lngLat)==null?void 0:te.lat)||""}`;return{id:N,properties:w,feature:{type:"Feature",id:N,properties:w,geometry:b},geometry:b,layer:(s==null?void 0:s.layer)||n.overlayLayer||se.value||ee.value,lngLat:(s==null?void 0:s.lngLat)||n.lngLat}}function i(e){return Array.isArray(e)?e.find(n=>n&&typeof n=="object")||null:e&&typeof e=="object"?e:null}function p(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(A)?!0:Object.keys(e).some(n=>Ee(n,e[n]))}function A(e={}){const n=e==null?void 0:e.value;return n==null||n===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function j(e={},n={}){const s=le({},e);(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(N=>{const Y=N==null?void 0:N.value;if(Y==null||Y==="")return;const z=String((N==null?void 0:N.field)||"").trim();[z,$(z)].filter(Boolean).forEach(de=>{(s[de]===void 0||s[de]===null||s[de]==="")&&(s[de]=Y)})});const d=s.project_name||s.projectName||s.name,b=s.area_mu||s.areaMu||s.acreage,w=s.project_status||s.projectStatus;return _e(le({},s),{project_name:d,name:d||s.name,area_mu:b,project_status:w,progress_count:Array.isArray(n==null?void 0:n.progress)?n.progress.length:void 0})}function $(e){return String(e||"").replace(/[A-Z]/g,n=>`_${n.toLowerCase()}`)}function P(e){var s,l,d,b;const n=(l=(s=e==null?void 0:e.feature)!=null?s:e)!=null?l:null;if(!n||Le(n)<=0){Z();return}if(ze.value){ue+=1;const w=o(n,e);if(!w||Le(w)<=0){Z();return}T.value=w,O.value=!1,U.value=!1,_.value=((b=(d=u.value)==null?void 0:d.getVectorFeatureAnchorScreen)==null?void 0:b.call(d,w))||(e==null?void 0:e.screen)||null;return}T.value=n,O.value=!1,e!=null&&e.screen&&(_.value=e.screen)}function I(e){K.value=e}function J(e,n){var d,b;if(D.value==="national-park"&&(n!=null&&n.name)){Z(),(b=(d=u.value)==null?void 0:d.focusTown)==null||b.call(d,n.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(D.value!=="restoration"||(e==null?void 0:e.key)!=="restoration-projects"||!((n==null?void 0:n.projectName)||(n==null?void 0:n.name)))return;Z();const l=()=>Q(n);if(M.value){M.value="",qe(()=>window.setTimeout(l,80));return}l()}function Q(e,n=0){var b,w,N,Y,z,te,de;if(D.value!=="restoration")return;const s=(e==null?void 0:e.projectName)||(e==null?void 0:e.name);if(!s)return;const l=(w=(b=u.value)==null?void 0:b.focusProject)==null?void 0:w.call(b,{id:e==null?void 0:e.id,key:e==null?void 0:e.key,name:s,projectName:s,project_name:s,highlightTone:"white"});if(!(l!=null&&l.feature)){if(n<10){window.setTimeout(()=>Q(e,n+1),120);return}K.value={type:"warning",text:"当前项目图斑尚未加载"};return}const d=o({id:l.feature.id,properties:l.feature.properties||{},geometry:l.feature.geometry,feature:l.feature,layer:se.value||ee.value},{});T.value=d,O.value=!1,U.value=!1,_.value=l.screen||((z=(N=u.value)==null?void 0:N.getVectorFeaturesAnchorScreen)==null?void 0:z.call(N,(Y=l.highlightFeatures)!=null&&Y.length?l.highlightFeatures:l.features))||((de=(te=u.value)==null?void 0:te.getVectorFeatureAnchorScreen)==null?void 0:de.call(te,d))}function ye(){var e,n;Z(),ie.value=null,(n=(e=u.value)==null?void 0:e.clearEngineeringSuitability)==null||n.call(e)}function st(e={}){ve.value=e.state==="running",E.value=e.state==="running"?le({},e):{}}function Ce(e={}){var n,s;(s=(n=u.value)==null?void 0:n.addEngineeringSuitabilityBatch)==null||s.call(n,e)}function Rt(e={}){var n,s;ie.value=e.statistics||null,(s=(n=u.value)==null?void 0:n.completeEngineeringSuitability)==null||s.call(n,e)}function Ot(e={}){var n,s;(s=(n=u.value)==null?void 0:n.setEngineeringSuitabilityVisibility)==null||s.call(n,e.key,e.visible)}function Z(){var e,n;ue+=1,T.value=null,O.value=!1,U.value=!1,_.value=null,(n=(e=u.value)==null?void 0:e.clearSelectedFeature)==null||n.call(e)}function Ct(e){if(!Qe.value)return;const n=document.querySelector(".fgw-map-feature-info"),s=e.target;n&&s instanceof Node&&n.contains(s)||Z()}function Vt(){return S.value?new Promise(e=>{At.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{S.value=!1,e()}})}):Promise.resolve()}return(e,n)=>(c(),m("div",Sa,[$e(en,{ref_key:"mapSceneRef",ref:u,"active-layer":se.value,"map-ranking":H.value,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:n[0]||(n[0]=s=>U.value=s),onFeatureInfo:P,onMapClick:Se,onLayerStatus:I},null,8,["active-layer","map-ranking"]),r("div",Ca,[W.value?X("",!0):(c(),m("div",ja,[r("div",ka,[(c(!0),m(he,null,be(De.value,s=>(c(),rt(Lt,{key:at(s,"left"),class:je(["fgw-side-card left-card",[{"is-double":Ae(s)},`ecological-side-card--${s.key}`]]),title:s.title,width:We(Re),height:G(s)},{default:Nt(()=>[$e($t,{panel:s,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:l=>J(s,l)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),W.value?X("",!0):(c(),m("div",Aa,[r("div",La,[(c(!0),m(he,null,be(ot.value,s=>(c(),rt(Lt,{key:at(s,"right"),class:je(["fgw-side-card right-card",[{"is-double":Ae(s)},`ecological-side-card--${s.key}`]]),title:s.title,width:We(Re),height:G(s)},{default:Nt(()=>[$e($t,{panel:s,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:l=>J(s,l)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),W.value?(c(),rt(da,{key:2,onAnalysisReset:ye,onAnalysisBatch:Ce,onAnalysisComplete:Rt,onAnalysisState:st,onResultVisibility:Ot})):X("",!0),W.value&&ve.value?(c(),m("div",Ea,[n[3]||(n[3]=r("span",{class:"engineering-map-loading__radar","aria-hidden":"true"},null,-1)),n[4]||(n[4]=r("strong",null,"空间分析中",-1)),r("small",null,f(E.value.stepLabel||"初始化分析环境"),1),r("span",$a,f(E.value.stepDescription||"正在准备空间索引与工程参数"),1),r("div",Na,[r("i",{style:Me({width:`${E.value.progress||1}%`})},null,4),r("em",null,f(E.value.stepNumber||1)+"/"+f(E.value.stepTotal||7),1)])])):X("",!0),W.value&&ie.value?(c(),rt(wa,{key:4,statistics:ie.value},null,8,["statistics"])):X("",!0),r("div",{class:je(["fgw-map-layer-tools",{"is-analysis":W.value,"is-compact":we.value}]),style:Me({height:`${Te.value}px`})},[$e(tn,{modelValue:q.value,"onUpdate:modelValue":n[1]||(n[1]=s=>q.value=s),"selected-legend-key":M.value,"onUpdate:selectedLegendKey":n[2]||(n[2]=s=>M.value=s),"topic-key":D.value,legends:ae.value,width:248,height:Te.value,compact:we.value,"show-legend":!W.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact","show-legend"])],6),Qe.value?(c(),m("div",{key:5,class:"fgw-map-feature-info",style:Me(dt.value)},[$e(nn,{title:Xe.value,feature:T.value,empty:O.value,loading:U.value,width:We(Oe),height:ct.value,closable:"",onClose:Z},null,8,["title","feature","empty","loading","width","height"])],4)):X("",!0),r("div",Ma,[$e(an,{"model-value":D.value,topics:We(Ye),"onUpdate:modelValue":vt},null,8,["model-value","topics"])])]),S.value?(c(),m("div",Fa,[n[6]||(n[6]=sn('
    LOADING
    ',1)),r("div",Pa,[r("span",xa,f(F.value),1),n[5]||(n[5]=r("span",{class:"unit"},"%",-1))])])):X("",!0)]))}};export{Za as default}; +var It=Object.defineProperty,Bt=Object.defineProperties;var Yt=Object.getOwnPropertyDescriptors;var jt=Object.getOwnPropertySymbols;var qt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable;var kt=(h,g,y)=>g in h?It(h,g,{enumerable:!0,configurable:!0,writable:!0,value:y}):h[g]=y,le=(h,g)=>{for(var y in g||(g={}))qt.call(g,y)&&kt(h,y,g[y]);if(jt)for(var y of jt(g))Ut.call(g,y)&&kt(h,y,g[y]);return h},_e=(h,g)=>Bt(h,Yt(g));var B=(h,g,y)=>new Promise((k,x)=>{var u=R=>{try{M(y.next(R))}catch(T){x(T)}},q=R=>{try{M(y.throw(R))}catch(T){x(T)}},M=R=>R.done?k(R.value):Promise.resolve(R.value).then(u,q);M((y=y.apply(h,g)).next())});import{g as At}from"./index-e9f36657-1785858872961.js";/* empty css */import{_ as Lt}from"./index-8ffdff7e-1785858872961.js";import{d as Wt,i as Ye,g as zt,b as Et}from"./townshipBoundaries-8867fad4-1785858872961.js";import{r as Ft,n as Pt}from"./index-d6700f13-1785858872961.js";import{c as Ht,F as Gt,b as Jt}from"./featurePanelLayout-07907d63-1785858872961.js";import{A as Qt}from"./assets-0c374c8c-1785858872961.js";import{q as Zt,r as Xt,s as Kt}from"./screen2Standard-2d8b09ac-1785858872961.js";import{M as en}from"./index-1891ee64-1785858872961.js";import{_ as tn}from"./LayerPanel-5e7fd226-1785858872961.js";import{a as $t,_ as nn}from"./FeatureInfoPanel-ca915481-1785858872961.js";import{_ as an}from"./TopicSwitcher-12ae75fc-1785858872961.js";import{_ as xt,g as v,w as Ne,q as Tt,h as Dt,o as c,c as m,a as r,t as f,F as he,y as be,n as je,K as Me,s as mt,O as yt,u as We,j as X,d as C,N as _t,A as qe,b as $e,C as rt,x as Nt,z as sn}from"./index-1785858872961.js";import{b as it,e as ht,r as rn,a as ln,p as on,g as un,c as bt,d as cn}from"./data-6a941f14-1785858872961.js";import"./data-56996d99-1785858872961.js";const dn="/openApi";function vn(h){return B(this,null,function*(){const g=yield Ft(`${dn}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:h},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:h})}),y=Pt(g);return pn(Array.isArray(y)?y[0]||{}:y||{})})}const gn={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function pn(h={}){return!h||typeof h!="object"?{}:Object.entries(h).reduce((g,[y,k])=>{g[y]=k;const x=gn[y];return x&&g[x]===void 0&&(g[x]=k),g},{})}const fn={class:"engineering-analysis-panel"},mn={class:"analysis-card-head"},yn={class:"analysis-type-list",role:"radiogroup","aria-label":"工程类型"},_n=["disabled","aria-checked","onClick"],hn={class:"analysis-type-main"},bn={class:"analysis-filter-grid","aria-label":"动态筛选条件"},wn={class:"is-wide"},Sn=["disabled"],Cn=["value"],jn=["disabled"],kn=["disabled"],An={class:"analysis-filter-note"},Ln={key:0},En={key:1},$n={key:2},Nn={key:3},Mn=["disabled","aria-busy"],Fn={key:0,class:"analysis-submit-spinner"},Pn={key:1},xn={key:2},Tn={key:0,class:"analysis-progress","aria-live":"polite"},Dn=["aria-valuenow","aria-busy"],Rn={key:1,class:"analysis-step-list","aria-label":"空间分析步骤"},On={key:2,class:"analysis-error"},Vn={key:0,class:"analysis-card analysis-result-card"},In={class:"analysis-card-head is-result"},Bn={key:0,class:"analysis-result-summary is-loading"},Yn={class:"is-final"},qn={key:1,class:"analysis-result-summary"},Un={class:"is-excluded"},Wn={class:"is-final"},zn={class:"analysis-result-list"},Hn=["aria-pressed","onClick"],Gn={key:0},Jn={key:1},Qn={key:2},Zn={key:0},Xn={key:1},Kn={key:2,class:"analysis-excluded-projects"},ea={class:"analysis-excluded-project-list"},ta=["title"],na=["disabled"],aa={class:"analysis-result-foot"},Ue="/geoserver/ne/ows",wt="ne:t_ecological_engineering_suitability_layer",sa="ne:t_ecological_engineering_suitability_export_layer",ra="ne:t_ecological_restoration_project_layer",ia=750,Mt=5e3,la=18,oa=420,ua=18e3,St="#FFD43B",ca={__name:"EngineeringAnalysisPanel",emits:["analysis-reset","analysis-batch","analysis-complete","analysis-state","result-visibility"],setup(h,{emit:g}){const y=g,k=[{key:"prepare",label:"初始化分析环境",description:"正在准备空间索引与工程参数",minimumDuration:1400},{key:"validate",label:"校验业务条件",description:"正在校验乡镇、工程类型与时间范围",minimumDuration:1500},{key:"count",label:"计算基础候选区",description:"正在统计满足基础条件的候选图斑",minimumDuration:2e3},{key:"exclude",label:"排除历史项目",description:"正在比对既有工程与重复实施范围",minimumDuration:2200},{key:"overlay",label:"执行空间叠加",description:"正在叠加生态约束与工程适宜条件",minimumDuration:1400},{key:"generate",label:"生成适宜图斑",description:"正在分批生成并渲染适宜实施区域",minimumDuration:0},{key:"verify",label:"汇总校验结果",description:"正在汇总面积、数量与空间完整性",minimumDuration:2200}],x=[{key:"forest-conservation",name:"封山育林",color:St},{key:"grassland-improvement",name:"草原改良",color:St},{key:"artificial-grass",name:"人工种草",color:St}],u=C([x[0].key]),q=C(""),M=C("same"),R=C(3),T=C(null),O=C("idle"),U=C(""),_=C(""),F=C(null),S=C("loading"),H=C(-1),K=_t({}),ie=_t({}),ve=_t({});let E=null,oe=0;const pe=Wt,L=v(()=>O.value==="running"),V=v(()=>O.value==="done"),ne=v(()=>u.value.length>0&&!L.value&&(M.value==="none"||S.value==="ready")),Fe=v(()=>x),ue=v(()=>{var t;return((t=x.find(a=>a.key===u.value[0]))==null?void 0:t.name)||"请选择工程"}),ce=v(()=>x.filter(t=>u.value.includes(t.key)).map(t=>K[t.key]||Re(t))),Pe=v(()=>{const t=Number(T.value);return Number.isFinite(t)?t-Number(R.value)+1:null}),D=v(()=>{const t=`${Pe.value}—${T.value} 年`,a=F.value?`项目库更新至 ${F.value} 年 · `:"",o=M.value==="all"?`排除 ${t} 内实施过任一工程的相交地块`:`排除 ${t} 内实施过同类工程的相交地块`;return`${a}${o}`}),W=v(()=>k[H.value]||null),ze=v(()=>k.map((t,a)=>_e(le({},t),{index:a,status:V.value||aL.value?`第 ${H.value+1}/${k.length} 步`:V.value?"分析完成":"等待分析"),ee=v(()=>ce.value.reduce((t,a)=>t+Number(a.baseCount||0),0)),fe=v(()=>ce.value.reduce((t,a)=>t+Number(a.targetCount||0),0)),ae=v(()=>ce.value.reduce((t,a)=>t+Number(a.loadedCount||0),0)),xe=v(()=>Math.max(0,ee.value-fe.value)),we=v(()=>ce.value.reduce((t,a)=>t+Number(a.loadedAreaMu||0),0)/1e4),Te=v(()=>Math.max(0,...ce.value.map(t=>Number(t.loadedPage||0)))),se=v(()=>Object.values(ve).map(t=>_e(le({},t),{areaMu:Number(Number(t.areaMu||0).toFixed(2))})).sort((t,a)=>a.areaMu-t.areaMu)),He=v(()=>se.value.reduce((t,a)=>t+Number(a.areaMu||0),0)/1e4),De=v(()=>{var p;if(V.value)return 100;if(!L.value)return 0;const t=100/k.length,a=Math.max(0,H.value)*t,i=((p=W.value)==null?void 0:p.key)==="generate"&&fe.value?Math.min(.96,ae.value/fe.value):.42;return Math.min(99,Math.max(1,Math.round(a+i*t)))}),ot=v(()=>{var t;return L.value&&((t=W.value)==null?void 0:t.key)==="generate"?`正在分批渲染${ue.value}图斑,已生成 ${re(ae.value)} 个`:L.value&&W.value?W.value.description:V.value?`分析完成,共形成 ${re(ae.value)} 个可实施候选图斑`:"正在准备空间分析"}),Ge=v(()=>{const t=q.value||"红原县全域";return M.value==="none"?`${t} · 未排除历史项目`:`${t} · ${Pe.value}—${T.value} 年未实施条件`});Ne([u,q,M,R,T],()=>{!V.value&&O.value!=="error"||(O.value="idle",H.value=-1,U.value="",_.value="",Object.keys(K).forEach(t=>delete K[t]),y("analysis-reset"))}),Tt(()=>gt()),Dt(()=>Ae());function Re(t){return _e(le({},t),{status:"idle",baseCount:0,targetCount:0,loadedCount:0,loadedAreaMu:0,loadedPage:0,visible:!0})}function Je(t){L.value||u.value[0]!==t&&(u.value=[t])}function ut(){return B(this,null,function*(){var i,p,A,j;if(!ne.value)return;Ae();const t=++oe,a=((p=(i=window.performance)==null?void 0:i.now)==null?void 0:p.call(i))||Date.now();E=new AbortController,O.value="running",U.value="",_.value="";const o=nt();Object.keys(K).forEach($=>delete K[$]),Object.keys(ie).forEach($=>delete ie[$]),Object.keys(ve).forEach($=>delete ve[$]),u.value.forEach($=>{const P=x.find(I=>I.key===$);K[$]=Re(P),K[$].status="counting"}),y("analysis-reset");try{yield ge(0,t,E.signal),yield ge(1,t,E.signal),yield ge(2,t,E.signal,()=>B(this,null,function*(){yield Promise.all(u.value.map(P=>B(this,null,function*(){const I=K[P],[J,Q]=yield Promise.all([Xe(Oe(P,!1,o),E.signal),Xe(Oe(P,!0,o),E.signal)]);G(t),I.baseCount=J,I.targetCount=Q,I.status="queued"})))})),yield ge(3,t,E.signal,()=>B(this,null,function*(){yield Promise.all(u.value.map(P=>Ve(P,o,t,E.signal)))})),yield ge(4,t,E.signal),yield ge(5,t,E.signal,()=>B(this,null,function*(){for(const P of u.value)G(t),yield Qe(K[P],o,t,E.signal)})),yield ge(6,t,E.signal),G(t);const $=(((j=(A=window.performance)==null?void 0:A.now)==null?void 0:j.call(A))||Date.now())-a;yield Ee(Math.max(0,ua-$),E.signal),G(t),O.value="done",H.value=k.length,y("analysis-state",{state:"done",stepNumber:k.length,stepTotal:k.length,progress:100}),_.value=Ze(o),y("analysis-complete",{rows:ce.value,filters:o,statistics:Ie(o)})}catch($){if(($==null?void 0:$.name)==="AbortError"||t!==oe)return;O.value="error",H.value=-1,y("analysis-state",{state:"error"}),U.value="工程适宜区服务暂时无法连接,请稍后重试。",_.value="",y("analysis-reset")}finally{t===oe&&(E=null)}})}function Qe(t,a,o,i){return B(this,null,function*(){if(t.status="loading",!t.targetCount){t.status="done";return}let p=0;for(;p{var ye;return J+Number(((ye=Q==null?void 0:Q.properties)==null?void 0:ye.source_area_mu)||0)},0),pt(I,a),y("analysis-batch",{key:t.key,name:t.name,color:t.color,features:I,loadedCount:t.loadedCount,targetCount:t.targetCount}),ke(),yield Le(i)}p+=j.length}t.status="done"})}function Oe(t,a,o=nt()){const i=[`engineering_type='${me(t)}'`];return i.push(...ct(o,a)),i.join(" AND ")}function Ze(t){const o=[`eng_type IN (${t.engineeringTypes.map(i=>`'${me(i)}'`).join(",")})`];if(t.township&&o.push(`town_name='${me(t.township)}'`),t.projectFilterMode!=="none"){const i=t.projectFilterMode==="all"?"last_year":"same_year";o.push(`(${i} IS NULL OR ${i}<${Number(t.startYear)})`)}return o.join(" AND ")}function ct(t,a){const o=[];if(t.township&&o.push(`township_name='${me(t.township)}'`),a&&t.projectFilterMode!=="none"){const i=t.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year";o.push(`(${i} IS NULL OR ${i}<${Number(t.startYear)})`)}return o}function dt(t,a){const o=[`engineering_type='${me(t)}'`];if(a.township&&o.push(`township_name='${me(a.township)}'`),a.projectFilterMode==="none")return"EXCLUDE";const i=a.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year";return o.push(`${i}>=${Number(a.startYear)}`),o.join(" AND ")}function Xe(t,a){return B(this,null,function*(){const o=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:wt,resultType:"hits",CQL_FILTER:t}),i=yield fetch(`${Ue}?${o}`,{credentials:"same-origin",signal:a});if(!i.ok)throw new Error(`HTTP ${i.status}`);const p=yield i.text(),A=p.match(/numberMatched="(\d+)"/i)||p.match(/numberOfFeatures="(\d+)"/i);return Number((A==null?void 0:A[1])||0)})}function Ke(t,a,o){return B(this,null,function*(){const i=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:wt,outputFormat:"application/json",srsName:"EPSG:4326",count:String(ia),startIndex:String(a),sortBy:"id",CQL_FILTER:t}),p=yield fetch(`${Ue}?${i}`,{credentials:"same-origin",signal:o});if(!p.ok)throw new Error(`HTTP ${p.status}`);return p.json()})}function Ve(t,a,o,i){return B(this,null,function*(){if(a.projectFilterMode==="none")return;const p=a.projectFilterMode==="all"?"latest_project_year":"latest_same_type_project_year",A=a.projectFilterMode==="all"?"latest_project_name":"latest_same_type_project_name",j=dt(t,a);let $=0;for(;;){G(o);const P=yield vt(j,p,A,$,i);G(o);const I=Array.isArray(P.features)?P.features:[];if(I.forEach(J=>{const Q=(J==null?void 0:J.properties)||{},ye=String(Q[A]||"未标注项目").trim()||"未标注项目",st=Number(Q[p])||null,Ce=ve[ye]||{name:ye,latestYear:st,featureCount:0,areaMu:0};Ce.latestYear=Math.max(Number(Ce.latestYear||0),Number(st||0))||null,Ce.featureCount+=1,Ce.areaMu+=Number(Q.source_area_mu||0),ve[ye]=Ce}),I.length{const p=(i==null?void 0:i.properties)||{},A=String(p[o]||"未标注").trim()||"未标注",j=ie[A]||{name:A,featureCount:0,areaMu:0};j.featureCount+=1,j.areaMu+=Number(p.source_area_mu||0),ie[A]=j})}function Ie(t){return{engineeringType:t.engineeringTypes[0],engineeringName:ue.value,scopeName:t.township||"红原县全域",dimensionLabel:t.township?"村":"乡镇",baseCount:ee.value,excludedCount:xe.value,finalCount:ae.value,finalAreaMu:we.value*1e4,projectDataLatestYear:F.value,filters:t,excludedProjects:se.value.map(a=>le({},a)),distribution:Object.values(ie).map(a=>_e(le({},a),{areaMu:Number(a.areaMu.toFixed(2))})).sort((a,o)=>o.areaMu-a.areaMu)}}function et(t){!t||t.status==="idle"||(t.visible=t.visible===!1,y("result-visibility",{key:t.key,visible:t.visible}))}function ft(){if(!V.value||!_.value||!ae.value)return;const t=new Date,o=`ecological_engineering_suitability_${[t.getFullYear(),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")].join("")}.zip`,i=new URLSearchParams({service:"WFS",version:"2.0.0",request:"GetFeature",typeNames:sa,outputFormat:"shape-zip",srsName:"EPSG:4326",CQL_FILTER:_.value,format_options:`charset:UTF-8;filename:${o}`}),p=document.createElement("a");p.href=`${Ue}?${i}`,p.download=o,document.body.appendChild(p),p.click(),p.remove()}function tt(t){return t.status==="counting"?"核对中":t.status==="queued"?"等待加载":t.status==="loading"?"加载中":t.status==="error"?"异常":t.visible===!1?"已隐藏":"地图显示"}function nt(){return{engineeringTypes:[...u.value],township:q.value,projectFilterMode:M.value,recentYears:R.value,startYear:Pe.value,endYear:T.value}}function ge(t,a,o,i=null){return B(this,null,function*(){var P,I,J,Q;G(a),H.value=t,ke();const p=k[t],A=((I=(P=window.performance)==null?void 0:P.now)==null?void 0:I.call(P))||Date.now(),j=i?yield i():void 0;G(a);const $=(((Q=(J=window.performance)==null?void 0:J.now)==null?void 0:Q.call(J))||Date.now())-A;return yield Ee(Math.max(0,Number((p==null?void 0:p.minimumDuration)||0)-$),o),G(a),j})}function ke(){const t=W.value;y("analysis-state",{state:"running",stepKey:(t==null?void 0:t.key)||"prepare",stepLabel:(t==null?void 0:t.label)||"准备空间分析",stepDescription:(t==null?void 0:t.description)||"正在准备空间分析",stepNumber:Math.max(1,H.value+1),stepTotal:k.length,progress:De.value})}function at(t){return t==="done"?"完成":t==="active"?"进行中":"等待"}function Ae(){E&&E.abort(),E=null}function G(t){if(t!==oe)throw new DOMException("Analysis superseded","AbortError")}function Le(t){return Ee(oa,t)}function Ee(t,a){return t?a!=null&&a.aborted?Promise.reject(new DOMException("Analysis aborted","AbortError")):new Promise((o,i)=>{const p=window.setTimeout(A,t);a==null||a.addEventListener("abort",j,{once:!0});function A(){a==null||a.removeEventListener("abort",j),o()}function j(){window.clearTimeout(p),i(new DOMException("Analysis aborted","AbortError"))}}):Promise.resolve()}function me(t){return String(t!=null?t:"").replace(/'/g,"''")}function re(t){const a=Number(t);return Number.isFinite(a)?Math.round(a).toLocaleString("zh-CN"):"0"}function Se(t){const a=Number(t);return Number.isFinite(a)?a>=100?a.toFixed(1):a>=10?a.toFixed(2):a.toFixed(3):"0"}return(t,a)=>{var o;return c(),m("div",fn,[r("section",{class:je(["analysis-card analysis-workbench",{"is-running":L.value}])},[r("header",mn,[a[3]||(a[3]=r("div",null,[r("span",null,"生态工程实施分析"),r("small",null,"基础候选区 + 动态业务条件")],-1)),r("strong",null,f(lt.value),1)]),a[11]||(a[11]=r("div",{class:"analysis-section-title"},[r("span",null,"01"),r("strong",null,"工程类型"),r("em",null,"单选")],-1)),r("div",yn,[(c(!0),m(he,null,be(Fe.value,i=>(c(),m("button",{key:i.key,type:"button",class:je(["analysis-type-row",{"is-selected":u.value.includes(i.key)}]),disabled:L.value,role:"radio","aria-checked":u.value.includes(i.key),onClick:p=>Je(i.key)},[r("i",{class:"analysis-type-check",style:Me({"--type-color":i.color})},null,4),r("div",hn,[r("strong",null,f(i.name),1)])],10,_n))),128))]),a[12]||(a[12]=r("div",{class:"analysis-section-title is-filter"},[r("span",null,"02"),r("strong",null,"动态筛选条件"),r("em",null,"3 项条件")],-1)),r("div",bn,[r("label",wn,[a[5]||(a[5]=r("span",null,"所属乡镇",-1)),mt(r("select",{"onUpdate:modelValue":a[0]||(a[0]=i=>q.value=i),"data-testid":"analysis-town",disabled:L.value},[a[4]||(a[4]=r("option",{value:""},"全县",-1)),(c(!0),m(he,null,be(We(pe),i=>(c(),m("option",{key:i,value:i},f(i),9,Cn))),128))],8,Sn),[[yt,q.value]])]),r("label",null,[a[7]||(a[7]=r("span",null,"已有项目",-1)),mt(r("select",{"onUpdate:modelValue":a[1]||(a[1]=i=>M.value=i),"data-testid":"analysis-project-filter",disabled:L.value},[...a[6]||(a[6]=[r("option",{value:"same"},"排除同类工程",-1),r("option",{value:"all"},"排除全部工程",-1),r("option",{value:"none"},"不排除",-1)])],8,jn),[[yt,M.value]])]),r("label",null,[a[9]||(a[9]=r("span",null,"未实施年限",-1)),mt(r("select",{"onUpdate:modelValue":a[2]||(a[2]=i=>R.value=i),"data-testid":"analysis-recent-years",disabled:L.value||M.value==="none"},[...a[8]||(a[8]=[r("option",{value:1},"最近 1 年",-1),r("option",{value:3},"最近 3 年",-1),r("option",{value:5},"最近 5 年",-1)])],8,kn),[[yt,R.value,void 0,{number:!0}]])])]),r("div",An,[a[10]||(a[10]=r("i",null,null,-1)),M.value==="none"?(c(),m("span",Ln,"保留与已有工程相交的候选地块")):S.value==="loading"?(c(),m("span",En,"正在读取项目库最新实施年份…")):S.value==="error"?(c(),m("span",$n,"项目库年份读取失败,暂不能执行历史项目排除")):(c(),m("span",Nn,f(D.value),1))]),r("button",{type:"button",class:"analysis-submit","data-testid":"analysis-submit",disabled:!ne.value,"aria-busy":L.value,onClick:ut},[L.value?(c(),m("span",Fn)):X("",!0),r("span",null,f(L.value?"空间分析进行中":V.value?"重新分析":"开始分析"),1),L.value?(c(),m("strong",Pn,f(((o=W.value)==null?void 0:o.label)||"准备中"),1)):(c(),m("strong",xn,f(ue.value),1))],8,Mn),L.value||V.value?(c(),m("div",Tn,[r("div",{role:"progressbar","aria-label":"分析进度","aria-valuenow":De.value,"aria-busy":L.value,"aria-valuemin":"0","aria-valuemax":"100"},[r("i",{style:Me({width:`${De.value}%`})},null,4)],8,Dn),r("span",null,f(ot.value),1)])):X("",!0),L.value||V.value?(c(),m("div",Rn,[(c(!0),m(he,null,be(ze.value,i=>(c(),m("div",{key:i.key,class:je(["analysis-step-item",`is-${i.status}`])},[r("i",null,f(String(i.index+1).padStart(2,"0")),1),r("span",null,f(i.label),1),r("em",null,f(at(i.status)),1)],2))),128))])):X("",!0),U.value?(c(),m("p",On,f(U.value),1)):X("",!0)],2),L.value||V.value?(c(),m("section",Vn,[r("header",In,[r("div",null,[a[13]||(a[13]=r("span",null,"可实施区域",-1)),r("small",null,f(Ge.value),1)]),r("strong",null,f(re(ae.value))+" 个"+f(L.value?"已加载":""),1)]),L.value?(c(),m("div",Bn,[r("div",null,[a[14]||(a[14]=r("span",null,"已加载图斑",-1)),r("strong",null,f(re(ae.value)),1),a[15]||(a[15]=r("small",null,"个",-1))]),r("div",null,[a[16]||(a[16]=r("span",null,"已加载面积",-1)),r("strong",null,f(Se(we.value)),1),a[17]||(a[17]=r("small",null,"万亩",-1))]),r("div",Yn,[a[18]||(a[18]=r("span",null,"当前批次",-1)),r("strong",null,f(Te.value||"—"),1),r("small",null,f(Te.value?"页":"准备中"),1)])])):(c(),m("div",qn,[r("div",null,[a[19]||(a[19]=r("span",null,"基础候选",-1)),r("strong",null,f(re(ee.value)),1),a[20]||(a[20]=r("small",null,"个图斑",-1))]),r("div",Un,[a[21]||(a[21]=r("span",null,"项目排除",-1)),r("strong",null,f(re(xe.value)),1),a[22]||(a[22]=r("small",null,"个图斑",-1))]),r("div",Wn,[a[23]||(a[23]=r("span",null,"最终可实施",-1)),r("strong",null,f(Se(we.value)),1),a[24]||(a[24]=r("small",null,"万亩",-1))])])),r("div",zn,[(c(!0),m(he,null,be(ce.value,i=>(c(),m("button",{key:i.key,type:"button",class:je(["analysis-result-row",[`is-${i.status}`,{"is-hidden":i.visible===!1}]]),"aria-pressed":i.visible!==!1,onClick:p=>et(i)},[r("i",{style:Me({"--type-color":i.color})},null,4),r("div",null,[r("strong",null,f(i.name),1),i.status==="loading"?(c(),m("span",Gn,"正在读取第 "+f(i.loadedPage)+" 页",1)):i.status==="error"?(c(),m("span",Jn,"加载失败")):(c(),m("span",Qn,f(Se(i.loadedAreaMu/1e4))+" 万亩",1))]),i.status==="loading"?(c(),m("b",Zn,"已加载 "+f(re(i.loadedCount))+" 个",1)):(c(),m("b",Xn,f(re(i.loadedCount))+" 个图斑",1)),r("em",null,f(i.visible===!1?"已隐藏":tt(i)),1)],10,Hn))),128))]),V.value&&se.value.length?(c(),m("section",Kn,[r("header",null,[a[25]||(a[25]=r("strong",null,"排除项目与候选面积",-1)),r("em",null,"合计 "+f(Se(He.value))+" 万亩",1)]),r("div",ea,[(c(!0),m(he,null,be(se.value,(i,p)=>(c(),m("div",{key:i.name,class:"analysis-excluded-project-row"},[r("span",null,f(p+1),1),r("div",null,[r("strong",{title:i.name},f(i.name),9,ta),r("small",null,f(i.latestYear?`${i.latestYear} 年 · `:"")+"排除 "+f(re(i.featureCount))+" 个相交图斑",1)]),r("b",null,f(Se(i.areaMu/1e4))+" 万亩",1)]))),128))])])):X("",!0),V.value?(c(),m("button",{key:3,type:"button",class:"analysis-export","data-testid":"analysis-export-shp",disabled:!_.value||!ae.value,onClick:ft},[...a[26]||(a[26]=[r("span",null,"导出本次分析结果",-1),r("strong",null,"SHP",-1)])],8,na)):X("",!0),r("footer",aa,f(L.value?"正在逐批叠加候选图斑,最终统计将在加载完成后生成。":"结果已排除初筛禁入范围;工程立项前仍需结合连片度、权属和现场踏勘复核。"),1)])):X("",!0)])}}},da=xt(ca,[["__scopeId","data-v-84da35a2"]]),va="/openApi";function ga(){return B(this,arguments,function*(h={}){const g=yield Ft(`${va}/ai/ecological-engineering/advice`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataJson:JSON.stringify({engineeringName:h.engineeringName,scopeName:h.scopeName,dimensionLabel:h.dimensionLabel,baseCount:h.baseCount,excludedCount:h.excludedCount,finalCount:h.finalCount,finalAreaMu:h.finalAreaMu,projectDataLatestYear:h.projectDataLatestYear,filters:h.filters,distribution:(h.distribution||[]).slice(0,30),excludedProjects:(h.excludedProjects||[]).slice(0,30)})}),timeout:7e4});if((g==null?void 0:g.success)===!1||(g==null?void 0:g.code)!==void 0&&![0,200,"0","200"].includes(g.code))throw new Error((g==null?void 0:g.message)||(g==null?void 0:g.msg)||"DeepSeek分析建议生成失败");return Pt(g)})}const pa={class:"engineering-statistics-panel","data-testid":"engineering-statistics-panel","aria-label":"生态工程分析统计","aria-live":"polite"},fa={class:"statistics-head"},ma={class:"advice-section"},ya={key:0,class:"advice-loading","data-testid":"engineering-advice-status"},_a={key:1,class:"advice-list"},ha={key:2,class:"advice-error"},ba={__name:"EngineeringStatisticsPanel",props:{statistics:{type:Object,required:!0}},setup(h){const g=h,y=C(!1),k=C(""),x=C("");let u=0;const q=v(()=>{var _;return Array.isArray((_=g.statistics)==null?void 0:_.distribution)?g.statistics.distribution:[]}),M=v(()=>{var S;const _=[],F=q.value[0];return F&&_.push(`优先核查${F.name}等候选面积较集中的区域,进一步评价地块连片度和施工可达性。`),Number(((S=g.statistics)==null?void 0:S.excludedCount)||0)>0?_.push(`对已排除的 ${U(g.statistics.excludedCount)} 个历史项目相交图斑复核项目边界、实施年份和工程类型,避免重复建设。`):_.push("本次年份条件未排除历史项目相交图斑,建议结合项目库更新时间确认筛选时段是否完整。"),_.push("候选结果用于工程初筛,立项前仍需完成权属核验、现场踏勘和实施方案论证。"),_}),R=v(()=>{const _=String(k.value||"").split(/\n+/).map(F=>F.replace(/^\s*(?:[-•]|\d+[.、)])\s*/,"").trim()).filter(Boolean);return _.length?_.slice(0,5):M.value}),T=v(()=>y.value?"DeepSeek自动研判中":k.value?"DeepSeek研判":"系统初步建议");Ne(()=>g.statistics,_=>{const F=++u;k.value="",x.value="",y.value=!1,_&&O(F,_)},{immediate:!0});function O(_,F){return B(this,null,function*(){y.value=!0,x.value="";try{const S=yield ga(F);if(_!==u)return;if(k.value=String((S==null?void 0:S.advice)||(S==null?void 0:S.content)||"").trim(),!k.value)throw new Error("DeepSeek未返回有效建议")}catch(S){if(_!==u)return;x.value=/404/.test(String((S==null?void 0:S.message)||""))?"DeepSeek建议接口尚未部署,已保留系统初步建议。":(S==null?void 0:S.message)||"DeepSeek暂时不可用,已保留系统初步建议。"}finally{_===u&&(y.value=!1)}})}function U(_){const F=Number(_);return Number.isFinite(F)?Math.round(F).toLocaleString("zh-CN"):"0"}return(_,F)=>(c(),m("aside",pa,[r("header",fa,[r("div",null,[F[0]||(F[0]=r("span",null,"分析建议",-1)),r("small",null,f(h.statistics.engineeringName)+" · "+f(h.statistics.scopeName),1)]),r("strong",null,f(T.value),1)]),r("section",ma,[y.value?(c(),m("div",ya,[...F[1]||(F[1]=[r("span",{class:"advice-spinner"},null,-1),r("span",null,"DeepSeek 正在自动生成分析建议…",-1)])])):(c(),m("ol",_a,[(c(!0),m(he,null,be(R.value,(S,H)=>(c(),m("li",{key:`${H}-${S}`},f(S),1))),128))])),x.value?(c(),m("p",ha,f(x.value),1)):X("",!0)])]))}},wa=xt(ba,[["__scopeId","data-v-fb17a135"]]);const Sa={class:"forest-grass-wet ecological-protection"},Ca={class:"forest-grass-wet-ui ecological-protection-ui"},ja={key:0,class:"fgw-left"},ka={class:"fgw-side-stack is-left"},Aa={key:1,class:"fgw-right"},La={class:"fgw-side-stack is-right"},Ea={key:3,class:"engineering-map-loading",role:"status","aria-live":"polite"},$a={class:"engineering-map-loading__description"},Na={class:"engineering-map-loading__progress","aria-hidden":"true"},Ma={class:"fgw-bottom-topic ecological-bottom-topic"},Fa={key:0,class:"loading"},Pa={class:"loading-progress"},xa={class:"value"},Za={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(h,{expose:g,emit:y}){const k=h,x=y,u=C(null),q=C(""),M=C(""),R=C(it({},"ecological-redline")),T=C(null),O=C(!1),U=C(!1),_=C(null),F=C(0),S=C(k.showLoading),H=C(null),K=C({type:"idle",text:"等待生态保护图层加载"}),ie=C(null),ve=C(!1),E=C({});let oe=null,pe=!1,L=!1,V=!1,ne=null,Fe=0,ue=0;const ce=new Map,Pe=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),D=v(()=>Ye.some(e=>e.key===k.activeView)?k.activeView:"ecological-redline"),W=v(()=>D.value==="engineering-analysis"),ze=v(()=>["restoration","engineering-analysis"].includes(D.value)),lt=v(()=>ht.includes(D.value)),ee=v(()=>q.value?zt(D.value,q.value):null),fe=v(()=>{var e;return(((e=ee.value)==null?void 0:e.legends)||[]).find(n=>n.key===M.value)||null}),ae=v(()=>{var e;return((e=ee.value)==null?void 0:e.legends)||[]}),xe=v(()=>Et(D.value)),we=v(()=>xe.value.length<=2&&ae.value.length<=6),Te=v(()=>{if(W.value)return 112;if(!we.value)return 430;const e=Math.max(1,xe.value.length),n=Math.max(1,Math.ceil(ae.value.length/2)),s=e*34+Math.max(0,e-1)*5,l=30+n*28;return Math.max(196,Math.min(340,72+s+l))}),se=v(()=>{const e=ee.value;return e?fe.value?_e(le({},e),{cqlFilter:fe.value.cqlFilter||e.cqlFilter,activeLegend:fe.value,name:fe.value.name||e.name}):e:null}),He=v(()=>lt.value?R.value:D.value==="restoration"?rn:D.value==="engineering-analysis"?ln:on),De=v(()=>He.value.left||[]),ot=v(()=>He.value.right||[]),Ge=C(typeof window=="undefined"?1080:window.innerHeight),Re=Zt.sideCardWidth,Je=v(()=>Xt(Ge.value)),ut=v(()=>Kt(Je.value,2)),Qe=v(()=>!!_.value),Oe=Gt,Ze=v(()=>Ht({point:_.value?ge(_.value):null,rowCount:T.value?Le(T.value):0,loading:U.value,empty:O.value||!T.value})),ct=v(()=>Ze.value.height),dt=v(()=>Ze.value.style),Xe=v(()=>{var n;return{"ecological-redline":"生态保护红线详情","natural-protected-area":"自然保护地详情","national-park":"国家公园详情",restoration:"生态修复详情","engineering-analysis":"生态工程详情"}[D.value]||`${((n=ee.value)==null?void 0:n.name)||"生态图斑"}详情`});Tt(()=>{ke(),window.addEventListener("resize",ke),document.addEventListener("pointerdown",Ct,!0),pt(),Ke(D.value)}),Dt(()=>{pe=!0,ne&&window.clearTimeout(ne),window.removeEventListener("resize",ke),document.removeEventListener("pointerdown",Ct,!0)}),Ne(D,e=>{Ke(e)}),Ne(q,()=>{M.value="",Z()}),Ne(M,()=>{Z()}),Ne(()=>k.active,e=>{var n,s,l,d;u.value&&(e?(Ie(),(s=(n=u.value).resume)==null||s.call(n)):(d=(l=u.value).pause)==null||d.call(l))});function Ke(e){var l,d,b,w,N,Y,z;const n=Ye.find(te=>te.key===e)||Ye[0],s=Et(e);ie.value=null,ve.value=!1,E.value={},M.value="",q.value=n.defaultLayerKey||((l=s[0])==null?void 0:l.key)||"",H.value=un(e),(b=(d=u.value)==null?void 0:d.setBoundaryDrawing)==null||b.call(d,!1),(N=(w=u.value)==null?void 0:w.clearAnalysisBoundary)==null||N.call(w),e!=="engineering-analysis"&&((z=(Y=u.value)==null?void 0:Y.clearEngineeringSuitability)==null||z.call(Y)),Z(),ht.includes(e)&&(R.value=it({},e),gt(e)),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:ht.includes(e)?bt({},e):cn(e)}),Ve()}function Ve(e=0){const n=se.value||ee.value;!(n!=null&&n.mapView)&&!(n!=null&&n.cameraPosition)||qe(()=>{var l,d;!((d=(l=u.value)==null?void 0:l.focusLayerMapView)==null?void 0:d.call(l,n))&&e<12&&window.setTimeout(()=>Ve(e+1),120)})}function vt(e){const n=Ye.some(s=>s.key===e)?e:"ecological-redline";n!==D.value&&x("view-change",n)}function gt(e){return B(this,null,function*(){const n=++Fe;try{const l=ce.get(e)||(yield vn(e));if(n!==Fe||D.value!==e)return;ce.set(e,l),R.value=it(l,e),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:bt(l,e)})}catch(s){if(n!==Fe||D.value!==e)return;R.value=it({},e),x("module-stats",{moduleKey:"ecological-protection",viewKey:e,items:bt({},e)}),K.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",s)}})}function pt(){var s;oe=new Qt;const e={progress:0};oe.instance.on("onProgress",(l,d,b)=>{const w=Math.floor(d/b*100);At.to(e,{progress:w,onUpdate:()=>{F.value=Math.floor(e.progress)}})});const n=()=>{pe||L||(L=!0,Ie())};oe.instance.on("onLoad",n),(s=oe.ready)==null||s.then(n).catch(()=>{pe||(K.value={type:"error",text:"地图资源加载失败"})})}function Ie(){pe||!k.active||!L||V||(V=!0,ne&&window.clearTimeout(ne),ne=window.setTimeout(()=>{ne=null,et()},600))}function et(e=0){return B(this,null,function*(){var s,l,d,b,w;if(pe)return;if(!k.active){V=!1;return}if(yield qe(),!k.active){V=!1;return}if(!!((l=(s=u.value)==null?void 0:s.loadMap)!=null&&l.call(s,oe)||(b=(d=u.value)==null?void 0:d.hasMap)!=null&&b.call(d))){yield Vt(),yield qe(),(w=u.value)==null||w.play(),Ve();return}if(e<24){window.setTimeout(()=>et(e+1),120);return}V=!1})}function ft(){ne&&(window.clearTimeout(ne),ne=null)}function tt(){var e,n,s,l;(n=(e=u.value)==null?void 0:e.resume)==null||n.call(e),(l=(s=u.value)==null?void 0:s.refreshView)==null||l.call(s)}function nt(){var e,n,s,l,d,b;if(Z(),(n=(e=u.value)==null?void 0:e.setBoundaryDrawing)==null||n.call(e,!1),(l=(s=u.value)==null?void 0:s.clearAnalysisBoundary)==null||l.call(s),(b=(d=u.value)==null?void 0:d.hasMap)!=null&&b.call(d)){tt();return}ft(),V=!1,qe(()=>{Ie()})}g({refreshMapView:tt,resetMap:nt});function ge(e){const n=document.querySelector(".ecological-protection"),s=n==null?void 0:n.getBoundingClientRect();return!(s!=null&&s.width)||!(s!=null&&s.height)?e:{x:(e.x-s.left)/s.width*1920,y:(e.y-s.top)/s.height*1080}}function ke(){Ge.value=typeof window=="undefined"?1080:window.innerHeight}function at(e,n){return`${D.value}-${n}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function Ae(e){return(e==null?void 0:e.span)===2}function G(e){return Ae(e)?ut.value:Je.value}function Le(e){const n=(e==null?void 0:e.properties)||{};return Object.keys(n).filter(s=>Ee(s,n[s])).length}function Ee(e,n){return n==null||n===""||Array.isArray(n)||typeof n=="object"?!1:!Pe.has(String(e||"").toLowerCase())}function me(e={}){const n=re(e.lng),s=re(e.lat);return n===""||s===""?"":`POINT(${n} ${s})`}function re(e){const n=Number(e);return Number.isFinite(n)?n.toFixed(8).replace(/\.?0+$/,""):""}function Se(){return B(this,arguments,function*(e={}){var b,w,N,Y,z,te;if(!ze.value||W.value)return;if(t(e.overlayLayer||se.value||ee.value)){Z();return}const n=Number((b=e==null?void 0:e.lngLat)==null?void 0:b.lng),s=Number((w=e==null?void 0:e.lngLat)==null?void 0:w.lat);if(!Number.isFinite(n)||!Number.isFinite(s)){Z();return}const l=++ue,d=e.screen||{x:960,y:540};_.value=null,T.value=null,O.value=!1,U.value=!0;try{const de=yield Jt(me({lng:n,lat:s}));if(l!==ue||pe)return;const Be=a(de,e);if(!Be||Le(Be)<=0){Z();return}T.value=Be,_.value=((Y=(N=u.value)==null?void 0:N.getVectorFeatureAnchorScreen)==null?void 0:Y.call(N,Be))||d,O.value=!1,(te=(z=u.value)==null?void 0:z.highlightFeature)==null||te.call(z,Be,{highlightTone:"v21"})}catch(de){if(l!==ue)return;Z()}finally{l===ue&&(U.value=!1)}})}function t(e=se.value){const n=String((e==null?void 0:e.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(n)||String((e==null?void 0:e.dataPath)||"").includes("ecological_restoration_projects")}function a(e,n={}){var b,w,N;const s=i((e==null?void 0:e.project)||((b=e==null?void 0:e.data)==null?void 0:b.project)||(e==null?void 0:e.data)||e);if(!p(s))return null;const l=j(s,e),d=s.geom||s.geometry||s.wkt||null;return{id:s.id||l.id||l.project_name||`project-${(w=n==null?void 0:n.lngLat)==null?void 0:w.lng}-${(N=n==null?void 0:n.lngLat)==null?void 0:N.lat}`,properties:l,feature:{type:"Feature",properties:l,geometry:d},geometry:d,layer:n.overlayLayer||se.value||ee.value,lngLat:n.lngLat}}function o(e,n={}){var Y,z,te;const s=e!=null&&e.feature&&e.feature.type==="Feature"?_e(le({},e.feature),{id:e.id||e.feature.id,layer:e.layer,lngLat:e.lngLat}):e,l=(s==null?void 0:s.type)==="Feature"?s:((Y=s==null?void 0:s.feature)==null?void 0:Y.type)==="Feature"?s.feature:null,d=(s==null?void 0:s.properties)||(l==null?void 0:l.properties)||{},b=(s==null?void 0:s.geometry)||(l==null?void 0:l.geometry)||d.geometry||d.geom||d.wkt||null,w=j(d,n),N=(s==null?void 0:s.id)||(l==null?void 0:l.id)||w.id||w.gid||w.project_id||w.project_name||`project-${((z=n==null?void 0:n.lngLat)==null?void 0:z.lng)||""}-${((te=n==null?void 0:n.lngLat)==null?void 0:te.lat)||""}`;return{id:N,properties:w,feature:{type:"Feature",id:N,properties:w,geometry:b},geometry:b,layer:(s==null?void 0:s.layer)||n.overlayLayer||se.value||ee.value,lngLat:(s==null?void 0:s.lngLat)||n.lngLat}}function i(e){return Array.isArray(e)?e.find(n=>n&&typeof n=="object")||null:e&&typeof e=="object"?e:null}function p(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(A)?!0:Object.keys(e).some(n=>Ee(n,e[n]))}function A(e={}){const n=e==null?void 0:e.value;return n==null||n===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function j(e={},n={}){const s=le({},e);(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(N=>{const Y=N==null?void 0:N.value;if(Y==null||Y==="")return;const z=String((N==null?void 0:N.field)||"").trim();[z,$(z)].filter(Boolean).forEach(de=>{(s[de]===void 0||s[de]===null||s[de]==="")&&(s[de]=Y)})});const d=s.project_name||s.projectName||s.name,b=s.area_mu||s.areaMu||s.acreage,w=s.project_status||s.projectStatus;return _e(le({},s),{project_name:d,name:d||s.name,area_mu:b,project_status:w,progress_count:Array.isArray(n==null?void 0:n.progress)?n.progress.length:void 0})}function $(e){return String(e||"").replace(/[A-Z]/g,n=>`_${n.toLowerCase()}`)}function P(e){var s,l,d,b;const n=(l=(s=e==null?void 0:e.feature)!=null?s:e)!=null?l:null;if(!n||Le(n)<=0){Z();return}if(ze.value){ue+=1;const w=o(n,e);if(!w||Le(w)<=0){Z();return}T.value=w,O.value=!1,U.value=!1,_.value=((b=(d=u.value)==null?void 0:d.getVectorFeatureAnchorScreen)==null?void 0:b.call(d,w))||(e==null?void 0:e.screen)||null;return}T.value=n,O.value=!1,e!=null&&e.screen&&(_.value=e.screen)}function I(e){K.value=e}function J(e,n){var d,b;if(D.value==="national-park"&&(n!=null&&n.name)){Z(),(b=(d=u.value)==null?void 0:d.focusTown)==null||b.call(d,n.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(D.value!=="restoration"||(e==null?void 0:e.key)!=="restoration-projects"||!((n==null?void 0:n.projectName)||(n==null?void 0:n.name)))return;Z();const l=()=>Q(n);if(M.value){M.value="",qe(()=>window.setTimeout(l,80));return}l()}function Q(e,n=0){var b,w,N,Y,z,te,de;if(D.value!=="restoration")return;const s=(e==null?void 0:e.projectName)||(e==null?void 0:e.name);if(!s)return;const l=(w=(b=u.value)==null?void 0:b.focusProject)==null?void 0:w.call(b,{id:e==null?void 0:e.id,key:e==null?void 0:e.key,name:s,projectName:s,project_name:s,highlightTone:"white"});if(!(l!=null&&l.feature)){if(n<10){window.setTimeout(()=>Q(e,n+1),120);return}K.value={type:"warning",text:"当前项目图斑尚未加载"};return}const d=o({id:l.feature.id,properties:l.feature.properties||{},geometry:l.feature.geometry,feature:l.feature,layer:se.value||ee.value},{});T.value=d,O.value=!1,U.value=!1,_.value=l.screen||((z=(N=u.value)==null?void 0:N.getVectorFeaturesAnchorScreen)==null?void 0:z.call(N,(Y=l.highlightFeatures)!=null&&Y.length?l.highlightFeatures:l.features))||((de=(te=u.value)==null?void 0:te.getVectorFeatureAnchorScreen)==null?void 0:de.call(te,d))}function ye(){var e,n;Z(),ie.value=null,(n=(e=u.value)==null?void 0:e.clearEngineeringSuitability)==null||n.call(e)}function st(e={}){ve.value=e.state==="running",E.value=e.state==="running"?le({},e):{}}function Ce(e={}){var n,s;(s=(n=u.value)==null?void 0:n.addEngineeringSuitabilityBatch)==null||s.call(n,e)}function Rt(e={}){var n,s;ie.value=e.statistics||null,(s=(n=u.value)==null?void 0:n.completeEngineeringSuitability)==null||s.call(n,e)}function Ot(e={}){var n,s;(s=(n=u.value)==null?void 0:n.setEngineeringSuitabilityVisibility)==null||s.call(n,e.key,e.visible)}function Z(){var e,n;ue+=1,T.value=null,O.value=!1,U.value=!1,_.value=null,(n=(e=u.value)==null?void 0:e.clearSelectedFeature)==null||n.call(e)}function Ct(e){if(!Qe.value)return;const n=document.querySelector(".fgw-map-feature-info"),s=e.target;n&&s instanceof Node&&n.contains(s)||Z()}function Vt(){return S.value?new Promise(e=>{At.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{S.value=!1,e()}})}):Promise.resolve()}return(e,n)=>(c(),m("div",Sa,[$e(en,{ref_key:"mapSceneRef",ref:u,"active-layer":se.value,"map-ranking":H.value,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:n[0]||(n[0]=s=>U.value=s),onFeatureInfo:P,onMapClick:Se,onLayerStatus:I},null,8,["active-layer","map-ranking"]),r("div",Ca,[W.value?X("",!0):(c(),m("div",ja,[r("div",ka,[(c(!0),m(he,null,be(De.value,s=>(c(),rt(Lt,{key:at(s,"left"),class:je(["fgw-side-card left-card",[{"is-double":Ae(s)},`ecological-side-card--${s.key}`]]),title:s.title,width:We(Re),height:G(s)},{default:Nt(()=>[$e($t,{panel:s,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:l=>J(s,l)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),W.value?X("",!0):(c(),m("div",Aa,[r("div",La,[(c(!0),m(he,null,be(ot.value,s=>(c(),rt(Lt,{key:at(s,"right"),class:je(["fgw-side-card right-card",[{"is-double":Ae(s)},`ecological-side-card--${s.key}`]]),title:s.title,width:We(Re),height:G(s)},{default:Nt(()=>[$e($t,{panel:s,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:l=>J(s,l)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),W.value?(c(),rt(da,{key:2,onAnalysisReset:ye,onAnalysisBatch:Ce,onAnalysisComplete:Rt,onAnalysisState:st,onResultVisibility:Ot})):X("",!0),W.value&&ve.value?(c(),m("div",Ea,[n[3]||(n[3]=r("span",{class:"engineering-map-loading__radar","aria-hidden":"true"},null,-1)),n[4]||(n[4]=r("strong",null,"空间分析中",-1)),r("small",null,f(E.value.stepLabel||"初始化分析环境"),1),r("span",$a,f(E.value.stepDescription||"正在准备空间索引与工程参数"),1),r("div",Na,[r("i",{style:Me({width:`${E.value.progress||1}%`})},null,4),r("em",null,f(E.value.stepNumber||1)+"/"+f(E.value.stepTotal||7),1)])])):X("",!0),W.value&&ie.value?(c(),rt(wa,{key:4,statistics:ie.value},null,8,["statistics"])):X("",!0),r("div",{class:je(["fgw-map-layer-tools",{"is-analysis":W.value,"is-compact":we.value}]),style:Me({height:`${Te.value}px`})},[$e(tn,{modelValue:q.value,"onUpdate:modelValue":n[1]||(n[1]=s=>q.value=s),"selected-legend-key":M.value,"onUpdate:selectedLegendKey":n[2]||(n[2]=s=>M.value=s),"topic-key":D.value,legends:ae.value,width:248,height:Te.value,compact:we.value,"show-legend":!W.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact","show-legend"])],6),Qe.value?(c(),m("div",{key:5,class:"fgw-map-feature-info",style:Me(dt.value)},[$e(nn,{title:Xe.value,feature:T.value,empty:O.value,loading:U.value,width:We(Oe),height:ct.value,closable:"",onClose:Z},null,8,["title","feature","empty","loading","width","height"])],4)):X("",!0),r("div",Ma,[$e(an,{"model-value":D.value,topics:We(Ye),"onUpdate:modelValue":vt},null,8,["model-value","topics"])])]),S.value?(c(),m("div",Fa,[n[6]||(n[6]=sn('
    LOADING
    ',1)),r("div",Pa,[r("span",xa,f(F.value),1),n[5]||(n[5]=r("span",{class:"unit"},"%",-1))])])):X("",!0)]))}};export{Za as default}; diff --git a/docs/assets/index-3dbe23d2-1785726778446.js b/docs/assets/index-be8806af-1785858872961.js similarity index 98% rename from docs/assets/index-3dbe23d2-1785726778446.js rename to docs/assets/index-be8806af-1785858872961.js index ab21e47..27ebe1d 100644 --- a/docs/assets/index-3dbe23d2-1785726778446.js +++ b/docs/assets/index-be8806af-1785858872961.js @@ -1 +1 @@ -var da=Object.defineProperty,fa=Object.defineProperties;var ga=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var pa=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable;var wt=(N,v,y)=>v in N?da(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))pa.call(v,y)&&wt(N,y,v[y]);if(Mt)for(var y of Mt(v))ya.call(v,y)&&wt(N,y,v[y]);return N},P=(N,v)=>fa(N,ga(v));var C=(N,v,y)=>new Promise((ee,U)=>{var E=z=>{try{x(y.next(z))}catch(h){U(h)}},ye=z=>{try{x(y.throw(z))}catch(h){U(h)}},x=z=>z.done?ee(z.value):Promise.resolve(z.value).then(E,ye);x((y=y.apply(N,v)).next())});import{g as f,q as ha,h as ma,w as va,o as F,c as $,C as ka,u as j,a as S,j as re,b as k,x as X,n as Gt,F as ba,y as _a,K as qe,t as Vt,f as Pa,d as p,A as Te}from"./index-1785726778446.js";import{g as Na,l as Ot,E as Aa}from"./live-scene-1-e9556509-1785726778446.js";import{_ as Q}from"./index-7b46d381-1785726778446.js";import{M as Ca}from"./index-7b548b42-1785726778446.js";import{_ as Sa}from"./LayerPanel-921f9e3d-1785726778446.js";import{a as se,_ as Ia}from"./FeatureInfoPanel-e0a0d741-1785726778446.js";import{n as xa,d as Ta,e as La,l as Ra,o as Ba}from"./townshipBoundaries-8867fad4-1785726778446.js";import{c as Fa,d as Ea,F as za,e as Ma,f as wa,h as Ga,i as Va}from"./featurePanelLayout-b5234356-1785726778446.js";import{q as $t,r as Oa,s as $a}from"./screen2Standard-f38b9a2d-1785726778446.js";import{p as ja,a as Ze,b as Wa,c as Ka,d as Ua,e as Ha,f as ge,g as Ye,h as Je,i as jt,j as Da}from"./data-0d4a0513-1785726778446.js";import"./index-e33f4373-1785726778446.js";import"./index-e9f36657-1785726778446.js";import"./livestockData-36ec0ae2-1785726778446.js";const qa={class:"pasture-management"},Za={key:0,class:"pasture-map-loading"},Ya={class:"pasture-management-ui"},Ja={class:"pasture-left"},Xa={class:"pasture-side-stack is-left"},Qa={class:"pasture-video-monitor"},er=["disabled"],tr=["onClick"],nr={key:1,class:"pasture-video-play"},ar={key:2,class:"pasture-video-loading"},rr={key:3,class:"pasture-video-error"},sr={class:"pasture-video-point-name"},ur=["disabled"],or={class:"pasture-right"},lr={class:"pasture-side-stack is-right"},ir=["aria-label"],Wt="pasture-grassland-boundary",cr="pasture-yak-marks-layer",Kt="#46dce8",dr=12e3,fr="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Xe="#FFE600",Ut="草场详情",xr={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,E=$t.sideCardWidth;$t.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),x=f(()=>Oa(ye.value)),z=f(()=>$a(x.value,2)),h=p(null),ue=p(!1),Qe=p(0);let he=0;const H=p(null),oe=p(!1),le=p(!1),te=p(null),T=p(Ye),D=p(Je),ne=p([]),Le=p(""),Ht=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Dt=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),et=Ra,qt=Kn("ne:t_pasture_grassland",pe),Zt={key:cr,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Xe,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Xe,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Xe,strokeColor:"#FFF58A",selectable:!1}]},Re={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ot,playUrl:"",hdPlayUrl:"",token:""},Be=p(null),M=p([]),me=p(0),q=p(!1),w=p(!1),A=p("");let G=!1,ae=0,V=null,I=null,Fe=!1,Z=0,ve=null,ie=0;const Yt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Jt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Xt=oa(Ba),Ee=f(()=>[{key:Wt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:qt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:et,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Zt]),Qt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),ke=f(()=>{const e=new Set(Qt.value);return Ee.value.filter(t=>e.has(t.key))}),en=f(()=>ke.value[0]||null),ce=f(()=>ke.value.flatMap(e=>e.legends||[]).find(e=>e.key===Le.value)||null),tt=f(()=>ke.value.flatMap(e=>e.legends||[])),nt=f(()=>{const e=Math.max(1,Ee.value.length),t=Math.max(1,Math.ceil(tt.value.length/2)),n=e*34+Math.max(0,e-1)*5;return Math.max(196,Math.min(300,72+n+30+t*28))});function tn(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const at=f(()=>ke.value.map(tn).filter(Boolean)),be=f(()=>at.value[0]||null),nn=f(()=>!!te.value),an=za,rt=f(()=>Fa({point:te.value?Gn(te.value):null,rowCount:H.value?ht(H.value):0,loading:le.value,empty:oe.value||!H.value})),rn=f(()=>rt.value.height),sn=f(()=>rt.value.style),st=f(()=>_t(T.value.core).length?_t(T.value.core):ja),_e=f(()=>ze(Pt(T.value.distribution).length?Pt(T.value.distribution):Ze,ge)),un=f(()=>{const e=Xn(T.value.online);return Qn(e.length?e:Wa)}),on=f(()=>ze(Nt(T.value.age).length?Nt(T.value.age):Ka,ge)),ln=f(()=>ze(At(T.value.age).length?At(T.value.age):Ua,ge)),ut=f(()=>ea(Da));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(_e.value.length?_e.value:Ha).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:_e.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:ut.value}));const cn=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",preserveColors:!0,scrollable:!1,rows:mn(_e.value).slice(0,10).map(e=>P(g({},e),{unit:e.unit||"户",color:Kt}))})),dn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",preserveColors:!0,rows:ut.value.map(e=>P(g({},e),{unit:e.unit||"万亩",color:Kt}))})),fn=f(()=>({key:"pasture-online",type:"line",rows:un.value})),gn=f(()=>({key:"pasture-age",type:"structure",rows:on.value})),pn=f(()=>({key:"pasture-gender",type:"donut",rows:ln.value})),yn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:D.value})),Pe=f(()=>{const e=M.value.length;return e?me.value%e:0}),hn=f(()=>M.value[Pe.value]||Re),ot=f(()=>bn(M.value,Pe.value,Re));function mn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function ze(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ha(()=>{Me(),window.addEventListener("resize",Me),bt(),zn(),In(),vn()}),ma(()=>{G=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),va(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function vn(){return C(this,null,function*(){try{const e=yield Na();if(G)return;M.value=e,me.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(G)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!G&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function kn(e,t){t!=null&&t.isActive&&(Be.value=e||null)}function bn(e=[],t=0,n=Re){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function _n(e,t=!0){const n=(e==null?void 0:e.image)||Ot;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function Pn(){lt(-1)}function Nn(){lt(1)}function lt(e){const t=M.value.length;t&&(Y({resetError:!0}),me.value=(Pe.value+e+t)%t)}function An(e){const t=M.value.length;if(!t){it();return}const n=((Number(e)||0)+t)%t;(n!==Pe.value||I||w.value)&&Y({resetError:!0}),me.value=n,Te(it)}function it(){return C(this,null,function*(){var a,s;const e=hn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||w.value)return;I&&Y({resetError:!0}),A.value="",w.value=!0,yield Te();const t=++Z;let n=null;Cn(t);try{const r=(s=(a=Be.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Aa.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Sn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",w.value=!1,q.value=!1,Z+=1,I=null,Fe=!1,we())},handleSuccess(){t===Z&&(de(),A.value="",Fe=!0,w.value=!1,dt(),ct())},fullScreenChangeCallBack(){}}),t!==Z){ft(n),we();return}I=n,q.value=!0,Te(()=>{dt(),ct()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function ct(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function dt(){var d,l;if(typeof document=="undefined")return;const e=Be.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,Fe=!1,Z+=1,a&&ft(a),t&&we(),q.value=!1,w.value=!1,n&&(A.value="")}function Cn(e){de(),ve=window.setTimeout(()=>{e!==Z||!w.value||(A.value="视频加载超时",Y({resetError:!1}))},dr)}function de(){ve&&(window.clearTimeout(ve),ve=null)}function ft(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function we(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Sn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function In(){return C(this,null,function*(){try{const e=yield Ea();if(G)return;T.value=g(g({},Ye),e),bt();const t=ta(e.list);D.value=t.length?t:Ct(Je),xn(D.value)}catch(e){T.value=Ye,D.value=Ct(Je)}})}function xn(e=D.value,t=600){G||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(G||!ee.active)&&Tn(e)},t))}function Tn(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(Ln).slice(0,60);if(!n.length)return;const a=yield pt(n,5,r=>C(this,null,function*(){const u=Lt(r),o=K(r);let i=o,d=null,l=Se(r,o)||Ie(r,r.name,u);try{(!l||!i.some(b))&&(i=yield yt(r))}catch(R){i=o}if(l=l||Se(r,i)||Ie(r,r.name,u),!l){try{d=u?yield Ma(u):null}catch(Et){d=null}const R=K(d);l=Bn(d)||Se(d,R),R.length&&!i.length&&(i=R)}l=l||Ie(r,r.name,u);const m=!!(u||Ce(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?It(i):O(r),canLocate:m,locateText:m?"定位":"--"};return Rn(_,t),_}));if(G||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&>(s)})}function Ln(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||K(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function Rn(e,t=ae){if(!e||G||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),gt(n)}function gt(e){e!=null&&e.size&&(D.value=D.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function Ge(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=K(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Bn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return L(Ne(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return L(Ne(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return L(Ne(u))}return""}function Ne(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function pt(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=xt(a);if(!s)return a;try{const r=yield Ga(s),o=Ge([r]).find(b);return o?aa(a,o):a}catch(r){return a}}));return $e(n)})}function En(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield yt(e)}catch(d){n=K(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){kt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||kt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function Mn(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function wn(e=be.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Wt||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function ht(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>Vn(n,a)).length)}function Vn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Dt.has(String(e||"").toLowerCase())}function On(e={}){const t=mt(e.lng),n=mt(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function mt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function $n(e={},t={}){var s,r;const n=jn(e);if(!n||!Object.keys(n).length)return null;const a=Wn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:be.value||en.value,lngLat:t.lngLat}}function jn(e={}){var o,i,d,l;const t=vt(e),n=W((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=W((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=W((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||W(t==null?void 0:t.data)||W(t==null?void 0:t.result)||W(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function vt(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function Wn(e={},t={}){var r,u;const n=vt(e),a=W((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=W((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function W(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){H.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function kt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Kn(e,t){return`${e}${e}${t}0.018${t}0.550.68`}function Un(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!wn(e.overlayLayer||be.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,H.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Va(On({lng:t,lat:n}));if(a!==ie)return;const _=$n(m,e);if(!_||ht(_)<=0){Oe();return}H.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Hn(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Qe.value+=1,Te(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Hn,resetMap:Dn});function bt(){U("module-stats",{moduleKey:"pasture-management",items:qn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function qn(){const e=new Map;(Array.isArray(st.value)?st.value:[]).forEach(n=>{!(n!=null&&n.name)||Jn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||jt.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Ht.map(n=>e.get(n)||jt.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function _t(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=Zn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Yn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function Zn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Yn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Jn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function Pt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Xn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=L((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),Ze.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function ea(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=L((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),Ze.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function Nt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function At(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ta(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=K(t),r=O(t)||It(s),u=fe(t,s),o=Lt(t),i=Se(t,s)||Ie(t,a,o),d=Ae(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Ce(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(St)}function Ct(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ae(t),grasslandArea:O(t),acreage:O(t)})).sort(St)}function Ae(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function St(e,t){const n=Ae(e),a=Ae(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Ce(e)?1:0,r=Ce(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Ce(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>na(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function It(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function na(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function K(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function aa(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=ra(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function ra(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=xt(e);return n?`id:${n}`:""}function xt(e={}){return Tt(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(Tt).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function Tt(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function Lt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:K(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Se(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=L(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=L(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Rt(e);if(r)return r;for(const u of t){const o=Rt(u);if(o)return o}return""}function L(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(xa(t))return t;const a=Ta.find(r=>t.includes(r));if(a)return a;const s=Ne(t);return s&&s!==t?L(s):""}function Ie(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=Yt[String(r||"").trim()];if(u)return L(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Jt[sa(r)];if(u)return L(u)}return""}function sa(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?La(n):""}function Rt(e={}){const t=Ue(e),n=la(t);if(!n)return"";const a=Xt.find(s=>ca(n,s.geometry));return a!=null&&a.name?L(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return ua(n)}function ua(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:He(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:xe(s).map(He).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:De(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:xe(s).map(De).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:Bt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:xe(s).map(Bt).filter(u=>u.length)}:null}function He(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function De(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(He).filter(Boolean)}function Bt(e){return xe(e).map(De).filter(t=>t.length>=3)}function xe(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function oa(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function la(e){const t=ia(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function ia(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ca(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Ft(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Ft(e,n)):!1}function Ft(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=zt>r&&s<(Et-_)*(r-R)/(zt-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",qa,[(F(),ka(Ca,{key:Qe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":fr,center:j(et),"initial-zoom":9,"minimum-zoom-distance":1,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":be.value,"overlay-layers":at.value,onReady:Mn,onMapClick:Un},null,8,["active","center","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Za,"3D地图加载中")),S("div",Ya,[S("div",Ja,[S("div",Xa,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:j(E),height:x.value},{default:X(()=>[S("div",Qa,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:Pn}," ‹ ",8,er),S("div",{class:Gt(["pasture-video-grid",{"is-single":ot.value.length<=1}])},[(F(!0),$(ba,null,_a(ot.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>kn(a,n),class:Gt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":w.value&&n.isActive}]),style:qe(_n(n.live,n.isActive)),onClick:a=>An(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",nr)):re("",!0),w.value&&n.isActive?(F(),$("div",ar,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",rr,Vt(A.value),1)):re("",!0),S("div",sr,Vt(n.live.title),1)],14,tr))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Nn}," › ",8,ur)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[S("div",lr,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:j(E),height:z.value},{default:X(()=>[k(se,{panel:yn.value,compact:"","visual-version":"v21",onRowSelect:En},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",{class:"pasture-map-layer-tools",style:qe({height:`${nt.value}px`})},[k(Sa,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Le.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Le.value=n),"topic-key":"grassland",layers:Ee.value,legends:tt.value,multiple:"",compact:"",width:248,height:nt.value},null,8,["modelValue","selected-legend-key","layers","legends","height"])],4),nn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:qe(sn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Ut}`,title:"关闭",onClick:Pa(J,["stop"])}," × ",8,ir),k(Ia,{title:Ut,feature:H.value,empty:oe.value,loading:le.value,width:j(an),height:rn.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{xr as default}; +var da=Object.defineProperty,fa=Object.defineProperties;var ga=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var pa=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable;var wt=(N,v,y)=>v in N?da(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))pa.call(v,y)&&wt(N,y,v[y]);if(Mt)for(var y of Mt(v))ya.call(v,y)&&wt(N,y,v[y]);return N},P=(N,v)=>fa(N,ga(v));var C=(N,v,y)=>new Promise((ee,U)=>{var E=z=>{try{x(y.next(z))}catch(h){U(h)}},ye=z=>{try{x(y.throw(z))}catch(h){U(h)}},x=z=>z.done?ee(z.value):Promise.resolve(z.value).then(E,ye);x((y=y.apply(N,v)).next())});import{g as f,q as ha,h as ma,w as va,o as F,c as $,C as ka,u as j,a as S,j as re,b as k,x as X,n as Gt,F as ba,y as _a,K as qe,t as Vt,f as Pa,d as p,A as Te}from"./index-1785858872961.js";import{g as Na,l as Ot,E as Aa}from"./live-scene-1-3ac6252d-1785858872961.js";import{_ as Q}from"./index-8ffdff7e-1785858872961.js";import{M as Ca}from"./index-1891ee64-1785858872961.js";import{_ as Sa}from"./LayerPanel-5e7fd226-1785858872961.js";import{a as se,_ as Ia}from"./FeatureInfoPanel-ca915481-1785858872961.js";import{n as xa,d as Ta,e as La,l as Ra,o as Ba}from"./townshipBoundaries-8867fad4-1785858872961.js";import{c as Fa,d as Ea,F as za,e as Ma,f as wa,h as Ga,i as Va}from"./featurePanelLayout-07907d63-1785858872961.js";import{q as $t,r as Oa,s as $a}from"./screen2Standard-2d8b09ac-1785858872961.js";import{p as ja,a as Ze,b as Wa,c as Ka,d as Ua,e as Ha,f as ge,g as Ye,h as Je,i as jt,j as Da}from"./data-7f9dd12a-1785858872961.js";import"./index-d6700f13-1785858872961.js";import"./index-e9f36657-1785858872961.js";import"./livestockData-36ec0ae2-1785858872961.js";const qa={class:"pasture-management"},Za={key:0,class:"pasture-map-loading"},Ya={class:"pasture-management-ui"},Ja={class:"pasture-left"},Xa={class:"pasture-side-stack is-left"},Qa={class:"pasture-video-monitor"},er=["disabled"],tr=["onClick"],nr={key:1,class:"pasture-video-play"},ar={key:2,class:"pasture-video-loading"},rr={key:3,class:"pasture-video-error"},sr={class:"pasture-video-point-name"},ur=["disabled"],or={class:"pasture-right"},lr={class:"pasture-side-stack is-right"},ir=["aria-label"],Wt="pasture-grassland-boundary",cr="pasture-yak-marks-layer",Kt="#46dce8",dr=12e3,fr="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Xe="#FFE600",Ut="草场详情",xr={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,E=$t.sideCardWidth;$t.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),x=f(()=>Oa(ye.value)),z=f(()=>$a(x.value,2)),h=p(null),ue=p(!1),Qe=p(0);let he=0;const H=p(null),oe=p(!1),le=p(!1),te=p(null),T=p(Ye),D=p(Je),ne=p([]),Le=p(""),Ht=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Dt=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),et=Ra,qt=Kn("ne:t_pasture_grassland",pe),Zt={key:cr,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Xe,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Xe,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Xe,strokeColor:"#FFF58A",selectable:!1}]},Re={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ot,playUrl:"",hdPlayUrl:"",token:""},Be=p(null),M=p([]),me=p(0),q=p(!1),w=p(!1),A=p("");let G=!1,ae=0,V=null,I=null,Fe=!1,Z=0,ve=null,ie=0;const Yt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Jt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Xt=oa(Ba),Ee=f(()=>[{key:Wt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:qt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:et,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Zt]),Qt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),ke=f(()=>{const e=new Set(Qt.value);return Ee.value.filter(t=>e.has(t.key))}),en=f(()=>ke.value[0]||null),ce=f(()=>ke.value.flatMap(e=>e.legends||[]).find(e=>e.key===Le.value)||null),tt=f(()=>ke.value.flatMap(e=>e.legends||[])),nt=f(()=>{const e=Math.max(1,Ee.value.length),t=Math.max(1,Math.ceil(tt.value.length/2)),n=e*34+Math.max(0,e-1)*5;return Math.max(196,Math.min(300,72+n+30+t*28))});function tn(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const at=f(()=>ke.value.map(tn).filter(Boolean)),be=f(()=>at.value[0]||null),nn=f(()=>!!te.value),an=za,rt=f(()=>Fa({point:te.value?Gn(te.value):null,rowCount:H.value?ht(H.value):0,loading:le.value,empty:oe.value||!H.value})),rn=f(()=>rt.value.height),sn=f(()=>rt.value.style),st=f(()=>_t(T.value.core).length?_t(T.value.core):ja),_e=f(()=>ze(Pt(T.value.distribution).length?Pt(T.value.distribution):Ze,ge)),un=f(()=>{const e=Xn(T.value.online);return Qn(e.length?e:Wa)}),on=f(()=>ze(Nt(T.value.age).length?Nt(T.value.age):Ka,ge)),ln=f(()=>ze(At(T.value.age).length?At(T.value.age):Ua,ge)),ut=f(()=>ea(Da));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(_e.value.length?_e.value:Ha).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:_e.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:ut.value}));const cn=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",preserveColors:!0,scrollable:!1,rows:mn(_e.value).slice(0,10).map(e=>P(g({},e),{unit:e.unit||"户",color:Kt}))})),dn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",preserveColors:!0,rows:ut.value.map(e=>P(g({},e),{unit:e.unit||"万亩",color:Kt}))})),fn=f(()=>({key:"pasture-online",type:"line",rows:un.value})),gn=f(()=>({key:"pasture-age",type:"structure",rows:on.value})),pn=f(()=>({key:"pasture-gender",type:"donut",rows:ln.value})),yn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:D.value})),Pe=f(()=>{const e=M.value.length;return e?me.value%e:0}),hn=f(()=>M.value[Pe.value]||Re),ot=f(()=>bn(M.value,Pe.value,Re));function mn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function ze(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ha(()=>{Me(),window.addEventListener("resize",Me),bt(),zn(),In(),vn()}),ma(()=>{G=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),va(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function vn(){return C(this,null,function*(){try{const e=yield Na();if(G)return;M.value=e,me.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(G)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!G&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function kn(e,t){t!=null&&t.isActive&&(Be.value=e||null)}function bn(e=[],t=0,n=Re){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function _n(e,t=!0){const n=(e==null?void 0:e.image)||Ot;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function Pn(){lt(-1)}function Nn(){lt(1)}function lt(e){const t=M.value.length;t&&(Y({resetError:!0}),me.value=(Pe.value+e+t)%t)}function An(e){const t=M.value.length;if(!t){it();return}const n=((Number(e)||0)+t)%t;(n!==Pe.value||I||w.value)&&Y({resetError:!0}),me.value=n,Te(it)}function it(){return C(this,null,function*(){var a,s;const e=hn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||w.value)return;I&&Y({resetError:!0}),A.value="",w.value=!0,yield Te();const t=++Z;let n=null;Cn(t);try{const r=(s=(a=Be.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Aa.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Sn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",w.value=!1,q.value=!1,Z+=1,I=null,Fe=!1,we())},handleSuccess(){t===Z&&(de(),A.value="",Fe=!0,w.value=!1,dt(),ct())},fullScreenChangeCallBack(){}}),t!==Z){ft(n),we();return}I=n,q.value=!0,Te(()=>{dt(),ct()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function ct(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function dt(){var d,l;if(typeof document=="undefined")return;const e=Be.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,Fe=!1,Z+=1,a&&ft(a),t&&we(),q.value=!1,w.value=!1,n&&(A.value="")}function Cn(e){de(),ve=window.setTimeout(()=>{e!==Z||!w.value||(A.value="视频加载超时",Y({resetError:!1}))},dr)}function de(){ve&&(window.clearTimeout(ve),ve=null)}function ft(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function we(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Sn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function In(){return C(this,null,function*(){try{const e=yield Ea();if(G)return;T.value=g(g({},Ye),e),bt();const t=ta(e.list);D.value=t.length?t:Ct(Je),xn(D.value)}catch(e){T.value=Ye,D.value=Ct(Je)}})}function xn(e=D.value,t=600){G||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(G||!ee.active)&&Tn(e)},t))}function Tn(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(Ln).slice(0,60);if(!n.length)return;const a=yield pt(n,5,r=>C(this,null,function*(){const u=Lt(r),o=K(r);let i=o,d=null,l=Se(r,o)||Ie(r,r.name,u);try{(!l||!i.some(b))&&(i=yield yt(r))}catch(R){i=o}if(l=l||Se(r,i)||Ie(r,r.name,u),!l){try{d=u?yield Ma(u):null}catch(Et){d=null}const R=K(d);l=Bn(d)||Se(d,R),R.length&&!i.length&&(i=R)}l=l||Ie(r,r.name,u);const m=!!(u||Ce(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?It(i):O(r),canLocate:m,locateText:m?"定位":"--"};return Rn(_,t),_}));if(G||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&>(s)})}function Ln(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||K(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function Rn(e,t=ae){if(!e||G||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),gt(n)}function gt(e){e!=null&&e.size&&(D.value=D.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function Ge(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=K(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Bn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return L(Ne(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return L(Ne(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return L(Ne(u))}return""}function Ne(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function pt(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=xt(a);if(!s)return a;try{const r=yield Ga(s),o=Ge([r]).find(b);return o?aa(a,o):a}catch(r){return a}}));return $e(n)})}function En(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield yt(e)}catch(d){n=K(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){kt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||kt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function Mn(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function wn(e=be.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Wt||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function ht(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>Vn(n,a)).length)}function Vn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Dt.has(String(e||"").toLowerCase())}function On(e={}){const t=mt(e.lng),n=mt(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function mt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function $n(e={},t={}){var s,r;const n=jn(e);if(!n||!Object.keys(n).length)return null;const a=Wn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:be.value||en.value,lngLat:t.lngLat}}function jn(e={}){var o,i,d,l;const t=vt(e),n=W((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=W((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=W((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||W(t==null?void 0:t.data)||W(t==null?void 0:t.result)||W(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function vt(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function Wn(e={},t={}){var r,u;const n=vt(e),a=W((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=W((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function W(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){H.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function kt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Kn(e,t){return`${e}${e}${t}0.018${t}0.550.68`}function Un(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!wn(e.overlayLayer||be.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,H.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Va(On({lng:t,lat:n}));if(a!==ie)return;const _=$n(m,e);if(!_||ht(_)<=0){Oe();return}H.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Hn(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Qe.value+=1,Te(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Hn,resetMap:Dn});function bt(){U("module-stats",{moduleKey:"pasture-management",items:qn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function qn(){const e=new Map;(Array.isArray(st.value)?st.value:[]).forEach(n=>{!(n!=null&&n.name)||Jn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||jt.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Ht.map(n=>e.get(n)||jt.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function _t(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=Zn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Yn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function Zn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Yn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Jn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function Pt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Xn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=L((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),Ze.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function ea(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=L((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),Ze.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function Nt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function At(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ta(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=K(t),r=O(t)||It(s),u=fe(t,s),o=Lt(t),i=Se(t,s)||Ie(t,a,o),d=Ae(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Ce(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(St)}function Ct(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ae(t),grasslandArea:O(t),acreage:O(t)})).sort(St)}function Ae(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function St(e,t){const n=Ae(e),a=Ae(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Ce(e)?1:0,r=Ce(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Ce(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>na(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function It(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function na(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function K(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function aa(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=ra(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function ra(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=xt(e);return n?`id:${n}`:""}function xt(e={}){return Tt(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(Tt).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function Tt(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function Lt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:K(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Se(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=L(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=L(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Rt(e);if(r)return r;for(const u of t){const o=Rt(u);if(o)return o}return""}function L(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(xa(t))return t;const a=Ta.find(r=>t.includes(r));if(a)return a;const s=Ne(t);return s&&s!==t?L(s):""}function Ie(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=Yt[String(r||"").trim()];if(u)return L(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Jt[sa(r)];if(u)return L(u)}return""}function sa(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?La(n):""}function Rt(e={}){const t=Ue(e),n=la(t);if(!n)return"";const a=Xt.find(s=>ca(n,s.geometry));return a!=null&&a.name?L(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return ua(n)}function ua(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:He(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:xe(s).map(He).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:De(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:xe(s).map(De).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:Bt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:xe(s).map(Bt).filter(u=>u.length)}:null}function He(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function De(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(He).filter(Boolean)}function Bt(e){return xe(e).map(De).filter(t=>t.length>=3)}function xe(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function oa(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function la(e){const t=ia(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function ia(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ca(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Ft(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Ft(e,n)):!1}function Ft(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=zt>r&&s<(Et-_)*(r-R)/(zt-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",qa,[(F(),ka(Ca,{key:Qe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":fr,center:j(et),"initial-zoom":9,"minimum-zoom-distance":1,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":be.value,"overlay-layers":at.value,onReady:Mn,onMapClick:Un},null,8,["active","center","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Za,"3D地图加载中")),S("div",Ya,[S("div",Ja,[S("div",Xa,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:j(E),height:x.value},{default:X(()=>[S("div",Qa,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:Pn}," ‹ ",8,er),S("div",{class:Gt(["pasture-video-grid",{"is-single":ot.value.length<=1}])},[(F(!0),$(ba,null,_a(ot.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>kn(a,n),class:Gt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":w.value&&n.isActive}]),style:qe(_n(n.live,n.isActive)),onClick:a=>An(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",nr)):re("",!0),w.value&&n.isActive?(F(),$("div",ar,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",rr,Vt(A.value),1)):re("",!0),S("div",sr,Vt(n.live.title),1)],14,tr))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Nn}," › ",8,ur)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[S("div",lr,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:j(E),height:x.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:j(E),height:z.value},{default:X(()=>[k(se,{panel:yn.value,compact:"","visual-version":"v21",onRowSelect:En},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",{class:"pasture-map-layer-tools",style:qe({height:`${nt.value}px`})},[k(Sa,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Le.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Le.value=n),"topic-key":"grassland",layers:Ee.value,legends:tt.value,multiple:"",compact:"",width:248,height:nt.value},null,8,["modelValue","selected-legend-key","layers","legends","height"])],4),nn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:qe(sn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Ut}`,title:"关闭",onClick:Pa(J,["stop"])}," × ",8,ir),k(Ia,{title:Ut,feature:H.value,empty:oe.value,loading:le.value,width:j(an),height:rn.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{xr as default}; diff --git a/docs/assets/index-c633956d-balabala-1785726778446.css b/docs/assets/index-c633956d-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-c633956d-balabala-1785726778446.css rename to docs/assets/index-c633956d-balabala-1785858872961.css diff --git a/docs/assets/index-343df101-1785726778446.js b/docs/assets/index-cc15f10b-1785858872961.js similarity index 98% rename from docs/assets/index-343df101-1785726778446.js rename to docs/assets/index-cc15f10b-1785858872961.js index 12871a0..b52ad64 100644 --- a/docs/assets/index-343df101-1785726778446.js +++ b/docs/assets/index-cc15f10b-1785858872961.js @@ -1 +1 @@ -var y=(_,v,i)=>new Promise((r,n)=>{var l=t=>{try{o(i.next(t))}catch(p){n(p)}},d=t=>{try{o(i.throw(t))}catch(p){n(p)}},o=t=>t.done?r(t.value):Promise.resolve(t.value).then(l,d);o((i=i.apply(_,v)).next())});import{_ as S,l as V,m as C,g as M,o as f,c as g,a as s,B as w,f as L,s as h,H as D,I,t as m,j as k,d as u,J as N}from"./index-1785726778446.js";const R={class:"login-screen"},U={class:"login-shell"},q={class:"login-field"},E={class:"login-field login-password-field"},K={class:"login-password-control"},T=["type"],$=["aria-label","aria-pressed"],j={key:0,class:"login-field-assist","aria-live":"polite"},F={key:1,class:"login-error",role:"alert"},H=["disabled"],J={__name:"index",setup(_){const v=V(),i=C(),r=u(""),n=u(""),l=u(!1),d=u(!1),o=u(!1),t=u(""),p=M(()=>{const a=typeof v.query.redirect=="string"?decodeURIComponent(v.query.redirect):"/platform";return a.startsWith("/login")?"/platform":a||"/platform"});function x(){return y(this,null,function*(){if(t.value="",!r.value||!n.value){t.value="请输入账号和密码。";return}o.value=!0;try{yield N(r.value,n.value),i.replace(p.value)}catch(a){t.value=B(a)}finally{o.value=!1}})}function b(a){var e;d.value=!!((e=a==null?void 0:a.getModifierState)!=null&&e.call(a,"CapsLock"))}function B(a){const e=String((a==null?void 0:a.message)||"").trim();return/401|403|账号|密码|unauthor/i.test(e)?"账号或密码不正确,请核对后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(e)?"登录服务暂时无法连接,请稍后重试。":"暂时无法登录,请稍后重试。"}return(a,e)=>(f(),g("div",R,[s("div",U,[e[8]||(e[8]=s("section",{class:"login-brand","aria-label":"红原县数字畜牧业监管平台"},[s("div",{class:"login-brand-rule","aria-hidden":"true"},[s("i"),s("span"),s("i")]),s("h1",null,[w("红原县数字畜牧业"),s("br"),w("监管平台")]),s("div",{class:"login-brand-glow","aria-hidden":"true"})],-1)),s("form",{class:"login-panel","aria-label":"平台用户登录",onSubmit:L(x,["prevent"])},[e[7]||(e[7]=s("header",{class:"login-panel-head"},[s("div",{class:"login-panel-title"},"用户登录"),s("span",{"aria-hidden":"true"})],-1)),s("label",q,[e[4]||(e[4]=s("span",null,"账号",-1)),h(s("input",{"onUpdate:modelValue":e[0]||(e[0]=c=>r.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入平台账号"},null,512),[[D,r.value,void 0,{trim:!0}]])]),s("label",E,[e[5]||(e[5]=s("span",null,"密码",-1)),s("span",K,[h(s("input",{"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:l.value?"text":"password",onKeydown:b,onKeyup:b,onBlur:e[2]||(e[2]=c=>d.value=!1)},null,40,T),[[I,n.value]]),s("button",{class:"login-password-toggle",type:"button","aria-label":l.value?"隐藏密码":"显示密码","aria-pressed":l.value,onClick:e[3]||(e[3]=c=>l.value=!l.value)},m(l.value?"隐藏":"显示"),9,$)])]),d.value?(f(),g("div",j,[...e[6]||(e[6]=[s("span",{class:"login-caps-lock"},"大写锁定已开启",-1)])])):k("",!0),t.value?(f(),g("div",F,m(t.value),1)):k("",!0),s("button",{class:"login-submit",disabled:o.value,type:"submit"},m(o.value?"登录中":"登录"),9,H)],32)])]))}},W=S(J,[["__scopeId","data-v-b11615f4"]]);export{W as default}; +var y=(_,v,i)=>new Promise((r,n)=>{var l=t=>{try{o(i.next(t))}catch(p){n(p)}},d=t=>{try{o(i.throw(t))}catch(p){n(p)}},o=t=>t.done?r(t.value):Promise.resolve(t.value).then(l,d);o((i=i.apply(_,v)).next())});import{_ as S,l as V,m as C,g as M,o as f,c as g,a as s,B as w,f as L,s as h,H as D,I,t as m,j as k,d as u,J as N}from"./index-1785858872961.js";const R={class:"login-screen"},U={class:"login-shell"},q={class:"login-field"},E={class:"login-field login-password-field"},K={class:"login-password-control"},T=["type"],$=["aria-label","aria-pressed"],j={key:0,class:"login-field-assist","aria-live":"polite"},F={key:1,class:"login-error",role:"alert"},H=["disabled"],J={__name:"index",setup(_){const v=V(),i=C(),r=u(""),n=u(""),l=u(!1),d=u(!1),o=u(!1),t=u(""),p=M(()=>{const a=typeof v.query.redirect=="string"?decodeURIComponent(v.query.redirect):"/platform";return a.startsWith("/login")?"/platform":a||"/platform"});function x(){return y(this,null,function*(){if(t.value="",!r.value||!n.value){t.value="请输入账号和密码。";return}o.value=!0;try{yield N(r.value,n.value),i.replace(p.value)}catch(a){t.value=B(a)}finally{o.value=!1}})}function b(a){var e;d.value=!!((e=a==null?void 0:a.getModifierState)!=null&&e.call(a,"CapsLock"))}function B(a){const e=String((a==null?void 0:a.message)||"").trim();return/401|403|账号|密码|unauthor/i.test(e)?"账号或密码不正确,请核对后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(e)?"登录服务暂时无法连接,请稍后重试。":"暂时无法登录,请稍后重试。"}return(a,e)=>(f(),g("div",R,[s("div",U,[e[8]||(e[8]=s("section",{class:"login-brand","aria-label":"红原县数字畜牧业监管平台"},[s("div",{class:"login-brand-rule","aria-hidden":"true"},[s("i"),s("span"),s("i")]),s("h1",null,[w("红原县数字畜牧业"),s("br"),w("监管平台")]),s("div",{class:"login-brand-glow","aria-hidden":"true"})],-1)),s("form",{class:"login-panel","aria-label":"平台用户登录",onSubmit:L(x,["prevent"])},[e[7]||(e[7]=s("header",{class:"login-panel-head"},[s("div",{class:"login-panel-title"},"用户登录"),s("span",{"aria-hidden":"true"})],-1)),s("label",q,[e[4]||(e[4]=s("span",null,"账号",-1)),h(s("input",{"onUpdate:modelValue":e[0]||(e[0]=c=>r.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入平台账号"},null,512),[[D,r.value,void 0,{trim:!0}]])]),s("label",E,[e[5]||(e[5]=s("span",null,"密码",-1)),s("span",K,[h(s("input",{"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:l.value?"text":"password",onKeydown:b,onKeyup:b,onBlur:e[2]||(e[2]=c=>d.value=!1)},null,40,T),[[I,n.value]]),s("button",{class:"login-password-toggle",type:"button","aria-label":l.value?"隐藏密码":"显示密码","aria-pressed":l.value,onClick:e[3]||(e[3]=c=>l.value=!l.value)},m(l.value?"隐藏":"显示"),9,$)])]),d.value?(f(),g("div",j,[...e[6]||(e[6]=[s("span",{class:"login-caps-lock"},"大写锁定已开启",-1)])])):k("",!0),t.value?(f(),g("div",F,m(t.value),1)):k("",!0),s("button",{class:"login-submit",disabled:o.value,type:"submit"},m(o.value?"登录中":"登录"),9,H)],32)])]))}},W=S(J,[["__scopeId","data-v-b11615f4"]]);export{W as default}; diff --git a/docs/assets/index-cda407a6-balabala-1785726778446.css b/docs/assets/index-cda407a6-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-cda407a6-balabala-1785726778446.css rename to docs/assets/index-cda407a6-balabala-1785858872961.css diff --git a/docs/assets/index-cfeb180f-1785726778446.js b/docs/assets/index-cf1a1609-1785858872961.js similarity index 96% rename from docs/assets/index-cfeb180f-1785726778446.js rename to docs/assets/index-cf1a1609-1785858872961.js index fae50f3..1b81717 100644 --- a/docs/assets/index-cfeb180f-1785726778446.js +++ b/docs/assets/index-cf1a1609-1785858872961.js @@ -1,2 +1,2 @@ -import{H as Q}from"./index.esm.min-4f309085-1785726778446.js";import{_ as U}from"./index-7b46d381-1785726778446.js";import{M as X}from"./screen2Standard-f38b9a2d-1785726778446.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-330b271e-1785726778446.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,K as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1785726778446.js";import"./index-e9f36657-1785726778446.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:K()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(J=>J.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function K(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% +import{H as Q}from"./index.esm.min-b7db2517-1785858872961.js";import{_ as U}from"./index-8ffdff7e-1785858872961.js";import{M as X}from"./screen2Standard-2d8b09ac-1785858872961.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-96368571-1785858872961.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,K as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1785858872961.js";import"./index-e9f36657-1785858872961.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:K()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(J=>J.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function K(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% 完成`,color:"#ffe06b",fontSize:22,lineHeight:30,fontWeight:700},data:[{value:1,itemStyle:{color:"rgba(255, 224, 107, .28)"}}]}]})}return(r,n)=>(i(),s("div",ie,[n[1]||(n[1]=t("div",{class:"guide-bg guide-bg-grid"},null,-1)),n[2]||(n[2]=t("div",{class:"guide-bg guide-bg-glow"},null,-1)),t("header",se,[n[0]||(n[0]=t("div",null,[t("div",{class:"guide-kicker"},"Chart Style System"),t("h1",null,"图表样式规范")],-1)),t("div",ue,[(i(!0),s(u,null,g(B(P),a=>(i(),s("span",{key:a,style:m({background:a})},null,4))),128))])]),t("main",ce,[t("section",de,[(i(),s(u,null,g(A,(a,c)=>L(U,{key:a.key,class:F(["guide-chart-card",`is-${a.size||"standard"}`]),width:C(a).width,height:C(a).height,title:`${D(c)} ${a.title}`,"data-unit":a.unit},{default:O(()=>[t("div",{class:F(["guide-card-content",a.visual?`is-${a.visual}`:""])},[a.option?(i(),le(B(Q),{key:0,class:"guide-chart",option:a.option,autoresize:""},null,8,["option"])):N("",!0),a.visual==="three-pie"?(i(),s(u,{key:1},[t("div",ge,[L(X,{data:b,colors:w,delay:3e3,opacity:.62,class:"guide-three-pie"},{default:O(({data:e})=>[t("div",me,[t("strong",null,l(H(e)),1),t("span",null,l((e==null?void 0:e.name)||"结构占比"),1)])]),_:1})]),t("div",pe,[(i(),s(u,null,g(b,(e,d)=>t("div",{key:e.name},[t("i",{style:m({borderColor:w[d]})},null,4),t("span",null,l(e.name),1),t("strong",null,[y(l(e.value),1),t("em",null,l(e.unit),1)])])),64))])],64)):a.visual==="structure-band"?(i(),s(u,{key:2},[t("div",he,[(i(),s(u,null,g(_,e=>t("i",{key:e.name,style:m({width:`${e.percent}%`,background:e.color})},null,4)),64))]),t("div",ve,[(i(),s(u,null,g(_,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("strong",null,l(e.percent)+"%",1)])),64))])],64)):a.visual==="rank-list"?(i(),s(u,{key:3},g(V,(e,d)=>t("div",{key:e.name,class:"guide-rank-row"},[t("span",null,l(d+1),1),t("em",null,l(e.name),1),t("i",null,[t("b",{style:m({width:`${e.percent}%`})},null,4)]),t("strong",null,l(e.value),1)])),64)):a.visual==="warning-band"?(i(),s(u,{key:4},[t("div",be,[t("strong",null,l(S.value),1),t("span",null,l(S.name),1)]),t("div",ye,[(i(),s(u,null,g(M,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("em",null,l(e.value),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)])])),64))])],64)):a.visual==="target-stack"?(i(),s(u,{key:5},g(T,e=>t("div",{key:e.name,class:"guide-target-row"},[t("span",null,l(e.name),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)]),t("strong",null,l(e.percent)+"%",1)])),64)):N("",!0)],2)]),_:2},1032,["class","width","height","title","data-unit"])),64))])])]))}},ze=re(fe,[["__scopeId","data-v-1d923a5c"]]);export{ze as default}; diff --git a/docs/assets/index-e33f4373-1785726778446.js b/docs/assets/index-d6700f13-1785858872961.js similarity index 82% rename from docs/assets/index-e33f4373-1785726778446.js rename to docs/assets/index-d6700f13-1785858872961.js index 117572b..d1c0a95 100644 --- a/docs/assets/index-e33f4373-1785726778446.js +++ b/docs/assets/index-d6700f13-1785858872961.js @@ -1,4 +1,4 @@ -var Qt=Object.defineProperty,Jt=Object.defineProperties;var Zt=Object.getOwnPropertyDescriptors;var ve=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,i,n)=>i in e?Qt(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n,D=(e,i)=>{for(var n in i||(i={}))ct.call(i,n)&&ut(e,n,i[n]);if(ve)for(var n of ve(i))dt.call(i,n)&&ut(e,n,i[n]);return e},ee=(e,i)=>Jt(e,Zt(i));var mt=(e,i)=>{var n={};for(var l in e)ct.call(e,l)&&i.indexOf(l)<0&&(n[l]=e[l]);if(e!=null&&ve)for(var l of ve(e))i.indexOf(l)<0&&dt.call(e,l)&&(n[l]=e[l]);return n};var K=(e,i,n)=>new Promise((l,r)=>{var d=b=>{try{k(n.next(b))}catch(g){r(g)}},y=b=>{try{k(n.throw(b))}catch(g){r(g)}},k=b=>b.done?l(b.value):Promise.resolve(b.value).then(d,y);k((n=n.apply(e,i)).next())});import{_ as bt,o as m,c as f,a as u,t as M,r as ge,b as T,d as w,w as We,p as ft,i as ht,n as U,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Xt,m as en,q as tn,s as N,v as q,x as Le,F as pe,y as De,z as nn,A as Fe,B as an,C as on,D as z,E as ln,G as H}from"./index-1785726778446.js";import{g as ne}from"./index-e9f36657-1785726778446.js";const pt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1785726778446.svg",import.meta.url).href,gt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1785726778446.svg",import.meta.url).href;/** +var Qt=Object.defineProperty,Jt=Object.defineProperties;var Zt=Object.getOwnPropertyDescriptors;var ve=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,i,n)=>i in e?Qt(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n,D=(e,i)=>{for(var n in i||(i={}))ct.call(i,n)&&ut(e,n,i[n]);if(ve)for(var n of ve(i))dt.call(i,n)&&ut(e,n,i[n]);return e},ee=(e,i)=>Jt(e,Zt(i));var mt=(e,i)=>{var n={};for(var l in e)ct.call(e,l)&&i.indexOf(l)<0&&(n[l]=e[l]);if(e!=null&&ve)for(var l of ve(e))i.indexOf(l)<0&&dt.call(e,l)&&(n[l]=e[l]);return n};var K=(e,i,n)=>new Promise((l,r)=>{var d=b=>{try{k(n.next(b))}catch(g){r(g)}},y=b=>{try{k(n.throw(b))}catch(g){r(g)}},k=b=>b.done?l(b.value):Promise.resolve(b.value).then(d,y);k((n=n.apply(e,i)).next())});import{_ as bt,o as m,c as f,a as u,t as M,r as ge,b as T,d as w,w as We,p as ft,i as ht,n as U,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Xt,m as en,q as tn,s as N,v as q,x as Le,F as pe,y as De,z as nn,A as Fe,B as an,C as on,D as z,E as ln,G as H}from"./index-1785858872961.js";import{g as ne}from"./index-e9f36657-1785858872961.js";const pt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1785858872961.svg",import.meta.url).href,gt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1785858872961.svg",import.meta.url).href;/** * @name: autofit.js * @author: Larry Zhu * @version: 3.2.8 @@ -13,4 +13,4 @@ ${_} { }`,E&&(v.innerHTML+=` ${_} div ,${_} span,${_} a,${_} * { font-size: ${E}px; - }`)}}ke.elRectification=Oe;const rn={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},sn={class:"svg-line-animation"},un=["viewBox"],cn=["id"],dn=["stop-opacity"],mn=["stop-opacity"],fn=["id"],hn=["r","fill"],yn=["begin","dur","path","keyPoints"],vn=["d","stroke","stroke-width","mask"];function pn(e,i,n,l,r,d){return m(),f("div",sn,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("defs",null,[u("radialGradient",{id:r.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[u("stop",{offset:"0%","stop-color":"#fff","stop-opacity":n.dir[1]},null,8,dn),u("stop",{offset:"100%","stop-color":"#fff","stop-opacity":n.dir[0]},null,8,mn)],8,cn),u("mask",{id:r.maskId},[u("circle",{r:n.length,cx:"0",cy:"0",fill:`url(#${r.radialGradientId})`},[u("animateMotion",{begin:`${n.begin}s`,dur:`${n.duration}s`,path:n.path,rotate:"auto",keyPoints:`${n.dir[0]};${n.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,yn)],8,hn)],8,fn)]),u("path",{class:"path-line",d:n.path,stroke:n.color,"stroke-width":n.strokeWidth,mask:`url(#${r.maskId})`},null,8,vn)],8,un))])}const _e=bt(rn,[["render",pn]]);const gn={class:"m-header"},wn={class:"m-header-wrap"},_n={class:"m-header-title"},kn={class:"m-header-subtext"},bn={class:"m-header-left",style:{color:"#fff"}},Sn={class:"m-header-right"},$n={class:"m-header-line"},xn={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(i,n)=>(m(),f("div",gn,[u("div",wn,[u("div",_n,M(e.title),1),u("div",kn,M(e.subText),1)]),u("div",bn,[ge(i.$slots,"left")]),u("div",Sn,[ge(i.$slots,"right")]),u("div",$n,[T(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),T(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Tn={class:"m-menu"},Mn={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:i}){const n=i,l=e,r=w(l.defaultActive);return ft("updateActive",y=>{y!==r.value&&(r.value=y,n("select",y))}),ft("activeIndex",r),We(()=>l.defaultActive,y=>{y!==r.value&&(r.value=y)}),(y,k)=>(m(),f("div",Tn,[ge(y.$slots,"default")]))}},Vn=["aria-current","onKeydown"],En={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const i=e,n=ht("updateActive"),l=ht("activeIndex"),r=()=>{n(i.index)};return(d,y)=>(m(),f("div",{class:U(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:r,onKeydown:[we(yt(r,["prevent"]),["enter"]),we(yt(r,["prevent"]),["space"])]},[ge(d.$slots,"default")],42,Vn))}};let _t=0;const kt="webkit moz ms o".split(" ");let F,I;const An=typeof window=="undefined";if(An)F=function(){},I=function(){};else{F=window.requestAnimationFrame,I=window.cancelAnimationFrame;let e;for(let i=0;i{i(n+l)},l);return _t=n+l,r},I=function(i){window.clearTimeout(i)})}const Rn={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,i,n,l){return n*(-Math.pow(2,-10*e/l)+1)*1024/1023+i}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=F(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){I(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,F(this.count)},reset(){this.startTime=null,I(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const i=e-this.startTime;this.remaining=this.localDuration-i,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(i,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(i,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(i/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(i/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),i1?this.decimal+i[1]:"",r=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;r.test(n);)n=n.replace(r,"$1"+this.separator+"$2");return this.prefix+n+l+this.suffix}},destroyed(){I(this.rAF)}};function Cn(e,i,n,l,r,d){return m(),f("span",null,M(r.displayValue),1)}const xt=bt(Rn,[["render",Cn]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",xt);const Ln={class:"count-card-left"},Dn={class:"count-card-title"},Fn={class:"title-zh"},In={key:0,class:"title-en"},Pn={class:"count-card-right"},Nn={class:"unit"},qn={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const i=e,n=w(!0),l=w(!1),r=w(0);let d=null;const y=A(()=>i.info.duration||1800);We(()=>[i.info.value,i.info.zh],()=>{d&&window.clearTimeout(d),n.value=!0,l.value=!1,r.value+=1},{immediate:!0});function k(v){return v.toUpperCase()}function b(){n.value=!0,l.value=!1}function g(){n.value=!1,l.value=!0,d&&window.clearTimeout(d),d=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{d&&window.clearTimeout(d)}),(v,p)=>(m(),f("div",{class:U(["count-card",{"is-counting":n.value,"is-settled":l.value}])},[u("div",Ln,[u("div",{class:U(["count-card-icon","icon-"+e.info.icon])},null,2),u("div",Dn,[u("div",Fn,M(e.info.zh),1),e.info.en?(m(),f("div",In,M(k(e.info.en)),1)):S("",!0)])]),u("div",Pn,[(m(),f("div",{class:"value",key:r.value},[T(R(xt),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:y.value,separator:"",autoplay:!0,onMountedCallback:b,onCallback:g},null,8,["endVal","decimals","duration"])])),u("div",Nn,M(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛全产业链",bottomLabel:"牦牛全产业链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function zn(e){return ae.find(i=>i.key===e)||ae[1]}const qe=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Hn=12e3;function On(e,i={}){const n=new URLSearchParams;Object.entries(i).forEach(([r,d])=>{d!=null&&d!==""&&n.append(r,d)});const l=n.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Tt(n){return K(this,arguments,function*(e,i={}){const g=i,{params:l,timeout:r=Hn}=g,d=mt(g,["params","timeout"]),y=new AbortController;let k=!1;const b=window.setTimeout(()=>{k=!0,y.abort()},r);try{const v=yield fetch(On(e,l),ee(D({credentials:"include"},d),{signal:y.signal,headers:D({Accept:"application/json"},d.headers||{})}));if(!v.ok){const c=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw c.code=`HTTP_${v.status}`,c.status=v.status,v.status===401&&vt(),c}const p=yield v.json();if((p==null?void 0:p.code)===401||(p==null?void 0:p.code)==="401"){const c=new Error((p==null?void 0:p.msg)||"用户未登录或授权已过期。");throw c.code="HTTP_401",c.status=401,vt(),c}return p}catch(v){if(y.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const c=new Error(k?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw c.code=k?"REQUEST_TIMEOUT":"REQUEST_ABORTED",c}throw v}finally{window.clearTimeout(b)}})}function Wn(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const jn="/jsyApi",Bn={latitude:32.816999,longitude:102.547593};function Kn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Wn(e)}function Mt(e){var y,k,b,g;const i=(k=(y=e==null?void 0:e.data)!=null?y:e==null?void 0:e.result)!=null?k:e,n=Array.isArray(i)?i[0]:Array.isArray(i==null?void 0:i.rows)?i.rows[0]:Array.isArray(i==null?void 0:i.list)?i.list[0]:i;if(!n||typeof n!="object")return null;const l=(...v)=>v.find(p=>p!=null&&p!==""),r=l(n.temp,n.temperature,n.temperature_float,n.tempDay,n.temperatureDay),d=l(n.humidity,n.humidity_float,n.pop,n.relativeHumidity);return{condition:n.conditionDay||n.condition||n.weather||n.weatherText||"",temperature:r==null||r===""?"--":r,humidity:d==null||d===""?"--":d,windDirection:n.windDir||n.windDirection||"",windLevel:n.windLevel||n.windScale||n.windPower||"",icon:(g=(b=n.icon)!=null?b:n.weatherIcon)!=null?g:null}}function Un(e){return K(this,null,function*(){const i=yield Tt(`${jn}${e}`,{timeout:8e3});return Mt(Kn(i))})}function Gn(e){return e===0?{condition:"晴",icon:"0"}:[1,2].includes(e)?{condition:"多云",icon:"1"}:e===3?{condition:"阴",icon:"2"}:[45,48].includes(e)?{condition:"雾",icon:"18"}:[51,53,55,61].includes(e)?{condition:e===61?"小雨":"毛毛雨",icon:"7"}:[56,57,66,67].includes(e)?{condition:"冻雨",icon:"19"}:e===63?{condition:"中雨",icon:"8"}:[65,82].includes(e)?{condition:e===82?"阵雨":"大雨",icon:"9"}:[71,85].includes(e)?{condition:e===71?"小雪":"阵雪",icon:e===71?"14":"13"}:e===73?{condition:"中雪",icon:"15"}:[75,86].includes(e)?{condition:e===75?"大雪":"阵雪",icon:"16"}:e===77?{condition:"雪粒",icon:"13"}:[80,81].includes(e)?{condition:"阵雨",icon:"3"}:e===95?{condition:"雷阵雨",icon:"4"}:[96,99].includes(e)?{condition:"雷阵雨伴冰雹",icon:"5"}:{condition:"未知",icon:"44"}}function Yn(e){const i=["北风","东北风","东风","东南风","南风","西南风","西风","西北风"],n=((Number(e)||0)%360+360)%360;return i[Math.floor((n+22.5)/45)%i.length]}function Qn(e){const i=Math.max(0,Number(e)||0),l=[1,6,12,20,29,39,50,62,75,89,103,118].findIndex(r=>iH(()=>import("./index-3dc02a03-1785726778446.js"),["./index-3dc02a03-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./live-scene-1-e9556509-1785726778446.js","./index.esm.min-4f309085-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./index-7b548b42-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./screen2Standard-f38b9a2d-1785726778446.js","./index-e9f36657-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./data-112f1d11-1785726778446.js","./TopicSwitcher-0aae51d1-1785726778446.js","./TopicSwitcher-b6474311-balabala-1785726778446.css","./livestockData-36ec0ae2-1785726778446.js","./FeatureInfoPanel-e0a0d741-1785726778446.js","./FeatureInfoPanel-528fd437-balabala-1785726778446.css","./openApi-70e9578a-1785726778446.js","./geoserver-d05ee620-1785726778446.js","./featurePanelLayout-b5234356-1785726778446.js","./yakApi-185e6ecc-1785726778446.js","./chartTheme-330b271e-1785726778446.js","./balanceApi-994e7f98-1785726778446.js","./data-56996d99-1785726778446.js","./data-e7a95cad-1785726778446.js","./familyPastureData-f64283c3-1785726778446.js","./index-c4c25a3c-balabala-1785726778446.css"],import.meta.url)),n=z(()=>H(()=>import("./index-81cb110f-1785726778446.js"),["./index-81cb110f-1785726778446.js","./index-e9f36657-1785726778446.js","./assets-5661f996-1785726778446.js","./screen2Standard-f38b9a2d-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./screen2Standard-cdb21878-balabala-1785726778446.css","./TopicSwitcher-0aae51d1-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./TopicSwitcher-b6474311-balabala-1785726778446.css","./index-7b548b42-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./openApi-70e9578a-1785726778446.js","./geoserver-d05ee620-1785726778446.js","./featurePanelLayout-b5234356-1785726778446.js","./LayerPanel-921f9e3d-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./LayerPanel-60397a69-balabala-1785726778446.css","./FeatureInfoPanel-e0a0d741-1785726778446.js","./FeatureInfoPanel-528fd437-balabala-1785726778446.css","./index-fea14f56-balabala-1785726778446.css","./layout-9e63e529-balabala-1785726778446.css"],import.meta.url)),l=z(()=>H(()=>import("./index-30f157a6-1785726778446.js"),["./index-30f157a6-1785726778446.js","./index-e9f36657-1785726778446.js","./index-7b46d381-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./index-148a2898-balabala-1785726778446.css","./townshipBoundaries-8867fad4-1785726778446.js","./featurePanelLayout-b5234356-1785726778446.js","./assets-5661f996-1785726778446.js","./screen2Standard-f38b9a2d-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./TopicSwitcher-0aae51d1-1785726778446.js","./TopicSwitcher-b6474311-balabala-1785726778446.css","./index-7b548b42-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./LayerPanel-921f9e3d-1785726778446.js","./LayerPanel-60397a69-balabala-1785726778446.css","./FeatureInfoPanel-e0a0d741-1785726778446.js","./FeatureInfoPanel-528fd437-balabala-1785726778446.css","./data-aa09e6f1-1785726778446.js","./data-56996d99-1785726778446.js","./index-cda407a6-balabala-1785726778446.css","./layout-9e63e529-balabala-1785726778446.css"],import.meta.url)),r=z(()=>H(()=>import("./index-70900b52-1785726778446.js"),["./index-70900b52-1785726778446.js","./index-7b46d381-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./index-148a2898-balabala-1785726778446.css","./balanceApi-994e7f98-1785726778446.js","./data-56996d99-1785726778446.js","./index-e9f36657-1785726778446.js","./index-e6c4062a-balabala-1785726778446.css"],import.meta.url)),d=z(()=>H(()=>import("./index-e5aecffb-1785726778446.js"),["./index-e5aecffb-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./index.esm.min-4f309085-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./screen2Standard-f38b9a2d-1785726778446.js","./index-e9f36657-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./data-112f1d11-1785726778446.js","./TopicSwitcher-0aae51d1-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./TopicSwitcher-b6474311-balabala-1785726778446.css","./livestockData-36ec0ae2-1785726778446.js","./geoserver-d05ee620-1785726778446.js","./LayerPanel-921f9e3d-1785726778446.js","./LayerPanel-60397a69-balabala-1785726778446.css","./assets-5661f996-1785726778446.js","./index-7b548b42-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./yakApi-185e6ecc-1785726778446.js","./index-1683923b-balabala-1785726778446.css"],import.meta.url)),y=z(()=>H(()=>import("./index-3dbe23d2-1785726778446.js"),["./index-3dbe23d2-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./live-scene-1-e9556509-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./index-7b548b42-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./LayerPanel-921f9e3d-1785726778446.js","./LayerPanel-60397a69-balabala-1785726778446.css","./FeatureInfoPanel-e0a0d741-1785726778446.js","./screen2Standard-f38b9a2d-1785726778446.js","./index-e9f36657-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./FeatureInfoPanel-528fd437-balabala-1785726778446.css","./featurePanelLayout-b5234356-1785726778446.js","./data-0d4a0513-1785726778446.js","./livestockData-36ec0ae2-1785726778446.js","./index-c633956d-balabala-1785726778446.css"],import.meta.url)),k=z(()=>H(()=>import("./index-69cc5a72-1785726778446.js"),["./index-69cc5a72-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./index.esm.min-4f309085-1785726778446.js","./index-7b46d381-1785726778446.js","./index-148a2898-balabala-1785726778446.css","./index-7b548b42-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./index-b3415e08-balabala-1785726778446.css","./FeatureInfoPanel-e0a0d741-1785726778446.js","./screen2Standard-f38b9a2d-1785726778446.js","./index-e9f36657-1785726778446.js","./screen2Standard-cdb21878-balabala-1785726778446.css","./FeatureInfoPanel-528fd437-balabala-1785726778446.css","./LayerPanel-921f9e3d-1785726778446.js","./LayerPanel-60397a69-balabala-1785726778446.css","./TopicSwitcher-0aae51d1-1785726778446.js","./TopicSwitcher-b6474311-balabala-1785726778446.css","./assets-5661f996-1785726778446.js","./chartTheme-330b271e-1785726778446.js","./data-6350cbbd-1785726778446.js","./familyPastureData-f64283c3-1785726778446.js","./livestockData-36ec0ae2-1785726778446.js","./index-02d2dea9-balabala-1785726778446.css"],import.meta.url)),b=z(()=>H(()=>import("./index-2c5309f9-1785726778446.js"),["./index-2c5309f9-1785726778446.js","./index-1785726778446.js","./index-2044d487-balabala-1785726778446.css","./balanceApi-994e7f98-1785726778446.js","./yakApi-185e6ecc-1785726778446.js","./data-e7a95cad-1785726778446.js","./livestockData-36ec0ae2-1785726778446.js","./data-56996d99-1785726778446.js","./data-0d4a0513-1785726778446.js","./data-aa09e6f1-1785726778446.js","./townshipBoundaries-8867fad4-1785726778446.js","./data-6350cbbd-1785726778446.js","./familyPastureData-f64283c3-1785726778446.js","./index-e9f36657-1785726778446.js","./index-0a7426a0-balabala-1785726778446.css"],import.meta.url)),g=Xt(),v=en(),p=ue(g.query.module),c=w(p),_=w(p==="ecological-protection"?nt(g.query.view):"ecological-redline"),V=w(p==="yak-management"?Re(g.query.view):"structure"),E=w({[p]:!0});let P=[p];const G=w({}),Y=w(!0),Q=w(0),be=w(null),Se=w(null),je=w(null),Be=w(null),Ke=w(null),Ue=w(null),Ge=w(null),Ye=w(!1),Qe=w(""),Je=w(""),C=w({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),J=w(!1),$e=w(!1);let Z=null,xe=null,Te=null,oe=!1,le=null;const Vt=Date.now(),O={progress:0},Et=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],At=new Set(W),s=A(()=>zn(c.value)),Rt=A(()=>`/images/weather/W${C.value.icon}.png`),Ct=A(()=>J.value&&C.value.icon!==null&&!$e.value),Me=A(()=>!["","--",null,void 0].includes(C.value.humidity)),re=A(()=>{const t=String(C.value.windDirection||"").trim(),a=String(C.value.windLevel||"").trim();return!t&&!a?"":`${t}${t&&a?" ":""}${a?`${a}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Lt=A(()=>!["smart-management","grass-livestock-balance"].includes(s.value.key)),Dt=A(()=>j.value.length===5&&(s.value.key==="home"||s.value.key==="ecological-protection"&&Ve.value==="national-park")),Ft=A(()=>c.value==="ecological-protection"?qe:ae),Ve=A(()=>c.value==="ecological-protection"?_.value:c.value),j=A(()=>{const t=G.value[c.value];return Array.isArray(t)||t!=null&&t.length?t:it([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});tn(()=>{Xe(),et(),xe=window.setInterval(Xe,1e3),Te=window.setInterval(et,30*60*1e3),Z=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),Bt(),he(),Ce(),zt(c.value)?Ht(c.value):(oe=!0,Q.value=100,Y.value=!1)}),St(()=>{var t;xe&&window.clearInterval(xe),Te&&window.clearInterval(Te),me(),(t=Z==null?void 0:Z.off)==null||t.call(Z,"#large-screen"),Kt(),ne.killTweensOf(O)});function Xe(){const t=new Date,a=$=>String($).padStart(2,"0"),o=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${a(t.getMonth()+1)}.${a(t.getDate())} ${o[t.getDay()]}`,Je.value=`${a(t.getHours())}:${a(t.getMinutes())}:${a(t.getSeconds())}`}function et(){return K(this,null,function*(){try{C.value=yield Zn(),J.value=!0,$e.value=!1}catch(t){J.value=!1,console.warn("[platform] weather unavailable",t)}})}function It(){$e.value=!0}function Ee(t,a={}){const o=ue(t),$=o==="home"&&!a.fromRoute;if(o==="yak-management"&&!a.fromRoute&&(V.value="structure"),o===c.value){$&&fe(),se(o);return}c.value=o,jt(o),se(o),$&&fe(),Fe(Ce)}function Ae(t){ue(t)==="home"&&c.value==="home"&&fe()}function Pt(t){if(t!=null&&t.key){if(c.value==="ecological-protection"){tt(t.key);return}Ee(t.key)}}function tt(t){const a=qe.some(o=>o.key===t)?t:"ecological-redline";a===_.value&&c.value==="ecological-protection"||(_.value=a,c.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Nt(t){const a=Re(t);a!==V.value&&(V.value=a,c.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,a])=>{const o=ue(t);o==="ecological-protection"&&(_.value=nt(a)),o==="yak-management"&&(V.value=Re(a)),o!==c.value&&Ee(o,{fromRoute:!0})});function se(t=c.value){const a=ee(D({},g.query),{module:t});t==="yak-management"?a.view=V.value:t==="ecological-protection"?a.view=_.value:delete a.view;const o=g.query||{},$=String(o.module||"")===String(a.module||"")&&String(o.view||"")===String(a.view||"");g.path==="/platform"&&$||v.replace({path:"/platform",query:a}).catch(()=>{})}function ue(t){const a=Array.isArray(t)?t[0]:t;return ae.some(o=>o.key===a)?a:"home"}function Re(t){const a=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(a)?a:"structure"}function nt(t){const a=Array.isArray(t)?t[0]:t;return qe.some(o=>o.key===a)?a:"ecological-redline"}function B(t){const a=t.moduleKey||(t.topicKey?"forest-grass-wet":c.value);G.value=ee(D({},G.value),{[a]:it(t.items||[])})}function ce(t={}){const a=typeof t=="number"?t:t.progress;qt(a)}function de(){me(),ne.killTweensOf(O),O.progress=100,Q.value=100;const t=Date.now()-Vt,a=Math.max(80,Ca-t);window.setTimeout(at,a)}function qt(t){if(!Y.value)return;const a=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));a{Q.value=Math.floor(O.progress)}})}function at(){if(!Y.value||oe)return;me(),oe=!0;const t=ne.timeline({onComplete:()=>{Y.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function zt(t){return Et.has(t)}function Ht(t){me();const a=t==="home"?12e3:8e3;le=window.setTimeout(()=>{!Y.value||oe||(ne.killTweensOf(O),O.progress=100,Q.value=100,window.setTimeout(at,120))},a)}function me(){le&&(window.clearTimeout(le),le=null)}function it(t=[]){const a=new Set;return t.slice(0,10).map((o,$)=>{var X;const h=Number(o.value)||0,L={zh:o.zh||o.name||`指标${$+1}`,en:o.en||"",value:h,unit:o.unit||"",decimals:(X=o.decimals)!=null?X:Number.isInteger(h)?0:2},ye=Ot(D(D({},o),L),$,a);return a.add(ye),D({icon:ye},L)})}function Ot(t={},a=0,o=new Set){const h=Wt(t,a).find(L=>At.has(L)&&!o.has(L));return h||W.find(L=>!o.has(L))||W[a%W.length]}function Wt(t={},a=0){const o=`${t.zh||t.name||""}${t.unit||""}`,$=[],h=(...ye)=>{ye.forEach(X=>{X&&!$.includes(X)&&$.push(X)})};h(t.icon),/风险|预警|告警/.test(o)&&h("risk","rate"),/模型|修正|共识|预测|变化|净/.test(o)&&h("rate","stack"),/率|占比|比例|超载/.test(o)&&h("rate","project"),/生态牧场|家庭生态/.test(o)&&h("leaf","town"),/出证|证书|证/.test(o)&&h("certificate","project"),/交易|销售/.test(o)&&h("yield","certificate"),/流通|出栏|流出/.test(o)&&h("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(o)&&h("device","length"),/工程长度|长度|公里/.test(o)&&h("length","project"),/修复项目|项目|工程|治理/.test(o)&&h("project","length"),/国家公园|保护范围|保护区|划定/.test(o)&&h("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(o)&&h("yield","leaf"),/湿地/.test(o)&&h("wetland","leaf"),/基本草原/.test(o)&&h("grass-basic","area"),/一般草原/.test(o)&&h("grass-general","area"),/林地|森林|公益林/.test(o)&&h("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(o)&&h("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(o)&&h("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(o)&&h("town","project"),/生态|林草/.test(o)&&h("leaf","wetland");const L=a%W.length;return h(...W.slice(L),...W.slice(0,L)),$}function jt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(P=P.filter(a=>a!==t),P.push(t),P=P.slice(-Ra),E.value=Object.fromEntries(P.map(a=>[a,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function fe(t=4){Fe(()=>{const a=Se.value;if(a!=null&&a.showDefaultThreeMap){a.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>fe(t-1),80)})}const ot=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function he(){var o;const t=lt(),a=be.value;Ye.value=!!(a&&t&&(t===a||a.contains(t)||(o=t.contains)!=null&&o.call(t,a)))}function Bt(){typeof document!="undefined"&&ot.forEach(t=>document.addEventListener(t,he))}function Kt(){typeof document!="undefined"&&ot.forEach(t=>document.removeEventListener(t,he))}function rt(){var t,a;(a=(t=st())==null?void 0:t.refreshMapView)==null||a.call(t)}function Ut(){return K(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const a=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield a==null?void 0:a.call(document)}else{const a=be.value||document.documentElement,o=a.requestFullscreen||a.webkitRequestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen;yield o==null?void 0:o.call(a)}}catch(a){console.warn("[platform] fullscreen toggle failed",a)}finally{he(),window.setTimeout(rt,80),window.setTimeout(rt,280)}})}function Gt(){var t,a;(a=(t=st())==null?void 0:t.resetMap)==null||a.call(t)}function st(){return s.value.key==="home"?Se.value:s.value.key==="forest-grass-wet"?je.value:s.value.key==="ecological-protection"?Be.value:s.value.key==="yak-management"?Ke.value:s.value.key==="pasture-management"?Ue.value:s.value.key==="yak-industry-chain"?Ge.value:null}function Yt(){ln()}return(t,a)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:U(["large-screen platform-screen",{"is-home":s.value.key==="home","is-forest-grass-wet":s.value.key==="forest-grass-wet","is-ecological-protection":s.value.key==="ecological-protection","is-grass-livestock-balance":s.value.key==="grass-livestock-balance","is-yak-management":s.value.key==="yak-management","is-pasture-management":s.value.key==="pasture-management","is-yak-industry-chain":s.value.key==="yak-industry-chain","is-smart-management":s.value.key==="smart-management","is-ecology-national-park":s.value.key==="ecological-protection"&&Ve.value==="national-park"}]),id:"large-screen"},[E.value.home?N((m(),f("div",{key:0,class:"platform-module-pane","aria-hidden":s.value.key!=="home",inert:s.value.key!=="home"},[T(R(i),{ref_key:"homeDashboardRef",ref:Se,active:s.value.key==="home",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,Xn)),[[q,s.value.key==="home"]]):S("",!0),E.value["forest-grass-wet"]?N((m(),f("div",{key:1,class:"platform-module-pane","aria-hidden":s.value.key!=="forest-grass-wet",inert:s.value.key!=="forest-grass-wet"},[T(R(n),{ref_key:"forestGrassWetRef",ref:je,active:s.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:B},null,8,["active"])],8,ea)),[[q,s.value.key==="forest-grass-wet"]]):S("",!0),E.value["ecological-protection"]?N((m(),f("div",{key:2,class:"platform-module-pane","aria-hidden":s.value.key!=="ecological-protection",inert:s.value.key!=="ecological-protection"},[T(R(l),{ref_key:"ecologicalProtectionRef",ref:Be,active:s.value.key==="ecological-protection","active-view":_.value,"show-loading":!1,onModuleStats:B,onViewChange:tt},null,8,["active","active-view"])],8,ta)),[[q,s.value.key==="ecological-protection"]]):S("",!0),E.value["grass-livestock-balance"]?N((m(),f("div",{key:3,class:"platform-module-pane","aria-hidden":s.value.key!=="grass-livestock-balance",inert:s.value.key!=="grass-livestock-balance"},[T(R(r),{active:s.value.key==="grass-livestock-balance",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,na)),[[q,s.value.key==="grass-livestock-balance"]]):S("",!0),E.value["yak-management"]?N((m(),f("div",{key:4,class:"platform-module-pane","aria-hidden":s.value.key!=="yak-management",inert:s.value.key!=="yak-management"},[T(R(d),{ref_key:"yakManagementRef",ref:Ke,active:s.value.key==="yak-management","view-key":V.value,onModuleStats:B,onViewChange:Nt},null,8,["active","view-key"])],8,aa)),[[q,s.value.key==="yak-management"]]):S("",!0),E.value["pasture-management"]?N((m(),f("div",{key:5,class:"platform-module-pane","aria-hidden":s.value.key!=="pasture-management",inert:s.value.key!=="pasture-management"},[T(R(y),{ref_key:"pastureManagementRef",ref:Ue,active:s.value.key==="pasture-management",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,ia)),[[q,s.value.key==="pasture-management"]]):S("",!0),E.value["yak-industry-chain"]?N((m(),f("div",{key:6,class:"platform-module-pane","aria-hidden":s.value.key!=="yak-industry-chain",inert:s.value.key!=="yak-industry-chain"},[T(R(k),{ref_key:"yakIndustryChainRef",ref:Ge,active:s.value.key==="yak-industry-chain",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,oa)),[[q,s.value.key==="yak-industry-chain"]]):S("",!0),E.value["smart-management"]?N((m(),f("div",{key:7,class:"platform-module-pane","aria-hidden":s.value.key!=="smart-management",inert:s.value.key!=="smart-management"},[T(R(b),{active:s.value.key==="smart-management"},null,8,["active"])],8,la)),[[q,s.value.key==="smart-management"]]):S("",!0),u("div",ra,[T(xn,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[u("div",sa,[u("div",{class:U(["platform-weather",{"is-unavailable":!J.value}])},[Ct.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:Rt.value,alt:C.value.condition||"天气",onError:It},null,40,ua)):(m(),f("span",ca)),u("div",da,[u("div",ma,[u("strong",null,M(J.value?C.value.condition||"实时天气":"天气暂无数据"),1),J.value?(m(),f("em",fa,M(C.value.temperature)+"℃",1)):S("",!0)]),Me.value||re.value?(m(),f("small",ha,[Me.value?(m(),f("span",ya,"湿度 "+M(C.value.humidity)+"%",1)):S("",!0),Me.value&&re.value?(m(),f("i",va)):S("",!0),re.value?(m(),f("span",pa,M(re.value),1)):S("",!0)])):S("",!0)])],2),u("div",ga,[u("strong",null,M(Je.value),1),u("span",null,M(Qe.value),1)]),u("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Yt},[...a[0]||(a[0]=[u("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[u("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),u("path",{d:"M16 17l5-5-5-5"}),u("path",{d:"M21 12H9"})],-1)])])])]),_:1}),u("div",wa,[T(Mn,{"default-active":c.value,onSelect:Ee},{default:Le(()=>[(m(!0),f(pe,null,De(R(ae),(o,$)=>(m(),f(pe,{key:o.key},[T(En,{index:o.key,onClick:h=>Ae(o.key),onKeydown:[we(h=>Ae(o.key),["enter"]),we(h=>Ae(o.key),["space"])]},{default:Le(()=>[an(M(o.label),1)]),_:2},1032,["index","onClick","onKeydown"]),$===3?(m(),f("div",_a)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(s.value.key)?(m(),f("div",{key:0,class:U(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Dt.value}])},[(m(!0),f(pe,null,De(j.value,o=>(m(),on(qn,{key:o.zh,info:o},null,8,["info"]))),128))],2)):S("",!0),Lt.value?(m(),f("div",ka,[u("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Ut},[...a[1]||(a[1]=[u("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,ba),u("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Gt},[...a[2]||(a[2]=[u("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),s.value.status!=="ready"?(m(),f("div",Sa,[u("div",$a,M(s.value.label),1),a[3]||(a[3]=u("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(s.value.key)?S("",!0):(m(),f("div",xa,[T(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),T(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),a[4]||(a[4]=u("div",{class:"bottom-tray-arrow"},[u("img",{src:pt,alt:""}),u("img",{src:gt,alt:""})],-1)),u("div",Ta,[(m(!0),f(pe,null,De(Ft.value,o=>(m(),f("div",{key:o.key,class:U(["bottom-menu-item",{"is-active":o.key===Ve.value}]),onClick:$=>Pt(o)},[u("span",null,M(o.bottomLabel),1)],10,Ma))),128))]),a[5]||(a[5]=u("div",{class:"bottom-tray-arrow is-reverse"},[u("img",{src:pt,alt:""}),u("img",{src:gt,alt:""})],-1))])),a[6]||(a[6]=u("div",{class:"large-screen-left-zsline"},null,-1)),a[7]||(a[7]=u("div",{class:"large-screen-right-zsline"},null,-1))]),Y.value?(m(),f("div",Va,[a[9]||(a[9]=nn('
    LOADING
    ',1)),u("div",Ea,[u("span",Aa,M(Q.value),1),a[8]||(a[8]=u("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Pa=Object.freeze(Object.defineProperty({__proto__:null,default:La},Symbol.toStringTag,{value:"Module"}));export{Pa as i,Wn as n,Tt as r}; + }`)}}ke.elRectification=Oe;const rn={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},sn={class:"svg-line-animation"},un=["viewBox"],cn=["id"],dn=["stop-opacity"],mn=["stop-opacity"],fn=["id"],hn=["r","fill"],yn=["begin","dur","path","keyPoints"],vn=["d","stroke","stroke-width","mask"];function pn(e,i,n,l,r,d){return m(),f("div",sn,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("defs",null,[u("radialGradient",{id:r.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[u("stop",{offset:"0%","stop-color":"#fff","stop-opacity":n.dir[1]},null,8,dn),u("stop",{offset:"100%","stop-color":"#fff","stop-opacity":n.dir[0]},null,8,mn)],8,cn),u("mask",{id:r.maskId},[u("circle",{r:n.length,cx:"0",cy:"0",fill:`url(#${r.radialGradientId})`},[u("animateMotion",{begin:`${n.begin}s`,dur:`${n.duration}s`,path:n.path,rotate:"auto",keyPoints:`${n.dir[0]};${n.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,yn)],8,hn)],8,fn)]),u("path",{class:"path-line",d:n.path,stroke:n.color,"stroke-width":n.strokeWidth,mask:`url(#${r.maskId})`},null,8,vn)],8,un))])}const _e=bt(rn,[["render",pn]]);const gn={class:"m-header"},wn={class:"m-header-wrap"},_n={class:"m-header-title"},kn={class:"m-header-subtext"},bn={class:"m-header-left",style:{color:"#fff"}},Sn={class:"m-header-right"},$n={class:"m-header-line"},xn={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(i,n)=>(m(),f("div",gn,[u("div",wn,[u("div",_n,M(e.title),1),u("div",kn,M(e.subText),1)]),u("div",bn,[ge(i.$slots,"left")]),u("div",Sn,[ge(i.$slots,"right")]),u("div",$n,[T(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),T(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Tn={class:"m-menu"},Mn={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:i}){const n=i,l=e,r=w(l.defaultActive);return ft("updateActive",y=>{y!==r.value&&(r.value=y,n("select",y))}),ft("activeIndex",r),We(()=>l.defaultActive,y=>{y!==r.value&&(r.value=y)}),(y,k)=>(m(),f("div",Tn,[ge(y.$slots,"default")]))}},Vn=["aria-current","onKeydown"],En={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const i=e,n=ht("updateActive"),l=ht("activeIndex"),r=()=>{n(i.index)};return(d,y)=>(m(),f("div",{class:U(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:r,onKeydown:[we(yt(r,["prevent"]),["enter"]),we(yt(r,["prevent"]),["space"])]},[ge(d.$slots,"default")],42,Vn))}};let _t=0;const kt="webkit moz ms o".split(" ");let F,I;const An=typeof window=="undefined";if(An)F=function(){},I=function(){};else{F=window.requestAnimationFrame,I=window.cancelAnimationFrame;let e;for(let i=0;i{i(n+l)},l);return _t=n+l,r},I=function(i){window.clearTimeout(i)})}const Rn={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,i,n,l){return n*(-Math.pow(2,-10*e/l)+1)*1024/1023+i}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=F(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){I(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,F(this.count)},reset(){this.startTime=null,I(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const i=e-this.startTime;this.remaining=this.localDuration-i,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(i,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(i,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(i/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(i/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),i1?this.decimal+i[1]:"",r=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;r.test(n);)n=n.replace(r,"$1"+this.separator+"$2");return this.prefix+n+l+this.suffix}},destroyed(){I(this.rAF)}};function Cn(e,i,n,l,r,d){return m(),f("span",null,M(r.displayValue),1)}const xt=bt(Rn,[["render",Cn]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",xt);const Ln={class:"count-card-left"},Dn={class:"count-card-title"},Fn={class:"title-zh"},In={key:0,class:"title-en"},Pn={class:"count-card-right"},Nn={class:"unit"},qn={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const i=e,n=w(!0),l=w(!1),r=w(0);let d=null;const y=A(()=>i.info.duration||1800);We(()=>[i.info.value,i.info.zh],()=>{d&&window.clearTimeout(d),n.value=!0,l.value=!1,r.value+=1},{immediate:!0});function k(v){return v.toUpperCase()}function b(){n.value=!0,l.value=!1}function g(){n.value=!1,l.value=!0,d&&window.clearTimeout(d),d=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{d&&window.clearTimeout(d)}),(v,p)=>(m(),f("div",{class:U(["count-card",{"is-counting":n.value,"is-settled":l.value}])},[u("div",Ln,[u("div",{class:U(["count-card-icon","icon-"+e.info.icon])},null,2),u("div",Dn,[u("div",Fn,M(e.info.zh),1),e.info.en?(m(),f("div",In,M(k(e.info.en)),1)):S("",!0)])]),u("div",Pn,[(m(),f("div",{class:"value",key:r.value},[T(R(xt),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:y.value,separator:"",autoplay:!0,onMountedCallback:b,onCallback:g},null,8,["endVal","decimals","duration"])])),u("div",Nn,M(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛全产业链",bottomLabel:"牦牛全产业链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function zn(e){return ae.find(i=>i.key===e)||ae[1]}const qe=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Hn=12e3;function On(e,i={}){const n=new URLSearchParams;Object.entries(i).forEach(([r,d])=>{d!=null&&d!==""&&n.append(r,d)});const l=n.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Tt(n){return K(this,arguments,function*(e,i={}){const g=i,{params:l,timeout:r=Hn}=g,d=mt(g,["params","timeout"]),y=new AbortController;let k=!1;const b=window.setTimeout(()=>{k=!0,y.abort()},r);try{const v=yield fetch(On(e,l),ee(D({credentials:"include"},d),{signal:y.signal,headers:D({Accept:"application/json"},d.headers||{})}));if(!v.ok){const c=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw c.code=`HTTP_${v.status}`,c.status=v.status,v.status===401&&vt(),c}const p=yield v.json();if((p==null?void 0:p.code)===401||(p==null?void 0:p.code)==="401"){const c=new Error((p==null?void 0:p.msg)||"用户未登录或授权已过期。");throw c.code="HTTP_401",c.status=401,vt(),c}return p}catch(v){if(y.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const c=new Error(k?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw c.code=k?"REQUEST_TIMEOUT":"REQUEST_ABORTED",c}throw v}finally{window.clearTimeout(b)}})}function Wn(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const jn="/jsyApi",Bn={latitude:32.816999,longitude:102.547593};function Kn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Wn(e)}function Mt(e){var y,k,b,g;const i=(k=(y=e==null?void 0:e.data)!=null?y:e==null?void 0:e.result)!=null?k:e,n=Array.isArray(i)?i[0]:Array.isArray(i==null?void 0:i.rows)?i.rows[0]:Array.isArray(i==null?void 0:i.list)?i.list[0]:i;if(!n||typeof n!="object")return null;const l=(...v)=>v.find(p=>p!=null&&p!==""),r=l(n.temp,n.temperature,n.temperature_float,n.tempDay,n.temperatureDay),d=l(n.humidity,n.humidity_float,n.pop,n.relativeHumidity);return{condition:n.conditionDay||n.condition||n.weather||n.weatherText||"",temperature:r==null||r===""?"--":r,humidity:d==null||d===""?"--":d,windDirection:n.windDir||n.windDirection||"",windLevel:n.windLevel||n.windScale||n.windPower||"",icon:(g=(b=n.icon)!=null?b:n.weatherIcon)!=null?g:null}}function Un(e){return K(this,null,function*(){const i=yield Tt(`${jn}${e}`,{timeout:8e3});return Mt(Kn(i))})}function Gn(e){return e===0?{condition:"晴",icon:"0"}:[1,2].includes(e)?{condition:"多云",icon:"1"}:e===3?{condition:"阴",icon:"2"}:[45,48].includes(e)?{condition:"雾",icon:"18"}:[51,53,55,61].includes(e)?{condition:e===61?"小雨":"毛毛雨",icon:"7"}:[56,57,66,67].includes(e)?{condition:"冻雨",icon:"19"}:e===63?{condition:"中雨",icon:"8"}:[65,82].includes(e)?{condition:e===82?"阵雨":"大雨",icon:"9"}:[71,85].includes(e)?{condition:e===71?"小雪":"阵雪",icon:e===71?"14":"13"}:e===73?{condition:"中雪",icon:"15"}:[75,86].includes(e)?{condition:e===75?"大雪":"阵雪",icon:"16"}:e===77?{condition:"雪粒",icon:"13"}:[80,81].includes(e)?{condition:"阵雨",icon:"3"}:e===95?{condition:"雷阵雨",icon:"4"}:[96,99].includes(e)?{condition:"雷阵雨伴冰雹",icon:"5"}:{condition:"未知",icon:"44"}}function Yn(e){const i=["北风","东北风","东风","东南风","南风","西南风","西风","西北风"],n=((Number(e)||0)%360+360)%360;return i[Math.floor((n+22.5)/45)%i.length]}function Qn(e){const i=Math.max(0,Number(e)||0),l=[1,6,12,20,29,39,50,62,75,89,103,118].findIndex(r=>iH(()=>import("./index-9499675e-1785858872961.js"),["./index-9499675e-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./live-scene-1-3ac6252d-1785858872961.js","./index.esm.min-b7db2517-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./index-1891ee64-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./screen2Standard-2d8b09ac-1785858872961.js","./index-e9f36657-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./data-9964a7a8-1785858872961.js","./TopicSwitcher-12ae75fc-1785858872961.js","./TopicSwitcher-b6474311-balabala-1785858872961.css","./livestockData-36ec0ae2-1785858872961.js","./FeatureInfoPanel-ca915481-1785858872961.js","./FeatureInfoPanel-528fd437-balabala-1785858872961.css","./openApi-2c22e142-1785858872961.js","./geoserver-ea89416e-1785858872961.js","./featurePanelLayout-07907d63-1785858872961.js","./yakApi-4b33f49b-1785858872961.js","./chartTheme-96368571-1785858872961.js","./balanceApi-a2c0a6b6-1785858872961.js","./data-56996d99-1785858872961.js","./data-33173954-1785858872961.js","./familyPastureData-f64283c3-1785858872961.js","./index-78b4d605-balabala-1785858872961.css"],import.meta.url)),n=z(()=>H(()=>import("./index-2c7e229e-1785858872961.js"),["./index-2c7e229e-1785858872961.js","./index-e9f36657-1785858872961.js","./assets-0c374c8c-1785858872961.js","./screen2Standard-2d8b09ac-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./screen2Standard-cdb21878-balabala-1785858872961.css","./TopicSwitcher-12ae75fc-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./TopicSwitcher-b6474311-balabala-1785858872961.css","./index-1891ee64-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./openApi-2c22e142-1785858872961.js","./geoserver-ea89416e-1785858872961.js","./featurePanelLayout-07907d63-1785858872961.js","./LayerPanel-5e7fd226-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./LayerPanel-60397a69-balabala-1785858872961.css","./FeatureInfoPanel-ca915481-1785858872961.js","./FeatureInfoPanel-528fd437-balabala-1785858872961.css","./index-fea14f56-balabala-1785858872961.css","./layout-9e63e529-balabala-1785858872961.css"],import.meta.url)),l=z(()=>H(()=>import("./index-b8ef4803-1785858872961.js"),["./index-b8ef4803-1785858872961.js","./index-e9f36657-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./index-148a2898-balabala-1785858872961.css","./townshipBoundaries-8867fad4-1785858872961.js","./featurePanelLayout-07907d63-1785858872961.js","./assets-0c374c8c-1785858872961.js","./screen2Standard-2d8b09ac-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./TopicSwitcher-12ae75fc-1785858872961.js","./TopicSwitcher-b6474311-balabala-1785858872961.css","./index-1891ee64-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./LayerPanel-5e7fd226-1785858872961.js","./LayerPanel-60397a69-balabala-1785858872961.css","./FeatureInfoPanel-ca915481-1785858872961.js","./FeatureInfoPanel-528fd437-balabala-1785858872961.css","./data-6a941f14-1785858872961.js","./data-56996d99-1785858872961.js","./index-cda407a6-balabala-1785858872961.css","./layout-9e63e529-balabala-1785858872961.css"],import.meta.url)),r=z(()=>H(()=>import("./index-609f41df-1785858872961.js"),["./index-609f41df-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./index-148a2898-balabala-1785858872961.css","./balanceApi-a2c0a6b6-1785858872961.js","./data-56996d99-1785858872961.js","./index-e9f36657-1785858872961.js","./index-e6c4062a-balabala-1785858872961.css"],import.meta.url)),d=z(()=>H(()=>import("./index-4f7f2daf-1785858872961.js"),["./index-4f7f2daf-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./index.esm.min-b7db2517-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./screen2Standard-2d8b09ac-1785858872961.js","./index-e9f36657-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./data-9964a7a8-1785858872961.js","./TopicSwitcher-12ae75fc-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./TopicSwitcher-b6474311-balabala-1785858872961.css","./livestockData-36ec0ae2-1785858872961.js","./geoserver-ea89416e-1785858872961.js","./LayerPanel-5e7fd226-1785858872961.js","./LayerPanel-60397a69-balabala-1785858872961.css","./assets-0c374c8c-1785858872961.js","./index-1891ee64-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./yakApi-4b33f49b-1785858872961.js","./index-1683923b-balabala-1785858872961.css"],import.meta.url)),y=z(()=>H(()=>import("./index-be8806af-1785858872961.js"),["./index-be8806af-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./live-scene-1-3ac6252d-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./index-1891ee64-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./LayerPanel-5e7fd226-1785858872961.js","./LayerPanel-60397a69-balabala-1785858872961.css","./FeatureInfoPanel-ca915481-1785858872961.js","./screen2Standard-2d8b09ac-1785858872961.js","./index-e9f36657-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./FeatureInfoPanel-528fd437-balabala-1785858872961.css","./featurePanelLayout-07907d63-1785858872961.js","./data-7f9dd12a-1785858872961.js","./livestockData-36ec0ae2-1785858872961.js","./index-c633956d-balabala-1785858872961.css"],import.meta.url)),k=z(()=>H(()=>import("./index-57fe2e24-1785858872961.js"),["./index-57fe2e24-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./index.esm.min-b7db2517-1785858872961.js","./index-8ffdff7e-1785858872961.js","./index-148a2898-balabala-1785858872961.css","./index-1891ee64-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./index-b3415e08-balabala-1785858872961.css","./FeatureInfoPanel-ca915481-1785858872961.js","./screen2Standard-2d8b09ac-1785858872961.js","./index-e9f36657-1785858872961.js","./screen2Standard-cdb21878-balabala-1785858872961.css","./FeatureInfoPanel-528fd437-balabala-1785858872961.css","./LayerPanel-5e7fd226-1785858872961.js","./LayerPanel-60397a69-balabala-1785858872961.css","./TopicSwitcher-12ae75fc-1785858872961.js","./TopicSwitcher-b6474311-balabala-1785858872961.css","./assets-0c374c8c-1785858872961.js","./chartTheme-96368571-1785858872961.js","./data-c85702ea-1785858872961.js","./familyPastureData-f64283c3-1785858872961.js","./livestockData-36ec0ae2-1785858872961.js","./index-23566d2f-balabala-1785858872961.css"],import.meta.url)),b=z(()=>H(()=>import("./index-3bdb0646-1785858872961.js"),["./index-3bdb0646-1785858872961.js","./index-1785858872961.js","./index-5221c8be-balabala-1785858872961.css","./balanceApi-a2c0a6b6-1785858872961.js","./yakApi-4b33f49b-1785858872961.js","./data-33173954-1785858872961.js","./livestockData-36ec0ae2-1785858872961.js","./data-56996d99-1785858872961.js","./data-7f9dd12a-1785858872961.js","./data-6a941f14-1785858872961.js","./townshipBoundaries-8867fad4-1785858872961.js","./data-c85702ea-1785858872961.js","./familyPastureData-f64283c3-1785858872961.js","./index-e9f36657-1785858872961.js","./index-0a7426a0-balabala-1785858872961.css"],import.meta.url)),g=Xt(),v=en(),p=ue(g.query.module),c=w(p),_=w(p==="ecological-protection"?nt(g.query.view):"ecological-redline"),V=w(p==="yak-management"?Re(g.query.view):"structure"),E=w({[p]:!0});let P=[p];const G=w({}),Y=w(!0),Q=w(0),be=w(null),Se=w(null),je=w(null),Be=w(null),Ke=w(null),Ue=w(null),Ge=w(null),Ye=w(!1),Qe=w(""),Je=w(""),C=w({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),J=w(!1),$e=w(!1);let Z=null,xe=null,Te=null,oe=!1,le=null;const Vt=Date.now(),O={progress:0},Et=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],At=new Set(W),s=A(()=>zn(c.value)),Rt=A(()=>`/images/weather/W${C.value.icon}.png`),Ct=A(()=>J.value&&C.value.icon!==null&&!$e.value),Me=A(()=>!["","--",null,void 0].includes(C.value.humidity)),re=A(()=>{const t=String(C.value.windDirection||"").trim(),a=String(C.value.windLevel||"").trim();return!t&&!a?"":`${t}${t&&a?" ":""}${a?`${a}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Lt=A(()=>!["smart-management","grass-livestock-balance"].includes(s.value.key)),Dt=A(()=>j.value.length===5&&(s.value.key==="home"||s.value.key==="ecological-protection"&&Ve.value==="national-park")),Ft=A(()=>c.value==="ecological-protection"?qe:ae),Ve=A(()=>c.value==="ecological-protection"?_.value:c.value),j=A(()=>{const t=G.value[c.value];return Array.isArray(t)||t!=null&&t.length?t:it([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});tn(()=>{Xe(),et(),xe=window.setInterval(Xe,1e3),Te=window.setInterval(et,30*60*1e3),Z=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),Bt(),he(),Ce(),zt(c.value)?Ht(c.value):(oe=!0,Q.value=100,Y.value=!1)}),St(()=>{var t;xe&&window.clearInterval(xe),Te&&window.clearInterval(Te),me(),(t=Z==null?void 0:Z.off)==null||t.call(Z,"#large-screen"),Kt(),ne.killTweensOf(O)});function Xe(){const t=new Date,a=$=>String($).padStart(2,"0"),o=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${a(t.getMonth()+1)}.${a(t.getDate())} ${o[t.getDay()]}`,Je.value=`${a(t.getHours())}:${a(t.getMinutes())}:${a(t.getSeconds())}`}function et(){return K(this,null,function*(){try{C.value=yield Zn(),J.value=!0,$e.value=!1}catch(t){J.value=!1,console.warn("[platform] weather unavailable",t)}})}function It(){$e.value=!0}function Ee(t,a={}){const o=ue(t),$=o==="home"&&!a.fromRoute;if(o==="yak-management"&&!a.fromRoute&&(V.value="structure"),o===c.value){$&&fe(),se(o);return}c.value=o,jt(o),se(o),$&&fe(),Fe(Ce)}function Ae(t){ue(t)==="home"&&c.value==="home"&&fe()}function Pt(t){if(t!=null&&t.key){if(c.value==="ecological-protection"){tt(t.key);return}Ee(t.key)}}function tt(t){const a=qe.some(o=>o.key===t)?t:"ecological-redline";a===_.value&&c.value==="ecological-protection"||(_.value=a,c.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Nt(t){const a=Re(t);a!==V.value&&(V.value=a,c.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,a])=>{const o=ue(t);o==="ecological-protection"&&(_.value=nt(a)),o==="yak-management"&&(V.value=Re(a)),o!==c.value&&Ee(o,{fromRoute:!0})});function se(t=c.value){const a=ee(D({},g.query),{module:t});t==="yak-management"?a.view=V.value:t==="ecological-protection"?a.view=_.value:delete a.view;const o=g.query||{},$=String(o.module||"")===String(a.module||"")&&String(o.view||"")===String(a.view||"");g.path==="/platform"&&$||v.replace({path:"/platform",query:a}).catch(()=>{})}function ue(t){const a=Array.isArray(t)?t[0]:t;return ae.some(o=>o.key===a)?a:"home"}function Re(t){const a=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(a)?a:"structure"}function nt(t){const a=Array.isArray(t)?t[0]:t;return qe.some(o=>o.key===a)?a:"ecological-redline"}function B(t){const a=t.moduleKey||(t.topicKey?"forest-grass-wet":c.value);G.value=ee(D({},G.value),{[a]:it(t.items||[])})}function ce(t={}){const a=typeof t=="number"?t:t.progress;qt(a)}function de(){me(),ne.killTweensOf(O),O.progress=100,Q.value=100;const t=Date.now()-Vt,a=Math.max(80,Ca-t);window.setTimeout(at,a)}function qt(t){if(!Y.value)return;const a=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));a{Q.value=Math.floor(O.progress)}})}function at(){if(!Y.value||oe)return;me(),oe=!0;const t=ne.timeline({onComplete:()=>{Y.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function zt(t){return Et.has(t)}function Ht(t){me();const a=t==="home"?12e3:8e3;le=window.setTimeout(()=>{!Y.value||oe||(ne.killTweensOf(O),O.progress=100,Q.value=100,window.setTimeout(at,120))},a)}function me(){le&&(window.clearTimeout(le),le=null)}function it(t=[]){const a=new Set;return t.slice(0,10).map((o,$)=>{var X;const h=Number(o.value)||0,L={zh:o.zh||o.name||`指标${$+1}`,en:o.en||"",value:h,unit:o.unit||"",decimals:(X=o.decimals)!=null?X:Number.isInteger(h)?0:2},ye=Ot(D(D({},o),L),$,a);return a.add(ye),D({icon:ye},L)})}function Ot(t={},a=0,o=new Set){const h=Wt(t,a).find(L=>At.has(L)&&!o.has(L));return h||W.find(L=>!o.has(L))||W[a%W.length]}function Wt(t={},a=0){const o=`${t.zh||t.name||""}${t.unit||""}`,$=[],h=(...ye)=>{ye.forEach(X=>{X&&!$.includes(X)&&$.push(X)})};h(t.icon),/风险|预警|告警/.test(o)&&h("risk","rate"),/模型|修正|共识|预测|变化|净/.test(o)&&h("rate","stack"),/率|占比|比例|超载/.test(o)&&h("rate","project"),/生态牧场|家庭生态/.test(o)&&h("leaf","town"),/出证|证书|证/.test(o)&&h("certificate","project"),/交易|销售/.test(o)&&h("yield","certificate"),/流通|出栏|流出/.test(o)&&h("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(o)&&h("device","length"),/工程长度|长度|公里/.test(o)&&h("length","project"),/修复项目|项目|工程|治理/.test(o)&&h("project","length"),/国家公园|保护范围|保护区|划定/.test(o)&&h("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(o)&&h("yield","leaf"),/湿地/.test(o)&&h("wetland","leaf"),/基本草原/.test(o)&&h("grass-basic","area"),/一般草原/.test(o)&&h("grass-general","area"),/林地|森林|公益林/.test(o)&&h("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(o)&&h("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(o)&&h("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(o)&&h("town","project"),/生态|林草/.test(o)&&h("leaf","wetland");const L=a%W.length;return h(...W.slice(L),...W.slice(0,L)),$}function jt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(P=P.filter(a=>a!==t),P.push(t),P=P.slice(-Ra),E.value=Object.fromEntries(P.map(a=>[a,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function fe(t=4){Fe(()=>{const a=Se.value;if(a!=null&&a.showDefaultThreeMap){a.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>fe(t-1),80)})}const ot=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function he(){var o;const t=lt(),a=be.value;Ye.value=!!(a&&t&&(t===a||a.contains(t)||(o=t.contains)!=null&&o.call(t,a)))}function Bt(){typeof document!="undefined"&&ot.forEach(t=>document.addEventListener(t,he))}function Kt(){typeof document!="undefined"&&ot.forEach(t=>document.removeEventListener(t,he))}function rt(){var t,a;(a=(t=st())==null?void 0:t.refreshMapView)==null||a.call(t)}function Ut(){return K(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const a=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield a==null?void 0:a.call(document)}else{const a=be.value||document.documentElement,o=a.requestFullscreen||a.webkitRequestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen;yield o==null?void 0:o.call(a)}}catch(a){console.warn("[platform] fullscreen toggle failed",a)}finally{he(),window.setTimeout(rt,80),window.setTimeout(rt,280)}})}function Gt(){var t,a;(a=(t=st())==null?void 0:t.resetMap)==null||a.call(t)}function st(){return s.value.key==="home"?Se.value:s.value.key==="forest-grass-wet"?je.value:s.value.key==="ecological-protection"?Be.value:s.value.key==="yak-management"?Ke.value:s.value.key==="pasture-management"?Ue.value:s.value.key==="yak-industry-chain"?Ge.value:null}function Yt(){ln()}return(t,a)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:U(["large-screen platform-screen",{"is-home":s.value.key==="home","is-forest-grass-wet":s.value.key==="forest-grass-wet","is-ecological-protection":s.value.key==="ecological-protection","is-grass-livestock-balance":s.value.key==="grass-livestock-balance","is-yak-management":s.value.key==="yak-management","is-pasture-management":s.value.key==="pasture-management","is-yak-industry-chain":s.value.key==="yak-industry-chain","is-smart-management":s.value.key==="smart-management","is-ecology-national-park":s.value.key==="ecological-protection"&&Ve.value==="national-park"}]),id:"large-screen"},[E.value.home?N((m(),f("div",{key:0,class:"platform-module-pane","aria-hidden":s.value.key!=="home",inert:s.value.key!=="home"},[T(R(i),{ref_key:"homeDashboardRef",ref:Se,active:s.value.key==="home",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,Xn)),[[q,s.value.key==="home"]]):S("",!0),E.value["forest-grass-wet"]?N((m(),f("div",{key:1,class:"platform-module-pane","aria-hidden":s.value.key!=="forest-grass-wet",inert:s.value.key!=="forest-grass-wet"},[T(R(n),{ref_key:"forestGrassWetRef",ref:je,active:s.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:B},null,8,["active"])],8,ea)),[[q,s.value.key==="forest-grass-wet"]]):S("",!0),E.value["ecological-protection"]?N((m(),f("div",{key:2,class:"platform-module-pane","aria-hidden":s.value.key!=="ecological-protection",inert:s.value.key!=="ecological-protection"},[T(R(l),{ref_key:"ecologicalProtectionRef",ref:Be,active:s.value.key==="ecological-protection","active-view":_.value,"show-loading":!1,onModuleStats:B,onViewChange:tt},null,8,["active","active-view"])],8,ta)),[[q,s.value.key==="ecological-protection"]]):S("",!0),E.value["grass-livestock-balance"]?N((m(),f("div",{key:3,class:"platform-module-pane","aria-hidden":s.value.key!=="grass-livestock-balance",inert:s.value.key!=="grass-livestock-balance"},[T(R(r),{active:s.value.key==="grass-livestock-balance",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,na)),[[q,s.value.key==="grass-livestock-balance"]]):S("",!0),E.value["yak-management"]?N((m(),f("div",{key:4,class:"platform-module-pane","aria-hidden":s.value.key!=="yak-management",inert:s.value.key!=="yak-management"},[T(R(d),{ref_key:"yakManagementRef",ref:Ke,active:s.value.key==="yak-management","view-key":V.value,onModuleStats:B,onViewChange:Nt},null,8,["active","view-key"])],8,aa)),[[q,s.value.key==="yak-management"]]):S("",!0),E.value["pasture-management"]?N((m(),f("div",{key:5,class:"platform-module-pane","aria-hidden":s.value.key!=="pasture-management",inert:s.value.key!=="pasture-management"},[T(R(y),{ref_key:"pastureManagementRef",ref:Ue,active:s.value.key==="pasture-management",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,ia)),[[q,s.value.key==="pasture-management"]]):S("",!0),E.value["yak-industry-chain"]?N((m(),f("div",{key:6,class:"platform-module-pane","aria-hidden":s.value.key!=="yak-industry-chain",inert:s.value.key!=="yak-industry-chain"},[T(R(k),{ref_key:"yakIndustryChainRef",ref:Ge,active:s.value.key==="yak-industry-chain",onLoadingProgress:ce,onMapReady:de,onModuleStats:B},null,8,["active"])],8,oa)),[[q,s.value.key==="yak-industry-chain"]]):S("",!0),E.value["smart-management"]?N((m(),f("div",{key:7,class:"platform-module-pane","aria-hidden":s.value.key!=="smart-management",inert:s.value.key!=="smart-management"},[T(R(b),{active:s.value.key==="smart-management"},null,8,["active"])],8,la)),[[q,s.value.key==="smart-management"]]):S("",!0),u("div",ra,[T(xn,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[u("div",sa,[u("div",{class:U(["platform-weather",{"is-unavailable":!J.value}])},[Ct.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:Rt.value,alt:C.value.condition||"天气",onError:It},null,40,ua)):(m(),f("span",ca)),u("div",da,[u("div",ma,[u("strong",null,M(J.value?C.value.condition||"实时天气":"天气暂无数据"),1),J.value?(m(),f("em",fa,M(C.value.temperature)+"℃",1)):S("",!0)]),Me.value||re.value?(m(),f("small",ha,[Me.value?(m(),f("span",ya,"湿度 "+M(C.value.humidity)+"%",1)):S("",!0),Me.value&&re.value?(m(),f("i",va)):S("",!0),re.value?(m(),f("span",pa,M(re.value),1)):S("",!0)])):S("",!0)])],2),u("div",ga,[u("strong",null,M(Je.value),1),u("span",null,M(Qe.value),1)]),u("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Yt},[...a[0]||(a[0]=[u("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[u("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),u("path",{d:"M16 17l5-5-5-5"}),u("path",{d:"M21 12H9"})],-1)])])])]),_:1}),u("div",wa,[T(Mn,{"default-active":c.value,onSelect:Ee},{default:Le(()=>[(m(!0),f(pe,null,De(R(ae),(o,$)=>(m(),f(pe,{key:o.key},[T(En,{index:o.key,onClick:h=>Ae(o.key),onKeydown:[we(h=>Ae(o.key),["enter"]),we(h=>Ae(o.key),["space"])]},{default:Le(()=>[an(M(o.label),1)]),_:2},1032,["index","onClick","onKeydown"]),$===3?(m(),f("div",_a)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(s.value.key)?(m(),f("div",{key:0,class:U(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Dt.value}])},[(m(!0),f(pe,null,De(j.value,o=>(m(),on(qn,{key:o.zh,info:o},null,8,["info"]))),128))],2)):S("",!0),Lt.value?(m(),f("div",ka,[u("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Ut},[...a[1]||(a[1]=[u("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,ba),u("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Gt},[...a[2]||(a[2]=[u("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),s.value.status!=="ready"?(m(),f("div",Sa,[u("div",$a,M(s.value.label),1),a[3]||(a[3]=u("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(s.value.key)?S("",!0):(m(),f("div",xa,[T(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),T(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),a[4]||(a[4]=u("div",{class:"bottom-tray-arrow"},[u("img",{src:pt,alt:""}),u("img",{src:gt,alt:""})],-1)),u("div",Ta,[(m(!0),f(pe,null,De(Ft.value,o=>(m(),f("div",{key:o.key,class:U(["bottom-menu-item",{"is-active":o.key===Ve.value}]),onClick:$=>Pt(o)},[u("span",null,M(o.bottomLabel),1)],10,Ma))),128))]),a[5]||(a[5]=u("div",{class:"bottom-tray-arrow is-reverse"},[u("img",{src:pt,alt:""}),u("img",{src:gt,alt:""})],-1))])),a[6]||(a[6]=u("div",{class:"large-screen-left-zsline"},null,-1)),a[7]||(a[7]=u("div",{class:"large-screen-right-zsline"},null,-1))]),Y.value?(m(),f("div",Va,[a[9]||(a[9]=nn('
    LOADING
    ',1)),u("div",Ea,[u("span",Aa,M(Q.value),1),a[8]||(a[8]=u("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Pa=Object.freeze(Object.defineProperty({__proto__:null,default:La},Symbol.toStringTag,{value:"Module"}));export{Pa as i,Wn as n,Tt as r}; diff --git a/docs/assets/index-e6c4062a-balabala-1785726778446.css b/docs/assets/index-e6c4062a-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-e6c4062a-balabala-1785726778446.css rename to docs/assets/index-e6c4062a-balabala-1785858872961.css diff --git a/docs/assets/index-e9f36657-1785726778446.js b/docs/assets/index-e9f36657-1785858872961.js similarity index 100% rename from docs/assets/index-e9f36657-1785726778446.js rename to docs/assets/index-e9f36657-1785858872961.js diff --git a/docs/assets/index-fea14f56-balabala-1785726778446.css b/docs/assets/index-fea14f56-balabala-1785858872961.css similarity index 100% rename from docs/assets/index-fea14f56-balabala-1785726778446.css rename to docs/assets/index-fea14f56-balabala-1785858872961.css diff --git a/docs/assets/index.esm.min-4f309085-1785726778446.js b/docs/assets/index.esm.min-b7db2517-1785858872961.js similarity index 99% rename from docs/assets/index.esm.min-4f309085-1785726778446.js rename to docs/assets/index.esm.min-b7db2517-1785858872961.js index 0f298fc..0994c3d 100644 --- a/docs/assets/index.esm.min-4f309085-1785726778446.js +++ b/docs/assets/index.esm.min-b7db2517-1785858872961.js @@ -1,4 +1,4 @@ -import{Q as fe,i as j,g as w,P as le,w as T,R as Y,q as ve,h as he,S as ee,L as R,U as ge,V as pe,A as ze,W as be,u as we,X as ye}from"./index-1785726778446.js";var k=null;function me(e){return k||(k=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),k(e)}var N=null;function Ee(e){N||(N=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),N(e)}function Oe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function H(e,t){t===void 0&&(t={});var r=document.createElement(e);return Object.keys(t).forEach(function(a){r[a]=t[a]}),r}function ie(e,t,r){var a=window.getComputedStyle(e,r||null)||{display:"none"};return a[t]}function q(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(ie(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var xe='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',B=0,F=null;function Ce(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Se.bind(e));var r=e.__resize_listeners__;if(!r){if(e.__resize_listeners__=[],window.ResizeObserver){var a=e.offsetWidth,o=e.offsetHeight,n=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===a&&e.offsetHeight===o)||U(e)}),u=q(e),p=u.detached,v=u.rendered;e.__resize_observer_triggered__=p===!1&&v===!1,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){U(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(B||(F=Oe(xe)),je(e),e.__resize_rendered__=q(e).rendered,window.MutationObserver){var h=new MutationObserver(e.__resize_mutation_handler__);h.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=h}}e.__resize_listeners__.push(t),B++}function Le(e,t){var r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",P),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--B&&F&&F.parentNode.removeChild(F)}}function Ae(e){var t=e.__resize_last__,r=t.width,a=t.height,o=e.offsetWidth,n=e.offsetHeight;return o!==r||n!==a?{width:o,height:n}:null}function Se(){var e=q(this),t=e.rendered,r=e.detached;t!==this.__resize_rendered__&&(!r&&this.__resize_triggers__&&($(this),this.addEventListener("scroll",P,!0)),this.__resize_rendered__=t,U(this))}function P(){var e=this;$(this),this.__resize_raf__&&Ee(this.__resize_raf__),this.__resize_raf__=me(function(){var t=Ae(e);t&&(e.__resize_last__=t,U(e))})}function U(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function je(e){var t=ie(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var r=H("div",{className:"resize-triggers"}),a=H("div",{className:"resize-expand-trigger"}),o=H("div"),n=H("div",{className:"resize-contract-trigger"});a.appendChild(o),r.appendChild(a),r.appendChild(n),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:a,expandChild:o,contract:n},$(e),e.addEventListener("scroll",P,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function $(e){var t=e.__resize_triggers__,r=t.expand,a=t.expandChild,o=t.contract,n=o.scrollWidth,u=o.scrollHeight,p=r.offsetWidth,v=r.offsetHeight,h=r.scrollWidth,f=r.scrollHeight;o.scrollLeft=n,o.scrollTop=u,a.style.width=p+1+"px",a.style.height=v+1+"px",r.scrollLeft=h,r.scrollTop=f}var g=function(){return g=Object.assign||function(e){for(var t,r=1,a=arguments.length;r{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-e33f4373-1785726778446.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ +var Hl=Object.getOwnPropertySymbols;var mh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable;var Vl=(ae,Je)=>{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-d6700f13-1785858872961.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ /* [wrapped with `+t+`] */ `)}function Vu(e){return Fe(e)||ti(e)||!!(id&&e&&e[id])}function kn(e,t){var o=typeof e;return t=t==null?be:t,!!t&&(o=="number"||o!="symbol"&&t0.test(e))&&e>-1&&e%1==0&&e0){if(++t>=ne)return arguments[0]}else t=0;return e.apply(n,arguments)}}function br(e,t){var o=-1,c=e.length,v=c-1;for(t=t===n?c:t;++o1?e[t-1]:n;return o=typeof o=="function"?(e.pop(),o):n,pl(e,o)});function fl(e){var t=x(e);return t.__chain__=!0,t}function ep(e,t){return t(e),e}function Pr(e,t){return t(e)}var tp=Rn(function(e){var t=e.length,o=t?e[0]:0,c=this.__wrapped__,v=function(R){return oo(R,e)};return t>1||this.__actions__.length||!(c instanceof Ze)||!kn(o)?this.thru(v):(c=c.slice(o,+o+(t?1:0)),c.__actions__.push({func:Pr,args:[v],thisArg:n}),new nn(c,this.__chain__).thru(function(R){return t&&!R.length&&R.push(n),R}))});function np(){return fl(this)}function ip(){return new nn(this.value(),this.__chain__)}function rp(){this.__values__===n&&(this.__values__=_l(this.value()));var e=this.__index__>=this.__values__.length,t=e?n:this.__values__[this.__index__++];return{done:e,value:t}}function op(){return this}function ap(e){for(var t,o=this;o instanceof lr;){var c=dl(o);c.__index__=0,c.__values__=n,t?v.__wrapped__=c:t=c;var v=c;o=o.__wrapped__}return v.__wrapped__=e,t}function dp(){var e=this.__wrapped__;if(e instanceof Ze){var t=e;return this.__actions__.length&&(t=new Ze(this)),t=t.reverse(),t.__actions__.push({func:Pr,args:[No],thisArg:n}),new nn(t,this.__chain__)}return this.thru(No)}function lp(){return kd(this.__wrapped__,this.__actions__)}var sp=hr(function(e,t,o){ot.call(e,o)?++e[o]:xn(e,o,1)});function cp(e,t,o){var c=Fe(e)?Va:eu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}function up(e,t){var o=Fe(e)?Fn:pd;return o(e,Ee(t,3))}var mp=Ud(ll),pp=Ud(sl);function fp(e,t){return Rt(wr(e,t),1)}function hp(e,t){return Rt(wr(e,t),Ce)}function gp(e,t,o){return o=o===n?1:ze(o),Rt(wr(e,t),o)}function hl(e,t){var o=Fe(e)?en:Ln;return o(e,Ee(t,3))}function gl(e,t){var o=Fe(e)?F0:md;return o(e,Ee(t,3))}var vp=hr(function(e,t,o){ot.call(e,o)?e[o].push(t):xn(e,o,[t])});function yp(e,t,o,c){e=jt(e)?e:vi(e),o=o&&!c?ze(o):0;var v=e.length;return o<0&&(o=Et(v+o,0)),Rr(e)?o<=v&&e.indexOf(t,o)>-1:!!v&&oi(e,t,o)>-1}var Tp=He(function(e,t,o){var c=-1,v=typeof t=="function",R=jt(e)?Q(e.length):[];return Ln(e,function(B){R[++c]=v?Gt(t,B,o):Ri(B,t,o)}),R}),Sp=hr(function(e,t,o){xn(e,o,t)});function wr(e,t){var o=Fe(e)?gt:Td;return o(e,Ee(t,3))}function Cp(e,t,o,c){return e==null?[]:(Fe(t)||(t=t==null?[]:[t]),o=c?n:o,Fe(o)||(o=o==null?[]:[o]),Pd(e,t,o))}var bp=hr(function(e,t,o){e[o?0:1].push(t)},function(){return[[],[]]});function Pp(e,t,o){var c=Fe(e)?Zr:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,Ln)}function wp(e,t,o){var c=Fe(e)?B0:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,md)}function Ep(e,t){var o=Fe(e)?Fn:pd;return o(e,xr(Ee(t,3)))}function Ip(e){var t=Fe(e)?ld:yu;return t(e)}function xp(e,t,o){(o?Ft(e,t,o):t===n)?t=1:t=ze(t);var c=Fe(e)?qc:Tu;return c(e,t)}function _p(e){var t=Fe(e)?$c:Cu;return t(e)}function Rp(e){if(e==null)return 0;if(jt(e))return Rr(e)?di(e):e.length;var t=Dt(e);return t==Ge||t==De?e.size:mo(e).length}function kp(e,t,o){var c=Fe(e)?Jr:bu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}var Ap=He(function(e,t){if(e==null)return[];var o=t.length;return o>1&&Ft(e,t[0],t[1])?t=[]:o>2&&Ft(t[0],t[1],t[2])&&(t=[t[0]]),Pd(e,Rt(t,1),[])}),Er=uc||function(){return _t.Date.now()};function Dp(e,t){if(typeof t!="function")throw new tn(l);return e=ze(e),function(){if(--e<1)return t.apply(this,arguments)}}function vl(e,t,o){return t=o?n:t,t=e&&t==null?e.length:t,_n(e,A,n,n,n,n,t)}function yl(e,t){var o;if(typeof t!="function")throw new tn(l);return e=ze(e),function(){return--e>0&&(o=t.apply(this,arguments)),e<=1&&(t=n),o}}var Bo=He(function(e,t,o){var c=w;if(o.length){var v=zn(o,hi(Bo));c|=g}return _n(e,c,t,o,v)}),Tl=He(function(e,t,o){var c=w|z;if(o.length){var v=zn(o,hi(Tl));c|=g}return _n(t,c,e,o,v)});function Sl(e,t,o){t=o?n:t;var c=_n(e,d,n,n,n,n,n,t);return c.placeholder=Sl.placeholder,c}function Cl(e,t,o){t=o?n:t;var c=_n(e,m,n,n,n,n,n,t);return c.placeholder=Cl.placeholder,c}function bl(e,t,o){var c,v,R,B,U,G,re=0,oe=!1,le=!1,pe=!0;if(typeof e!="function")throw new tn(l);t=dn(t)||0,vt(o)&&(oe=!!o.leading,le="maxWait"in o,R=le?Et(dn(o.maxWait)||0,t):R,pe="trailing"in o?!!o.trailing:pe);function Se(Pt){var hn=c,Mn=v;return c=v=n,re=Pt,B=e.apply(Mn,hn),B}function xe(Pt){return re=Pt,U=Ni(Ve,t),oe?Se(Pt):B}function Le(Pt){var hn=Pt-G,Mn=Pt-re,Ul=t-hn;return le?At(Ul,R-Mn):Ul}function _e(Pt){var hn=Pt-G,Mn=Pt-re;return G===n||hn>=t||hn<0||le&&Mn>=R}function Ve(){var Pt=Er();if(_e(Pt))return $e(Pt);U=Ni(Ve,Le(Pt))}function $e(Pt){return U=n,pe&&c?Se(Pt):(c=v=n,B)}function qt(){U!==n&&Dd(U),re=0,c=G=v=U=n}function Bt(){return U===n?B:$e(Er())}function $t(){var Pt=Er(),hn=_e(Pt);if(c=arguments,v=this,G=Pt,hn){if(U===n)return xe(G);if(le)return Dd(U),U=Ni(Ve,t),Se(G)}return U===n&&(U=Ni(Ve,t)),B}return $t.cancel=qt,$t.flush=Bt,$t}var Mp=He(function(e,t){return ud(e,1,t)}),Np=He(function(e,t,o){return ud(e,dn(t)||0,o)});function Fp(e){return _n(e,H)}function Ir(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new tn(l);var o=function(){var c=arguments,v=t?t.apply(this,c):c[0],R=o.cache;if(R.has(v))return R.get(v);var B=e.apply(this,c);return o.cache=R.set(v,B)||R,B};return o.cache=new(Ir.Cache||In),o}Ir.Cache=In;function xr(e){if(typeof e!="function")throw new tn(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bp(e){return yl(2,e)}var zp=Pu(function(e,t){t=t.length==1&&Fe(t[0])?gt(t[0],Zt(Ee())):gt(Rt(t,1),Zt(Ee()));var o=t.length;return He(function(c){for(var v=-1,R=At(c.length,o);++v=t}),ti=gd(function(){return arguments}())?gd:function(e){return Tt(e)&&ot.call(e,"callee")&&!nd.call(e,"callee")},Fe=Q.isArray,Xp=za?Zt(za):au;function jt(e){return e!=null&&_r(e.length)&&!An(e)}function bt(e){return Tt(e)&&jt(e)}function Qp(e){return e===!0||e===!1||Tt(e)&&Nt(e)==ke}var Vn=pc||Ko,ef=ja?Zt(ja):du;function tf(e){return Tt(e)&&e.nodeType===1&&!Fi(e)}function nf(e){if(e==null)return!0;if(jt(e)&&(Fe(e)||typeof e=="string"||typeof e.splice=="function"||Vn(e)||gi(e)||ti(e)))return!e.length;var t=Dt(e);if(t==Ge||t==De)return!e.size;if(Mi(e))return!mo(e).length;for(var o in e)if(ot.call(e,o))return!1;return!0}function rf(e,t){return ki(e,t)}function of(e,t,o){o=typeof o=="function"?o:n;var c=o?o(e,t):n;return c===n?ki(e,t,n,o):!!c}function jo(e){if(!Tt(e))return!1;var t=Nt(e);return t==Yt||t==yn||typeof e.message=="string"&&typeof e.name=="string"&&!Fi(e)}function af(e){return typeof e=="number"&&rd(e)}function An(e){if(!vt(e))return!1;var t=Nt(e);return t==It||t==Ht||t==we||t==Ae}function wl(e){return typeof e=="number"&&e==ze(e)}function _r(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=be}function vt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Tt(e){return e!=null&&typeof e=="object"}var El=La?Zt(La):su;function df(e,t){return e===t||uo(e,t,_o(t))}function lf(e,t,o){return o=typeof o=="function"?o:n,uo(e,t,_o(t),o)}function sf(e){return Il(e)&&e!=+e}function cf(e){if(Zu(e))throw new Ne(a);return vd(e)}function uf(e){return e===null}function mf(e){return e==null}function Il(e){return typeof e=="number"||Tt(e)&&Nt(e)==Ct}function Fi(e){if(!Tt(e)||Nt(e)!=Oe)return!1;var t=tr(e);if(t===null)return!0;var o=ot.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Yi.call(o)==dc}var Lo=Oa?Zt(Oa):cu;function pf(e){return wl(e)&&e>=-be&&e<=be}var xl=Ua?Zt(Ua):uu;function Rr(e){return typeof e=="string"||!Fe(e)&&Tt(e)&&Nt(e)==Xe}function Kt(e){return typeof e=="symbol"||Tt(e)&&Nt(e)==P}var gi=Ha?Zt(Ha):mu;function ff(e){return e===n}function hf(e){return Tt(e)&&Dt(e)==F}function gf(e){return Tt(e)&&Nt(e)==j}var vf=Tr(po),yf=Tr(function(e,t){return e<=t});function _l(e){if(!e)return[];if(jt(e))return Rr(e)?mn(e):zt(e);if(bi&&e[bi])return q0(e[bi]());var t=Dt(e),o=t==Ge?Qr:t==De?Ki:vi;return o(e)}function Dn(e){if(!e)return e===0?e:0;if(e=dn(e),e===Ce||e===-Ce){var t=e<0?-1:1;return t*Pe}return e===e?e:0}function ze(e){var t=Dn(e),o=t%1;return t===t?o?t-o:t:0}function Rl(e){return e?Yn(ze(e),0,N):0}function dn(e){if(typeof e=="number")return e;if(Kt(e))return Ye;if(vt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=vt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=Ka(e);var o=Xs.test(e);return o||e0.test(e)?D0(e.slice(2),o?2:8):Ys.test(e)?Ye:+e}function kl(e){return Cn(e,Lt(e))}function Tf(e){return e?Yn(ze(e),-be,be):e===0?e:0}function it(e){return e==null?"":Jt(e)}var Sf=pi(function(e,t){if(Mi(t)||jt(t)){Cn(t,xt(t),e);return}for(var o in t)ot.call(t,o)&&xi(e,o,t[o])}),Al=pi(function(e,t){Cn(t,Lt(t),e)}),kr=pi(function(e,t,o,c){Cn(t,Lt(t),e,c)}),Cf=pi(function(e,t,o,c){Cn(t,xt(t),e,c)}),bf=Rn(oo);function Pf(e,t){var o=mi(e);return t==null?o:sd(o,t)}var wf=He(function(e,t){e=at(e);var o=-1,c=t.length,v=c>2?t[2]:n;for(v&&Ft(t[0],t[1],v)&&(c=1);++o1),R}),Cn(e,Io(e),o),c&&(o=rn(o,y|h|D,Nu));for(var v=t.length;v--;)yo(o,t[v]);return o});function Hf(e,t){return Ml(e,xr(Ee(t)))}var Vf=Rn(function(e,t){return e==null?{}:hu(e,t)});function Ml(e,t){if(e==null)return{};var o=gt(Io(e),function(c){return[c]});return t=Ee(t),wd(e,o,function(c,v){return t(c,v[0])})}function Wf(e,t,o){t=Un(t,e);var c=-1,v=t.length;for(v||(v=1,e=n);++ct){var c=e;e=t,t=c}if(o||e%1||t%1){var v=od();return At(e+v*(t-e+A0("1e-"+((v+"").length-1))),t)}return ho(e,t)}var t1=fi(function(e,t,o){return t=t.toLowerCase(),e+(o?Bl(t):t)});function Bl(e){return Ho(it(e).toLowerCase())}function zl(e){return e=it(e),e&&e.replace(n0,W0).replace(C0,"")}function n1(e,t,o){e=it(e),t=Jt(t);var c=e.length;o=o===n?c:Yn(ze(o),0,c);var v=o;return o-=t.length,o>=0&&e.slice(o,v)==t}function i1(e){return e=it(e),e&&st.test(e)?e.replace(Vt,G0):e}function r1(e){return e=it(e),e&&Wt.test(e)?e.replace(pt,"\\$&"):e}var o1=fi(function(e,t,o){return e+(o?"-":"")+t.toLowerCase()}),a1=fi(function(e,t,o){return e+(o?" ":"")+t.toLowerCase()}),d1=Od("toLowerCase");function l1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;if(!t||c>=t)return e;var v=(t-c)/2;return yr(or(v),o)+e+yr(rr(v),o)}function s1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;return t&&c>>0,o?(e=it(e),e&&(typeof t=="string"||t!=null&&!Lo(t))&&(t=Jt(t),!t&&ai(e))?Hn(mn(e),0,o):e.split(t,o)):[]}var g1=fi(function(e,t,o){return e+(o?" ":"")+Ho(t)});function v1(e,t,o){return e=it(e),o=o==null?0:Yn(ze(o),0,e.length),t=Jt(t),e.slice(o,o+t.length)==t}function y1(e,t,o){var c=x.templateSettings;o&&Ft(e,t,o)&&(t=n),e=it(e),t=kr({},t,c,Jd);var v=kr({},t.imports,c.imports,Jd),R=xt(v),B=Xr(v,R),U,G,re=0,oe=t.interpolate||Vi,le="__p += '",pe=eo((t.escape||Vi).source+"|"+oe.source+"|"+(oe===Si?$s:Vi).source+"|"+(t.evaluate||Vi).source+"|$","g"),Se="//# sourceURL="+(ot.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++I0+"]")+` `;e.replace(pe,function(_e,Ve,$e,qt,Bt,$t){return $e||($e=qt),le+=e.slice(re,$t).replace(i0,Z0),Ve&&(U=!0,le+=`' + @@ -868,4 +868,4 @@ Content-Type: `+(ce.type||"application/octet-stream")+`\r `),Ls=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join(` `);(function(f,u){window.SuperRender=u()})(void 0,function(){function f(u){this.canvasElement=document.getElementById(u),this.initContextGL(),this.contextGL&&(this.YUVProgram=this.initProgram(js,Ls),this.initBuffers(),this.initTextures())}return f.prototype.initContextGL=function(){var u=this.canvasElement,n=null;try{n=u.getContext("webgl")||u.getContext("experimental-webgl")}catch(i){n=null}(!n||typeof n.getParameter!="function")&&(n=null),this.contextGL=n,console.log("WebGL1.0")},f.prototype.initProgram=function(u,n){var i=this.contextGL,r=i.createShader(i.VERTEX_SHADER);i.shaderSource(r,u),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+i.getShaderInfoLog(r));var a=i.createShader(i.FRAGMENT_SHADER);i.shaderSource(a,n),i.compileShader(a),i.getShaderParameter(a,i.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+i.getShaderInfoLog(a));var l=i.createProgram();return i.attachShader(l,r),i.attachShader(l,a),i.linkProgram(l),i.getProgramParameter(l,i.LINK_STATUS)||console.log("Program failed to compile: "+i.getProgramInfoLog(l)),i.deleteShader(r),i.deleteShader(a),l},f.prototype.initBuffers=function(){var u=this.contextGL,n=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,n),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var i=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,i),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),u.DYNAMIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null),this.vertexPosBuffer=n,this.texturePosBuffer=i},f.prototype.initTexture=function(){var u=this.contextGL,n=u.createTexture();return u.bindTexture(u.TEXTURE_2D,n),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MAG_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MIN_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE),u.bindTexture(u.TEXTURE_2D,null),n},f.prototype.initTextures=function(){var u=this.contextGL,n=this.YUVProgram;u.useProgram(n);var i=this.initTexture(),r=u.getUniformLocation(n,"ySampler");u.uniform1i(r,0),this.yTextureRef=i;var a=this.initTexture(),l=u.getUniformLocation(n,"uSampler");u.uniform1i(l,1),this.uTextureRef=a;var s=this.initTexture(),b=u.getUniformLocation(n,"vSampler");u.uniform1i(b,2),this.vTextureRef=s,u.useProgram(null)},f.prototype.SR_DisplayFrameData=function(u,n,i,r,a){if(!(u<=0||n<=0)){var l=this.contextGL;if(i==null){l.clearColor(0,0,0,0),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT);return}var s=this.canvasElement;this.nWindowWidth=s.width,this.nWindowHeight=s.height;var b=this.nWindowWidth,T=this.nWindowHeight;l.clearColor(.8,.8,1,1),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT),l.viewport(0,0,b,T),this.updateFrameData(u,n,i,r,a);var C=this.YUVProgram;l.useProgram(C);var y=this.vertexPosBuffer;l.bindBuffer(l.ARRAY_BUFFER,y);var h=l.getAttribLocation(C,"vertexPos");l.enableVertexAttribArray(h),l.vertexAttribPointer(h,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null);var D=this.texturePosBuffer;l.bindBuffer(l.ARRAY_BUFFER,D);var _=l.getAttribLocation(C,"texturePos");l.enableVertexAttribArray(_),l.vertexAttribPointer(_,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null),l.drawArrays(l.TRIANGLE_STRIP,0,4),l.disableVertexAttribArray(h),l.disableVertexAttribArray(_),l.useProgram(null)}},f.prototype.updateFrameData=function(u,n,i,r,a){var l=this.contextGL,s=this.yTextureRef,b=this.uTextureRef,T=this.vTextureRef,C=i;if(u==r&&n==a){var y=u*n,h=C.subarray(0,y);l.activeTexture(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,s),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u,n,0,l.LUMINANCE,l.UNSIGNED_BYTE,h);var D=u/2*n/2,_=C.subarray(u*n,u*n+D);l.activeTexture(l.TEXTURE2),l.bindTexture(l.TEXTURE_2D,T),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,_);var E=D,w=C.subarray(u*n+u*n/4,u*n+u*n/4+E);l.activeTexture(l.TEXTURE1),l.bindTexture(l.TEXTURE_2D,b),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,w)}else{for(var y=r*a,h=new Uint8Array(y),z=0;z0&&r>0){var l=u.left/i,s=u.top/r,b=u.right/i,T=u.bottom/r;a=new Float32Array([b,s,l,s,b,T,l,T])}else a=new Float32Array([1,0,0,0,1,1,0,1]);var C=this.texturePosBuffer;n.bindBuffer(n.ARRAY_BUFFER,C),n.bufferSubData(n.ARRAY_BUFFER,0,a),n.bindBuffer(n.ARRAY_BUFFER,null)},f.prototype.SR_Destroy=function(){var u=this.contextGL,n=this.YUVProgram;u.deleteProgram(n);var i=this.vertexPosBuffer,r=this.texturePosBuffer;u.deleteBuffer(i),u.deleteBuffer(r);var a=this.yTextureRef,l=this.uTextureRef,s=this.vTextureRef;u.deleteTexture(a),u.deleteTexture(l),u.deleteTexture(s)},f});var fa="https://open.ys7.com",Os="".concat(fa,"/console/ezuikit_static/v66/v2"),Us="".concat(fa,"/console/ezuikit_static/v66/v1"),ha=function(u,n){var i=["theme","standard"],r=["pcLive","pcRec","mobileLive","mobileRec","noData","security","voice","simple"];if(typeof u=="undefined")return n.themeData?{templateType:"themeData",templateId:"themeData"}:{templateType:"local",templateId:""};if(typeof u=="string"){if(u.length===32)return{templateType:"remote",templateId:u};if(i.indexOf(u)!==-1)return u==="simple"&&typeof n.header=="undefined"&&typeof n.footer=="undefined"?{templateType:"local",templateId:""}:{templateType:"iframe",templateId:u};if(r.indexOf(u)!==-1)return{templateType:"local",templateId:u}}},lt=function(){var u=window.navigator.userAgent.toLowerCase(),n={sa:/version.*safari/.test(u),ch:/chrome/.test(u),ff:/gecko/.test(u)&&!/webkit/.test(u)},i=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);if(i)return!1;if(n.ch){var r=function(){for(var l=window.navigator.userAgent.split(" "),s="",b=0;b91&&!!window.SharedArrayBuffer}return!1},Hs=function(){function f(u){var n=this;fe(this,f),this.isStoping=!1;var i=u.autoplay,r=i===void 0?!0:i;if((u.template||u.themeData)&&(r=!1),this.params=u,this.autoplay=r,window.EZUIKit[u.id]={state:{EZUIKitPlayer:{init:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.init||!1,themeInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.themeInit||!1,talkInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.talkInit||!1}}},ha(this.params.template,u).templateType!=="iframe"){this.Monitor=new Ds({env:typeof u.disableMonitor!="undefined"&&u.disableMonitor?"test12":"online"},this),this.id=u.id,this.width=u.width,this.height=u.height,this.url=u.url,this.accessToken=u.accessToken,this.themeId=ha(u.template,u).templateId,this.id=u.id,this.audio=!0,this.poster=u.poster,this.speed=1,this.disabledTimeLine=!1,this.disabledPTZ=!1,this.enableSharedArrayBufferGuide=!1,this.capacity={},this.playTimer=null,this.env={domain:"https://open.ys7.com"};var a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);this.isMobile=a,document.getElementById("".concat(this.id,"-wrap"))&&(document.getElementById("".concat(this.id,"-wrap")).innerHTML="",document.getElementById("".concat(this.id,"-wrap")).id=this.id),this.staticPath=lt()?Os:Us,typeof u.staticPath=="string"&&(u.staticPath.startsWith("http")?this.staticPath=u.staticPath:this.staticPath=window.location.protocol+"//"+window.location.host+u.staticPath,lt()?this.staticPath+="/v2":this.staticPath+="/v1"),typeof u.audio!="undefined"&&(this.audio=u.audio),typeof u.env!="undefined"&&(this.env=Object.assign(this.env,u.env)),typeof u.isMobile!="undefined"&&(this.isMobile=u.isMobile),typeof u.disabledTimeLine!="undefined"&&(this.disabledTimeLine=u.disabledTimeLine),typeof u.disabledPTZ!="undefined"&&(this.disabledPTZ=u.disabledPTZ),typeof u.enableSharedArrayBufferGuide!="undefined"&&(this.enableSharedArrayBufferGuide=u.enableSharedArrayBufferGuide);var l="".concat(this.staticPath,"/js/jsPluginV1-1.0.0.min.js"),s=function(){if(window.addPluginUrlIng=!0,lt())console.log("启用多线程解析视频"),l="".concat(n.staticPath,"/js/jsPluginV2-2.0.1.min.js");else{var C=function(){for(var w=navigator.userAgent.split(" "),z="",S=0;S0&&(l=T.width),!n.height&&T.height>0&&(b=T.height)}if(!document.getElementById("".concat(r,"-wrap"))){var C=document.createElement("div");C.id="".concat(r,"-wrap"),C.style="display:inline-block;width:".concat(l,"px;position:relative;vertical-align: bottom;"),document.getElementById(r).parentNode.insertBefore(C,document.getElementById(r)),document.getElementById(r).parentNode.removeChild(document.getElementById(r)),C.innerHTML="
    "),document.getElementById(r).style="display:inline-block;width:".concat(l,"px;height:").concat(b,"px;"),document.getElementById(r).style.verticalAlign="top"}this.themeId&&(this.Theme=new As(this,n.id),window.EZUIKit[n.id].state.EZUIKitPlayer.themeInit=!0,this.Monitor.dclog({url:this.url,action:2,text:this.themeId}),typeof this.params.handleThemeChange=="function"&&(this.handleThemeChange=this.params.handleThemeChange));var y=new ts(this,r);this.Message=y;var h=function(E,w){var z;if(lt()){z=new window.JSPluginV2({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},openStreamCallback:function(){console.log("开启取流"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z;var S=setInterval(function(){window.JSPlayerModuleLoaded&&(clearInterval(S),typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"))},50)}else z=new window.JSPluginV1({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={openStreamCallback:function(){console.log("开启取流---v1"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})},loadEventHandler:function(){},zoomEventResponse:function(){},windowEventSelect:function(m){},pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},windowEventOver:function(m){},windowEventOut:function(m){},windowEventUp:function(m){},windowFullCcreenChange:function(m){},firstFrameDisplay:function(m,g,k){console.log(g,k),z.JS_SetCanFullScreen(!1)},performanceLack:function(){},mouseEvent:function(m,g,k){}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z,typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec")},D=new Promise(h);return D}},{key:"_getRealUrlPromise",value:function(n,i){var r=this;console.log("获取播放地址 url => ".concat(i," ").concat(this.accessToken)),console.log("开始获取wsurl"),this.startGetWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:222,text:"startGetWsUrl",isVersion2Available:lt()?1:0});var a=this.env.domain;this.env&&(a=this.env.domain);var l=function(C,y){var h="",D=a+"/api/lapp/live/url/ezopen",_=new FormData;_.append("ezopen",i),_.append("isFlv",!1),_.append("userAgent",window.navigator.userAgent),_.append("isHttp",!1),_.append("accessToken",n),fetch(D,{method:"POST",body:_}).then(function(E){return E.json()}).then(function(E){if(E.code==200||E.retcode==0){var w="",z="";E.ext&&E.ext.token?(h+=E.data,z=E.ext.token,w=E.data):E.data&&E.data.token&&(h+=E.data.url,z=E.data.token,w=E.data.url);var S=i.indexOf("live")!==-1?"live":"playback";S==="live"?h=h+"&ssn="+z+"&auth=1&biz=4&cln=100":h=h+"&ssn="+z+"&auth=1&cln=100",console.log(h);var d=et("checkCode",h);if(d&&(typeof r.jSPlugin.decoderVersion!="undefined"&&r.jSPlugin.decoderVersion==="2.0"?r.validateCode=d:(console.log("设置密钥",d),r.jSPlugin.JS_SetSecretKey(0,d))),h.indexOf("playback")!==-1){var m=et("begin",w)||et("begin",i),g=et("end",w)||et("end",i);if(m)h=h.replace("&begin="+et("begin",w),"&begin="+s(m,"000000")),et("begin",h)||(h+="&begin="+s(m,"000000"));else{var k=new Date;h=h+"&begin="+k.Format("yyyyMMdd")+"T000000Z"}if(g?(h=h.replace("&end="+et("end",w),"&end="+s(g,"235959")),et("end",h)||(h+="&end="+s(g,"235959"))):h=h+"&end="+s(et("begin",h).substr(0,8),"235959"),et("stream",w)||(h=h.replace("stream","&stream")),i.indexOf(".cloud")!==-1){var A=function(Ce){if(Ce.code==200){var be=[];if(Ce.data&&Ce.data.files&&Ce.data.files.length>0){var Pe=Ce.data.files,Ye=new Date().getTime(),N=Ce.data.isAll;if(N){be=ce(Pe);var K=JSON.stringify(be).replace("\\","");h+="&recSlice="+K.replace("\\","")+"&r="+Math.random(),C(h)}else{var te=function he(){function Re(we){if(we.data&&we.data.files&&we.data.files.length>0)if(we.data.isAll==!1)we.data.files&&(Pe=Pe.concat(we.data.files)),Ye=we.data.nextFileTime>0?we.data.nextFileTime:new Date().getTime(),he();else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}}Y.startTime=Ye,Gn(ne,"POST",Y,"",Re)};te()}}else y({retcode:-1,msg:"未找到录像片段"})}else y({retcode:-1,msg:"未找到录像片段"});function ce(he){var Re=[];return he.forEach(function(we,ke){Re.length==0||we.downloadPath!==Re[Re.length-1].downloadPath?Re.push({downloadPath:we.downloadPath,ownerId:we.ownerId,iStorageVersion:we.iStorageVersion,videoType:we.videoType,iPlaySpeed:0,startTime:we.startTime,endTime:we.endTime}):Re[Re.length-1].endTime=we.endTime}),Re}},O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/time",Y={accessToken:r.accessToken,recType:1,deviceSerial:Z,channelNo:X,startTime:O,endTime:H,version:"2.0"};Gn(ne,"POST",Y,"",A)}else if(i.indexOf("alarmId")!==-1){var me=function(te){if(te.code==200){var ce=[];if(te.data){ce=Re([te.data]);var he=JSON.stringify(ce).replace("\\","");h+="&recSlice="+he.replace("\\",""),console.log("realUrl",h,te.data.recType),te.data.recType==1?h=h.replace("/playback","/cloudplayback"):h=h.replace("/cloudplayback","/playback"),C(h)}}function Re(we){var ke=[];return we.forEach(function(We,yn){ke.length==0||We.downloadPath!==ke[ke.length-1].downloadPath?ke.push({downloadPath:We.downloadPath,ownerId:We.ownerId,iStorageVersion:We.iStorageVersion,videoType:We.videoType,iPlaySpeed:0,startTime:We.startTime,endTime:We.endTime}):ke[ke.length-1].endTime=We.endTime}),console.log("downloadPathArr",ke),ke}};console.log("进入alarmId回放");var ge=et("alarmId",h),O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/id",Y={accessToken:r.accessToken,deviceSerial:Z,channelNo:X,alarmId:ge};Gn(ne,"POST",Y,"",me)}else C(h)}else C(h)}else r.Theme&&r.Theme.setDisabled(!0),r.pluginStatus.loadingClear(),r.pluginStatus.loadingSetText({text:E.msg,color:"red"}),typeof r.params.handleError=="function"&&r.params.handleError({retcode:E.code,msg:E.msg,id:r.params.id,type:"handleError"}),y(E)})};return new Promise(function(T,C){return l(T,C)});function s(T,C){var y=/^[0-9]{8}T[0-9]{6}Z$/;if(y.test(T))return T;if(/[0-9]{8,14}/.test(T)){var h=6-(14-T.length),D=C.length,_=T+C.substring(h,D);return _.slice(0,8)+"T"+_.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}function b(T){var C=T.slice(0,4),y=T.slice(4,6),h=T.slice(6,8),D=T.slice(9,11),_=T.slice(11,13),E=T.slice(13,15),w=C+"-"+y+"-"+h+" "+D+":"+_+":"+E;return new Date(w.replace(/-/g,"/")).getTime()}}},{key:"_pluginPlay",value:function(n,i,r){var a=this;if(console.log("执行播放 _pluginPlay",n),!n)return!1;function l(C){var y=C.split("?")[0].replace("/live","").replace("/playback",""),h=(C.indexOf("/live")===-1?C.indexOf("cloudplayback")!==-1?"/cloudplayback?":"/playback?":"/live?")+C.split("?")[1];return h.indexOf("/playback")!==-1&&(h=h.replace("stream=2","stream=1")),{websocketConnectUrl:y,websocketStreamingParam:h}}var s=l(n).websocketConnectUrl;this.env&&this.env.wsUrl&&(s=this.env.wsUrl),this.gotWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:223,d:this.gotWsUrlTime-this.startGetWsUrlTime,text:"getWsUrlSuccess",isVersion2Available:lt()?1:0});var b={playURL:l(n).websocketStreamingParam};console.log("播放前 stop 阶段 结束"),this.isStoping=!1;var T=Date.now();console.log("执行播放 ... this.jSPlugin.JS_Play at ",T),this.jSPlugin.JS_Play(s,b,0).then(function(){if(console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功",s,b),console.log("执行播放耗时 ",Date.now()-T),a.isStoping){console.log("现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效");return}if(a.validateCode&&typeof a.jSPlugin.decoderVersion!="undefined"&&a.jSPlugin.decoderVersion==="2.0"&&a.jSPlugin.JS_SetSecretKey(0,a.validateCode),a.pluginStatus.loadingClear(),a.pluginStatus.setPlayStatus({play:!0,loading:!1}),a.Theme){a.Theme.setDecoderState({play:!0});var C=Ut.findIndex(a.Theme.themeData.footer.btnList,function(y){return y.iconId==="sound"&&y.isrender===1&&y.defaultActive===1})>-1;a.audio=C}a.audio&&setTimeout(function(){a.openSound()},500),typeof a.params.handleSuccess=="function"&&a.params.handleSuccess({retcode:0,id:a.params.id,type:"handleSuccess"}),i(b),a.Monitor.dclog({url:a.url,action:211,d:new Date().getTime()-a.playStartTime,text:"startPlaySuccess"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:0,Cost:new Date().getTime()-a.playStartTime,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})},function(C){console.log("err",C);var y="播放失败,请检查设备及客户端网络",h=-1;if(a.jSPlugin.bPlay)return!1;if(C&&C.errorCode){var D=a.errorHander.matchErrorInfo(C.errorCode);a.Theme&&a.Theme.setDisabled(!0),D&&D.msg?y=D.msg:D&&D.description?y=D.description:y="播放失败,请检查设备及客户端网络",h=C.errorCode}a.pluginStatus.loadingClear(),a.pluginStatus.loadingSetText({text:y,color:"red"}),typeof a.params.handleError=="function"&&a.params.handleError({retcode:h,msg:y,id:a.params.id,type:"handleError"}),r(),a.Monitor.dclog({url:a.url,action:411,d:new Date().getTime()-a.playStartTime,text:"startPlayError"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:h,Cost:-1,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})})}},{key:"_play",value:function(n){var i=this;console.log("执行播放 play options.url =>",n),this.pluginStatus.setPlayStatus({play:!1,loading:!0}),this.playStartTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:1,d:new Date().getTime()-this.initTime,text:"startPlay"}),n&&(typeof n=="string"&&(this.url=n),typeof n.url=="string"&&(this.url=n.url),typeof n.accessToken=="string"&&(this.accessToken=n.accessToken),this.Theme&&(typeof n.url=="string"||typeof n.accessToken=="string")&&this.Theme.getDeviceInfo());var r=new Promise(function(a,l){console.log("执行 播放前 stop"),i.isStoping=!0,i.jSPlugin.JS_Stop(0).then(function(){console.log("播放前 stop 执行成功 this.url => ".concat(i.url," ").concat(i.accessToken)),i._getRealUrlPromise(i.accessToken,i.url).then(function(s){i._pluginPlay(s,function(b){a(!0)},function(){return l(!1)})}).catch(function(s){var b=s.msg?s.msg:"播放失败,请检查设备及客户端网络";i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:b,color:"red"}),typeof i.params.handleError=="function"&&i.params.handleError({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"}),l({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"})})})});return r}},{key:"stop",value:function(){var n=this;return this.pluginStatus.setPlayStatus({loading:!0}),this.reSetTheme(),this.jSPlugin.JS_Stop(0).then(function(){console.log("停止成功"),n.pluginStatus.setPlayStatus({play:!1,loading:!1}),n.Theme&&n.Theme.setDecoderState({play:!1})})}},{key:"changeVideoLevel",value:function(n){var i=this,r=this.url,a=n?r.replace(".live",".hd.live"):r.replace(".hd.live",".live");this.jSPlugin.playURL=n?this.jSPlugin.playURL.replace("stream=2","stream=1"):this.jSPlugin.playURL.replace("stream=1","stream=2"),console.log("changeVideoLevel",a,this.jSPlugin.playURL),this.url=a;var l=new Promise(function(s,b){i.pause().then(function(){console.log("暂停成功"),i.resume().then(function(T){console.log("恢复成功")})}).catch(function(){console.log("暂停失败"),i.resume().then(function(T){console.log("恢复成功")})})});return l}},{key:"reSetTheme",value:function(){this.Theme&&this.Theme.Ptz&&(this.Theme.setDecoderState({pantile:!1}),this.Theme.Ptz.hide()),this.Theme&&this.Theme.decoderState.state.recordvideo&&this.Theme.setDecoderState({recordvideo:!1}),this.Theme&&this.Theme.decoderState.state.zoom&&(this.Zoom.stopZoom(),this.Theme.setDecoderState({zoom:!1})),this.Theme&&this.Theme.decoderState.state.talk&&(this.stopTalk(),this.Theme.setDecoderState({talk:!1})),this.Theme&&this.Theme.Rec&&!this.Theme.isMobile&&this.Theme.Rec.datepickerHide(),this.Theme&&this.Theme.Rec&&(this.Theme.changeRecSpeed(1),this.Theme.nextRate=1,this.speed=1,this.Theme.setDecoderState({speed:!1}))}},{key:"_changePlayUrl",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};console.log("_changePlayUrl"),console.log(n),this.reSetTheme(),this.getDeviceCapacity({accessToken:n.accessToken,deviceSerial:n.deviceSerial});var a=this.url,l=b(a,n);n.accessToken&&(this.accessToken=n.accessToken),this.url=l,r(),this.pluginStatus.loadingStart(this.id),this.pluginStatus.loadingSetText({text:"加载中,请稍后"});var s=new Promise(function(T,C){var y={url:l};return n.accessToken&&(y.accessToken=n.accessToken),console.log("切换播放地址 参数 ",y),i.play(y).then(function(){console.log("切换播放地址 play 执行成功 ",i.url,i.accessToken),i.Theme&&i.Theme.decoderState.state.webExpend&&i.Theme.webExpend(),i.Theme&&i.Theme.decoderState.state.expend&&i.Theme.expend(),n.type?n.type=="rec"||n.type=="cloud.rec"?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"):i.url.indexOf(".rec")>-1?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"),n&&n.begin&&n.deviceSerial&&i.Theme.Rec.setDatepickerDate(n.begin),i.Theme.setDisabled(!1),T(l)}).catch(function(h){C(l),h&&h.msg&&(i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:h.msg,color:"red"}))})});function b(T,C){if(C.url)return C.url;console.log("--------------matchInitUrl",T);var y=T.split("/")[4].split(".")[T.split("/")[4].split(".").length-1].split("?")[0];y==="rec"&&T.indexOf(".cloud.rec")!==-1&&(y="cloud.rec"),C.type&&(y=C.type);var h=T.split("/")[3];C.deviceSerial&&(h=C.deviceSerial);var D=T.split("/")[4].split(".")[0];C.channelNo&&(D=C.channelNo);var _=T.split("/")[2].split("@").length===2?T.split("/")[2].split("@")[0]:"";typeof C.validCode!="undefined"&&(_=C.validCode);var E=typeof C.hd=="undefined"?T.indexOf(".hd")!==-1:C.hd,w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D).concat(E?".hd":"",".").concat(y);return y==="live"||(w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D,".").concat(y),C.begin&&C.end?w+="?begin=".concat(C.begin,"&end=").concat(C.end):C.begin?w+="?begin=".concat(C.begin):et("begin",T)&&(w+="?begin=".concat(et("begin",T)))),w}return s}},{key:"getOSDTime",value:function(){var n=this,i=new Promise(function(r,a){n.jSPlugin.JS_GetOSDTime(0).then(function(l){r({code:0,retcode:0,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:0,data:l})}).catch(function(l){a({code:-1,retcode:-1,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:-1,data:-1})})});return i}},{key:"capturePicture",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.jSPlugin.JS_CapturePicture(0,n,"JPEG",r,!!r);return ln(a)?(typeof this.params.capturePictureCallBack=="function"&&a.then(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:0})}).catch(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:-1})}),a):new Promise(function(l){l(a)})}},{key:"startSave",value:function(n){var i=this,r=this.jSPlugin.JS_StartSave(0,n);return ln(r)?(typeof this.params.startSaveCallBack=="function"&&r.then(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:0})}).catch(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:-1})}),r):(this.Theme&&this.Theme.setDecoderState({recordvideo:!0}),new Promise(function(a){a(r)}))}},{key:"stopSave",value:function(){var n=this,i=this.jSPlugin.JS_StopSave(0);return ln(i)?(typeof this.params.startSaveCallBack=="function"&&i.then(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:0})}).catch(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:-1})}),i):(this.Theme&&this.Theme.setDecoderState({recordvideo:!1}),new Promise(function(r){r(i)}))}},{key:"openSound",value:function(){var n=this.jSPlugin.JS_OpenSound(0);return console.log("打开声音",n),ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!0}),typeof this.params.openSoundCallBack=="function"&&this.params.openSoundCallBack({id:this.id,type:"openSound",code:n}),new Promise(function(i){i(n)}))}},{key:"closeSound",value:function(){var n=this.jSPlugin.JS_CloseSound(0);return ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!1}),typeof this.params.closeSoundCallBack=="function"&&this.params.closeSoundCallBack({id:this.id,type:"closeSound",code:n}),new Promise(function(i){i(n)}))}},{key:"enableZoom",value:function(){var n=this.jSPlugin.JS_EnableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"closeZoom",value:function(){var n=this.jSPlugin.JS_DisableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"setPoster",value:function(n){lt()?document.getElementById("".concat(this.id))&&(document.getElementById("".concat(this.id)).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id)).style.backgroundSize="100% 100%"):document.getElementById("".concat(this.id,"canvas0"))&&(document.getElementById("".concat(this.id,"canvas0")).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id,"canvas0")).style.backgroundSize="cover")}},{key:"reSize",value:function(n,i){var r=0,a=0;if(this.params.height=i,this.params.width=n,this.Theme&&this.Theme.isNeedRenderHeader&&document.getElementById("".concat(this.id,"-headControl"))&&(r=parseInt(document.getElementById("".concat(this.id,"-headControl")).style.height,10)),this.Theme&&this.Theme.isNeedRenderTimeLine&&!this.isMobile&&(a=48),i=i-r-a,this.width=n,this.height=i,document.getElementById("".concat(this.id,"-wrap")).style="width:".concat(n,"px;position:relative;display:inline-block;vertical-align: bottom;"),document.getElementById("".concat(this.id)).style.width=n+"px",document.getElementById("".concat(this.id)).style.height=i+"px",this.jSPlugin&&this.jSPlugin.bPlay)this.jSPlugin&&(this.jSPlugin.iHeight=i,this.jSPlugin.iWidth=n),this.jSPlugin.JS_Resize(n,i);else{document.getElementById("".concat(this.id,"-player"))&&(document.getElementById("".concat(this.id,"-player")).width=n,document.getElementById("".concat(this.id,"-player")).height=i,document.getElementById("".concat(this.id,"-player")).style.width=n+"px",document.getElementById("".concat(this.id,"-player")).style.height=i+"px");var l=1;if(document.getElementById("".concat(this.id,"canvas0"))){var s=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);s&&(l=2),document.getElementById("".concat(this.id,"canvas0")).style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas0")).width=n*l,document.getElementById("".concat(this.id,"canvas0")).height=i*l,document.getElementById("".concat(this.id,"canvas0")).parentNode.style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).parentNode.style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas_draw0")).height=i*l}this.jSPlugin&&(this.jSPlugin.iHeight=i*l,this.jSPlugin.iWidth=n*l)}}},{key:"fast",value:function(n){var i=this,r=this.speed;if(n)var a=this.jSPlugin.JS_Fast(0,n);else{if(r===1)r=2;else if(r===2)r=4;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最大为4倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(s,b){i.speed=r,b({code:-1,data:{speed:r,result:"播放速度最大为4倍速度"}})});var a=this.jSPlugin.JS_Fast(0)}return new Promise(function(l){i.speed=r,l({code:0,data:{speed:r,result:a}})})}},{key:"slow",value:function(){var n=this,i=this.speed;if(i===4)i=2;else if(i===2)i=1;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最小为1倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(a,l){n.speed=i,l({code:-1,data:{speed:i,result:"播放速度最小为1倍速度"}})});var r=this.jSPlugin.JS_Slow(0);return new Promise(function(a){n.speed=i,a({code:0,data:{speed:i,result:r}})})}},{key:"seek",value:function(n,i){var r=this.url,a=(et("begin",r)||new Date().Format("yyyyMMdd")).substr(0,8);if(i=l(a,"235959"),n.length===6)n=l(a,n);else if(n.length===16){if(n.substr(0,8)!==a)return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间不能跨日期",retcode:-1,id:this.id,type:"handleError"}),!1}else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间格式错误",retcode:-1,id:this.id,type:"handleError"}),!1;function l(b,T){var C=/^[0-9]{8}T[0-9]{6}Z$/;if(C.test(b))return b;if(/[0-9]{8,14}/.test(b)){var y=6-(14-b.length),h=T.length,D=b+T.substring(y,h);return D.slice(0,8)+"T"+D.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}var s=this.jSPlugin.JS_Seek(0,n,i);return console.log("seekRT",s),ln(s)?s:new Promise(function(b){b(s)})}},{key:"fullScreen",value:function(){var n=this,i=yi(document.getElementById("".concat(this.id)));i.then(function(a){console.log("全屏promise",window.screen.availWidth),n.jSPlugin.JS_Resize(window.screen.availWidth,window.screen.availHeight),typeof n.params.fullScreenCallBack=="function"&&n.params.fullScreenCallBack({id:n.id,type:"fullScreen",code:0})});var r=function(){var l=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;l||n.jSPlugin.JS_Resize(n.width,n.height),typeof n.params.fullScreenChangeCallBack=="function"&&n.params.fullScreenChangeCallBack({id:n.id,type:"fullScreen",code:l})};["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(a){window.addEventListener(a,function(l){return r()})})}},{key:"cancelFullScreen",value:function(){var n=this,i=Nr();i.then(function(r){console.log("取消全屏",r,n.jSPlugin),n.jSPlugin.JS_Resize(n.width,n.height)})}},{key:"startTalk",value:function(){this.Talk.startTalk()}},{key:"stopTalk",value:function(){this.Talk.stopTalk()}},{key:"destroy",value:function(){var n=this.jSPlugin.JS_DestroyWorker(0);return this.Theme&&(this.Theme=null,window.EZUIKit[this.params.id].state.EZUIKitPlayer.themeInit=!1),ln(n)?n:new Promise(function(i){i(n)})}},{key:"getDeviceCapacity",value:function(n){var i=this,r=this.env.domain;this.env&&(r=this.env.domain);var a=r+"/api/lapp/device/capacity",l=function(T){T.code==200&&T.data&&(i.capacity=T.data)},s=n||{accessToken:this.accessToken,deviceSerial:Ke(this.url).deviceSerial};Gn(a,"POST",s,"",l)}},{key:"pause",value:function(){var n=this;return new Promise(function(i,r){n.jSPlugin.JS_CloseSound(0),n.jSPlugin.JS_Pause(0,function(a){n.setPoster(a.base64)}).then(function(a){n.Theme&&n.Theme.setDecoderState({play:!1}),i()}).catch(function(a){console.log(a),r(a)})})}},{key:"_resume",value:function(n){var i=this;return new Promise(function(r,a){i.pluginStatus.setPlayStatus({play:!1,loading:!0}),i.jSPlugin.JS_Resume(n).then(function(l){if(setTimeout(function(){i.url.indexOf(".rec")!==-1&&i.speed!=1&&i.jSPlugin.JS_Speed(i.speed)},500),i.Theme){i.Theme.setDecoderState({play:!0,speed:i.speed});var s=i.Theme.decoderState.state.sound;s&&setTimeout(function(){i.openSound()},500)}r(l)}).catch(function(l){console.log("resume err",l),a(l)})})}}]),f}(),qe=null;function Vs(f,u,n,i){return new WebControl({szPluginContainer:f,iServicePortStart:14510,iServicePortEnd:14519,cbConnectSuccess:u,cbConnectError:n,cbConnectClose:i})}function Ws(){qe!=null&&(qe.JS_DestroyWnd().then(function(){console.log("JS_DestroyWnd")},function(){}),qe.JS_StopService("window").then(function(){qe.JS_Disconnect().then(function(){console.log("JS_Disconnect")},function(){})}))}function Gs(f){f.responseMsg.eventName,console.log(f.responseMsg)}function Zs(){qe.JS_SetWindowControlCallback({cbIntegrationCallBack:Gs}),qe.JS_StartService("window",{dllPath:"./chain/cloudTransform.dll"}).then(function(){qe.JS_CreateWnd("playWnd",900,500).then(function(){console.log("JS_CreateWnd success")})})}function Js(){console.log("cbConnectError"),qe=null,console.error("确认本地进程是否已安装并开启成功!")}function Ks(f){console.log("cbConnectClose"),qe=null}window.onscroll=function(){qe!=null&&qe.JS_Resize(900,500)},window.onresize=function(){qe!=null&&qe.JS_Resize(900,500)},window.onunload=function(){try{qe.JS_HideWnd(),Ws()}catch(f){console.error(f)}},window.onpagehide=function(){try{qe.JS_HideWnd()}catch(f){console.error(f)}};var qs=function(){function f(u){var n=this;fe(this,f),je(this,"changeModel",function(i,r){var a=n;n.switchVideo=parseInt(i),qe&&qe.JS_RequestInterface({funcName:"ChangeModel",arguments:encodeURI(JSON.stringify({model:i}))}).then(function(l){i==0?a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode}):a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode,startTime:r.startTime,endTime:r.endTime})})}),je(this,"init",function(i){var r,a=n;if(!i.appKey||!i.accessToken){a.showTips(!1,"请输入appkey和token");return}typeof i.appKey!="undefined"&&(n.appKey=i.appKey),typeof i.accessToken!="undefined"&&(n.accessToken=i.accessToken),typeof i.platformId!="undefined"&&(n.platformId=i.platformId);var l=(r={layout:+a.layout,userName:"",waterMark:""},je(r,"waterMark","1"),je(r,"iWndType",0),je(r,"intelligenceEnable",1),je(r,"isRecord",1),je(r,"isSetPos",1),je(r,"motionDetectEnable",0),je(r,"playBackAlarmOverlyingEnable",0),je(r,"response",{code:0,message:null,data:{appKey:i.appKey,ezvizToken:i.accessToken,videoLevel:0,logLevel:3,showMainTool:1,showSubTool:1,waterMark:"1",userName:"openteam",platformId:i.platformId}}),r);console.log("初始化入参",l),qe.JS_RequestInterface({funcName:"Init",arguments:encodeURI(JSON.stringify(l))}).then(function(s){console.log(s.responseMsg),a.showTips(!0,"视频初始化成功!")})}),je(this,"play",function(i){var r=n;if(!(!i.deviceSerial||!i.channelNo)){typeof i.deviceSerial!="undefined"&&(n.deviceSerial=i.deviceSerial),typeof i.channelNo!="undefined"&&(n.channelNo=i.channelNo),typeof i.startTime!="undefined"&&i.startTime&&(n.startTime=i.startTime+" 00:00:00"),typeof i.endTime!="undefined"&&i.endTime&&(n.endTime=i.endTime+" 23:59:59"),typeof i.validateCode!="undefined"&&i.validateCode&&(n.validateCode=i.validateCode);var a={response:{code:0,message:null,data:{deviceSerial:i.deviceSerial,channelCode:i.channelNo,channelNo:+i.channelNo,codeIsEncrypt:0,validateCode:i.validateCode,deviceClass:r.deviceClass,deviceType:"10222",channelId:"2222222222",channelName:"channelNameTest",storeName:"storeName",storeId:"storeid",startTime:n.startTime,endTime:n.endTime}}};r.deviceClass==="1"?(a.response.data.channelCode=r.channelNo,a.response.data.platformId=r.platformId):a.response.data.channelNo=+r.channelNo,n.switchVideo===1&&(n.startTime&&(a.response.data.startTime=n.startTime),n.endTime&&(a.response.data.endTime=n.endTime)),console.log("预览/回放入参",a),qe.JS_RequestInterface({funcName:n.switchVideo===0?"StartPreview":"StartPlayback",arguments:encodeURI(JSON.stringify(a))}).then(function(l){console.log(l.responseMsg),r.showTips(!0,"预览/回放成功!")}).catch(function(l){console.log("开始播放:",l)})}}),je(this,"showCBInfo",function(i){n.callbackMessage=n.callbackMessage+JSON.stringify(i)+` -`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1785726778446.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; +`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1785858872961.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; diff --git a/docs/assets/live-scene-1-786cdd0a-balabala-1785726778446.png b/docs/assets/live-scene-1-786cdd0a-balabala-1785858872961.png similarity index 100% rename from docs/assets/live-scene-1-786cdd0a-balabala-1785726778446.png rename to docs/assets/live-scene-1-786cdd0a-balabala-1785858872961.png diff --git a/docs/assets/livestockData-36ec0ae2-1785726778446.js b/docs/assets/livestockData-36ec0ae2-1785858872961.js similarity index 100% rename from docs/assets/livestockData-36ec0ae2-1785726778446.js rename to docs/assets/livestockData-36ec0ae2-1785858872961.js diff --git a/docs/assets/menu-btn-91a961cf-balabala-1785726778446.png b/docs/assets/menu-btn-91a961cf-balabala-1785858872961.png similarity index 100% rename from docs/assets/menu-btn-91a961cf-balabala-1785726778446.png rename to docs/assets/menu-btn-91a961cf-balabala-1785858872961.png diff --git a/docs/assets/menu-btn-hover-62eba0bb-balabala-1785726778446.png b/docs/assets/menu-btn-hover-62eba0bb-balabala-1785858872961.png similarity index 100% rename from docs/assets/menu-btn-hover-62eba0bb-balabala-1785726778446.png rename to docs/assets/menu-btn-hover-62eba0bb-balabala-1785858872961.png diff --git a/docs/assets/ocean-bg-8c848b8f-balabala-1785726778446.png b/docs/assets/ocean-bg-8c848b8f-balabala-1785858872961.png similarity index 100% rename from docs/assets/ocean-bg-8c848b8f-balabala-1785726778446.png rename to docs/assets/ocean-bg-8c848b8f-balabala-1785858872961.png diff --git a/docs/assets/openApi-70e9578a-1785726778446.js b/docs/assets/openApi-2c22e142-1785858872961.js similarity index 99% rename from docs/assets/openApi-70e9578a-1785726778446.js rename to docs/assets/openApi-2c22e142-1785858872961.js index c330674..612818e 100644 --- a/docs/assets/openApi-70e9578a-1785726778446.js +++ b/docs/assets/openApi-2c22e142-1785858872961.js @@ -1 +1 @@ -var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ee=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var $e=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,g=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&$e(e,a,n[a]);if(Ee)for(var a of Ee(n))rn.call(n,a)&&$e(e,a,n[a]);return e},P=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=u=>{try{i(a.next(u))}catch(o){r(o)}},l=u=>{try{i(a.throw(u))}catch(o){r(o)}},i=u=>u.done?t(u.value):Promise.resolve(u.value).then(s,l);i((a=a.apply(e,n)).next())});import{n as p,r as Oe}from"./index-e33f4373-1785726778446.js";import{g as Ye}from"./geoserver-d05ee620-1785726778446.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-8867fad4-1785726778446.js";const ln="/openApi",Z=756.37,_e=297.29,E=291.82,un=16.47,on=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(ie),ve=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function qe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Oe(qe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function R(e,n){return Oe(qe(e),{params:n})}function Se(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function Hn(e){return f(this,null,function*(){if(!e)return null;const n=p(yield R("/woodland/detail",{wkt:e}));return Se(n,["woodland"])})}function Jn(e){return f(this,null,function*(){if(!e)return null;const n=p(yield R("/basic_grassland/detail",{wkt:e}));return Se(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function x(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=x(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=x(e),r=x(n),s=x(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const i=w(r/l*t);return[i,w(Math.max(t-i,0))]}function B(e,n){const a=x(e),t=x(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function we(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:B(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var i,u;return P(g(g({},s),e[l]||{}),{name:((i=e[l])==null?void 0:i.name)||s.name,unit:((u=e[l])==null?void 0:u.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=P(g({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:E,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,i=e.map((u,o)=>{const c=w(d(u,t)),v={key:d(u,["key","code","townCode"])||`${d(u,a)||o}-${o}`,name:d(u,a)||`第${o+1}项`,value:c,unit:r,percent:w(d(u,["percent","areaPercent","basicRatio","generalRatio"])),source:u};return l?P(g({},v),{extra:l(u)}):v}).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0));return Number.isFinite(s)?i.slice(0,s):i}function fe(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((i,u)=>{const o=d(i,t),c=w(r==="万亩"?x(o)/1e4:o),v=d(i,a)||`第${u+1}项`;return{key:d(i,["key","code"])||`${v}-${u}`,name:v,value:c,unit:r,source:i}}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function b(e,n,a,t="rank",r={}){return g({key:e,title:n,type:t,rows:a||[]},r)}function pe(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(i=>[i.areaName,i]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:i=>{const u=l.get(i.areaName),o=w(d(u,["yield","value"])),c=d(u,["unit"])||"斤";return s&&o!==void 0?`亩产 ${o} ${c}`:""}})}function ie(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(ie(a==null?void 0:a.name)),s=n.get(ie(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function We(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地",高寒草原:"高寒草原类","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function de(e){return We(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const i=ie(d(s,a)),u=w(d(s,t));return!i||u===void 0?null:{key:d(s,["key","code","townCode"])||`${i}-${l}`,name:i,value:u,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const i=ie(d(l,a)),u=x(d(l,t));if(!i||u===void 0)return;const o=s.get(i)||{key:d(l,["townCode","code"])||i,name:i,value:0,unit:d(l,["unit"])||r,source:[]};o.value+=u,o.source.push(l),s.set(i,o)}),Array.from(s.values()).map(l=>P(g({},l),{value:w(l.value)})).sort((l,i)=>(Number(i.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const i=r.filter(u=>(u==null?void 0:u.name)&&u.value!==void 0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0)).map((u,o)=>P(g({},u),{unit:u.unit||t,rank:o+1}));return{status:i.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:i}}function ye(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const i=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(o=>{const c=o.properties||{},v=String(c.xiang||""),m=Ke(v),y=x(c.acreage);if(!m||y===void 0)return;const N=u.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(u.values()).map(o=>P(g({},o),{value:w(o.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=p(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function De(e,n,a,t){return f(this,null,function*(){const r=p(yield R("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return ie(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],i=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],u=yield Ye(a.layerName,{propertyName:i,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),o=new Map;return((u==null?void 0:u.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=x(d(v,l));if(!m||y===void 0)return;const N=o.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,o.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(o.values()).map(c=>P(g({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=p(yield R("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>P(g({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>P(g({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function Rn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=p(yield R("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function hn(e,n,a){return f(this,null,function*(){const t=de(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return de(i)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=p(yield R("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=de(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return de(i)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?Rn(e,n,a):e==="grassland"&&n==="grassland-type"?hn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ge(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=p(yield R(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function L(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const i=[],u=[];if(s.forEach((m,y)=>{const N=B(m.value,l);y=t)?i.push(m):u.push(m)}),!u.length)return i;const o=u.reduce((m,y)=>m+(Number(y.value)||0),0);return[...i,{key:`${r}-${u.length}`,name:r,value:w(o),unit:((c=u[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(B(o,l))}%`}]}function K(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function $(e=[],n=K(e),a=""){return e.map(t=>{const r=w(B(t.value,n));return P(g({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,i=x(n);if(i===void 0)return e;const u=K(e),o=w(i-u);if(o===void 0||o<=.01)return e;const c=[...e,{key:t,name:r,value:o,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=x(n),t=K(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const i=l===e.length-1,u=w(i?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(u)||0,P(g({},s),{value:u})})}function Y(e=[],n=[]){return n.length?e.map((a,t)=>P(g({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function Mn(e=[]){const n=e.map(r=>P(g({},r),{name:We(r.name)})),t=n.some(r=>de(r.name)==="高寒草原")?n:[...n,{key:"alpine-steppe",name:"高寒草原类",value:21.84,unit:"万亩"}];return $(t.sort((r,s)=>(Number(s.value)||0)-(Number(r.value)||0)))}function Ie(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function G(e=[],n=[],a=4){const t=[],r=new Set,s=i=>{!i||r.has(i.key)||(r.add(i.key),t.push(i))},l=[...e,...n];return l.filter(Ie).forEach(s),l.filter(i=>i&&!Ie(i)).forEach(s),t.slice(0,a)}function Wn(e,n,a={}){return e&&g(P(g({},e),{type:n}),a)}function xn(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(i=>!t.has(i))||r.type;return t.add(l),Wn(r,l,{variant:l===r.type?r.variant:void 0})})}function I(e=[],n=[]){const a=e.filter(Boolean),t=n.filter(Boolean),r=xn([...a,...t]);return{leftPanels:r.slice(0,a.length),rightPanels:r.slice(a.length)}}function ze(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(o=>(o==null?void 0:o.name)&&Number(o.value)>0);if(!s.length)return[];const l=s.slice(0,a),i=s.slice(a),u=(o,c)=>{var v,m;return{key:o,name:o,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[u(t,l),i.length?u(r,i):null].filter(o=>o&&Number(o.value)>0)}function ue(e,n,a){var i,u,o,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((i=e==null?void 0:e.layerPanels)==null?void 0:i[a])||((u=e==null?void 0:e.layerPanels)==null?void 0:u[t]);if(!r)return e;const s=(o=r.leftPanels)!=null&&o.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return P(g({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=x(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=u=>u,filter:s,extra:l}=n,i=new Map;return e.forEach(u=>{if(s&&!s(u))return;const o=d(u,a),c=r(o,u),v=Xe(u,t);if(!c||v===void 0)return;const m=i.get(c)||{key:d(u,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(u),i.set(c,m)}),Array.from(i.values()).map(u=>{const o=P(g({},u),{value:w(u.value)});return l?P(g({},o),{extra:l(o)}):o}).filter(u=>Number(u.value)>0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0))}function Ge(e){return String(e||"").replace(/草原/g,"湿地")}function An(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=x(e==null?void 0:e.xc))!=null?l:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(B(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(B(s,t))}%`}].filter(i=>i.value!==void 0)}function Ln(e={},n=[],a=[]){var u;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(u=x(e==null?void 0:e.xc))!=null?u:K(a),s=x(e==null?void 0:e.edibleXc),l=K(n),i=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return P(g({},e),{xc:w(r),edibleXc:w(i),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:i,edibleMuRows:u,typeTownRows:o,levelTownRows:c,minTownRows:v}){const m=b("wetland-town-area","湿地面积分布",Y(me(n),ve),"column",{span:1,variant:"plain"}),y=b("wetland-type","湿地类型结构",Y(a,ve),"donut",{span:1}),N=b("wetland-level-proportion","湿地级占比",Y($(t),ve),"donut",{span:1,variant:"ring"}),_=b("wetland-min-type","湿地优势小类",Y(L(s,6),ve),"bar",{span:1,variant:"raceBarNoWrap"}),M=b("wetland-yield-capacity","湿地产能结构",An(e,r),"structure",{span:1}),W=b("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),A=b("wetland-edible-yield","可食鲜草产量",L(i,U.length),"column",{span:1,variant:"slim"}),C=b("wetland-mu-yield","湿地亩产效率",L(l,U.length),"heat",{span:1,limit:U.length}),D=b("wetland-level","湿地级别面积",t,"column",{span:1}),F=b("wetland-level-town","1级湿地分布",L(c,U.length),"bar",{span:1,variant:"distribution"}),q=b("wetland-type-town","湿地类型乡镇分布",L(o,U.length),"bar",{span:1,variant:"distribution"}),O=b("wetland-edible-mu","可食鲜草亩产",L(u,U.length),"bar",{span:1}),J=b("wetland-min-town","优势小类乡镇分布",L(v,U.length),"bar",{span:1,variant:"distribution"}),{leftPanels:S,rightPanels:z}=I([m,y,N,_],[A,W,C,M]);return{leftPanels:S,rightPanels:z,left:S[0],right:z[0],layerPanels:Fn({townAreaPanel:m,typePanel:y,yieldCapacityPanel:M,yieldPanel:W,levelPanel:D,levelTownPanel:F,muYieldPanel:C,levelStructurePanel:N,typeTownPanel:q,minTypePanel:_,edibleYieldPanel:A,edibleMuPanel:O,minTownPanel:J})}}function Fn(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:i,levelStructurePanel:u,typeTownPanel:o,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":I([n,a,u,c],[v,r,i,t]),"wetland-level":I([u,s,l,a],[v,r,i,t]),"wetland-type":I([a,o,c,y],[v,r,m,t]),"wetland-yield":I([n,a,u,c],[v,r,i,t])}}function Cn(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t=I(n,a);return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:i=[],canopyRows:u=[],forestTypeRows:o=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:_=ze(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:M=ze(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const W=b("woodland-town","林地面积分布",Y(me(e),ee),"column",{span:1,variant:"plain"}),A=b("woodland-type","林地类型结构",Y(n,ee),"donut",{span:1,variant:"ring"}),C=b("woodland-protection","公益林保护等级",Y($(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),D=b("woodland-ownership","林地权属结构",Y($(r),ee),"structure",{span:1}),F=b("woodland-quality","优势树种面积",L(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=b("woodland-origin","林地起源结构",$(l),"structure",{span:1}),O=b("woodland-age","林龄组结构",L(i,6),"column",{span:1,labelMode:"horizontal"}),J=b("woodland-canopy","郁闭度结构",Y(L(u,6),ee),"donut",{span:1,fixedType:!0}),S=b("woodland-area-scale","林地图斑规模",a,"column",{span:1}),z=b("woodland-forest-type","森林类别结构",L(o,6),"bar",{span:1}),V=b("woodland-manage-level","管护等级分布",L(c,6),"bar",{span:1}),ae=b("woodland-public-rank","公益林面积排行",L(v,6),"bar",{span:1,variant:"distribution"}),T=b("woodland-owner-rank","权属单位排行",L(m,6),"bar",{span:1}),X=b("woodland-type-town","乡镇类型构成",L(y,6),"bar",{span:1,variant:"distribution"}),Re=b("woodland-quality-level","林地质量等级",$(N),"donut",{span:1}),Ae=b("woodland-town-concentration","林地集中度",Y($(_),ee),"structure",{span:1}),Le=b("woodland-type-concentration","类型集中度",Y($(M),ee),"rose",{span:1}),{leftPanels:Fe,rightPanels:Ce}=I(G([W,A,C,D],[S,T,z,F]),G([F,q,O,J],[S,T,z,ae,Ae,Le]));return{leftPanels:Fe,rightPanels:Ce,left:Fe[0],right:Ce[0],layerPanels:En({townPanel:W,typePanel:A,scalePanel:S,protectionPanel:C,ownershipPanel:D,qualityPanel:F,originPanel:q,agePanel:O,canopyPanel:J,forestTypePanel:z,manageLevelPanel:V,regionPanel:ae,ownerPanel:T,typeTownPanel:X,qualityLevelPanel:Re,townConcentrationPanel:Ae,typeConcentrationPanel:Le})}}function En(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:i,agePanel:u,canopyPanel:o,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:_,townConcentrationPanel:M,typeConcentrationPanel:W}=e;return{"woodland-distribution":I(G([n,a,r,s],[t,c,y]),G([l,i,u,o],[t,y,m,M,W,_])),"woodland-protection":I(G([r,c,v,n],[a,s,t]),G([m,l,i,s],[y,a,t])),"woodland-type":I(G([a,n,N,t],[r,s,c]),G([l,i,r,s],[u,o,y,W])),"woodland-quality":I(G([l,i,u,o],[_,t,a]),G([n,a,r,s],[c,y,t])),"woodland-ownership":I(G([s,y,n,a],[t,r,l]),G([r,l,i,t],[c,u,o]))}}function $n(e=cn){const n=e.map(s=>P(g({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-K(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return $(n.sort((s,l)=>{const i=r.indexOf(s.name),u=r.indexOf(l.name);return(i===-1?99:i)-(u===-1?99:u)}),Z)}function Dn(){return f(this,null,function*(){return xe()})}function He(e=[],n={},a=[]){var r;const t=(r=x(n==null?void 0:n.xc))!=null?r:K(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function In(e={},n=[]){return P(g({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function zn(e=[]){const n=K(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>P(g({},a),{color:Gn(a.name),extra:w(B(a.value,n))?`${w(B(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Gn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var i;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(i=x(e==null?void 0:e.xc))!=null?i:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(u=>Number(u.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(B(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(B(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(B(l==null?void 0:l.value,t))}].filter(u=>u.value!==void 0)}function xe(){return{levelRows:$n(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function Be(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),i=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),u=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=xe().levelRows,v=$([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=$([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),_=Ze({core:r,townRows:s,grassTypeRows:i,grassLevelRows:v,healthRows:m,productivityRows:u,edibleYieldRows:N,forageRows:y,degradationRows:c}),M=P(g({status:"fallback"},_),{top:He(r,{xc:_e,unit:"万吨"},l)});return ue(M,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:E,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],E,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],i=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),E),u=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),o=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:un,unit:"万吨"},townAreaRows:i,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:u,muYieldRows:l,edibleYieldRows:o,edibleMuRows:c,typeTownRows:i,levelTownRows:i,minTownRows:i}),m=g({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ue(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),o=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=g({status:"fallback",core:a,top:[a[0],a[1],a[2]]},o);return ue(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function h(e,n=[]){return e().catch(()=>n)}function he(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=u=>u,max:l=Number.POSITIVE_INFINITY}=n,i=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(u=>P(g({},u),{name:s(u.name)}));return $(i).filter(u=>Number(u.value)>0).slice(0,l)}function Bn(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function On(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:i,degradationRows:u}){const o=b("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=b("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=b("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=b("grassland-edible-yield","可食鲜草产量分布",L(l,10),"column",{span:1,variant:"slim"}),y=b("grassland-degradation","草地退化统计",zn(u),"bar",{span:1,variant:"degradation"}),N=b("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),_=b("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),M=b("grassland-forage-capacity","饲草供给",i,"bar",{span:1,variant:"capacity",fixedType:!0}),{leftPanels:W,rightPanels:A}=I([o,v,y,_],[m,c,N,M]);return{core:e,leftPanels:W,rightPanels:A,left:W[0],right:A[0],layerPanels:Cn({leftPanels:W,rightPanels:A})}}function Yn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],i=n.edibleRows||[],u=n.edibleMuRows||[],o=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(fe(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=pe(r,n.muYieldRows||[],{showMuYieldExtra:!1}),_=fe(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),M=le(fe(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(T=>P(g({},T),{name:Ge(T.name)})),E,{key:"wetland-level-unclassified",name:"未分级湿地"}),W=se(le(gn(l),E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),A=pe(i,u,{showMuYieldExtra:!1}),C=fe(u,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(u==null?void 0:u[0],["unit"])||"斤",max:U.length}),D=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),F=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.length)||0}类`}}),E),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),O=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:T=>Ge(d(T,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.filter(Re=>Xe(Re,["acreage","areaWanMu","value"])>0).length)||0}型`}}),E),S=Ln(m,A,N),z=ne(a,"wetland"),V=M.find(T=>/^1级/.test(T.name))||M[0],ae=je({yieldSummary:S,townAreaRows:D,typeRows:y,levelRows:M,yieldRows:N,minTypeRows:W,muYieldRows:_,edibleYieldRows:A,edibleMuRows:C,typeTownRows:F,levelTownRows:O.length?O:q,minTownRows:J});return g({core:z,top:[z[0],z[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Kn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function qn(e,n=[]){const a=new Set(n);return Kn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=qn(e,n);return g(P(g({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function oe(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function Sn(e,n,a){var M,W,A,C,D;const t=oe(e,["grassland-area","grassland-total-area","草地面积"]),r=oe(n,["wetland-area","湿地面积"]),s=oe(a,["woodland-area","林地总面积"]),[l,i]=Me(Z,637.13,119.31),u=oe(e,["basic-grassland","basic-grassland-area","基本草原"]),o=oe(e,["general-grassland","general-grassland-area","一般草原"]),c=$([{key:"overview-basic-grassland",name:"基本草原",value:w((M=u==null?void 0:u.value)!=null?M:l),unit:(u==null?void 0:u.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((W=o==null?void 0:o.value)!=null?W:i),unit:(o==null?void 0:o.unit)||"万亩",color:"#FFE06B"}]),v=$([{key:"overview-grassland-area",name:"草地资源",value:w((A=t==null?void 0:t.value)!=null?A:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((C=r==null?void 0:r.value)!=null?C:E),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w((D=s==null?void 0:s.value)!=null?D:on),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","line",{showValues:!0,tooltipOnHoverOnly:!0}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"slim",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[b("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),b("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],_=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(K(v)),unit:"万亩"},P(g({},v[0]),{name:"草地面积"}),P(g({},v[1]),{name:"湿地面积"}),P(g({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(F=>(F==null?void 0:F.status)==="error")?"fallback":"success",core:_,top:_,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return Sn(t,r,s)}if(e==="woodland"){const[t,r,s,l,i]=yield Promise.all([Q("/woodland/distribution").then(p),h(()=>f(this,null,function*(){return p(yield Q("/woodland/types"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/protection"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/quality"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/ownership"))}),{})]),u=ne(wn(t),e),o=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[u[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:B(c,o)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>we(T,o)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>we(T,o)}),_=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),M=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),W=k((i==null?void 0:i.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:T=>we(T,o)}),A=k((i==null?void 0:i.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),C=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),D=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),F=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:T=>we(T,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),O=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>{const X=w(d(T,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(T)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),z=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:_,ownershipRows:A,qualityRows:M,originRows:q,ageRows:O,canopyRows:J,forestTypeRows:C,manageLevelRows:D,regionRows:F,ownerRows:W,typeTownRows:z,qualityLevelRows:S}),ae=g({status:"success",core:u,top:v},V);return ue(ae,e,n)}if(e==="grassland"){const[t,r,s,l,i,u,o,c,v]=yield Promise.all([R("/basic_grassland/overview").then(p),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/yieldProportion"))}),{}),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return Dn()}),xe()),h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_health/proportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/edibleXcDistribution"))}))]),m=i.levelRows||[],y=ne(fn(t),e),N=pe(s||[],l||[],{showMuYieldExtra:!1}),_=In(r,N),M=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),W=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),A=Mn(he(Qe(u||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:We})),C=he(o||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Bn}),D=he(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:On}),F=pe(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:W,grassTypeRows:A,grassLevelRows:C,healthRows:D,productivityRows:M,edibleYieldRows:F,forageRows:Je(_,N),degradationRows:m}),O=P(g({status:"success"},q),{top:He(y,_,N)});return ue(O,e,n)}if(e==="wetland"){const[t,r,s,l,i,u,o,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return p(yield R("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return p(yield R("/index/dataItem",{group:"wetland_grassland_level"}))})]),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/edibleXcDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/edibleXcMuDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grassland_level/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/yieldProportion"))}),{})]),_=Yn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:i,minTypeRows:u,edibleRows:o,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),M=P(g({status:"success"},_),{left:_.leftPanels[0],right:_.rightPanels[0]});return ue(M,e,n)}return Be(e,n)}catch(t){return P(g({},Be(e,n)),{status:"error",error:t})}})}function Qn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=p(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=p(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield De(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ge(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield De(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ge(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ge(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ge(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{Hn as a,Qn as b,Jn as c,ke as g}; +var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ee=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var $e=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,g=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&$e(e,a,n[a]);if(Ee)for(var a of Ee(n))rn.call(n,a)&&$e(e,a,n[a]);return e},P=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=u=>{try{i(a.next(u))}catch(o){r(o)}},l=u=>{try{i(a.throw(u))}catch(o){r(o)}},i=u=>u.done?t(u.value):Promise.resolve(u.value).then(s,l);i((a=a.apply(e,n)).next())});import{n as p,r as Oe}from"./index-d6700f13-1785858872961.js";import{g as Ye}from"./geoserver-ea89416e-1785858872961.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-8867fad4-1785858872961.js";const ln="/openApi",Z=756.37,_e=297.29,E=291.82,un=16.47,on=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(ie),ve=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function qe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Oe(qe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function R(e,n){return Oe(qe(e),{params:n})}function Se(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function Hn(e){return f(this,null,function*(){if(!e)return null;const n=p(yield R("/woodland/detail",{wkt:e}));return Se(n,["woodland"])})}function Jn(e){return f(this,null,function*(){if(!e)return null;const n=p(yield R("/basic_grassland/detail",{wkt:e}));return Se(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function x(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=x(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=x(e),r=x(n),s=x(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const i=w(r/l*t);return[i,w(Math.max(t-i,0))]}function B(e,n){const a=x(e),t=x(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function we(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:B(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var i,u;return P(g(g({},s),e[l]||{}),{name:((i=e[l])==null?void 0:i.name)||s.name,unit:((u=e[l])==null?void 0:u.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=P(g({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:E,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,i=e.map((u,o)=>{const c=w(d(u,t)),v={key:d(u,["key","code","townCode"])||`${d(u,a)||o}-${o}`,name:d(u,a)||`第${o+1}项`,value:c,unit:r,percent:w(d(u,["percent","areaPercent","basicRatio","generalRatio"])),source:u};return l?P(g({},v),{extra:l(u)}):v}).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0));return Number.isFinite(s)?i.slice(0,s):i}function fe(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((i,u)=>{const o=d(i,t),c=w(r==="万亩"?x(o)/1e4:o),v=d(i,a)||`第${u+1}项`;return{key:d(i,["key","code"])||`${v}-${u}`,name:v,value:c,unit:r,source:i}}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function b(e,n,a,t="rank",r={}){return g({key:e,title:n,type:t,rows:a||[]},r)}function pe(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(i=>[i.areaName,i]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:i=>{const u=l.get(i.areaName),o=w(d(u,["yield","value"])),c=d(u,["unit"])||"斤";return s&&o!==void 0?`亩产 ${o} ${c}`:""}})}function ie(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(ie(a==null?void 0:a.name)),s=n.get(ie(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function We(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地",高寒草原:"高寒草原类","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function de(e){return We(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const i=ie(d(s,a)),u=w(d(s,t));return!i||u===void 0?null:{key:d(s,["key","code","townCode"])||`${i}-${l}`,name:i,value:u,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const i=ie(d(l,a)),u=x(d(l,t));if(!i||u===void 0)return;const o=s.get(i)||{key:d(l,["townCode","code"])||i,name:i,value:0,unit:d(l,["unit"])||r,source:[]};o.value+=u,o.source.push(l),s.set(i,o)}),Array.from(s.values()).map(l=>P(g({},l),{value:w(l.value)})).sort((l,i)=>(Number(i.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const i=r.filter(u=>(u==null?void 0:u.name)&&u.value!==void 0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0)).map((u,o)=>P(g({},u),{unit:u.unit||t,rank:o+1}));return{status:i.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:i}}function ye(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const i=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(o=>{const c=o.properties||{},v=String(c.xiang||""),m=Ke(v),y=x(c.acreage);if(!m||y===void 0)return;const N=u.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(u.values()).map(o=>P(g({},o),{value:w(o.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=p(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function De(e,n,a,t){return f(this,null,function*(){const r=p(yield R("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return ie(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],i=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],u=yield Ye(a.layerName,{propertyName:i,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),o=new Map;return((u==null?void 0:u.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=x(d(v,l));if(!m||y===void 0)return;const N=o.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,o.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(o.values()).map(c=>P(g({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=p(yield R("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>P(g({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>P(g({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function Rn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=p(yield R("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function hn(e,n,a){return f(this,null,function*(){const t=de(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return de(i)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=p(yield R("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=de(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return de(i)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?Rn(e,n,a):e==="grassland"&&n==="grassland-type"?hn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ge(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=p(yield R(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function L(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const i=[],u=[];if(s.forEach((m,y)=>{const N=B(m.value,l);y=t)?i.push(m):u.push(m)}),!u.length)return i;const o=u.reduce((m,y)=>m+(Number(y.value)||0),0);return[...i,{key:`${r}-${u.length}`,name:r,value:w(o),unit:((c=u[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(B(o,l))}%`}]}function K(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function $(e=[],n=K(e),a=""){return e.map(t=>{const r=w(B(t.value,n));return P(g({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,i=x(n);if(i===void 0)return e;const u=K(e),o=w(i-u);if(o===void 0||o<=.01)return e;const c=[...e,{key:t,name:r,value:o,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=x(n),t=K(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const i=l===e.length-1,u=w(i?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(u)||0,P(g({},s),{value:u})})}function Y(e=[],n=[]){return n.length?e.map((a,t)=>P(g({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function Mn(e=[]){const n=e.map(r=>P(g({},r),{name:We(r.name)})),t=n.some(r=>de(r.name)==="高寒草原")?n:[...n,{key:"alpine-steppe",name:"高寒草原类",value:21.84,unit:"万亩"}];return $(t.sort((r,s)=>(Number(s.value)||0)-(Number(r.value)||0)))}function Ie(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function G(e=[],n=[],a=4){const t=[],r=new Set,s=i=>{!i||r.has(i.key)||(r.add(i.key),t.push(i))},l=[...e,...n];return l.filter(Ie).forEach(s),l.filter(i=>i&&!Ie(i)).forEach(s),t.slice(0,a)}function Wn(e,n,a={}){return e&&g(P(g({},e),{type:n}),a)}function xn(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(i=>!t.has(i))||r.type;return t.add(l),Wn(r,l,{variant:l===r.type?r.variant:void 0})})}function I(e=[],n=[]){const a=e.filter(Boolean),t=n.filter(Boolean),r=xn([...a,...t]);return{leftPanels:r.slice(0,a.length),rightPanels:r.slice(a.length)}}function ze(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(o=>(o==null?void 0:o.name)&&Number(o.value)>0);if(!s.length)return[];const l=s.slice(0,a),i=s.slice(a),u=(o,c)=>{var v,m;return{key:o,name:o,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[u(t,l),i.length?u(r,i):null].filter(o=>o&&Number(o.value)>0)}function ue(e,n,a){var i,u,o,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((i=e==null?void 0:e.layerPanels)==null?void 0:i[a])||((u=e==null?void 0:e.layerPanels)==null?void 0:u[t]);if(!r)return e;const s=(o=r.leftPanels)!=null&&o.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return P(g({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=x(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=u=>u,filter:s,extra:l}=n,i=new Map;return e.forEach(u=>{if(s&&!s(u))return;const o=d(u,a),c=r(o,u),v=Xe(u,t);if(!c||v===void 0)return;const m=i.get(c)||{key:d(u,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(u),i.set(c,m)}),Array.from(i.values()).map(u=>{const o=P(g({},u),{value:w(u.value)});return l?P(g({},o),{extra:l(o)}):o}).filter(u=>Number(u.value)>0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0))}function Ge(e){return String(e||"").replace(/草原/g,"湿地")}function An(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=x(e==null?void 0:e.xc))!=null?l:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(B(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(B(s,t))}%`}].filter(i=>i.value!==void 0)}function Ln(e={},n=[],a=[]){var u;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(u=x(e==null?void 0:e.xc))!=null?u:K(a),s=x(e==null?void 0:e.edibleXc),l=K(n),i=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return P(g({},e),{xc:w(r),edibleXc:w(i),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:i,edibleMuRows:u,typeTownRows:o,levelTownRows:c,minTownRows:v}){const m=b("wetland-town-area","湿地面积分布",Y(me(n),ve),"column",{span:1,variant:"plain"}),y=b("wetland-type","湿地类型结构",Y(a,ve),"donut",{span:1}),N=b("wetland-level-proportion","湿地级占比",Y($(t),ve),"donut",{span:1,variant:"ring"}),_=b("wetland-min-type","湿地优势小类",Y(L(s,6),ve),"bar",{span:1,variant:"raceBarNoWrap"}),M=b("wetland-yield-capacity","湿地产能结构",An(e,r),"structure",{span:1}),W=b("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),A=b("wetland-edible-yield","可食鲜草产量",L(i,U.length),"column",{span:1,variant:"slim"}),C=b("wetland-mu-yield","湿地亩产效率",L(l,U.length),"heat",{span:1,limit:U.length}),D=b("wetland-level","湿地级别面积",t,"column",{span:1}),F=b("wetland-level-town","1级湿地分布",L(c,U.length),"bar",{span:1,variant:"distribution"}),q=b("wetland-type-town","湿地类型乡镇分布",L(o,U.length),"bar",{span:1,variant:"distribution"}),O=b("wetland-edible-mu","可食鲜草亩产",L(u,U.length),"bar",{span:1}),J=b("wetland-min-town","优势小类乡镇分布",L(v,U.length),"bar",{span:1,variant:"distribution"}),{leftPanels:S,rightPanels:z}=I([m,y,N,_],[A,W,C,M]);return{leftPanels:S,rightPanels:z,left:S[0],right:z[0],layerPanels:Fn({townAreaPanel:m,typePanel:y,yieldCapacityPanel:M,yieldPanel:W,levelPanel:D,levelTownPanel:F,muYieldPanel:C,levelStructurePanel:N,typeTownPanel:q,minTypePanel:_,edibleYieldPanel:A,edibleMuPanel:O,minTownPanel:J})}}function Fn(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:i,levelStructurePanel:u,typeTownPanel:o,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":I([n,a,u,c],[v,r,i,t]),"wetland-level":I([u,s,l,a],[v,r,i,t]),"wetland-type":I([a,o,c,y],[v,r,m,t]),"wetland-yield":I([n,a,u,c],[v,r,i,t])}}function Cn(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t=I(n,a);return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:i=[],canopyRows:u=[],forestTypeRows:o=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:_=ze(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:M=ze(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const W=b("woodland-town","林地面积分布",Y(me(e),ee),"column",{span:1,variant:"plain"}),A=b("woodland-type","林地类型结构",Y(n,ee),"donut",{span:1,variant:"ring"}),C=b("woodland-protection","公益林保护等级",Y($(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),D=b("woodland-ownership","林地权属结构",Y($(r),ee),"structure",{span:1}),F=b("woodland-quality","优势树种面积",L(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=b("woodland-origin","林地起源结构",$(l),"structure",{span:1}),O=b("woodland-age","林龄组结构",L(i,6),"column",{span:1,labelMode:"horizontal"}),J=b("woodland-canopy","郁闭度结构",Y(L(u,6),ee),"donut",{span:1,fixedType:!0}),S=b("woodland-area-scale","林地图斑规模",a,"column",{span:1}),z=b("woodland-forest-type","森林类别结构",L(o,6),"bar",{span:1}),V=b("woodland-manage-level","管护等级分布",L(c,6),"bar",{span:1}),ae=b("woodland-public-rank","公益林面积排行",L(v,6),"bar",{span:1,variant:"distribution"}),T=b("woodland-owner-rank","权属单位排行",L(m,6),"bar",{span:1}),X=b("woodland-type-town","乡镇类型构成",L(y,6),"bar",{span:1,variant:"distribution"}),Re=b("woodland-quality-level","林地质量等级",$(N),"donut",{span:1}),Ae=b("woodland-town-concentration","林地集中度",Y($(_),ee),"structure",{span:1}),Le=b("woodland-type-concentration","类型集中度",Y($(M),ee),"rose",{span:1}),{leftPanels:Fe,rightPanels:Ce}=I(G([W,A,C,D],[S,T,z,F]),G([F,q,O,J],[S,T,z,ae,Ae,Le]));return{leftPanels:Fe,rightPanels:Ce,left:Fe[0],right:Ce[0],layerPanels:En({townPanel:W,typePanel:A,scalePanel:S,protectionPanel:C,ownershipPanel:D,qualityPanel:F,originPanel:q,agePanel:O,canopyPanel:J,forestTypePanel:z,manageLevelPanel:V,regionPanel:ae,ownerPanel:T,typeTownPanel:X,qualityLevelPanel:Re,townConcentrationPanel:Ae,typeConcentrationPanel:Le})}}function En(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:i,agePanel:u,canopyPanel:o,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:_,townConcentrationPanel:M,typeConcentrationPanel:W}=e;return{"woodland-distribution":I(G([n,a,r,s],[t,c,y]),G([l,i,u,o],[t,y,m,M,W,_])),"woodland-protection":I(G([r,c,v,n],[a,s,t]),G([m,l,i,s],[y,a,t])),"woodland-type":I(G([a,n,N,t],[r,s,c]),G([l,i,r,s],[u,o,y,W])),"woodland-quality":I(G([l,i,u,o],[_,t,a]),G([n,a,r,s],[c,y,t])),"woodland-ownership":I(G([s,y,n,a],[t,r,l]),G([r,l,i,t],[c,u,o]))}}function $n(e=cn){const n=e.map(s=>P(g({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-K(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return $(n.sort((s,l)=>{const i=r.indexOf(s.name),u=r.indexOf(l.name);return(i===-1?99:i)-(u===-1?99:u)}),Z)}function Dn(){return f(this,null,function*(){return xe()})}function He(e=[],n={},a=[]){var r;const t=(r=x(n==null?void 0:n.xc))!=null?r:K(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function In(e={},n=[]){return P(g({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function zn(e=[]){const n=K(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>P(g({},a),{color:Gn(a.name),extra:w(B(a.value,n))?`${w(B(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Gn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var i;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(i=x(e==null?void 0:e.xc))!=null?i:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(u=>Number(u.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(B(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(B(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(B(l==null?void 0:l.value,t))}].filter(u=>u.value!==void 0)}function xe(){return{levelRows:$n(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function Be(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),i=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),u=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=xe().levelRows,v=$([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=$([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),_=Ze({core:r,townRows:s,grassTypeRows:i,grassLevelRows:v,healthRows:m,productivityRows:u,edibleYieldRows:N,forageRows:y,degradationRows:c}),M=P(g({status:"fallback"},_),{top:He(r,{xc:_e,unit:"万吨"},l)});return ue(M,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:E,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],E,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],i=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),E),u=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),o=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:un,unit:"万吨"},townAreaRows:i,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:u,muYieldRows:l,edibleYieldRows:o,edibleMuRows:c,typeTownRows:i,levelTownRows:i,minTownRows:i}),m=g({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ue(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),o=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=g({status:"fallback",core:a,top:[a[0],a[1],a[2]]},o);return ue(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function h(e,n=[]){return e().catch(()=>n)}function he(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=u=>u,max:l=Number.POSITIVE_INFINITY}=n,i=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(u=>P(g({},u),{name:s(u.name)}));return $(i).filter(u=>Number(u.value)>0).slice(0,l)}function Bn(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function On(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:i,degradationRows:u}){const o=b("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=b("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=b("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=b("grassland-edible-yield","可食鲜草产量分布",L(l,10),"column",{span:1,variant:"slim"}),y=b("grassland-degradation","草地退化统计",zn(u),"bar",{span:1,variant:"degradation"}),N=b("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),_=b("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),M=b("grassland-forage-capacity","饲草供给",i,"bar",{span:1,variant:"capacity",fixedType:!0}),{leftPanels:W,rightPanels:A}=I([o,v,y,_],[m,c,N,M]);return{core:e,leftPanels:W,rightPanels:A,left:W[0],right:A[0],layerPanels:Cn({leftPanels:W,rightPanels:A})}}function Yn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],i=n.edibleRows||[],u=n.edibleMuRows||[],o=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(fe(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=pe(r,n.muYieldRows||[],{showMuYieldExtra:!1}),_=fe(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),M=le(fe(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(T=>P(g({},T),{name:Ge(T.name)})),E,{key:"wetland-level-unclassified",name:"未分级湿地"}),W=se(le(gn(l),E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),A=pe(i,u,{showMuYieldExtra:!1}),C=fe(u,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(u==null?void 0:u[0],["unit"])||"斤",max:U.length}),D=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),F=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.length)||0}类`}}),E),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),O=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:T=>Ge(d(T,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.filter(Re=>Xe(Re,["acreage","areaWanMu","value"])>0).length)||0}型`}}),E),S=Ln(m,A,N),z=ne(a,"wetland"),V=M.find(T=>/^1级/.test(T.name))||M[0],ae=je({yieldSummary:S,townAreaRows:D,typeRows:y,levelRows:M,yieldRows:N,minTypeRows:W,muYieldRows:_,edibleYieldRows:A,edibleMuRows:C,typeTownRows:F,levelTownRows:O.length?O:q,minTownRows:J});return g({core:z,top:[z[0],z[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Kn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function qn(e,n=[]){const a=new Set(n);return Kn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=qn(e,n);return g(P(g({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function oe(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function Sn(e,n,a){var M,W,A,C,D;const t=oe(e,["grassland-area","grassland-total-area","草地面积"]),r=oe(n,["wetland-area","湿地面积"]),s=oe(a,["woodland-area","林地总面积"]),[l,i]=Me(Z,637.13,119.31),u=oe(e,["basic-grassland","basic-grassland-area","基本草原"]),o=oe(e,["general-grassland","general-grassland-area","一般草原"]),c=$([{key:"overview-basic-grassland",name:"基本草原",value:w((M=u==null?void 0:u.value)!=null?M:l),unit:(u==null?void 0:u.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((W=o==null?void 0:o.value)!=null?W:i),unit:(o==null?void 0:o.unit)||"万亩",color:"#FFE06B"}]),v=$([{key:"overview-grassland-area",name:"草地资源",value:w((A=t==null?void 0:t.value)!=null?A:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((C=r==null?void 0:r.value)!=null?C:E),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w((D=s==null?void 0:s.value)!=null?D:on),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","line",{showValues:!0,tooltipOnHoverOnly:!0}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"slim",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[b("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),b("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],_=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(K(v)),unit:"万亩"},P(g({},v[0]),{name:"草地面积"}),P(g({},v[1]),{name:"湿地面积"}),P(g({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(F=>(F==null?void 0:F.status)==="error")?"fallback":"success",core:_,top:_,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return Sn(t,r,s)}if(e==="woodland"){const[t,r,s,l,i]=yield Promise.all([Q("/woodland/distribution").then(p),h(()=>f(this,null,function*(){return p(yield Q("/woodland/types"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/protection"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/quality"))}),{}),h(()=>f(this,null,function*(){return p(yield Q("/woodland/ownership"))}),{})]),u=ne(wn(t),e),o=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[u[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:B(c,o)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>we(T,o)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>we(T,o)}),_=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),M=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),W=k((i==null?void 0:i.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:T=>we(T,o)}),A=k((i==null?void 0:i.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),C=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),D=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),F=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:T=>we(T,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),O=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>{const X=w(d(T,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(T)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),z=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:_,ownershipRows:A,qualityRows:M,originRows:q,ageRows:O,canopyRows:J,forestTypeRows:C,manageLevelRows:D,regionRows:F,ownerRows:W,typeTownRows:z,qualityLevelRows:S}),ae=g({status:"success",core:u,top:v},V);return ue(ae,e,n)}if(e==="grassland"){const[t,r,s,l,i,u,o,c,v]=yield Promise.all([R("/basic_grassland/overview").then(p),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/yieldProportion"))}),{}),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return Dn()}),xe()),h(()=>f(this,null,function*(){return p(yield R("/grassland_grass_type/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_health/proportion"))})),h(()=>f(this,null,function*(){return p(yield R("/grassland_yield/edibleXcDistribution"))}))]),m=i.levelRows||[],y=ne(fn(t),e),N=pe(s||[],l||[],{showMuYieldExtra:!1}),_=In(r,N),M=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),W=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),A=Mn(he(Qe(u||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:We})),C=he(o||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Bn}),D=he(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:On}),F=pe(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:W,grassTypeRows:A,grassLevelRows:C,healthRows:D,productivityRows:M,edibleYieldRows:F,forageRows:Je(_,N),degradationRows:m}),O=P(g({status:"success"},q),{top:He(y,_,N)});return ue(O,e,n)}if(e==="wetland"){const[t,r,s,l,i,u,o,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return p(yield R("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return p(yield R("/index/dataItem",{group:"wetland_grassland_level"}))})]),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaProportion"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/edibleXcDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/edibleXcMuDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grassland_level/distribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_grass_type_copy/minTypeAreaDistribution"))})),h(()=>f(this,null,function*(){return p(yield R("/wetland_yield/yieldProportion"))}),{})]),_=Yn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:i,minTypeRows:u,edibleRows:o,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),M=P(g({status:"success"},_),{left:_.leftPanels[0],right:_.rightPanels[0]});return ue(M,e,n)}return Be(e,n)}catch(t){return P(g({},Be(e,n)),{status:"error",error:t})}})}function Qn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=p(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=p(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield ye({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield De(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ge(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield De(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ge(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ge(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ge(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{Hn as a,Qn as b,Jn as c,ke as g}; diff --git a/docs/assets/park-ee0533e0-balabala-1785726778446.png b/docs/assets/park-ee0533e0-balabala-1785858872961.png similarity index 100% rename from docs/assets/park-ee0533e0-balabala-1785726778446.png rename to docs/assets/park-ee0533e0-balabala-1785858872961.png diff --git a/docs/assets/pathLine2-d4134d4b-balabala-1785726778446.png b/docs/assets/pathLine2-d4134d4b-balabala-1785858872961.png similarity index 100% rename from docs/assets/pathLine2-d4134d4b-balabala-1785726778446.png rename to docs/assets/pathLine2-d4134d4b-balabala-1785858872961.png diff --git a/docs/assets/right-kuang-b1937caf-balabala-1785726778446.svg b/docs/assets/right-kuang-b1937caf-balabala-1785858872961.svg similarity index 100% rename from docs/assets/right-kuang-b1937caf-balabala-1785726778446.svg rename to docs/assets/right-kuang-b1937caf-balabala-1785858872961.svg diff --git a/docs/assets/ring2-a1b91808-balabala-1785726778446.png b/docs/assets/ring2-a1b91808-balabala-1785858872961.png similarity index 100% rename from docs/assets/ring2-a1b91808-balabala-1785726778446.png rename to docs/assets/ring2-a1b91808-balabala-1785858872961.png diff --git a/docs/assets/ring3-fe0f60d7-balabala-1785726778446.png b/docs/assets/ring3-fe0f60d7-balabala-1785858872961.png similarity index 100% rename from docs/assets/ring3-fe0f60d7-balabala-1785726778446.png rename to docs/assets/ring3-fe0f60d7-balabala-1785858872961.png diff --git a/docs/assets/ring4-f2e324d6-balabala-1785726778446.png b/docs/assets/ring4-f2e324d6-balabala-1785858872961.png similarity index 100% rename from docs/assets/ring4-f2e324d6-balabala-1785726778446.png rename to docs/assets/ring4-f2e324d6-balabala-1785858872961.png diff --git a/docs/assets/rotationBorder1-2ce8e0ef-balabala-1785726778446.png b/docs/assets/rotationBorder1-2ce8e0ef-balabala-1785858872961.png similarity index 100% rename from docs/assets/rotationBorder1-2ce8e0ef-balabala-1785726778446.png rename to docs/assets/rotationBorder1-2ce8e0ef-balabala-1785858872961.png diff --git a/docs/assets/rotationBorder2-7496b968-balabala-1785726778446.png b/docs/assets/rotationBorder2-7496b968-balabala-1785858872961.png similarity index 100% rename from docs/assets/rotationBorder2-7496b968-balabala-1785726778446.png rename to docs/assets/rotationBorder2-7496b968-balabala-1785858872961.png diff --git a/docs/assets/saoguang-ccf84a88-balabala-1785726778446.svg b/docs/assets/saoguang-ccf84a88-balabala-1785858872961.svg similarity index 100% rename from docs/assets/saoguang-ccf84a88-balabala-1785726778446.svg rename to docs/assets/saoguang-ccf84a88-balabala-1785858872961.svg diff --git a/docs/assets/screen2Standard-f38b9a2d-1785726778446.js b/docs/assets/screen2Standard-2d8b09ac-1785858872961.js similarity index 99% rename from docs/assets/screen2Standard-f38b9a2d-1785726778446.js rename to docs/assets/screen2Standard-2d8b09ac-1785858872961.js index 73e6bab..92d51d7 100644 --- a/docs/assets/screen2Standard-f38b9a2d-1785726778446.js +++ b/docs/assets/screen2Standard-2d8b09ac-1785858872961.js @@ -1,4 +1,4 @@ -var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1785726778446.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1785726778446.js";/** +var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1785858872961.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1785858872961.js";/** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT @@ -3761,4 +3761,4 @@ void main() { } -}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1785726778446.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1785726778446.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1785726778446.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},autoPlay:{type:Boolean,default:!0},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),this.autoPlay&&(this.data.length<2||(this.timer=window.setInterval(()=>{this.loopChange()},this.delay)))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; +}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1785858872961.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1785858872961.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1785858872961.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},autoPlay:{type:Boolean,default:!0},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),this.autoPlay&&(this.data.length<2||(this.timer=window.setInterval(()=>{this.loopChange()},this.delay)))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; diff --git a/docs/assets/screen2Standard-cdb21878-balabala-1785726778446.css b/docs/assets/screen2Standard-cdb21878-balabala-1785858872961.css similarity index 100% rename from docs/assets/screen2Standard-cdb21878-balabala-1785726778446.css rename to docs/assets/screen2Standard-cdb21878-balabala-1785858872961.css diff --git a/docs/assets/stack-7a426057-balabala-1785726778446.png b/docs/assets/stack-7a426057-balabala-1785858872961.png similarity index 100% rename from docs/assets/stack-7a426057-balabala-1785726778446.png rename to docs/assets/stack-7a426057-balabala-1785858872961.png diff --git a/docs/assets/title-zs1-c15a5ee8-balabala-1785726778446.svg b/docs/assets/title-zs1-c15a5ee8-balabala-1785858872961.svg similarity index 100% rename from docs/assets/title-zs1-c15a5ee8-balabala-1785726778446.svg rename to docs/assets/title-zs1-c15a5ee8-balabala-1785858872961.svg diff --git a/docs/assets/town-f8c0c9cc-balabala-1785726778446.png b/docs/assets/town-f8c0c9cc-balabala-1785858872961.png similarity index 100% rename from docs/assets/town-f8c0c9cc-balabala-1785726778446.png rename to docs/assets/town-f8c0c9cc-balabala-1785858872961.png diff --git a/docs/assets/townshipBoundaries-8867fad4-1785726778446.js b/docs/assets/townshipBoundaries-8867fad4-1785858872961.js similarity index 100% rename from docs/assets/townshipBoundaries-8867fad4-1785726778446.js rename to docs/assets/townshipBoundaries-8867fad4-1785858872961.js diff --git a/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1785726778446.png b/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1785858872961.png similarity index 100% rename from docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1785726778446.png rename to docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1785858872961.png diff --git a/docs/assets/yakApi-185e6ecc-1785726778446.js b/docs/assets/yakApi-4b33f49b-1785858872961.js similarity index 98% rename from docs/assets/yakApi-185e6ecc-1785726778446.js rename to docs/assets/yakApi-4b33f49b-1785858872961.js index 19d35b2..c0ad28c 100644 --- a/docs/assets/yakApi-185e6ecc-1785726778446.js +++ b/docs/assets/yakApi-4b33f49b-1785858872961.js @@ -1 +1 @@ -var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-e33f4373-1785726778446.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; +var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-d6700f13-1785858872961.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; diff --git a/docs/assets/yield-66e9af79-balabala-1785726778446.png b/docs/assets/yield-66e9af79-balabala-1785858872961.png similarity index 100% rename from docs/assets/yield-66e9af79-balabala-1785726778446.png rename to docs/assets/yield-66e9af79-balabala-1785858872961.png diff --git a/docs/index.html b/docs/index.html index 93c33b2..da8d2f6 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,8 +11,8 @@ window.CESIUM_BASE_URL = "./cdn/Cesium/"; - - + + diff --git a/src/services/smartContextBuilder.js b/src/services/smartContextBuilder.js index 29678dd..ac8cbf7 100644 --- a/src/services/smartContextBuilder.js +++ b/src/services/smartContextBuilder.js @@ -51,6 +51,7 @@ import { import { breedingLevelRows, creditAuthorizationRows, + creditHouseholdRatingRows, creditInstitutionRows, creditServiceContextRows, creditTownshipGradeRows, @@ -349,6 +350,7 @@ function buildIndustryDatasets() { dataset("industry.serviceCapability", "服务能力指标", serviceCapabilityRows, "平台业务汇总数据"), dataset("industry.creditOverview", "信用评定核心指标", creditServiceContextRows, "红原信用村、信用户评定结果"), dataset("industry.creditAuthorization", "信用户授信状态", creditAuthorizationRows, "红原信用村、信用户评定结果"), + dataset("industry.creditHouseholdRatings", "信用户星级分布", creditHouseholdRatingRows, "红原信用村、信用户评定结果"), dataset("industry.creditVillageGrades", "信用村等级分布", creditVillageGradeRows, "红原信用村、信用户评定结果"), dataset("industry.creditTownshipGrades", "乡镇信用村等级排行", creditTownshipGradeRows, "红原信用村、信用户评定结果"), dataset("industry.creditInstitutions", "信用评定机构排行", creditInstitutionRows, "红原信用村、信用户评定结果"), diff --git a/src/views/platform/index.vue b/src/views/platform/index.vue index 9ce03ae..5010f32 100644 --- a/src/views/platform/index.vue +++ b/src/views/platform/index.vue @@ -955,7 +955,8 @@ function handleLogout() { // Full-screen business dialogs must sit above the shared header, KPI rail, // navigation and map controls that live in .large-screen-wrap. - .platform-module-pane:has(.home-more-modal) { + .platform-module-pane:has(.home-more-modal), + .platform-module-pane:has(.industry-credit-overlay) { z-index: 120; } diff --git a/src/views/yakIndustryChain/components/SocialCreditPanel.vue b/src/views/yakIndustryChain/components/SocialCreditPanel.vue new file mode 100644 index 0000000..15f7b5b --- /dev/null +++ b/src/views/yakIndustryChain/components/SocialCreditPanel.vue @@ -0,0 +1,724 @@ + + + + + diff --git a/src/views/yakIndustryChain/data.js b/src/views/yakIndustryChain/data.js index c171ab3..ccaf68e 100644 --- a/src/views/yakIndustryChain/data.js +++ b/src/views/yakIndustryChain/data.js @@ -51,14 +51,19 @@ const artificialGrasslandSummary = JSON.parse(artificialGrasslandSummaryRaw) const artificialGrasslandBusinessSummary = JSON.parse(artificialGrasslandBusinessSummaryRaw) export const creditRatingSummary = JSON.parse(creditRatingSummaryRaw) const creditGradeMeta = [ - { key: "A级", displayName: "一级(A级)", color: "#37f2bd" }, - { key: "B级", displayName: "二级(B级)", color: "#30dcff" }, - { key: "C级", displayName: "三级(C级)", color: "#f7d675" }, - { key: "D级", displayName: "四级(D级)", color: "#ff9b88" }, + { key: "A级", displayName: "A级", color: "#37f2bd" }, + { key: "B级", displayName: "B级", color: "#30dcff" }, + { key: "C级", displayName: "C级", color: "#f7d675" }, + { key: "D级", displayName: "D级", color: "#ff9b88" }, ] const creditVillageTotal = Number(creditRatingSummary.totals?.villageCount || 0) const creditHouseholdTotal = Number(creditRatingSummary.totals?.householdCount || 0) +export const creditHouseholdRatingRows = (creditRatingSummary.userRatingRows || []).map((item) => ({ + ...item, + percent: creditHouseholdTotal > 0 ? round(Number(item.value || 0) / creditHouseholdTotal * 100, 1) : 0, +})) + export const creditVillageGradeRows = creditGradeMeta.map((grade) => { const source = (creditRatingSummary.villageGradeRows || []).find((item) => item.key === grade.key) || {} const value = Number(source.value || 0) @@ -880,7 +885,7 @@ function stageSecondaryPanel(stageKey) { "milk-source-station": chartPanel("milk-source-core", "奶源站覆盖指标", "iconMetric", getStageMetricRows(stageKey)), "slaughter-processing": chartPanel("slaughter-processing-value", "产值结构", "donut", industryValueRows, { variant: "ring" }), "forage-trade": chartPanel("forage-trade-core", "牧草交易数据", "forageTradeDashboard", forageTradeOverviewRows, { renderer: "forageTradeDashboard" }), - "social-service": chartPanel("social-service-credit-grade", "信用户等级分布", "donut", creditRatingSummary.userRatingRows, { + "social-service": chartPanel("social-service-credit-grade", "信用户星级分布", "donut", creditHouseholdRatingRows, { variant: "ring", hasMore: true, }), @@ -914,8 +919,8 @@ function getSocialCreditPanelConfig() { total: creditVillageTotal, totalUnit: "个", hasMore: true, - moreLabel: "查看明细", - moreAriaLabel: "查看信用村和农户明细", + moreLabel: "查看全部", + moreAriaLabel: "查看全部信用评定信息", }, ), socialCreditPanel( @@ -925,9 +930,6 @@ function getSocialCreditPanelConfig() { creditTownshipGradeRows, { height: 662, - hasMore: true, - moreLabel: "查看明细", - moreAriaLabel: "查看乡镇信用村和农户明细", }, ), ], @@ -941,9 +943,6 @@ function getSocialCreditPanelConfig() { height: 270, total: creditHouseholdTotal, authorizationRate: Number(creditRatingSummary.totals?.authorizationRate || 0), - hasMore: true, - moreLabel: "查看用户", - moreAriaLabel: "查看授信用户明细", }, ), socialCreditPanel( @@ -954,22 +953,16 @@ function getSocialCreditPanelConfig() { { height: 270, institutionCount: creditInstitutionRows.length, - hasMore: true, - moreLabel: "查看用户", - moreAriaLabel: "查看评定机构及农户明细", }, ), socialCreditPanel( "social-service-credit-user-rating", - "信用户等级分布", + "信用户星级分布", "userRating", - creditRatingSummary.userRatingRows || [], + creditHouseholdRatingRows, { height: 380, total: creditHouseholdTotal, - hasMore: true, - moreLabel: "查看用户", - moreAriaLabel: "查看全部信用户等级明细", }, ), ], diff --git a/src/views/yakIndustryChain/index.vue b/src/views/yakIndustryChain/index.vue index d723334..3053de0 100644 --- a/src/views/yakIndustryChain/index.vue +++ b/src/views/yakIndustryChain/index.vue @@ -49,13 +49,19 @@ v-if="isCreditRatingPanel(panel)" class="industry-card-more" type="button" - @click.stop="openCreditRatingModal" + :aria-label="panel.moreAriaLabel || '查看更多信用信息'" + @click.stop="openCreditRatingModal()" > - 查看更多 + {{ panel.moreLabel || "查看更多" }} + - 查看更多 + {{ panel.moreLabel || "查看更多" }} + 评定信用户 {{ formatChartNumber(creditRatingSummary.totals.householdCount) }}户 -
    - 信用村 - {{ formatChartNumber(creditRatingSummary.totals.villageCount) }}个 -
    已授信 {{ formatChartNumber(creditRatingSummary.totals.authorizedCount) }}户
    - 授信率 - {{ formatChartNumber(creditRatingSummary.totals.authorizationRate) }}% + 未授信 + {{ formatChartNumber(creditRatingSummary.totals.unauthorizedCount) }}户 +
    +
    + 信用村 + {{ formatChartNumber(creditRatingSummary.totals.villageCount) }}个 +
    +
    + 评定机构 + {{ formatChartNumber(creditInstitutionRows.length) }}家
    @@ -436,8 +452,12 @@ - + + + + + {{ creditRatingResultText }} @@ -455,7 +479,7 @@ 乡镇 行政村 信用村等级 - 信用户等级 + 信用户星级 授信状态 评定机构 @@ -512,6 +536,7 @@ import BusinessPanelRenderer from "@/views/forestGrassWet/components/BusinessPan import FeatureInfoPanel from "@/views/forestGrassWet/components/FeatureInfoPanel.vue" import LayerPanel from "@/views/forestGrassWet/components/LayerPanel.vue" import TopicSwitcher from "@/views/forestGrassWet/components/TopicSwitcher.vue" +import SocialCreditPanel from "./components/SocialCreditPanel.vue" import { Assets } from "@/views/forestGrassWet/assets" import { getLayerByKey } from "@/config/layers" import { SCREEN2_LAYOUT, getScreen2SideCardHeight, getScreen2SpanHeight } from "@/utils/screen2Standard" @@ -536,6 +561,8 @@ import { getFeaturedBreedingBaseProfile, getIndustryOverviewPanelConfig, getPointExtraRows, + getStageTopStats, + creditInstitutionRows, creditRatingSummary, industryTopStats, visibleIndustryStageDefs, @@ -586,8 +613,10 @@ const creditRatingError = ref("") const creditRatingHouseholds = ref([]) const creditSearchText = ref("") const creditTownFilter = ref("") +const creditVillageGradeFilter = ref("") const creditRatingFilter = ref("") const creditAuthorizationFilter = ref("") +const creditInstitutionFilter = ref("") const creditRatingPage = ref(1) const creditRatingPageSize = 12 const overviewLayerKeys = ref(visibleIndustryStageDefs.map((stage) => stage.key)) @@ -611,13 +640,17 @@ const activeStage = computed(() => isOverviewStage.value ? overviewStage : getSt const isFamilyPasture = computed(() => activeStageKey.value === "family-pasture") const isArtificialGrassland = computed(() => activeStageKey.value === "artificial-grassland") const creditTownOptions = computed(() => (creditRatingSummary.townships || []).map((item) => item.name)) +const creditVillageGradeOptions = computed(() => (creditRatingSummary.villageGradeRows || []).map((item) => item.name)) const creditRatingOptions = computed(() => (creditRatingSummary.userRatingRows || []).map((item) => item.name)) +const creditInstitutionOptions = computed(() => creditInstitutionRows.map((item) => item.name)) const filteredCreditRatingHouseholds = computed(() => { const keyword = String(creditSearchText.value || "").trim().toLowerCase() return creditRatingHouseholds.value.filter((item) => { if (creditTownFilter.value && item.town !== creditTownFilter.value) return false + if (creditVillageGradeFilter.value && item.villageGrade !== creditVillageGradeFilter.value) return false if (creditRatingFilter.value && item.userRating !== creditRatingFilter.value) return false if (creditAuthorizationFilter.value && item.authorized !== creditAuthorizationFilter.value) return false + if (creditInstitutionFilter.value && item.institution !== creditInstitutionFilter.value) return false if (!keyword) return true return [item.name, item.town, item.village, item.institution, item.userRating] .some((value) => String(value || "").toLowerCase().includes(keyword)) @@ -910,7 +943,14 @@ watch(artificialLayerKeys, () => { }, { deep: true }) watch( - [creditSearchText, creditTownFilter, creditRatingFilter, creditAuthorizationFilter], + [ + creditSearchText, + creditTownFilter, + creditVillageGradeFilter, + creditRatingFilter, + creditAuthorizationFilter, + creditInstitutionFilter, + ], () => { creditRatingPage.value = 1 }, @@ -979,6 +1019,12 @@ function normalizeStagePanelGroups(config = {}) { } function normalizeStagePanelHeight(panel, groupCount = 0) { + if (panel?.preserveHeight === true && Number(panel?.height || 0) > 0) { + return { + ...panel, + height: Number(panel.height), + } + } if (panel?.fixedHeight === true) { return { ...panel, @@ -1064,7 +1110,8 @@ function isCreditRatingPanel(panel = {}) { return panel?.hasMore === true && String(panel?.key || "").startsWith("social-service-credit-") } -async function openCreditRatingModal() { +async function openCreditRatingModal(options = {}) { + if (!options.preserveFilters) resetCreditRatingFilters() creditRatingModalVisible.value = true creditRatingPage.value = 1 if (creditRatingHouseholds.value.length || creditRatingLoading.value) return @@ -1086,6 +1133,26 @@ async function openCreditRatingModal() { } } +function resetCreditRatingFilters() { + creditSearchText.value = "" + creditTownFilter.value = "" + creditVillageGradeFilter.value = "" + creditRatingFilter.value = "" + creditAuthorizationFilter.value = "" + creditInstitutionFilter.value = "" +} + +function handleSocialCreditPanelSelect(selection = {}) { + resetCreditRatingFilters() + const value = String(selection.value || "") + if (selection.type === "town") creditTownFilter.value = value + if (selection.type === "villageGrade") creditVillageGradeFilter.value = value + if (selection.type === "rating") creditRatingFilter.value = value + if (selection.type === "authorization") creditAuthorizationFilter.value = value + if (selection.type === "institution") creditInstitutionFilter.value = value + openCreditRatingModal({ preserveFilters: true }) +} + function closeCreditRatingModal() { creditRatingModalVisible.value = false } @@ -1456,9 +1523,14 @@ function updateScreenViewportHeight() { function emitIndustryTopStats(stageKey = activeStageKey.value) { const currentStageKey = stageKey || activeStageKey.value + const items = currentStageKey === YAK_INDUSTRY_OVERVIEW_KEY + ? industryTopStats + : currentStageKey === "social-service" + ? getStageTopStats(currentStageKey) + : [] emit("module-stats", { moduleKey: "yak-industry-chain", - items: currentStageKey === YAK_INDUSTRY_OVERVIEW_KEY ? industryTopStats : [], + items, }) } @@ -3656,7 +3728,7 @@ function normalizePointerEvent(event = {}) { .industry-credit-overlay { position: absolute; inset: 0; - z-index: 80; + z-index: 120; display: flex; align-items: center; justify-content: center; @@ -3719,7 +3791,7 @@ function normalizePointerEvent(event = {}) { .industry-credit-dialog__stats { display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); + grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; padding: 16px 24px 10px; @@ -3755,7 +3827,7 @@ function normalizePointerEvent(event = {}) { .industry-credit-dialog__filters { display: grid; - grid-template-columns: minmax(280px, 1fr) 142px 142px 142px auto; + grid-template-columns: minmax(260px, 1fr) 112px 120px 132px 132px 174px auto; gap: 10px; align-items: center; padding: 8px 24px 14px;