var Sn=Object.defineProperty,Mn=Object.defineProperties;var Dn=Object.getOwnPropertyDescriptors;var fn=Object.getOwnPropertySymbols;var Gn=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable;var mn=(n,e,a)=>e in n?Sn(n,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[e]=a,f=(n,e)=>{for(var a in e||(e={}))Gn.call(e,a)&&mn(n,a,e[a]);if(fn)for(var a of fn(e))En.call(e,a)&&mn(n,a,e[a]);return n},v=(n,e)=>Mn(n,Dn(e));var y=(n,e,a)=>new Promise((t,r)=>{var s=i=>{try{l(a.next(i))}catch(u){r(u)}},o=i=>{try{l(a.throw(i))}catch(u){r(u)}},l=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,o);l((a=a.apply(n,e)).next())});import{n as P,r as bn}from"./index-749a1b46-1786512564754.js";import{g as Pn}from"./geoserver-dfffb06f-1786512564754.js";import{d as D,e as hn,g as qn}from"./townshipBoundaries-8d64be19-1786512564754.js";const xn="/openApi",Bn=D.map(Y),O=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],G=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Tn(n){return/^https?:\/\//.test(n)?n:`${xn}${n.startsWith("/")?n:`/${n}`}`}function rn(n,e){return bn(Tn(n),{method:"POST",body:e?JSON.stringify(e):void 0,headers:{"Content-Type":"application/json"}})}function T(n,e){return bn(Tn(n),{params:e})}function Nn(n,e=[]){const a=[...e.map(t=>n==null?void 0:n[t]),...e.map(t=>{var r;return(r=n==null?void 0:n.data)==null?void 0:r[t]}),...e.map(t=>{var r;return(r=n==null?void 0:n.result)==null?void 0:r[t]}),n==null?void 0:n.data,n==null?void 0:n.result,n];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 ve(n){return y(this,null,function*(){if(!n)return null;const e=P(yield T("/woodland/detail",{wkt:n}));return Nn(e,["woodland"])})}function ye(n){return y(this,null,function*(){if(!n)return null;const e=P(yield T("/basic_grassland/detail",{wkt:n}));return Nn(e,["basicGrassland"])})}function R(n,e){for(const a of e)if((n==null?void 0:n[a])!==void 0&&(n==null?void 0:n[a])!==null&&(n==null?void 0:n[a])!=="")return n[a]}function q(n){if(n==null||n==="")return;const e=Number(n);return Number.isNaN(e)?void 0:e}function F(n){const e=q(n);if(e!==void 0)return Number.isInteger(e)?e:Number(e.toFixed(2))}function sn(n,e){const a=q(n),t=q(e);if(!(a===void 0||t===void 0||t===0))return a/t*100}function nn(n,e){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:"万亩"}]}[e]||[]).map((s,o)=>{var l,i;return v(f(f({},s),n[o]||{}),{name:((l=n[o])==null?void 0:l.name)||s.name,unit:((i=n[o])==null?void 0:i.unit)||s.unit})});return r.length?r:n}function c(n,e,a,t="rank",r={}){return f({key:n,title:e,type:t,rows:a||[]},r)}function Y(n){return String(n||"").replace(/\s+/g,"").trim()}function L(n=[]){const e=new Map(Bn.map((a,t)=>[a,t]));return[...n].sort((a,t)=>{const r=e.get(Y(a==null?void 0:a.name)),s=e.get(Y(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 On(n){const e=String(n||"");return{用于畜牧业生产的人工草地:"人工草地",高寒草原:"高寒草原类","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[e]||e}function X(n){return On(n).replace(/\s+/g,"").replace(/类$/,"")}function Z(n){const e=String(n||""),a=e.match(/level-([1-8])/);if(a)return a[1];const t=e.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(e.trim()))return e.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([o])=>e.includes(`${o}级`));return(s==null?void 0:s[1])||""}function kn(n){return Z(n==null?void 0:n.key)||Z(n==null?void 0:n.name)}function en(n=[],e={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=e;return n.map((s,o)=>{const l=Y(R(s,a)),i=F(R(s,t));return!l||i===void 0?null:{key:R(s,["key","code","townCode"])||`${l}-${o}`,name:l,value:i,unit:R(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,o)=>(Number(o.value)||0)-(Number(s.value)||0))}function pn(n=[],e={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=e,s=new Map;return n.forEach(o=>{const l=Y(R(o,a)),i=q(R(o,t));if(!l||i===void 0)return;const u=s.get(l)||{key:R(o,["townCode","code"])||l,name:l,value:0,unit:R(o,["unit"])||r,source:[]};u.value+=i,u.source.push(o),s.set(l,u)}),Array.from(s.values()).map(o=>v(f({},o),{value:F(o.value)})).sort((o,l)=>(Number(l.value)||0)-(Number(o.value)||0))}function A({topicKey:n,layerKey:e,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:o=""}){const l=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>v(f({},i),{unit:i.unit||t,rank:u+1}));return{status:l.length?"success":"empty",topicKey:n,layerKey:e,title:a,unit:t,metricLabel:o,note:s,rows:l}}function J(o){return y(this,arguments,function*({topicKey:n,layerKey:e,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const l=yield Pn(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((l==null?void 0:l.features)||[]).forEach(u=>{const w=u.properties||{},p=String(w.xiang||""),m=hn(p),g=q(w.acreage);if(!m||g===void 0)return;const b=i.get(m)||{key:p,name:m,value:0,unit:s};b.value+=g/1e4,i.set(m,b)}),A({topicKey:n,layerKey:e,title:t,unit:s,rows:Array.from(i.values()).map(u=>v(f({},u),{value:F(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function Yn(n,e,a="林地面积排行"){return y(this,null,function*(){const t=P(yield rn("/woodland/distribution"));return A({topicKey:n,layerKey:e,title:a,unit:"万亩",rows:en((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function gn(n,e,a,t){return y(this,null,function*(){const r=P(yield T("/basic_grassland/overview"));return A({topicKey:n,layerKey:e,title:t,unit:"万亩",rows:en((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function $n(n={},e=[],a=[]){const t=R(n,a);if(t)return Y(t);const r=e.map(o=>R(n,[o])).find(o=>o!==void 0),s=String(r||"").slice(0,9);return hn(s)}function zn(n,e,a,t){return y(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"],o=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],l=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...o],i=yield Pn(a.layerName,{propertyName:l,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(w=>{const p=w.properties||{},m=$n(p,r,s),g=q(R(p,o));if(!m||g===void 0)return;const b=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};b.value+=g/1e4,u.set(m,b)}),A({topicKey:n,layerKey:e,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(w=>v(f({},w),{value:F(w.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function jn(n,e,a){return y(this,null,function*(){const t=P(yield T("/basic_grassland/overview"));return A({topicKey:n,layerKey:e,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:en((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>v(f({},r),{metricLabel:a.name}))})})}function an(n,e,a,t,r={}){const s=Kn(t||[],r).map(o=>v(f({},o),{metricLabel:a.name}));return A({topicKey:n,layerKey:e,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function Vn(n,e,a){return y(this,null,function*(){const t=kn(a);if(!t)return null;const r=P(yield T("/grassland_grassland_level/distribution"));return an(n,e,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>Z(R(s,["level","name"]))===t})})}function In(n,e,a){return y(this,null,function*(){const t=X(a.name);if(!t)return null;const[r,s]=yield Promise.all([K(()=>y(this,null,function*(){return P(yield T("/grassland_grass_type/distribution"))})),K(()=>y(this,null,function*(){return P(yield T("/grassland_grass_type/minTypeAreaDistribution"))}))]);return an(n,e,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:o=>{const l=R(o,["grassMinType","grass_min_type","grassType","grass_type","name"]);return X(l)===t}})})}function Hn(n,e,a){return y(this,null,function*(){const t=kn(a);if(!t)return null;const r=P(yield T("/wetland_grassland_level/distribution"));return an(n,e,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>Z(R(s,["level","name"]))===t})})}function Un(n,e,a){return y(this,null,function*(){const t=X(a.name);if(!t)return null;const[r,s]=yield Promise.all([K(()=>y(this,null,function*(){return P(yield T("/wetland_grass_type_copy/distribution"))})),K(()=>y(this,null,function*(){return P(yield T("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return an(n,e,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:o=>{const l=R(o,["grassMinType","grass_min_type","grassType","grass_type","name"]);return X(l)===t}})})}function Jn(n,e,a){return y(this,null,function*(){if(!(a!=null&&a.key))return null;const t=qn(n,e);return t?n==="grassland"&&e==="basic-grassland"&&a.rankingValueKey?jn(n,e,a):n==="grassland"&&e==="grassland-level"?Vn(n,e,a):n==="grassland"&&e==="grassland-type"?In(n,e,a):n==="wetland"&&e==="wetland-level"?Hn(n,e,a):n==="wetland"&&e==="wetland-type"?Un(n,e,a):a.cqlFilter&&t.layerName?zn(n,e,t,a):null:null})}function Q(n,e,a,t,r="万吨"){return y(this,null,function*(){const s=P(yield T(a)),o=R(s==null?void 0:s[0],["unit"])||r;return A({topicKey:n,layerKey:e,title:t,unit:o,rows:en(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:o})})})}function h(n=[],e=5){return n.slice(0,e)}function on(n=[]){return n.reduce((e,a)=>e+(Number(a.value)||0),0)}function E(n=[],e=on(n),a=""){return n.map(t=>{const r=F(sn(t.value,e));return v(f({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function N(n=[],e=[]){return e.length?n.map((a,t)=>v(f({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||e[t%e.length]})):n}function vn(n){return Array.isArray(n==null?void 0:n.rows)&&n.rows.length>0}function W(n=[],e=[],a=4){const t=[],r=new Set,s=l=>{!l||r.has(l.key)||(r.add(l.key),t.push(l))},o=[...n,...e];return o.filter(vn).forEach(s),o.filter(l=>l&&!vn(l)).forEach(s),t.slice(0,a)}function Qn(n,e,a={}){return n&&f(v(f({},n),{type:e}),a)}function Xn(n=[]){const e=["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 n.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 o=(a[r.type]||e).find(l=>!t.has(l))||r.type;return t.add(o),Qn(r,o,{variant:o===r.type?r.variant:void 0})})}function _(n=[],e=[]){const a=n.filter(Boolean),t=e.filter(Boolean),r=Xn([...a,...t]);return{leftPanels:r.slice(0,a.length),rightPanels:r.slice(a.length)}}function yn(n=[],e={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=e,s=n.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const o=s.slice(0,a),l=s.slice(a),i=(u,w)=>{var p,m;return{key:u,name:u,value:F(w.reduce((g,b)=>g+(Number(b.value)||0),0)),unit:((p=w[0])==null?void 0:p.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${w.length}项`}};return[i(t,o),l.length?i(r,l):null].filter(u=>u&&Number(u.value)>0)}function $(n,e,a){var l,i,u,w;if(e==="woodland"||!a)return n;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[e],r=((l=n==null?void 0:n.layerPanels)==null?void 0:l[a])||((i=n==null?void 0:n.layerPanels)==null?void 0:i[t]);if(!r)return n;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:n.leftPanels,o=(w=r.rightPanels)!=null&&w.length?r.rightPanels:n.rightPanels;return v(f({},n),{activeLayerKey:a||t,leftPanels:s,rightPanels:o,left:(s==null?void 0:s[0])||n.left,right:(o==null?void 0:o[0])||n.right})}function Zn(n,e=["areaWanMu","value","acreage","areaMu"]){for(const a of e){const t=R(n,[a]),r=q(t);if(r===void 0)continue;const s=String(a).toLowerCase(),o=String(R(n,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||o==="万亩"?r:s.includes("mu")||o==="亩"?r/1e4:r}}function Kn(n=[],e={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:o}=e,l=new Map;return n.forEach(i=>{if(s&&!s(i))return;const u=R(i,a),w=r(u,i),p=Zn(i,t);if(!w||p===void 0)return;const m=l.get(w)||{key:R(i,["key","code","townCode"])||w,name:w,value:0,unit:"万亩",source:[]};m.value+=p,m.source.push(i),l.set(w,m)}),Array.from(l.values()).map(i=>{const u=v(f({},i),{value:F(i.value)});return o?v(f({},u),{extra:o(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function _n({yieldCapacityRows:n,townAreaRows:e,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:o,edibleYieldRows:l,edibleMuRows:i,typeTownRows:u,levelTownRows:w,minTownRows:p}){const m=c("wetland-town-area","湿地面积分布",N(L(e),O),"column",{span:1,variant:"plain"}),g=c("wetland-type","湿地类型结构",N(a,O),"donut",{span:1}),b=c("wetland-level-proportion","湿地级占比",N(E(t),O),"donut",{span:1,variant:"ring"}),k=c("wetland-min-type","湿地优势小类",N(h(s,6),O),"bar",{span:1,variant:"raceBarNoWrap"}),M=c("wetland-yield-capacity","湿地产能结构",n,"structure",{span:1}),C=c("wetland-yield","湿地生产力分布",L(r),"line",{span:1,fixedType:!0}),S=c("wetland-edible-yield","可食鲜草产量",h(l,D.length),"column",{span:1,variant:"slim"}),z=c("wetland-mu-yield","湿地亩产效率",h(o,D.length),"heat",{span:1,limit:D.length}),V=c("wetland-level","湿地级别面积",t,"column",{span:1}),j=c("wetland-level-town","1级湿地分布",h(w,D.length),"bar",{span:1,variant:"distribution"}),I=c("wetland-type-town","湿地类型乡镇分布",h(u,D.length),"bar",{span:1,variant:"distribution"}),H=c("wetland-edible-mu","可食鲜草亩产",h(i,D.length),"bar",{span:1}),U=c("wetland-min-town","优势小类乡镇分布",h(p,D.length),"bar",{span:1,variant:"distribution"}),{leftPanels:x,rightPanels:B}=_([m,g,b,k],[S,C,z,M]);return{leftPanels:x,rightPanels:B,left:x[0],right:B[0],layerPanels:ne({townAreaPanel:m,typePanel:g,yieldCapacityPanel:M,yieldPanel:C,levelPanel:V,levelTownPanel:j,muYieldPanel:z,levelStructurePanel:b,typeTownPanel:I,minTypePanel:k,edibleYieldPanel:S,edibleMuPanel:H,minTownPanel:U})}}function ne(n={}){const{townAreaPanel:e,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:o,muYieldPanel:l,levelStructurePanel:i,typeTownPanel:u,minTypePanel:w,edibleYieldPanel:p,edibleMuPanel:m,minTownPanel:g}=n;return{"wetland-distribution":_([e,a,i,w],[p,r,l,t]),"wetland-level":_([i,s,o,a],[p,r,l,t]),"wetland-type":_([a,u,w,g],[p,r,m,t]),"wetland-yield":_([e,a,i,w],[p,r,l,t])}}function ee(n={}){const{leftPanels:e=[],rightPanels:a=[]}=n,t=_(e,a);return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Fn({townRows:n=[],typeRows:e=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:o=[],ageRows:l=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:w=[],regionRows:p=[],ownerRows:m=[],typeTownRows:g=[],qualityLevelRows:b=[],townConcentrationRows:k=yn(n,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:M=yn(e,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const C=c("woodland-town","林地面积分布",N(L(n),G),"column",{span:1,variant:"plain"}),S=c("woodland-type","林地类型结构",N(e,G),"donut",{span:1,variant:"ring"}),z=c("woodland-protection","公益林保护等级",N(E(t),G),"bar",{span:1,variant:"raceBarRelaxed"}),V=c("woodland-ownership","林地权属结构",N(E(r),G),"structure",{span:1}),j=c("woodland-quality","优势树种面积",h(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),I=c("woodland-origin","林地起源结构",E(o),"structure",{span:1}),H=c("woodland-age","林龄组结构",h(l,6),"column",{span:1,labelMode:"horizontal"}),U=c("woodland-canopy","郁闭度结构",N(h(i,6),G),"donut",{span:1,fixedType:!0}),x=c("woodland-area-scale","林地图斑规模",a,"column",{span:1}),B=c("woodland-forest-type","森林类别结构",h(u,6),"bar",{span:1}),Wn=c("woodland-manage-level","管护等级分布",h(w,6),"bar",{span:1}),ln=c("woodland-public-rank","公益林面积排行",h(p,6),"bar",{span:1,variant:"distribution"}),tn=c("woodland-owner-rank","权属单位排行",h(m,6),"bar",{span:1}),Ln=c("woodland-type-town","乡镇类型构成",h(g,6),"bar",{span:1,variant:"distribution"}),An=c("woodland-quality-level","林地质量等级",E(b),"donut",{span:1}),un=c("woodland-town-concentration","林地集中度",N(E(k),G),"structure",{span:1}),cn=c("woodland-type-concentration","类型集中度",N(E(M),G),"rose",{span:1}),{leftPanels:dn,rightPanels:wn}=_(W([C,S,z,V],[x,tn,B,j]),W([j,I,H,U],[x,tn,B,ln,un,cn]));return{leftPanels:dn,rightPanels:wn,left:dn[0],right:wn[0],layerPanels:ae({townPanel:C,typePanel:S,scalePanel:x,protectionPanel:z,ownershipPanel:V,qualityPanel:j,originPanel:I,agePanel:H,canopyPanel:U,forestTypePanel:B,manageLevelPanel:Wn,regionPanel:ln,ownerPanel:tn,typeTownPanel:Ln,qualityLevelPanel:An,townConcentrationPanel:un,typeConcentrationPanel:cn})}}function ae(n={}){const{townPanel:e,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:o,originPanel:l,agePanel:i,canopyPanel:u,forestTypePanel:w,manageLevelPanel:p,regionPanel:m,ownerPanel:g,typeTownPanel:b,qualityLevelPanel:k,townConcentrationPanel:M,typeConcentrationPanel:C}=n;return{"woodland-distribution":_(W([e,a,r,s],[t,w,g]),W([o,l,i,u],[t,g,m,M,C,k])),"woodland-protection":_(W([r,w,p,e],[a,s,t]),W([m,o,l,s],[g,a,t])),"woodland-type":_(W([a,e,b,t],[r,s,w]),W([o,l,r,s],[i,u,g,C])),"woodland-quality":_(W([o,l,i,u],[k,t,a]),W([e,a,r,s],[w,g,t])),"woodland-ownership":_(W([s,g,e,a],[t,r,o]),W([r,o,l,t],[w,i,u]))}}function te(n=[]){const e=on(n);return n.filter(a=>a.name&&Number(a.value)>0).map(a=>v(f({},a),{color:re(a.name),extra:F(sn(a.value,e))?`${F(sn(a.value,e))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function re(n=""){const e=String(n);return e.includes("未退化")?"#32DCFF":e.includes("重度")?"#FFE06B":e.includes("中度")?"#6EA8FF":"#24F6C4"}function Rn(n){return{status:"empty",core:nn([],n),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function K(n,e=[]){return n().catch(()=>e)}function Cn({core:n,townRows:e,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:o,forageRows:l,degradationRows:i}){const u=c("grassland-town","草地面积分布",L(e),"column",{span:1,variant:"plain"}),w=c("grassland-productivity-town","草地生产力分布",L(s),"line",{span:1,fixedType:!0}),p=c("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=c("grassland-edible-yield","可食鲜草产量分布",h(o,10),"column",{span:1,variant:"slim"}),g=c("grassland-degradation","草地退化统计",te(i),"bar",{span:1,variant:"degradation"}),b=c("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),k=c("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),M=c("grassland-forage-capacity","饲草供给",l,"bar",{span:1,variant:"capacity",fixedType:!0}),{leftPanels:C,rightPanels:S}=_([u,p,g,k],[m,w,b,M]);return{core:n,leftPanels:C,rightPanels:S,left:C[0],right:S[0],layerPanels:ee({leftPanels:C,rightPanels:S})}}function d(n=[]){return n.map((e,a)=>{const t=F(R(e,["percent","areaPercent","area_percent"])),r=F(R(e,["scaleValue","scale_value"]));return f(f(v(f({},e),{key:(e==null?void 0:e.key)||`${(e==null?void 0:e.name)||"overview"}-${a}`,value:F(e==null?void 0:e.value),unit:(e==null?void 0:e.unit)||""}),t===void 0?{}:{percent:t,extra:`${t}%`}),r===void 0?{}:{scaleValue:r})})}function se(n={}){const e=["#8AE611","#32DCFF","#2BD17E"],a=["#24F6C4","#FFE06B"],t=d(n.resourceAreaRows).map((b,k)=>v(f({},b),{color:e[k]})),r=d(n.grasslandClassRows).map((b,k)=>v(f({},b),{color:a[k]})),s=L(d(n.grasslandTownRows)),o=N(L(d(n.wetlandTownRows)),O),l=N(L(d(n.woodlandTownRows)),G),i=d(n.forageRows),u=d(n.woodlandQualityRows),w=N(d(n.wetlandTypeRows),O),p=[c("overview-grassland-distribution","草地分布",s,"column",{span:1,variant:"plain"}),c("overview-wetland-distribution","湿地分布",o,"line",{span:1,showValues:!0,tooltipOnHoverOnly:!0}),c("overview-woodland-distribution","林地分布",l,"column",{span:1,variant:"slim",lineOverlay:!0}),c("overview-forage-supply","饲草供给",i,"bar",{span:1,variant:"capacity"})],m=[c("overview-basic-general","基本/一般草原",r,"donut",{span:1,variant:"ring"}),c("overview-woodland-quality","林地质量",u,"heat",{span:1,limit:6}),c("overview-wetland-type","湿地类型结构",w,"rose",{span:1}),c("overview-resource-area","林草湿面积构成",t,"structure",{span:1})],g=[{key:"overview-resource-area-total",name:"林草湿面积",value:F(on(t)),unit:"万亩"},t[0]?v(f({},t[0]),{name:"草地面积"}):null,t[1]?v(f({},t[1]),{name:"湿地面积"}):null,t[2]?v(f({},t[2]),{name:"林地面积"}):null].filter(Boolean);return{status:"success",core:g,top:g,leftPanels:p,rightPanels:m,left:p[0],right:m[0],meta:n.meta||{}}}function oe(n){const e=[c("overview-grassland-distribution","草地分布",[],"column",{span:1,variant:"plain"}),c("overview-wetland-distribution","湿地分布",[],"line",{span:1,showValues:!0,tooltipOnHoverOnly:!0}),c("overview-woodland-distribution","林地分布",[],"column",{span:1,variant:"slim",lineOverlay:!0}),c("overview-forage-supply","饲草供给",[],"bar",{span:1,variant:"capacity"})],a=[c("overview-basic-general","基本/一般草原",[],"donut",{span:1,variant:"ring"}),c("overview-woodland-quality","林地质量",[],"heat",{span:1,limit:6}),c("overview-wetland-type","湿地类型结构",[],"rose",{span:1}),c("overview-resource-area","林草湿面积构成",[],"structure",{span:1})];return{status:"error",error:n,core:[],top:[],leftPanels:e,rightPanels:a,left:e[0],right:a[0]}}function ie(n={},e){const a=d(n.coreRows),t=nn(a.slice(0,3),"grassland"),r=Cn({core:t,townRows:L(d(n.townAreaRows)),grassTypeRows:d(n.grassTypeRows),grassLevelRows:d(n.grassLevelRows),healthRows:d(n.healthRows),productivityRows:L(d(n.productivityRows)),edibleYieldRows:d(n.edibleYieldRows),forageRows:d(n.forageRows),degradationRows:d(n.degradationRows)}),s=v(f({status:"success"},r),{top:[...t,a[3]].filter(o=>(o==null?void 0:o.value)!==void 0),meta:n.meta||{}});return $(s,"grassland",e)}function le(n,e){const a=Cn({core:[],townRows:[],grassTypeRows:[],grassLevelRows:[],healthRows:[],productivityRows:[],edibleYieldRows:[],forageRows:[],degradationRows:[]});return $(v(f({status:"error",error:n},a),{top:[]}),"grassland",e)}function ue(n={},e){const a=nn(d(n.coreRows),"wetland"),t=_n({yieldCapacityRows:d(n.yieldCapacityRows),townAreaRows:d(n.townAreaRows),typeRows:d(n.typeRows),levelRows:d(n.levelRows),yieldRows:d(n.yieldRows),minTypeRows:d(n.minTypeRows),muYieldRows:d(n.muYieldRows),edibleYieldRows:d(n.edibleYieldRows),edibleMuRows:d(n.edibleMuRows),typeTownRows:d(n.typeTownRows),levelTownRows:d(n.levelTownRows),minTownRows:d(n.minTownRows)});return $(v(f({status:"success",core:a,top:a},t),{meta:n.meta||{}}),"wetland",e)}function ce(n,e){const a=_n({yieldCapacityRows:[],townAreaRows:[],typeRows:[],levelRows:[],yieldRows:[],minTypeRows:[],muYieldRows:[],edibleYieldRows:[],edibleMuRows:[],typeTownRows:[],levelTownRows:[],minTownRows:[]});return $(f({status:"error",error:n,core:[],top:[]},a),"wetland",e)}function de(n={},e){const a=nn(d(n.coreRows),"woodland"),t=Fn({townRows:d(n.townRows),typeRows:d(n.typeRows),scaleRows:d(n.scaleRows),protectionRows:d(n.protectionRows),ownershipRows:d(n.ownershipRows),qualityRows:d(n.qualityRows),originRows:d(n.originRows),ageRows:d(n.ageRows),canopyRows:d(n.canopyRows),forestTypeRows:d(n.forestTypeRows),manageLevelRows:d(n.manageLevelRows),regionRows:d(n.regionRows),ownerRows:d(n.ownerRows),typeTownRows:d(n.typeTownRows),qualityLevelRows:d(n.qualityLevelRows),townConcentrationRows:d(n.townConcentrationRows),typeConcentrationRows:d(n.typeConcentrationRows)});return $(v(f({status:"success",core:a,top:a},t),{meta:n.meta||{}}),"woodland",e)}function we(n,e){const a=Fn({townRows:[],typeRows:[],scaleRows:[],protectionRows:[],ownershipRows:[],qualityRows:[],originRows:[],ageRows:[],canopyRows:[],forestTypeRows:[],manageLevelRows:[],regionRows:[],ownerRows:[],typeTownRows:[],qualityLevelRows:[],townConcentrationRows:[],typeConcentrationRows:[]});return $(f({status:"error",error:n,core:[],top:[]},a),"woodland",e)}function Re(n,e){return y(this,null,function*(){try{if(n==="overview"){const a=P(yield T("/screen2/forestGrassWet/overview"));return se(a)}if(n==="woodland"){const a=P(yield T("/screen2/forestGrassWet/woodland"));return de(a,e)}if(n==="grassland"){const a=P(yield T("/screen2/forestGrassWet/grassland"));return ie(a,e)}if(n==="wetland"){const a=P(yield T("/screen2/forestGrassWet/wetland"));return ue(a,e)}return Rn(n)}catch(a){return n==="overview"?oe(a):n==="woodland"?we(a,e):n==="grassland"?le(a,e):n==="wetland"?ce(a,e):v(f({},Rn(n)),{status:"error",error:a})}})}function be(n,e,a=null){return y(this,null,function*(){try{const t=yield Jn(n,e,a);return t||(n==="woodland"?e==="woodland-protection"?yield J({topicKey:n,layerKey:e,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>y(this,null,function*(){const r=P(yield rn("/woodland/protection")),s=pn((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return A({topicKey:n,layerKey:e,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):e==="woodland-type"?yield J({topicKey:n,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>y(this,null,function*(){const r=P(yield rn("/woodland/types")),s=pn((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return A({topicKey:n,layerKey:e,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):e==="woodland-quality"?yield J({topicKey:n,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):e==="woodland-ownership"?yield J({topicKey:n,layerKey:e,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield Yn(n,e,"林地面积排行"):n==="grassland"?e==="basic-grassland"?yield gn(n,e,"basicAreaWanMu","基本草原面积排行"):e==="grassland-level"?yield Q(n,e,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield gn(n,e,"totalAreaWanMu","草地面积排行"):n==="wetland"?e==="wetland-level"?yield Q(n,e,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):e==="wetland-type"?yield Q(n,e,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield Q(n,e,"/wetland_yield/distribution","湿地生产力排行","万吨"):A({topicKey:n,layerKey:e,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:n,layerKey:e,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{Re as a,be as b,ye as c,ve as g};