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.
1 lines
50 KiB
1 lines
50 KiB
var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},R=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=u=>{try{i(a.next(u))}catch(o){r(o)}},l=u=>{try{i(a.throw(u))}catch(o){r(o)}},i=u=>u.done?t(u.value):Promise.resolve(u.value).then(s,l);i((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-bb11a8b6-1784378651390.js";import{g as Oe}from"./geoserver-b3bc784b-1784378651390.js";import{d as U,e as Ye,g as sn}from"./townshipBoundaries-a3a8b9c1-1784378651390.js";const ln="/openApi",Z=756.37,_e=297.29,E=291.82,un=16.47,on=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(ie),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Ke(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Ke(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Ke(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Hn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function x(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=x(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=x(e),r=x(n),s=x(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const i=w(r/l*t);return[i,w(Math.max(t-i,0))]}function G(e,n){const a=x(e),t=x(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var i,u;return R(b(b({},s),e[l]||{}),{name:((i=e[l])==null?void 0:i.name)||s.name,unit:((u=e[l])==null?void 0:u.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=R(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:E,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,i=e.map((u,o)=>{const c=w(d(u,t)),v={key:d(u,["key","code","townCode"])||`${d(u,a)||o}-${o}`,name:d(u,a)||`第${o+1}项`,value:c,unit:r,percent:w(d(u,["percent","areaPercent","basicRatio","generalRatio"])),source:u};return l?R(b({},v),{extra:l(u)}):v}).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0));return Number.isFinite(s)?i.slice(0,s):i}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((i,u)=>{const o=d(i,t),c=w(r==="万亩"?x(o)/1e4:o),v=d(i,a)||`第${u+1}项`;return{key:d(i,["key","code"])||`${v}-${u}`,name:v,value:c,unit:r,source:i}}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(i=>[i.areaName,i]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:i=>{const u=l.get(i.areaName),o=w(d(u,["yield","value"])),c=d(u,["unit"])||"斤";return s&&o!==void 0?`亩产 ${o} ${c}`:""}})}function ie(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(ie(a==null?void 0:a.name)),s=n.get(ie(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Ve(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Ve(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Se(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const i=ie(d(s,a)),u=w(d(s,t));return!i||u===void 0?null:{key:d(s,["key","code","townCode"])||`${i}-${l}`,name:i,value:u,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const i=ie(d(l,a)),u=x(d(l,t));if(!i||u===void 0)return;const o=s.get(i)||{key:d(l,["townCode","code"])||i,name:i,value:0,unit:d(l,["unit"])||r,source:[]};o.value+=u,o.source.push(l),s.set(i,o)}),Array.from(s.values()).map(l=>R(b({},l),{value:w(l.value)})).sort((l,i)=>(Number(i.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const i=r.filter(u=>(u==null?void 0:u.name)&&u.value!==void 0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0)).map((u,o)=>R(b({},u),{unit:u.unit||t,rank:o+1}));return{status:i.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:i}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const i=yield Oe(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(o=>{const c=o.properties||{},v=String(c.xiang||""),m=Ye(v),y=x(c.acreage);if(!m||y===void 0)return;const N=u.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(u.values()).map(o=>R(b({},o),{value:w(o.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function $e(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return ie(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ye(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],i=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],u=yield Oe(a.layerName,{propertyName:i,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),o=new Map;return((u==null?void 0:u.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=x(d(v,l));if(!m||y===void 0)return;const N=o.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,o.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(o.values()).map(c=>R(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>R(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>R(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function Rn(e,n,a){return f(this,null,function*(){const t=Se(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function hn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(i)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Se(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const i=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(i)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?Rn(e,n,a):e==="grassland"&&n==="grassland-type"?hn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function L(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const i=[],u=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y<a-1&&(N===void 0||N>=t)?i.push(m):u.push(m)}),!u.length)return i;const o=u.reduce((m,y)=>m+(Number(y.value)||0),0);return[...i,{key:`${r}-${u.length}`,name:r,value:w(o),unit:((c=u[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(o,l))}%`}]}function K(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=K(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return R(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,i=x(n);if(i===void 0)return e;const u=K(e),o=w(i-u);if(o===void 0||o<=.01)return e;const c=[...e,{key:t,name:r,value:o,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=x(n),t=K(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const i=l===e.length-1,u=w(i?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(u)||0,R(b({},s),{value:u})})}function Y(e=[],n=[]){return n.length?e.map((a,t)=>R(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function De(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function B(e=[],n=[],a=4){const t=[],r=new Set,s=i=>{!i||r.has(i.key)||(r.add(i.key),t.push(i))},l=[...e,...n];return l.filter(De).forEach(s),l.filter(i=>i&&!De(i)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(R(b({},e),{type:n}),a)}function Wn(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(i=>!t.has(i))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function I(e=[],n=[]){const a=e.filter(Boolean),t=n.filter(Boolean),r=Wn([...a,...t]);return{leftPanels:r.slice(0,a.length),rightPanels:r.slice(a.length)}}function Ie(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(o=>(o==null?void 0:o.name)&&Number(o.value)>0);if(!s.length)return[];const l=s.slice(0,a),i=s.slice(a),u=(o,c)=>{var v,m;return{key:o,name:o,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[u(t,l),i.length?u(r,i):null].filter(o=>o&&Number(o.value)>0)}function ue(e,n,a){var i,u,o,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((i=e==null?void 0:e.layerPanels)==null?void 0:i[a])||((u=e==null?void 0:e.layerPanels)==null?void 0:u[t]);if(!r)return e;const s=(o=r.leftPanels)!=null&&o.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return R(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=x(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=u=>u,filter:s,extra:l}=n,i=new Map;return e.forEach(u=>{if(s&&!s(u))return;const o=d(u,a),c=r(o,u),v=Xe(u,t);if(!c||v===void 0)return;const m=i.get(c)||{key:d(u,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(u),i.set(c,m)}),Array.from(i.values()).map(u=>{const o=R(b({},u),{value:w(u.value)});return l?R(b({},o),{extra:l(o)}):o}).filter(u=>Number(u.value)>0).sort((u,o)=>(Number(o.value)||0)-(Number(u.value)||0))}function ze(e){return String(e||"").replace(/草原/g,"湿地")}function xn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=x(e==null?void 0:e.xc))!=null?l:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(i=>i.value!==void 0)}function An(e={},n=[],a=[]){var u;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(u=x(e==null?void 0:e.xc))!=null?u:K(a),s=x(e==null?void 0:e.edibleXc),l=K(n),i=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return R(b({},e),{xc:w(r),edibleXc:w(i),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:i,edibleMuRows:u,typeTownRows:o,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",Y(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",Y(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",Y(D(t),de),"donut",{span:1,variant:"ring"}),_=p("wetland-min-type","湿地优势小类",Y(L(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),M=p("wetland-yield-capacity","湿地产能结构",xn(e,r),"structure",{span:1}),W=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),A=p("wetland-edible-yield","可食鲜草产量",L(i,U.length),"column",{span:1,variant:"slim"}),C=p("wetland-mu-yield","湿地亩产效率",L(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),F=p("wetland-level-town","1级湿地分布",L(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",L(o,U.length),"bar",{span:1,variant:"distribution"}),O=p("wetland-edible-mu","可食鲜草亩产",L(u,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",L(v,U.length),"bar",{span:1,variant:"distribution"}),{leftPanels:V,rightPanels:z}=I([m,y,N,_],[A,W,C,M]);return{leftPanels:V,rightPanels:z,left:V[0],right:z[0],layerPanels:Ln({townAreaPanel:m,typePanel:y,yieldCapacityPanel:M,yieldPanel:W,levelPanel:$,levelTownPanel:F,muYieldPanel:C,levelStructurePanel:N,typeTownPanel:q,minTypePanel:_,edibleYieldPanel:A,edibleMuPanel:O,minTownPanel:J})}}function Ln(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:i,levelStructurePanel:u,typeTownPanel:o,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":I([n,a,u,c],[v,r,i,t]),"wetland-level":I([u,s,l,a],[v,r,i,t]),"wetland-type":I([a,o,c,y],[v,r,m,t]),"wetland-yield":I([n,a,u,c],[v,r,i,t])}}function Fn(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t=I(n,a);return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:i=[],canopyRows:u=[],forestTypeRows:o=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:_=Ie(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:M=Ie(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const W=p("woodland-town","林地面积分布",Y(me(e),ee),"column",{span:1,variant:"plain"}),A=p("woodland-type","林地类型结构",Y(n,ee),"donut",{span:1,variant:"ring"}),C=p("woodland-protection","公益林保护等级",Y(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",Y(D(r),ee),"structure",{span:1}),F=p("woodland-quality","优势树种面积",L(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),O=p("woodland-age","林龄组结构",L(i,6),"column",{span:1,labelMode:"horizontal"}),J=p("woodland-canopy","郁闭度结构",Y(L(u,6),ee),"donut",{span:1,fixedType:!0}),V=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),z=p("woodland-forest-type","森林类别结构",L(o,6),"bar",{span:1}),S=p("woodland-manage-level","管护等级分布",L(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",L(v,6),"bar",{span:1,variant:"distribution"}),T=p("woodland-owner-rank","权属单位排行",L(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",L(y,6),"bar",{span:1,variant:"distribution"}),Re=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",Y(D(_),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",Y(D(M),ee),"rose",{span:1}),{leftPanels:Le,rightPanels:Fe}=I(B([W,A,C,$],[V,T,z,F]),B([F,q,O,J],[V,T,z,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Cn({townPanel:W,typePanel:A,scalePanel:V,protectionPanel:C,ownershipPanel:$,qualityPanel:F,originPanel:q,agePanel:O,canopyPanel:J,forestTypePanel:z,manageLevelPanel:S,regionPanel:ae,ownerPanel:T,typeTownPanel:X,qualityLevelPanel:Re,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Cn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:i,agePanel:u,canopyPanel:o,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:_,townConcentrationPanel:M,typeConcentrationPanel:W}=e;return{"woodland-distribution":I(B([n,a,r,s],[t,c,y]),B([l,i,u,o],[t,y,m,M,W,_])),"woodland-protection":I(B([r,c,v,n],[a,s,t]),B([m,l,i,s],[y,a,t])),"woodland-type":I(B([a,n,N,t],[r,s,c]),B([l,i,r,s],[u,o,y,W])),"woodland-quality":I(B([l,i,u,o],[_,t,a]),B([n,a,r,s],[c,y,t])),"woodland-ownership":I(B([s,y,n,a],[t,r,l]),B([r,l,i,t],[c,u,o]))}}function En(e=cn){const n=e.map(s=>R(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-K(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const i=r.indexOf(s.name),u=r.indexOf(l.name);return(i===-1?99:i)-(u===-1?99:u)}),Z)}function $n(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=x(n==null?void 0:n.xc))!=null?r:K(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Dn(e={},n=[]){return R(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function In(e=[]){const n=K(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>R(b({},a),{color:zn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function zn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var i;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(i=x(e==null?void 0:e.xc))!=null?i:K(n),r=x(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(u=>Number(u.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(u=>u.value!==void 0)}function We(){return{levelRows:En(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function Be(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),i=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),u=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),_=Ze({core:r,townRows:s,grassTypeRows:i,grassLevelRows:v,healthRows:m,productivityRows:u,edibleYieldRows:N,forageRows:y,degradationRows:c}),M=R(b({status:"fallback"},_),{top:He(r,{xc:_e,unit:"万吨"},l)});return ue(M,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:E,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],E,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],i=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),E),u=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),o=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:un,unit:"万吨"},townAreaRows:i,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:u,muYieldRows:l,edibleYieldRows:o,edibleMuRows:c,typeTownRows:i,levelTownRows:i,minTownRows:i}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ue(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),o=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},o);return ue(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function h(e,n=[]){return e().catch(()=>n)}function he(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=u=>u,max:l=Number.POSITIVE_INFINITY}=n,i=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(u=>R(b({},u),{name:s(u.name)}));return D(i).filter(u=>Number(u.value)>0).slice(0,l)}function Bn(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function Gn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:i,degradationRows:u}){const o=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",L(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",In(u),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),_=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),M=p("grassland-forage-capacity","饲草供给",i,"bar",{span:1,variant:"capacity",fixedType:!0}),{leftPanels:W,rightPanels:A}=I([o,v,y,_],[m,c,N,M]);return{core:e,leftPanels:W,rightPanels:A,left:W[0],right:A[0],layerPanels:Fn({leftPanels:W,rightPanels:A})}}function On(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],i=n.edibleRows||[],u=n.edibleMuRows||[],o=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),E,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),_=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),M=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(T=>R(b({},T),{name:ze(T.name)})),E,{key:"wetland-level-unclassified",name:"未分级湿地"}),W=se(le(gn(l),E,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),A=ge(i,u,{showMuYieldExtra:!1}),C=we(u,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(u==null?void 0:u[0],["unit"])||"斤",max:U.length}),$=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),F=ce(re(o,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.length)||0}类`}}),E),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),E),O=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:T=>ze(d(T,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:T=>{var X;return`${((X=T.source)==null?void 0:X.filter(Re=>Xe(Re,["acreage","areaWanMu","value"])>0).length)||0}型`}}),E),V=An(m,A,N),z=ne(a,"wetland"),S=M.find(T=>/^1级/.test(T.name))||M[0],ae=je({yieldSummary:V,townAreaRows:$,typeRows:y,levelRows:M,yieldRows:N,minTypeRows:W,muYieldRows:_,edibleYieldRows:A,edibleMuRows:C,typeTownRows:F,levelTownRows:O.length?O:q,minTownRows:J});return b({core:z,top:[z[0],z[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:S==null?void 0:S.value,unit:(S==null?void 0:S.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(R(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function oe(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function qn(e,n,a){var M,W,A,C,$;const t=oe(e,["grassland-area","grassland-total-area","草地面积"]),r=oe(n,["wetland-area","湿地面积"]),s=oe(a,["woodland-area","林地总面积"]),[l,i]=Me(Z,637.13,119.31),u=oe(e,["basic-grassland","basic-grassland-area","基本草原"]),o=oe(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((M=u==null?void 0:u.value)!=null?M:l),unit:(u==null?void 0:u.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((W=o==null?void 0:o.value)!=null?W:i),unit:(o==null?void 0:o.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((A=t==null?void 0:t.value)!=null?A:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((C=r==null?void 0:r.value)!=null?C:E),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:on),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","line",{showValues:!0,tooltipOnHoverOnly:!0}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"slim",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],_=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(K(v)),unit:"万亩"},R(b({},v[0]),{name:"草地面积"}),R(b({},v[1]),{name:"湿地面积"}),R(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(F=>(F==null?void 0:F.status)==="error")?"fallback":"success",core:_,top:_,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return qn(t,r,s)}if(e==="woodland"){const[t,r,s,l,i]=yield Promise.all([Q("/woodland/distribution").then(g),h(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),h(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),h(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),h(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),u=ne(wn(t),e),o=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[u[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,o)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>ve(T,o)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>ve(T,o)}),_=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),M=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),W=k((i==null?void 0:i.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:T=>ve(T,o)}),A=k((i==null?void 0:i.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),C=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),F=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:T=>ve(T,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),O=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:T=>{const X=w(d(T,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(T)}}),V=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),z=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),S=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:_,ownershipRows:A,qualityRows:M,originRows:q,ageRows:O,canopyRows:J,forestTypeRows:C,manageLevelRows:$,regionRows:F,ownerRows:W,typeTownRows:z,qualityLevelRows:V}),ae=b({status:"success",core:u,top:v},S);return ue(ae,e,n)}if(e==="grassland"){const[t,r,s,l,i,u,o,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),h(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),h(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return $n()}),We()),h(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),h(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),h(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=i.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),_=Dn(r,N),M=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),W=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),A=he(Qe(u||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Ve}),C=he(o||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Bn}),$=he(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:Gn}),F=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:W,grassTypeRows:A,grassLevelRows:C,healthRows:$,productivityRows:M,edibleYieldRows:F,forageRows:Je(_,N),degradationRows:m}),O=R(b({status:"success"},q),{top:He(y,_,N)});return ue(O,e,n)}if(e==="wetland"){const[t,r,s,l,i,u,o,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),h(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),_=On(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:i,minTypeRows:u,edibleRows:o,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),M=R(b({status:"success"},_),{left:_.leftPanels[0],right:_.rightPanels[0]});return ue(M,e,n)}return Be(e,n)}catch(t){return R(b({},Be(e,n)),{status:"error",error:t})}})}function Jn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield $e(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield $e(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{Un as a,Jn as b,Hn as c,ke as g};
|
|
|