var ln=Object.defineProperty,cn=Object.defineProperties;var dn=Object.getOwnPropertyDescriptors;var Tt=Object.getOwnPropertySymbols;var fn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var Bt=(u,p,y)=>p in u?ln(u,p,{enumerable:!0,configurable:!0,writable:!0,value:y}):u[p]=y,k=(u,p)=>{for(var y in p||(p={}))fn.call(p,y)&&Bt(u,y,p[y]);if(Tt)for(var y of Tt(p))gn.call(p,y)&&Bt(u,y,p[y]);return u},C=(u,p)=>cn(u,dn(p));var w=(u,p,y)=>new Promise((re,K)=>{var M=T=>{try{S(y.next(T))}catch(m){K(m)}},pe=T=>{try{S(y.throw(T))}catch(m){K(m)}},S=T=>T.done?re(T.value):Promise.resolve(T.value).then(M,pe);S((y=y.apply(u,p)).next())});import{k as pn,a8 as yn,g,q as hn,h as mn,w as vn,o as L,c as G,C as kn,u as $,a as A,j as se,b,x as ee,n as Rt,F as bn,y as Pn,K as et,t as zt,f as _n,d as h,A as xe}from"./index-1786807848259.js";import{g as wn,l as Et,E as An}from"./live-scene-1-60a25a2c-1786807848259.js";import{_ as te}from"./index-0eddac6c-1786807848259.js";import{p as Nn,i as Cn,q as Sn,M as In,n as Fn,r as xn}from"./index-80cb981f-1786807848259.js";import{_ as Ln}from"./LayerPanel-e92912ff-1786807848259.js";import{a as oe,_ as Mn}from"./FeatureInfoPanel-9b5cdecf-1786807848259.js";import{q as Vt,r as Tn,s as Bn}from"./screen2Standard-03f7f908-1786807848259.js";import{c as Rn,F as zn}from"./featurePanelLayout-f3191169-1786807848259.js";import"./_plugin-vue_export-helper-c27b6911-1786807848259.js";import"./index-db918426-1786807848259.js";const En={}.VITE_OPEN_API_BASE||"/openApi";function Vn(u,p){return/^https?:\/\//.test(p)?p:`${u}${p.startsWith("/")?p:`/${p}`}`}function Gn(u){if((u==null?void 0:u.success)===!1||(u==null?void 0:u.code)!==void 0&&![0,200,"0","200"].includes(u.code)){const y=new Error((u==null?void 0:u.msg)||(u==null?void 0:u.message)||"接口请求失败");throw y.code=u==null?void 0:u.code,y}return yn(u)}function ge(u,p,y={}){return pn(Vn(En,u),{params:p,timeout:y.timeout||2e4}).then(Gn)}function Me(u){return Array.isArray(u)?u:Array.isArray(u==null?void 0:u.rows)?u.rows:Array.isArray(u==null?void 0:u.list)?u.list:Array.isArray(u==null?void 0:u.data)?u.data:u!=null&&u.data?Me(u.data):u!=null&&u.result?Me(u.result):[]}function $n(u){return u==null||u===""?Promise.resolve([]):ge(`/screen2/pasture-management/pastures/${encodeURIComponent(u)}/grasslands`).then(Me)}function On(u){return u?ge("/screen2/pasture-management/grassland/click",{wkt:u}).then(p=>p||null):Promise.resolve(null)}function Ot(u){return ge(`/screen2/pasture-management/pastures/${encodeURIComponent(u)}`).then(p=>p||{})}function jn(u){return Ot(u)}function Wn(){return ge("/screen2/pasture-management/pastures",{pageSize:300}).then(Me)}function Un(){return w(this,null,function*(){const[u,p]=yield Promise.all([ge("/screen2/pasture-management/dashboard",{year:2024}),Wn()]);return{core:(u==null?void 0:u.core)||[],distribution:(u==null?void 0:u.distribution)||[],age:(u==null?void 0:u.demographics)||[],online:(u==null?void 0:u.online)||[],grassland:(u==null?void 0:u.grassland)||[],list:p}})}const Dn={class:"pasture-management"},Kn={key:0,class:"pasture-map-loading"},Yn={class:"pasture-management-ui"},Hn={class:"pasture-left"},qn={class:"pasture-side-stack is-left"},Zn={class:"pasture-video-monitor"},Jn=["disabled"],Xn=["onClick"],Qn={key:1,class:"pasture-video-play"},ea={key:2,class:"pasture-video-loading"},ta={key:3,class:"pasture-video-error"},ra={class:"pasture-video-point-name"},na=["disabled"],aa={class:"pasture-right"},sa={class:"pasture-side-stack is-right"},oa=["aria-label"],Le="pasture-grassland-boundary",Gt="#46dce8",ua=12e3,la="/external/satellite/{z}/{x}/{y}.png",fe="#30DCFF",$t="草场详情",Pa={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(u,{expose:p,emit:y}){const re=u,K=y,M=Vt.sideCardWidth;Vt.sideCardGap;const pe=h(typeof window=="undefined"?1080:window.innerHeight),S=g(()=>Tn(pe.value)),T=g(()=>Bn(S.value,2)),m=h(null),ue=h(!1),tt=h(0);let ye=0;const O=h(null),le=h(!1),he=h(!1),ne=h(null),j=h({core:[],distribution:[],age:[],online:[],grassland:[]}),Y=h([]),H=h([]),Te=h(""),jt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],x=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Wt=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),Be=Fn,Ut=Vr("v3:resource_grassland",fe),Re={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Et,playUrl:"",hdPlayUrl:"",token:""},ze=h(null),B=h([]),me=h(0),q=h(!1),R=h(!1),I=h("");let W=!1,ae=0,z=null,N=null,Ee=!1,Z=0,ve=null,ke=0;const Dt={},Kt={},Yt=an(xn),Ve=g(()=>[{key:Le,sourceType:"wms",renderMode:"tile",url:"/geoserver/v3/wms",layerName:"v3:resource_grassland",name:"草场边界",styles:"",sldBody:Ut,color:fe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:fe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:Be,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:fe,strokeColor:fe,selectable:!1}]},{key:"pasture-yak-recognition",sourceType:"wmts",renderMode:"tile",url:"/geoserver/gwc/service/wmts",layerName:"v3:yak_recognition",name:"牦牛识别",style:"v3:yak_recognition",styles:"v3:yak_recognition",format:"image/png",tileMatrixSetID:"EPSG:900913",minimumLevel:7,maximumLevel:21,bounds:[101.88735023598684,32.187424325001956,103.32644952301061,33.27125655371905],color:"#FFE600",fillColor:"rgba(255, 230, 0, 0)",strokeColor:"#FFE600",glowColor:"rgba(255, 230, 0, 0.42)",zIndex:46,opacity:.92,brightness:1.08,contrast:1.18,saturation:1.42,gamma:.95,mapView:{targetLngLat:Be,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-yak-recognition",name:"牦牛识别(757,361)",fillColor:"#FFE600",strokeColor:"#FFF58A",selectable:!1}]}]),Ge=g(()=>Array.isArray(H.value)?H.value.map(String).filter(Boolean):H.value?[String(H.value)]:[]),be=g(()=>{const e=new Set(Ge.value);return Ve.value.filter(t=>e.has(t.key))}),rt=g(()=>be.value[0]||null),ie=g(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Te.value)||null),nt=g(()=>be.value.flatMap(e=>e.legends||[])),at=g(()=>{const e=Math.max(1,Ve.value.length),t=Math.max(1,Math.ceil(nt.value.length/2)),r=e*34+Math.max(0,e-1)*5;return Math.max(196,Math.min(300,72+r+30+t*28))});function Ht(e){var r;return e?!(e.legends||[]).some(n=>{var s;return n.key===((s=ie.value)==null?void 0:s.key)})||!((r=ie.value)!=null&&r.cqlFilter)?e:C(k({},e),{cqlFilter:ie.value.cqlFilter,activeLegend:ie.value,name:ie.value.name||e.name}):null}const st=g(()=>be.value.map(Ht).filter(Boolean)),Pe=g(()=>st.value[0]||null),qt=g(()=>!!ne.value),Zt=zn,ot=g(()=>Rn({point:ne.value?xr(ne.value):null,rowCount:O.value?kt(O.value):0,loading:he.value,empty:le.value||!O.value})),Jt=g(()=>ot.value.height),Xt=g(()=>ot.value.style),Qt=g(()=>{var t;const e=((t=O.value)==null?void 0:t.properties)||{};return e.detailMode==="resource"?[{key:"recognizedYakCount",label:"牦牛数量",value:E(e.recognizedYakCount,"头",0)},{key:"acreage",label:"草地面积",value:E(e.acreage,"亩",2)},{key:"wetlandAreaMu",label:"湿地面积",value:Ae(e.wetlandAreaMu,e.wetlandAreaPercent)},{key:"otherAreaMu",label:"其他面积",value:Ae(e.otherAreaMu,e.otherAreaPercent)},{key:"resourceFreshMuYield",label:"综合鲜草亩产",value:E(e.resourceFreshMuYield,"斤/亩",2)},{key:"resourceDryMuYield",label:"综合干草亩产",value:E(e.resourceDryMuYield,"斤/亩",2)},{key:"grasslandVegetationCover",label:"草地植被盖度",value:E(e.grasslandVegetationCover,"%",2)}]:[{key:"pastureName",label:"所属牧场",value:e.pastureName},{key:"township",label:"所在乡镇",value:e.township||e.townName},{key:"acreage",label:"本地块面积",value:Ue(e.acreage,"亩",2)},{key:"wetlandAreaMu",label:"湿地面积",value:Ae(e.wetlandAreaMu,e.wetlandAreaPercent)},{key:"otherAreaMu",label:"其他面积",value:Ae(e.otherAreaMu,e.otherAreaPercent)},{key:"resourceFreshMuYield",label:"综合鲜草亩产",value:E(e.resourceFreshMuYield,"斤/亩",2)},{key:"resourceDryMuYield",label:"综合干草亩产",value:E(e.resourceDryMuYield,"斤/亩",2)},{key:"grasslandVegetationCover",label:"草地植被盖度",value:E(e.grasslandVegetationCover,"%",2)},{key:"recognizedYakCount",label:"草场牦牛数",value:Ue(e.recognizedYakCount,"头",0)},{key:"grasslandMuPerYak",label:"草场草畜比",value:Ue(e.grasslandMuPerYak,"亩/头",2)}]}),ut=g(()=>Wr(j.value.core)),$e=g(()=>Yr(j.value.distribution)),er=g(()=>Hr(j.value.online)),tr=g(()=>qr(j.value.age)),rr=g(()=>Zr(j.value.age)),lt=g(()=>ct(j.value.grassland));g(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:$e.value.map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),g(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:$e.value})),g(()=>({key:"pasture-grassland-area",type:"heat",rows:lt.value}));const nr=g(()=>({key:"pasture-household-column",type:"column",variant:"plain",preserveColors:!0,scrollable:!1,rows:ct($e.value).slice(0,10).map(e=>C(k({},e),{unit:e.unit||"户",color:Gt}))})),ar=g(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",preserveColors:!0,rows:lt.value.map(e=>C(k({},e),{unit:e.unit||"万亩",color:Gt}))})),sr=g(()=>({key:"pasture-online",type:"line",rows:er.value})),or=g(()=>({key:"pasture-age",type:"structure",rows:tr.value})),ur=g(()=>({key:"pasture-gender",type:"donut",rows:rr.value})),lr=g(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:Y.value})),_e=g(()=>{const e=B.value.length;return e?me.value%e:0}),ir=g(()=>B.value[_e.value]||Re),it=g(()=>fr(B.value,_e.value,Re));function ct(e=[]){return(Array.isArray(e)?e:[]).map((t,r)=>{var n,s,a;return C(k({},t),{key:t.key||t.code||t.name||`${r}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((a=(s=(n=t.value)!=null?n:t.number)!=null?s:t.count)!=null?a:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Oe(){pe.value=typeof window=="undefined"?1080:window.innerHeight}hn(()=>{Oe(),window.addEventListener("resize",Oe),wt(),Sr(),kr(),cr()}),mn(()=>{W=!0,window.removeEventListener("resize",Oe),J(),z&&window.clearTimeout(z),ae+=1}),vn(()=>re.active,e=>{var t,r;e||J({resetError:!0}),m.value&&(e?(X(),(r=(t=m.value).refreshView)==null||r.call(t)):(z&&window.clearTimeout(z),z=null,ae+=1))});function cr(){return w(this,null,function*(){try{const e=yield wn();if(W)return;B.value=e,me.value=0,I.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(W)return;B.value=[],I.value="监控接口暂不可用"}})}function dr(e,t){t!=null&&t.isActive&&(ze.value=e||null)}function fr(e=[],t=0,r=Re){const n=Array.isArray(e)?e:[];if(!n.length)return[{key:`empty-${r.key||"video"}`,index:0,live:r,isActive:!0}];const s=(t+n.length)%n.length,a=n[s]||r;return[{key:`${a.key||a.title||"video"}-${s}`,index:s,live:a,isActive:!0}]}function gr(e,t=!0){const r=(e==null?void 0:e.image)||Et;return q.value&&t?void 0:{backgroundImage:`url(${r})`}}function pr(){dt(-1)}function yr(){dt(1)}function dt(e){const t=B.value.length;t&&(J({resetError:!0}),me.value=(_e.value+e+t)%t)}function hr(e){const t=B.value.length;if(!t){ft();return}const r=((Number(e)||0)+t)%t;(r!==_e.value||N||R.value)&&J({resetError:!0}),me.value=r,xe(ft)}function ft(){return w(this,null,function*(){var n,s;const e=ir.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){I.value="暂无在线可播放摄像头";return}if(q.value||R.value)return;N&&J({resetError:!0}),I.value="",R.value=!0,yield xe();const t=++Z;let r=null;mr(t);try{const a=(s=(n=ze.value)==null?void 0:n.getBoundingClientRect)==null?void 0:s.call(n),o=Math.max(300,Math.floor((a==null?void 0:a.width)||340)),l=Math.max(80,Math.floor((a==null?void 0:a.height)||120));if(r=new An.EZUIKitPlayer({id:x,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:o,height:l,themeData:vr(),handleError(c){t===Z&&(ce(),console.warn("Pasture EZUIKit player error",c),I.value="视频加载失败",R.value=!1,q.value=!1,Z+=1,N=null,Ee=!1,je())},handleSuccess(){t===Z&&(ce(),I.value="",Ee=!0,R.value=!1,pt(),gt())},fullScreenChangeCallBack(){}}),t!==Z){yt(r),je();return}N=r,q.value=!0,xe(()=>{pt(),gt()})}catch(a){ce(),console.warn("Pasture EZUIKit init error",a),I.value="视频加载失败",J()}})}function gt(){if(typeof document=="undefined")return;const e=document.getElementById(`${x}-ez-iframe-footer-container`),t=document.getElementById(`${x}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function pt(){var f,i;if(typeof document=="undefined")return;const e=ze.value,t=document.getElementById(`${x}-wrap`),r=document.getElementById(x),n=t||r;if(!e||!n)return;const s=(f=e.getBoundingClientRect)==null?void 0:f.call(e),a=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),o=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{N&&typeof N.reSize=="function"?N.reSize(a,o):N&&typeof N.autoResize=="function"&&N.autoResize()}catch(v){console.warn("Pasture EZUIKit resize failed",v)}Object.assign(n.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${a}px`,height:`${o}px`,verticalAlign:"top"}),t&&r&&Object.assign(r.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const l=document.getElementById(`EZUIKitPlayer-${x}`);l&&(l.setAttribute("width",String(a)),l.setAttribute("height",String(o))),[...Array.from((r==null?void 0:r.children)||[]),...Array.from(((i=r==null?void 0:r.querySelectorAll)==null?void 0:i.call(r,".play-window, video, canvas, iframe"))||[]),l].filter(Boolean).forEach(v=>{Object.assign(v.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function J(e={}){const{clearElement:t=!0,resetError:r=!1}=e;ce();const n=N;N=null,Ee=!1,Z+=1,n&&yt(n),t&&je(),q.value=!1,R.value=!1,r&&(I.value="")}function mr(e){ce(),ve=window.setTimeout(()=>{e!==Z||!R.value||(I.value="视频加载超时",J({resetError:!1}))},ua)}function ce(){ve&&(window.clearTimeout(ve),ve=null)}function yt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function je(){if(typeof document=="undefined")return;const e=document.getElementById(`${x}-wrap`);if(e){const r=document.createElement("div");r.id=x,r.className="pasture-video-player",e.replaceWith(r);return}const t=document.getElementById(x);t&&t.replaceChildren()}function vr(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function kr(){return w(this,null,function*(){try{const e=yield Un();if(W)return;j.value=e,wt();const t=Jr(e.list);Y.value=t,br(Y.value)}catch(e){j.value={core:[],distribution:[],age:[],online:[],grassland:[]},Y.value=[]}})}function br(e=Y.value,t=600){W||!re.active||(z&&window.clearTimeout(z),z=window.setTimeout(()=>{z=null,!(W||!re.active)&&Pr(e)},t))}function Pr(){return w(this,arguments,function*(e=[]){const t=++ae,r=(Array.isArray(e)?e:[]).filter(_r).slice(0,60);if(!r.length)return;const n=yield mt(r,5,a=>w(this,null,function*(){const o=St(a),l=D(a);let c=l,f=null,i=Se(a,l)||Ie(a,a.name,o);try{(!i||!c.some(P))&&(c=yield vt(a))}catch(F){c=l}if(i=i||Se(a,c)||Ie(a,a.name,o),!i){try{f=o?yield jn(o):null}catch(Lt){f=null}const F=D(f);i=Ar(f)||Se(f,F),F.length&&!c.length&&(c=F)}i=i||Ie(a,a.name,o);const v=!!(o||Ce(a)||c.some(P)||P(a));if(!i&&!c.length&&v===a.canLocate)return null;const _={key:a.key,id:a.id,realPastureId:o,name:a.name,township:i||a.township,grasslands:c.length?c:a.grasslands,grasslandArea:c.length?At(c):Q(a),canLocate:v,locateText:v?"定位":"--"};return wr(_,t),_}));if(W||t!==ae)return;const s=new Map;n.filter(Boolean).forEach(a=>{[a.key,a.id,a.realPastureId,a.name].filter(Boolean).forEach(o=>{s.set(String(o),a)})}),s.size&&ht(s)})}function _r(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(P(e)||D(e).some(P))&&He(e).length?!0:t&&t!=="--"?!1:Q(e)>0||qe(e)}function wr(e,t=ae){if(!e||W||t!==ae)return;const r=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(n=>{r.set(String(n),e)}),ht(r)}function ht(e){e!=null&&e.size&&(Y.value=Y.value.map(t=>{var a,o;const r=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(l=>e.get(String(l))).find(Boolean);if(!r)return t;const n=r.township&&r.township!=="--"?r.township:t.township,s=Number(r.grasslandArea)>0?Number(r.grasslandArea):Q(t);return C(k({},t),{township:n,grasslands:r.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:de(r,r.grasslands),hasGrasslandBoundary:((o=(a=r.grasslands)==null?void 0:a.some)==null?void 0:o.call(a,P))||t.hasGrasslandBoundary,canLocate:r.canLocate,locateText:r.locateText,searchText:[t.name,n,t.id].filter(Boolean).join(" ")})}))}function We(e=[]){const t=[],r=n=>{if(!n)return;if(Array.isArray(n)){n.forEach(r);return}if(typeof n!="object")return;const s=D(n);if(s.length)t.push(...s);else{let a=!1;["rows","list","data","result","grassland","pasture","features"].forEach(o=>{const l=n==null?void 0:n[o];l&&(Array.isArray(l)||typeof l=="object")&&(a=!0,r(l))}),a||t.push(n)}};return r(e),t}function Ar(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const r of t.filter(Boolean)){const n=Array.isArray(r==null?void 0:r.fields)?r.fields:Array.isArray(r==null?void 0:r.children)?r.children:[],s=d(r,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return V(we(s));for(const o of n){const l=String((o==null?void 0:o.name)||(o==null?void 0:o.label)||(o==null?void 0:o.title)||"").trim(),c=d(o,["value","text","content"]);if(c&&/区域|地址|乡镇/.test(l))return V(we(c))}const a=Object.entries(r||{}).filter(([o])=>/fullName|full_name|address|areaName|area_name|town/i.test(o)).map(([,o])=>o);for(const o of a)if(o)return V(we(o))}return""}function we(e){const t=String(e||"").trim();if(!t||t==="--")return"";const r=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(r==null?void 0:r[1])||t}function mt(e,t,r){return w(this,null,function*(){const n=new Array(e.length);let s=0;const a=Array.from({length:Math.min(t,e.length)},()=>w(this,null,function*(){for(;sw(this,null,function*(){if(P(n))return n;const s=Nt(n);if(!s)return n;try{const a=yield Ot(s),l=We([a]).find(P);return l?en(n,l):n}catch(a){return n}}));return Ye(r)})}function Cr(e){return w(this,null,function*(){var a,o,l,c;const t=++ye;X(),(o=(a=m.value)==null?void 0:a.clearFloatingOverlays)==null||o.call(a);let r=[];try{r=yield vt(e)}catch(f){r=D(e)}if(t!==ye)return;const n=r.filter(P);if(!n.length){_t();return}if(Ge.value.includes(Le)||(H.value=[Le,...Ge.value]),t!==ye)return;((c=(l=m.value)==null?void 0:l.focusPasture)==null?void 0:c.call(l,{name:e==null?void 0:e.name,grasslands:n,highlightTone:"white"}))||_t()})}function Sr(){ue.value=!1,K("loading-progress",{progress:0})}function Ir(){ue.value=!0,K("loading-progress",{progress:100}),K("map-ready")}function Fr(e=Pe.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),r=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Le||r.includes("resource_grassland")}function xr(e={}){const t=document.querySelector(".pasture-management"),r=t==null?void 0:t.getBoundingClientRect();return r?{x:((Number(e.x)||r.left+r.width/2)-r.left)/Math.max(1,r.width)*1920,y:((Number(e.y)||r.top+r.height/2)-r.top)/Math.max(1,r.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function kt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([r,n])=>Lr(r,n)).length)}function Lr(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Wt.has(String(e||"").toLowerCase())}function Mr(e={}){const t=bt(e.lng),r=bt(e.lat);return t===""||r===""?"":`POINT(${t} ${r})`}function bt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Tr(e={},t={}){var s,a;const r=zr(e);if(!r||!Object.keys(r).length)return null;r.detailMode="resource";const n=Er(e,r);return{id:r.id||r.grasslandId||r.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(a=t==null?void 0:t.lngLat)==null?void 0:a.lat}`,properties:r,feature:{type:"Feature",properties:r,geometry:n},geometry:n,layer:Pe.value||rt.value,lngLat:t.lngLat}}function Br(e={}){var c,f,i;const t=e==null?void 0:e.feature,r=String(((c=t==null?void 0:t.layer)==null?void 0:c.key)||"").toLowerCase();if(!t||!r.startsWith("pasture-focus"))return;const n=t.properties||((f=t.feature)==null?void 0:f.properties)||{},s=d(n,["recognizedYakCount","recognized_yak_count"]),a=d(n,["acreage","areaMu","area_mu","grasslandArea","grassland_area"]),o=(i=d(n,["grasslandMuPerYak","grassland_mu_per_yak"]))!=null?i:Rr(a,s),l=C(k({},n),{recognizedYakCount:s,grasslandMuPerYak:o,detailMode:"pasture"});Object.keys(l).length&&(O.value=C(k({},t),{properties:l,layer:rt.value||t.layer}),ne.value=e.screen||{x:960,y:540},le.value=!1,he.value=!1)}function Rr(e,t){const r=Number(e),n=Number(t);return!Number.isFinite(r)||!Number.isFinite(n)||n<=0?null:Number((r/n).toFixed(2))}function Ue(e,t,r){if(e==null||e==="")return"";const n=Number(e);return Number.isFinite(n)?`${n.toLocaleString("zh-CN",{minimumFractionDigits:r,maximumFractionDigits:r})} ${t}`:String(e)}function E(e,t,r){if(e==null||e==="")return"";const n=Number(e);return Number.isFinite(n)?`${n.toFixed(r)} ${t}`:String(e)}function Ae(e,t){const r=E(e,"亩",2);if(!r)return"";const n=Number(t);return Number.isFinite(n)?`${r} (${n.toFixed(2)}%)`:r}function zr(e={}){var l,c,f,i;const t=Pt(e),r=U((t==null?void 0:t.grassland)||((l=t==null?void 0:t.data)==null?void 0:l.grassland)),n=U((t==null?void 0:t.pasture)||((c=t==null?void 0:t.data)==null?void 0:c.pasture)),s=U((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((f=t==null?void 0:t.data)==null?void 0:f.pasture_balance)),a=r||U(t==null?void 0:t.data)||U(t==null?void 0:t.result)||U(t);if(!a&&!n&&!s)return null;const o=d(a||{},["recognizedYakCount","recognized_yak_count"]);return C(k(k(k(k(k({},a||{}),s||{}),De(a)),De(n)),De(s)),{pastureName:d(n||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||d(a||{},["pastureName","pasture_name"]),recognizedYakCount:o,yakCount:(i=o!=null?o:d(n||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?i:d(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function De(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((r,n)=>{var o,l;const s=String((n==null?void 0:n.field)||(n==null?void 0:n.key)||(n==null?void 0:n.title)||(n==null?void 0:n.label)||"").trim(),a=(l=(o=n==null?void 0:n.value)!=null?o:n==null?void 0:n.text)!=null?l:n==null?void 0:n.content;return s&&a!==void 0&&a!==null&&a!==""&&(r[s]=a),r},{})}function Pt(e){return!e||typeof e!="object"?{}:Object.prototype.hasOwnProperty.call(e,"data")?e.data&&typeof e.data=="object"?e.data:{}:Object.prototype.hasOwnProperty.call(e,"result")?e.result&&typeof e.result=="object"?e.result:{}:e}function Er(e={},t={}){var a,o;const r=Pt(e),n=U((r==null?void 0:r.grassland)||((a=r==null?void 0:r.data)==null?void 0:a.grassland)),s=U((r==null?void 0:r.pasture)||((o=r==null?void 0:r.data)==null?void 0:o.pasture));return d(n||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||d(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||d(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||d(r,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function U(e){const t=Array.isArray(e)?e.find(r=>r&&typeof r=="object")||null:e&&typeof e=="object"?e:null;return t&&Object.keys(t).length?t:null}function Ne(){O.value=null,ne.value=null,le.value=!1,he.value=!1}function X(){var e,t;ke+=1,Ne(),(t=(e=m.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function _t(){var e,t;ye+=1,(t=(e=m.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Vr(e,t){return`${e}${e}${t}0.018${t}0.550.68`}function Gr(){return w(this,arguments,function*(e={}){var a,o,l,c,f,i;if(!Fr(e.overlayLayer||Pe.value)){X();return}const t=Number((a=e==null?void 0:e.lngLat)==null?void 0:a.lng),r=Number((o=e==null?void 0:e.lngLat)==null?void 0:o.lat);if(!Number.isFinite(t)||!Number.isFinite(r)){X();return}const n=++ke,s=e.screen||{x:960,y:540};Ne(),(c=(l=m.value)==null?void 0:l.clearSelectedFeature)==null||c.call(l);try{const v=yield On(Mr({lng:t,lat:r}));if(n!==ke)return;const _=Tr(v,e);if(!_||kt(_)<=0){Ne();return}O.value=_,ne.value=s,le.value=!1,_.geometry&&((i=(f=m.value)==null?void 0:f.highlightFeature)==null||i.call(f,_,{highlightTone:"v21"}))}catch(v){if(n!==ke)return;Ne()}})}function $r(){var e,t;X(),(t=(e=m.value)==null?void 0:e.refreshView)==null||t.call(e)}function Or(){var e,t,r,n;if(X(),(t=(e=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(n=(r=m.value)==null?void 0:r.resetView)==null||n.call(r);return}ue.value=!1,tt.value+=1,xe(()=>{window.setTimeout(()=>{var s,a;(a=(s=m.value)==null?void 0:s.refreshView)==null||a.call(s)},160)})}p({refreshMapView:$r,resetMap:Or});function wt(){K("module-stats",{moduleKey:"pasture-management",items:jr().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function jr(){const e=new Map;return(Array.isArray(ut.value)?ut.value:[]).forEach(t=>{!(t!=null&&t.name)||Kr(t.name)||e.set(t.name,t)}),jt.map(t=>e.get(t)).filter(Boolean).slice(0,4)}function Wr(e=[]){return(Array.isArray(e)?e:[]).map((t,r)=>{const n=t.key||t.id||t.code||t.name||t.zh||`${r}`,s=t.name||t.title||t.label||t.zh,a=Ur(s,n),o=d(t,["value","num","count","dataValue"]);if(!a||o===void 0||o===null||o==="")return null;const l=Dr(a,o,t.unit||t.dw||"");return{key:n,name:l.name,value:l.value,unit:l.unit,icon:t.icon||["town","area","yield","rate"][r%4]}}).filter(Boolean)}function Ur(e,t){const r=String(e||t||""),n=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(n)||/户均.*牦牛|牦牛.*户均/.test(r)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(n)||/户均.*草地|草地.*户均/.test(r)?"户均草地面积":/income|revenue|人均收入/.test(n)||r.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(n)||r.includes("防反贫")||r.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(n)||r.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(n)||r.includes("牧户数量")?"牧户数量":/yak/.test(n)||r.includes("牦牛")?null:/grass/.test(n)||r.includes("草地面积")?"草地面积":/wet/.test(n)||r.includes("湿地")?"湿地面积":r.includes("牧户")||r.includes("牧场")?"牧户数量":/project/.test(n)||r.includes("工程")||r.includes("项目")?"工程数量":/base/.test(n)||r.includes("基地")?"基地数量":r}function Dr(e,t,r){const n=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:n,unit:r||"头"}:e==="户均草地面积"?{name:e,value:n,unit:r||"亩"}:e==="人均收入"?{name:e,value:n,unit:r||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:n,unit:r||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(r).includes("万")?{name:e,value:Math.round(n/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:n,unit:r||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:n,unit:r||"个"}:{name:e,value:n,unit:r}}function Kr(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function Yr(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const r=d(t,["areaName","area_name","name","townName","zoneName"]),n=d(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!r||n===void 0||n===null||n===""?null:{key:t.code||t.areaCode||t.area_code||r,name:r,value:Number(n)||0,unit:"户"}}).filter(Boolean).sort((t,r)=>r.value-t.value)}function Hr(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const r=d(t,["areaName","area_name","name","townName","zoneName"]),n=Number(d(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(d(t,["muhuCount","muhu_count","onlineCount"])),a=d(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),o=a!=null&&a!==""?a:n>0?s/n*100:void 0;return!r||o===void 0||o===null||o===""?null:{key:t.code||t.areaCode||t.area_code||r,name:r,value:Number(String(o).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(n)&&n>0?`${s}/${n}户`:t.extra}}).filter(Boolean)}function qr(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(r=>{const n=d(r,["ageRange","age_range","age","name","label"]),s=d(r,["number","value","count","num"]);!n||s===void 0||s===null||s===""||t.set(n,(t.get(n)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([r,n])=>({key:r,name:r,value:n,unit:"人"}))}function Zr(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(r=>{const n=d(r,["sex","gender","name"]),s=d(r,["number","value","count","num"]);if(!n||s===void 0||s===null||s==="")return;const a=String(n).includes("女")?"女":String(n).includes("男")?"男":n;t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([r,n])=>({key:r,name:r,value:n,unit:"人"}))}function Jr(e=[]){return(Array.isArray(e)?e:[]).map((t,r)=>{const n=d(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!n)return null;const s=D(t),a=Q(t)||At(s),o=de(t,s),l=St(t),c=Se(t,s)||Ie(t,n,l),f=Ke(t),i=C(k({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${n}-${r}`,id:l||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:l,name:n,pastureSortOrder:f,township:c||"--",grasslandArea:a,acreage:a,grasslandCount:o,hasGrasslandBoundary:o>0,grasslands:s});return i.canLocate=!!(l||Ce(t)||s.some(P)||P(t)),i.locateText=i.canLocate?"定位":"--",i.value=i.grasslandArea,i.unit="亩",i.searchText=[i.name,i.herdsmanName,i.herdsman_name,i.phone,i.phonenumber,i.idCard,i.id_card,i.township,i.id].filter(Boolean).join(" "),i}).filter(Boolean).sort(Xr)}function Ke(e={}){const t=d(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const r=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(r)?r:null}function Xr(e,t){const r=Ke(e),n=Ke(t);if(r!==null||n!==null)return r===null?1:n===null?-1:r!==n?r-n:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Ce(e)?1:0,a=Ce(t)?1:0;if(s!==a)return a-s;const o=de(e),l=de(t);if(o!==l)return l-o;const c=Q(e),f=Q(t),i=c>0?1:0,v=f>0?1:0;if(i!==v)return v-i;const _=qe(e)?1:0,F=qe(t)?1:0;return _!==F?F-_:c!==f?f-c:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Ce(e={}){const t=d(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:de(e)>0}function de(e={},t=e==null?void 0:e.grasslands){const r=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const n of r){const s=Number(e==null?void 0:e[n]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function Q(e={}){const r=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>Qr(e==null?void 0:e[s]));return r.find(s=>s>0)||r.find(s=>s===0)||0}function At(e=[]){return(Array.isArray(e)?e:[]).reduce((t,r)=>t+Q(r),0)}function Qr(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const r=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!r)return 0;const n=Number(r[0]);return Number.isFinite(n)?t.includes("万")?n*1e4:n:0}function D(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const a=e==null?void 0:e[s];Array.isArray(a)?t.push(...a):Array.isArray(a==null?void 0:a.rows)?t.push(...a.rows):Array.isArray(a==null?void 0:a.list)?t.push(...a.list):Array.isArray(a==null?void 0:a.data)&&t.push(...a.data)});const n=d(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(n||e!=null&&e.geometry)&&t.push(C(k({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:n,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function P(e={}){var t,r;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(r=e==null?void 0:e.geometry)!=null&&r.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!d(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function en(e={},t={}){var a,o,l,c,f;const r=C(k(k({},e),t),{id:(a=e==null?void 0:e.id)!=null?a:t==null?void 0:t.id,grasslandId:(f=(c=(l=(o=e==null?void 0:e.grasslandId)!=null?o:e==null?void 0:e.grassland_id)!=null?l:t==null?void 0:t.grasslandId)!=null?c:t==null?void 0:t.grassland_id)!=null?f:t==null?void 0:t.id}),n=d(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=d(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(n||s)&&(r.wkt=n||s),r.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),r}function Ye(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(r=>{if(!r)return!1;const n=tn(r);return n&&t.has(n)?!1:(n&&t.add(n),!0)})}function tn(e={}){const t=d(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(n){return""}const r=Nt(e);return r?`id:${r}`:""}function Nt(e={}){return Ct(d(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function He(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(Ct).filter(Boolean).filter((t,r,n)=>n.indexOf(t)===r)}function Ct(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function St(e={}){return He(e)[0]||null}function qe(e={}){return e!=null&&e.canLocate||P(e)?!0:D(e).some(P)}function d(e={},t=[]){for(const r of t){const n=e==null?void 0:e[r];if(n!=null&&n!=="")return n}}function Se(e={},t=[]){const r=d(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),n=V(r);if(n)return n;const s=Ze(d(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const o of t){const l=d(o,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),c=V(l);if(c)return c;const f=Ze(d(o,["areaCode","area_code","townCode","town_code","code"]));if(f)return f}const a=It(e);if(a)return a;for(const o of t){const l=It(o);if(l)return l}return""}function V(e){const t=String(e||"").trim();if(!t||t==="--")return"";const r=Ze(t);if(r)return r;if(Nn(t))return t;const n=Cn.find(a=>t.includes(a));if(n)return n;const s=we(t);return s&&s!==t?V(s):""}function Ie(e={},t="",r=""){const n=[r,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const a of n){const o=Dt[String(a||"").trim()];if(o)return V(o)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const a of s){const o=Kt[rn(a)];if(o)return V(o)}return""}function rn(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ze(e){const t=String(e||"").trim();if(!t)return"";const r=t.replace(/\D/g,"");return r?Sn(r):""}function It(e={}){const t=Je(e),r=sn(t);if(!r)return"";const n=Yt.find(s=>un(r,s.geometry));return n!=null&&n.name?V(n.name):""}function Je(e={}){var n,s;if((e==null?void 0:e.type)==="Feature")return Je(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((n=e==null?void 0:e.geometry)!=null&&n.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=d(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const r=t.trim();if(!r)return null;if(r.startsWith("{")||r.startsWith("["))try{const a=JSON.parse(r);return Je(a)}catch(a){return null}return nn(r)}function nn(e){var a;const t=String(e||"").trim(),r=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),n=(a=r==null?void 0:r[1])==null?void 0:a.toUpperCase();if(!n)return null;const s=t.slice(t.indexOf("("));return n==="POINT"?{type:"Point",coordinates:Xe(s)}:n==="MULTIPOINT"?{type:"MultiPoint",coordinates:Fe(s).map(Xe).filter(Boolean)}:n==="LINESTRING"?{type:"LineString",coordinates:Qe(s)}:n==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Fe(s).map(Qe).filter(o=>o.length)}:n==="POLYGON"?{type:"Polygon",coordinates:Ft(s)}:n==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Fe(s).map(Ft).filter(o=>o.length)}:null}function Xe(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function Qe(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(Xe).filter(Boolean)}function Ft(e){return Fe(e).map(Qe).filter(t=>t.length>=3)}function Fe(e){const t=[];let r=0,n=-1;return Array.from(String(e||"")).forEach((s,a)=>{s==="("?(r===0&&(n=a+1),r+=1):s===")"&&(r-=1,r===0&&n>=0&&(t.push(e.slice(n,a)),n=-1))}),t.length?t:[String(e||"")]}function an(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(r=>{var n,s,a,o;return{name:((n=r==null?void 0:r.properties)==null?void 0:n.name)||((s=r==null?void 0:r.properties)==null?void 0:s.areaName)||((a=r==null?void 0:r.properties)==null?void 0:a.townName),code:(o=r==null?void 0:r.properties)==null?void 0:o.code,geometry:r==null?void 0:r.geometry}}).filter(r=>{var n;return r.name&&((n=r.geometry)==null?void 0:n.coordinates)})}catch(t){return[]}}function sn(e){const t=on(e);if(!t.length)return null;const r=t.reduce((n,s)=>({lng:n.lng+s[0],lat:n.lat+s[1]}),{lng:0,lat:0});return[r.lng/t.length,r.lat/t.length]}function on(e){const t=[],r=n=>{if(Array.isArray(n)){if(n.length>=2&&Number.isFinite(Number(n[0]))&&Number.isFinite(Number(n[1]))){t.push([Number(n[0]),Number(n[1])]);return}n.forEach(r)}};return r(e==null?void 0:e.coordinates),t}function un(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?xt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(r=>xt(e,r)):!1}function xt(e,t){var o,l,c,f;const r=t==null?void 0:t[0];if(!Array.isArray(r)||r.length<3)return!1;let n=!1;const s=e[0],a=e[1];for(let i=0,v=r.length-1;ia!=Mt>a&&s<(Lt-_)*(a-F)/(Mt-F||1e-12)+_&&(n=!n)}return n}return(e,t)=>(L(),G("div",Dn,[(L(),kn(In,{key:tt.value,ref_key:"mapSceneRef",ref:m,class:"pasture-ol-map-layer",active:re.active,"tile-url-template":la,center:$(Be),"initial-zoom":9,"minimum-zoom-distance":1,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":Pe.value,"overlay-layers":st.value,"enable-imagery-feature-pick":!1,"emit-empty-feature-info-on-miss":!1,"disable-double-click-action":"",onReady:Ir,onMapClick:Gr,onFeatureInfo:Br},null,8,["active","center","overlay-layer","overlay-layers"])),t[2]||(t[2]=A("div",{class:"pasture-map-scrim"},null,-1)),ue.value?se("",!0):(L(),G("div",Kn,"3D地图加载中")),A("div",Yn,[A("div",Hn,[A("div",qn,[b(te,{class:"pasture-side-card left-card",title:"牧户区域统计",width:$(M),height:S.value},{default:ee(()=>[b(oe,{panel:nr.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),b(te,{class:"pasture-side-card left-card",title:"草场面积分布",width:$(M),height:S.value},{default:ee(()=>[b(oe,{panel:ar.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),b(te,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:$(M),height:S.value},{default:ee(()=>[A("div",Zn,[A("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:B.value.length<=1,"aria-label":"上一个监控点",onClick:pr}," ‹ ",8,Jn),A("div",{class:Rt(["pasture-video-grid",{"is-single":it.value.length<=1}])},[(L(!0),G(bn,null,Pn(it.value,r=>(L(),G("div",{key:r.key,ref_for:!0,ref:n=>dr(n,r),class:Rt(["pasture-video-screen",{"is-active":r.isActive,"is-playing":q.value&&r.isActive,"is-loading":R.value&&r.isActive}]),style:et(gr(r.live,r.isActive)),onClick:n=>hr(r.index)},[r.isActive?(L(),G("div",{key:0,id:x,class:"pasture-video-player"})):se("",!0),(!q.value||!r.isActive)&&r.live.hdPlayUrl?(L(),G("div",Qn)):se("",!0),R.value&&r.isActive?(L(),G("div",ea,"加载中")):se("",!0),I.value&&r.isActive?(L(),G("div",ta,zt(I.value),1)):se("",!0),A("div",ra,zt(r.live.title),1)],14,Xn))),128))],2),A("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:B.value.length<=1,"aria-label":"下一个监控点",onClick:yr}," › ",8,na)])]),_:1},8,["width","height"]),b(te,{class:"pasture-side-card left-card",title:"牧户上线率",width:$(M),height:S.value},{default:ee(()=>[b(oe,{panel:sr.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),A("div",aa,[A("div",sa,[b(te,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:$(M),height:S.value},{default:ee(()=>[b(oe,{panel:or.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),b(te,{class:"pasture-side-card right-card",title:"牧户性别统计",width:$(M),height:S.value},{default:ee(()=>[b(oe,{panel:ur.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),b(te,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:$(M),height:T.value},{default:ee(()=>[b(oe,{panel:lr.value,compact:"","visual-version":"v21",onRowSelect:Cr},null,8,["panel"])]),_:1},8,["width","height"])])]),A("div",{class:"pasture-map-layer-tools",style:et({height:`${at.value}px`})},[b(Ln,{modelValue:H.value,"onUpdate:modelValue":t[0]||(t[0]=r=>H.value=r),"selected-legend-key":Te.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=r=>Te.value=r),"topic-key":"grassland",layers:Ve.value,legends:nt.value,multiple:"",compact:"",width:248,height:at.value},null,8,["modelValue","selected-legend-key","layers","legends","height"])],4),qt.value?(L(),G("div",{key:0,class:"pasture-map-feature-info",style:et(Xt.value)},[A("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${$t}`,title:"关闭",onClick:_n(X,["stop"])}," × ",8,oa),b(Mn,{title:$t,feature:O.value,empty:le.value,loading:he.value,width:$(Zt),height:Jt.value,rows:Qt.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height","rows"])],4)):se("",!0)])]))}};export{Pa as default};