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