You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
hy-screen-2.0/docs/assets/openApi-ed147efe-1786523779...

1 lines
29 KiB

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