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