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
13 KiB
1 lines
13 KiB
var z=Object.defineProperty,C=Object.defineProperties;var O=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable;var M=(a,e,o)=>e in a?z(a,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[e]=o,s=(a,e)=>{for(var o in e||(e={}))L.call(e,o)&&M(a,o,e[o]);if(A)for(var o of A(e))F.call(e,o)&&M(a,o,e[o]);return a},c=(a,e)=>C(a,O(e));var y=(a,e,o)=>new Promise((n,t)=>{var u=d=>{try{p(o.next(d))}catch(g){t(g)}},r=d=>{try{p(o.throw(d))}catch(g){t(g)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(u,r);p((o=o.apply(a,e)).next())});import{r as f,n as m}from"./index-25a05535-1786541781548.js";import{N as S,d as D}from"./townshipBoundaries-cb449981-1786541781548.js";const R="/openApi";function X(a){return y(this,null,function*(){const o=yield f(`${R}/screen2/ecologicalProtection/${a==="natural-protected-area"?"naturalProtectedArea":"redline"}`,{method:"GET",timeout:3e4}),n=m(o);return V(Array.isArray(n)?n[0]||{}:n||{})})}const J=["topRows","coreRows","townRows","townResourceRows","townProductivityRows","townYakRows","townHouseholdRows","townJobRows","zoningRows","balanceGaugeRows","villageRows"];function K(){return y(this,null,function*(){const a=yield f(`${R}/screen2/ecologicalProtection/nationalPark`,{method:"GET",timeout:3e4}),e=m(a),o=Array.isArray(e)?e[0]||{}:e||{};return J.reduce((n,t)=>(n[t]=_(o[t]),n),s({},o))})}const I=["topRows","yearRows","categoryRows","measureRows","townRows","projectRows"];function ee(){return y(this,null,function*(){const a=yield f(`${R}/screen2/ecologicalProtection/restoration`,{method:"GET",timeout:3e4}),e=m(a),o=Array.isArray(e)?e[0]||{}:e||{};return I.reduce((n,t)=>(n[t]=_(o[t]),n),s({},o))})}const G=["topRows","engineeringTypes","projectFilterModes","recentYearOptions","townRows"];function ae(){return y(this,null,function*(){const a=yield f(`${R}/screen2/ecologicalProtection/engineeringAnalysis`,{method:"GET",timeout:3e4}),e=m(a),o=Array.isArray(e)?e[0]||{}:e||{};return G.reduce((n,t)=>(n[t]=_(o[t]),n),s({},o))})}function _(a){if(Array.isArray(a))return a;if(!a||typeof a!="object"||typeof a.value!="string")return[];try{const e=JSON.parse(a.value);return Array.isArray(e)?e:[]}catch(e){return console.warn("Failed to parse ecological-protection JSON rows",e),[]}}const B={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function V(a={}){return!a||typeof a!="object"?{}:Object.entries(a).reduce((e,[o,n])=>{e[o]=n;const t=B[o];return t&&e[t]===void 0&&(e[t]=n),e},{})}const P=(a,e)=>a.reduce((o,n)=>o+Number(n[e]||0),0),l=(a,e=2)=>Number(Number(a||0).toFixed(e)),Y=["ecological-redline","natural-protected-area"];function $(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(o){e=[]}return(Array.isArray(e)?e:[]).map((o,n)=>({key:o.key||`${o.name||"统计项"}-${n}`,name:o.name||`统计项${n+1}`,value:l(o.value,2),unit:o.unit||"万亩",color:o.color,extra:o.extra||"",icon:o.icon||""}))}function T(a,e,o,n,t=""){return{key:a,name:e,value:l(o,n==="%"?1:2),unit:n,extra:t}}function k(a=[],e=P(a,"value")){return a.map(o=>c(s({},o),{extra:o.extra||`占比 ${l(Number(o.value||0)/Math.max(e,1)*100,1)}%`}))}function q(a=[],e=!1){const o=new Map(D.map((n,t)=>[n,t]));return[...a].sort((n,t)=>{if(e)return Number(t.value||0)-Number(n.value||0);const u=o.has(n.name)?o.get(n.name):999,r=o.has(t.name)?o.get(t.name):999;return u-r||Number(t.value||0)-Number(n.value||0)})}function b(a={},e,o,n="万亩",t={}){const u=q($(a[e]),t.sortByValue===!0).filter(p=>Number(p.value)>0).map(p=>c(s({},p),{unit:p.unit||n}));if(u.length)return t.withPercent===!1?u:k(u);const r=Number(a[o]||0);return r>0?[T(`${e}-total`,"全县合计",r,n)]:[]}function h(a={},e,o,n,t="万亩",u=6){const r=$(a[e]).filter(d=>Number(d.value)>0).slice(0,u).map(d=>c(s({},d),{unit:d.unit||t}));if(r.length)return k(r);const p=Number(a[o]||0);return p>0?[T(`${e}-total`,n,p,t)]:[]}function j(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}function x(a={}){return a&&typeof a=="object"?a:{}}function oe(a={},e="ecological-redline"){a=x(a);const o=b(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),n=b(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),t=b(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=b(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),r=h(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),p=h(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),d=h(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),g=k([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(w=>Number(w.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:o},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"rank",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:t},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(j),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:r},{key:`${e}-grassland-level`,title:"草原级占比",type:"rose",span:1,rows:p},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:d},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:g}].filter(j)}}function ne(a={},e="ecological-redline"){return a=x(a),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:l(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:l(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:l(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:l(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}function i(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(o){e=[]}return(Array.isArray(e)?e:[]).map((o,n)=>c(s({},o),{key:o.key||`ecological-${o.name||o.zh||n}`,name:o.name||o.zh||`统计项${n+1}`,value:Number.isFinite(Number(o.value))?l(o.value,2):o.value}))}function re(a={}){return i(a.topRows).map((e,o)=>s({icon:e.icon||(o%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},e))}function te(a={}){return i(a.coreRows)}function W(a={}){return i(a.townRows)}function E(a=[]){const e=P(a,"value");return a.map(o=>c(s({},o),{extra:o.extra||`占比 ${l(Number(o.value||0)/Math.max(e,1)*100,1)}%`}))}function se(a={}){const e=W(a),o=new Map(e.map(w=>[w.name,w])),n=i(a.townResourceRows),t=i(a.townProductivityRows),u=E(i(a.townYakRows)),r=E(i(a.zoningRows).map(w=>c(s({},w),{color:w.name==="核心保护区"?S.core.fillColor:w.name==="一般控制区"?S.general.fillColor:w.color}))),p=i(a.townHouseholdRows).map(w=>c(s({},w),{extra:`公益岗位 ${Number(w.ecologyJobs||0)}户`})),d={麦洼乡:"#24f6c4",瓦切镇:"#32dcff",色地镇:"#8bf7ff"},g=i(a.townJobRows).map(w=>{var v;return c(s({},w),{color:d[w.name],extra:`牧户 ${Number(((v=o.get(w.name))==null?void 0:v.householdCount)||0)}户`})});return{left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:n},{key:"park-town-productivity",title:"草地湿地生产力",type:"line",fixedType:!0,labelMode:"horizontal",showValues:!0,unit:"万吨",rows:t},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:u},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:i(a.balanceGaugeRows)}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:r},{key:"park-town-household",title:"牧户分布",type:"split",rows:p},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:g}]}}function le(a={}){return i(a.topRows).map((e,o)=>s({icon:e.icon||(o%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},e))}function ie(a={}){return i(a.topRows).map((e,o)=>s({icon:e.icon||(o%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},e))}function ue(a={}){return i(a.engineeringTypes).map(e=>c(s({},e),{value:Number(e.baseCount||0),unit:"个图斑",extra:`候选面积 ${l(e.baseAreaWanMu,2)}万亩`}))}function ce(a={}){return i(a.townRows).map(e=>c(s({},e),{value:Number(e.candidateFeatureCount||0),unit:"个图斑",extra:`候选面积 ${l(e.candidateAreaWanMu,2)}万亩`}))}function N(a={}){const e=Number(a.areaWanMu||0),o=Number(a.lengthKm||0);return e>0?{value:l(e,2),unit:"万亩",metric:"治理面积"}:o>0?{value:l(o,2),unit:"公里",metric:"工程长度"}:{value:Number(a.subjectFeatureCount||0),unit:"个",metric:"主体要素"}}function Q(a={}){return i(a.projectRows).map((e,o)=>{const n=N(e),t=String(e.measureTypes||""),u=String(e.townships||""),r=e.year||"未知";return c(s({},e),{index:o+1,name:e.projectName,category:e.projectCategory,year:r,areaWanMu:l(e.areaWanMu,4),lengthKm:l(e.lengthKm,2),measure:t,townships:u,subjectFeatureCount:Number(e.subjectFeatureCount||0),value:n.value,unit:n.unit,metric:n.metric,extra:[r,t].filter(Boolean).join(" / "),searchText:[e.projectName,e.projectCategory,r,t,u].filter(Boolean).join(" ")})})}function de(a={}){const e=i(a.yearRows),o=i(a.townRows),n=i(a.categoryRows),t=i(a.measureRows),u=Q(a);return{left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:e.map(r=>c(s({},r),{value:l(r.areaWanMu,2),unit:"万亩",extra:`${Number(r.projectCount||0)}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,rows:o.map(r=>c(s({},r),{value:l(r.areaWanMu,2),unit:"万亩",extra:`${l(r.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:n.map(r=>c(s(s({},r),N(r)),{extra:`${Number(r.subjectFeatureCount||0)}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"bar",variant:"rankBar",labelMode:"horizontal",rows:e.filter(r=>Number(r.lengthKm)>0).map(r=>c(s({},r),{value:l(r.lengthKm,2),unit:"公里",extra:`${Number(r.projectCount||0)}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:t.slice(0,8).map(r=>c(s(s({},r),N(r)),{extra:`${Number(r.projectCount||0)}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"heat",labelMode:"horizontal",rows:e.filter(r=>r.name!=="未知").map(r=>c(s({},r),{value:Number(r.projectCount||0),unit:"个",extra:`${l(r.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:u}]}}const we={left:[],right:[]};function pe(a,e={}){return Y.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:i(e.townRows).map(o=>({name:o.name,value:l(o.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:W(e).map(o=>({name:o.name,value:l(o.protectedAreaWanMu,2),unit:"万亩",metricLabel:"划定面积"}))}}export{se as a,oe as b,de as c,we as d,Y as e,ne as f,pe as g,re as h,le as i,ae as j,ee as k,K as l,X as m,te as n,W as o,Q as p,ie as q,ue as r,ce as s};
|
|
|