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
43 KiB
1 lines
43 KiB
var Qa=Object.defineProperty,er=Object.defineProperties;var tr=Object.getOwnPropertyDescriptors;var Tt=Object.getOwnPropertySymbols;var ar=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable;var Ft=(k,w,v)=>w in k?Qa(k,w,{enumerable:!0,configurable:!0,writable:!0,value:v}):k[w]=v,h=(k,w)=>{for(var v in w||(w={}))ar.call(w,v)&&Ft(k,v,w[v]);if(Tt)for(var v of Tt(w))rr.call(w,v)&&Ft(k,v,w[v]);return k},A=(k,w)=>er(k,tr(w));var N=(k,w,v)=>new Promise((ye,O)=>{var x=T=>{try{S(v.next(T))}catch(m){O(m)}},he=T=>{try{S(v.throw(T))}catch(m){O(m)}},S=T=>T.done?ye(T.value):Promise.resolve(T.value).then(x,he);S((v=v.apply(k,w)).next())});import{g as d,q as nr,h as sr,w as or,o as c,c as g,C as H,u as z,a as R,j as ae,b as E,x as K,t as $,n as Bt,F as ur,y as lr,K as Xe,f as ir,d as y,A as xe}from"./index-1786541781548.js";import{g as cr,l as zt,E as dr}from"./live-scene-1-6228d1a0-1786541781548.js";import{_ as Z}from"./index-6fc47545-1786541781548.js";import{M as gr}from"./index-af4e3bce-1786541781548.js";import{_ as fr}from"./LayerPanel-3f19d00c-1786541781548.js";import{a as re,_ as pr}from"./FeatureInfoPanel-d72afc33-1786541781548.js";import{n as yr,d as hr,e as vr,l as mr,o as wr}from"./townshipBoundaries-cb449981-1786541781548.js";import{b as kr,c as _r,d as br,e as Pr,f as Ar,h as Nr}from"./pastureApi-d30fd847-1786541781548.js";import{q as Et,r as Rr,s as Cr}from"./screen2Standard-54c0337d-1786541781548.js";import{c as Sr,F as Ir}from"./featurePanelLayout-3e9b38ef-1786541781548.js";import"./index-25a05535-1786541781548.js";import"./index-e9f36657-1786541781548.js";const Lr={class:"pasture-management"},xr={key:0,class:"pasture-map-loading"},Tr={class:"pasture-management-ui"},Fr={class:"pasture-left"},Br={class:"pasture-side-stack is-left"},zr={key:0,class:"pasture-data-status"},Er={key:1,class:"pasture-data-status is-warning"},Mr={key:2,class:"pasture-data-status is-warning"},Gr={key:0,class:"pasture-data-status"},Vr={key:1,class:"pasture-data-status is-warning"},$r={key:2,class:"pasture-data-status is-warning"},Or={class:"pasture-video-monitor"},Wr=["disabled"],jr=["onClick"],Ur={key:1,class:"pasture-video-play"},qr={key:2,class:"pasture-video-loading"},Dr={key:3,class:"pasture-video-error"},Hr={class:"pasture-video-point-name"},Kr=["disabled"],Zr={key:0,class:"pasture-data-status"},Yr={key:1,class:"pasture-data-status is-warning"},Jr={key:2,class:"pasture-data-status is-warning"},Xr={class:"pasture-right"},Qr={class:"pasture-side-stack is-right"},en={key:0,class:"pasture-data-status"},tn={key:1,class:"pasture-data-status is-warning"},an={key:2,class:"pasture-data-status is-warning"},rn={key:0,class:"pasture-data-status"},nn={key:1,class:"pasture-data-status is-warning"},sn={key:2,class:"pasture-data-status is-warning"},on={key:0,class:"pasture-data-status"},un={key:1,class:"pasture-data-status is-warning"},ln={key:2,class:"pasture-data-status is-warning"},cn=["aria-label"],Mt="pasture-grassland-boundary",dn="pasture-yak-marks-layer",Gt="#46dce8",gn=12e3,fn="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Qe="#FFE600",Vt="草场详情",Sn={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(k,{expose:w,emit:v}){const ye=k,O=v,x=Et.sideCardWidth;Et.sideCardGap;const he=y(typeof window=="undefined"?1080:window.innerHeight),S=d(()=>Rr(he.value)),T=d(()=>Cr(S.value,2)),m=y(null),ne=y(!1),et=y(0);let ve=0;const W=y(null),se=y(!1),oe=y(!1),Y=y(null),J=y({coreRows:[],topRows:[],townRows:[],quality:null}),me=y(!0),ue=y(""),X=y({ageRows:[],genderRows:[],onlineRows:[],quality:null}),le=y(!0),M=y(""),we=y({listRows:[],grasslandTownRows:[],quality:null}),ke=y(!0),Q=y(""),ie=y([]),ee=y([]),Te=y(""),L=`pasture-video-player-${Math.random().toString(36).slice(2)}`,$t=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"]),tt=mr,Ot=xa("ne:t_pasture_grassland",pe),Wt={key:dn,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Qe,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Qe,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Qe,strokeColor:"#FFF58A",selectable:!1}]},Fe={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:zt,playUrl:"",hdPlayUrl:"",token:""},Be=y(null),F=y([]),_e=y(0),j=y(!1),B=y(!1),_=y("");let b=!1,C=null,ze=!1,U=0,be=null,ce=0;const jt=Ka(wr),Ee=d(()=>[{key:Mt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Ot,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:tt,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Wt]),Ut=d(()=>Array.isArray(ee.value)?ee.value.map(String).filter(Boolean):ee.value?[String(ee.value)]:[]),Pe=d(()=>{const e=new Set(Ut.value);return Ee.value.filter(t=>e.has(t.key))}),qt=d(()=>Pe.value[0]||null),de=d(()=>Pe.value.flatMap(e=>e.legends||[]).find(e=>e.key===Te.value)||null),at=d(()=>Pe.value.flatMap(e=>e.legends||[])),rt=d(()=>{const e=Math.max(1,Ee.value.length),t=Math.max(1,Math.ceil(at.value.length/2)),a=e*34+Math.max(0,e-1)*5;return Math.max(196,Math.min(300,72+a+30+t*28))});function Dt(e){var a;return e?!(e.legends||[]).some(r=>{var n;return r.key===((n=de.value)==null?void 0:n.key)})||!((a=de.value)!=null&&a.cqlFilter)?e:A(h({},e),{cqlFilter:de.value.cqlFilter,activeLegend:de.value,name:de.value.name||e.name}):null}const nt=d(()=>Pe.value.map(Dt).filter(Boolean)),Ae=d(()=>nt.value[0]||null),Ht=d(()=>!!Y.value),Kt=Ir,st=d(()=>Sr({point:Y.value?Na(Y.value):null,rowCount:W.value?yt(W.value):0,loading:oe.value,empty:se.value||!W.value})),Zt=d(()=>st.value.height),Yt=d(()=>st.value.style);d(()=>Ue(J.value.coreRows));const Ne=d(()=>wt(J.value.townRows)),ot=d(()=>kt(X.value.onlineRows)),ut=d(()=>bt(X.value.ageRows)),lt=d(()=>Pt(X.value.genderRows)),Me=d(()=>_t(we.value.grasslandTownRows));d(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:Ne.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)})),d(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Ne.value})),d(()=>({key:"pasture-grassland-area",type:"heat",rows:Me.value}));const Jt=d(()=>({key:"pasture-household-column",type:"column",variant:"plain",preserveColors:!0,scrollable:!1,rows:na(Ne.value).slice(0,10).map(e=>A(h({},e),{unit:e.unit||"户",color:Gt}))})),Xt=d(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",preserveColors:!0,rows:Me.value.map(e=>A(h({},e),{unit:e.unit||"万亩",color:Gt}))})),Qt=d(()=>({key:"pasture-online",type:"line",rows:ot.value})),ea=d(()=>({key:"pasture-age",type:"structure",rows:ut.value})),ta=d(()=>({key:"pasture-gender",type:"donut",rows:lt.value})),aa=d(()=>({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:ie.value})),Re=d(()=>{const e=F.value.length;return e?_e.value%e:0}),ra=d(()=>F.value[Re.value]||Fe),it=d(()=>ua(F.value,Re.value,Fe));function na(e=[]){return(Array.isArray(e)?e:[]).map((t,a)=>{var r,n,s;return A(h({},t),{key:t.key||t.code||t.name||`${a}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((s=(n=(r=t.value)!=null?r:t.number)!=null?n:t.count)!=null?s:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ge(){he.value=typeof window=="undefined"?1080:window.innerHeight}nr(()=>{Ge(),window.addEventListener("resize",Ge),je(),ba(),ha(),ya(),pa(),sa()}),sr(()=>{b=!0,window.removeEventListener("resize",Ge),q()}),or(()=>ye.active,e=>{var t,a;e||q({resetError:!0}),m.value&&e&&(D(),(a=(t=m.value).refreshView)==null||a.call(t))});function sa(){return N(this,null,function*(){try{const e=yield cr();if(b)return;F.value=e,_e.value=0,_.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(b)return;F.value=[],_.value="监控接口暂不可用",window.setTimeout(()=>{!b&&_.value==="监控接口暂不可用"&&(_.value="")},2400)}})}function oa(e,t){t!=null&&t.isActive&&(Be.value=e||null)}function ua(e=[],t=0,a=Fe){const r=Array.isArray(e)?e:[];if(!r.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const n=(t+r.length)%r.length,s=r[n]||a;return[{key:`${s.key||s.title||"video"}-${n}`,index:n,live:s,isActive:!0}]}function la(e,t=!0){const a=(e==null?void 0:e.image)||zt;return j.value&&t?void 0:{backgroundImage:`url(${a})`}}function ia(){ct(-1)}function ca(){ct(1)}function ct(e){const t=F.value.length;t&&(q({resetError:!0}),_e.value=(Re.value+e+t)%t)}function da(e){const t=F.value.length;if(!t){dt();return}const a=((Number(e)||0)+t)%t;(a!==Re.value||C||B.value)&&q({resetError:!0}),_e.value=a,xe(dt)}function dt(){return N(this,null,function*(){var r,n;const e=ra.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){_.value="暂无在线可播放摄像头";return}if(j.value||B.value)return;C&&q({resetError:!0}),_.value="",B.value=!0,yield xe();const t=++U;let a=null;ga(t);try{const s=(n=(r=Be.value)==null?void 0:r.getBoundingClientRect)==null?void 0:n.call(r),o=Math.max(300,Math.floor((s==null?void 0:s.width)||340)),u=Math.max(80,Math.floor((s==null?void 0:s.height)||120));if(a=new dr.EZUIKitPlayer({id:L,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:o,height:u,themeData:fa(),handleError(f){t===U&&(ge(),console.warn("Pasture EZUIKit player error",f),_.value="视频加载失败",B.value=!1,j.value=!1,U+=1,C=null,ze=!1,Ve())},handleSuccess(){t===U&&(ge(),_.value="",ze=!0,B.value=!1,ft(),gt())},fullScreenChangeCallBack(){}}),t!==U){pt(a),Ve();return}C=a,j.value=!0,xe(()=>{ft(),gt()})}catch(s){ge(),console.warn("Pasture EZUIKit init error",s),_.value="视频加载失败",q()}})}function gt(){if(typeof document=="undefined")return;const e=document.getElementById(`${L}-ez-iframe-footer-container`),t=document.getElementById(`${L}-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 ft(){var p,i;if(typeof document=="undefined")return;const e=Be.value,t=document.getElementById(`${L}-wrap`),a=document.getElementById(L),r=t||a;if(!e||!r)return;const n=(p=e.getBoundingClientRect)==null?void 0:p.call(e),s=Math.max(1,Math.floor((n==null?void 0:n.width)||e.clientWidth||1)),o=Math.max(1,Math.floor((n==null?void 0:n.height)||e.clientHeight||1));try{C&&typeof C.reSize=="function"?C.reSize(s,o):C&&typeof C.autoResize=="function"&&C.autoResize()}catch(P){console.warn("Pasture EZUIKit resize failed",P)}Object.assign(r.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${s}px`,height:`${o}px`,verticalAlign:"top"}),t&&a&&Object.assign(a.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 u=document.getElementById(`EZUIKitPlayer-${L}`);u&&(u.setAttribute("width",String(s)),u.setAttribute("height",String(o))),[...Array.from((a==null?void 0:a.children)||[]),...Array.from(((i=a==null?void 0:a.querySelectorAll)==null?void 0:i.call(a,".play-window, video, canvas, iframe"))||[]),u].filter(Boolean).forEach(P=>{Object.assign(P.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function q(e={}){const{clearElement:t=!0,resetError:a=!1}=e;ge();const r=C;C=null,ze=!1,U+=1,r&&pt(r),t&&Ve(),j.value=!1,B.value=!1,a&&(_.value="")}function ga(e){ge(),be=window.setTimeout(()=>{e!==U||!B.value||(_.value="视频加载超时",q({resetError:!1}))},gn)}function ge(){be&&(window.clearTimeout(be),be=null)}function pt(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 Ve(){if(typeof document=="undefined")return;const e=document.getElementById(`${L}-wrap`);if(e){const a=document.createElement("div");a.id=L,a.className="pasture-video-player",e.replaceWith(a);return}const t=document.getElementById(L);t&&t.replaceChildren()}function fa(){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 pa(){return N(this,null,function*(){ke.value=!0,Q.value="",we.value={listRows:[],grasslandTownRows:[],quality:null},ie.value=[];try{const e=yield kr();if(b)return;const t=Va(e.listRows),a=_t(e.grasslandTownRows);if((e==null?void 0:e.hasData)!==!0||!t.length||!a.length)throw new Error((e==null?void 0:e.emptyMessage)||"牧户与草场台账暂无数据");we.value=A(h({},e),{listRows:Array.isArray(e.listRows)?e.listRows:[],grasslandTownRows:Array.isArray(e.grasslandTownRows)?e.grasslandTownRows:[]}),ie.value=t}catch(e){if(b)return;we.value={listRows:[],grasslandTownRows:[],quality:null},ie.value=[],Q.value=/超时|timeout/i.test(String((e==null?void 0:e.message)||""))?"牧户与草场台账加载超时":"牧户与草场台账接口异常"}finally{b||(ke.value=!1)}})}function ya(){return N(this,null,function*(){le.value=!0,M.value="",X.value={ageRows:[],genderRows:[],onlineRows:[],quality:null};try{const e=yield _r();if(b)return;if((e==null?void 0:e.hasData)!==!0||!bt(e.ageRows).length||!Pt(e.genderRows).length||!kt(e.onlineRows).length)throw new Error((e==null?void 0:e.emptyMessage)||"牧户人口结构或上线率暂无数据");X.value=A(h({},e),{ageRows:Array.isArray(e.ageRows)?e.ageRows:[],genderRows:Array.isArray(e.genderRows)?e.genderRows:[],onlineRows:Array.isArray(e.onlineRows)?e.onlineRows:[]})}catch(e){if(b)return;X.value={ageRows:[],genderRows:[],onlineRows:[],quality:null},M.value=/超时|timeout/i.test(String((e==null?void 0:e.message)||""))?"牧户人口结构与上线率加载超时":"牧户人口结构与上线率接口异常"}finally{b||(le.value=!1)}})}function ha(){return N(this,null,function*(){me.value=!0,ue.value="",J.value={coreRows:[],topRows:[],townRows:[],quality:null},je();try{const e=yield br();if(b)return;if((e==null?void 0:e.hasData)!==!0||!Ue(e.coreRows).length||!wt(e.townRows).length)throw new Error((e==null?void 0:e.emptyMessage)||"牧户核心指标或乡镇名册暂无数据");J.value=A(h({},e),{coreRows:Array.isArray(e.coreRows)?e.coreRows:[],topRows:Array.isArray(e.topRows)?e.topRows:[],townRows:Array.isArray(e.townRows)?e.townRows:[]})}catch(e){if(b)return;J.value={coreRows:[],topRows:[],townRows:[],quality:null},ue.value=/超时|timeout/i.test(String((e==null?void 0:e.message)||""))?"牧户统计加载超时":"牧户核心指标与乡镇分布接口异常"}finally{b||(me.value=!1,je())}})}function $e(e=[]){const t=[],a=r=>{if(!r)return;if(Array.isArray(r)){r.forEach(a);return}if(typeof r!="object")return;const n=fe(r);if(n.length)t.push(...n);else{let s=!1;["rows","list","data","result","grassland","pasture","features"].forEach(o=>{const u=r==null?void 0:r[o];u&&(Array.isArray(u)||typeof u=="object")&&(s=!0,a(u))}),s||t.push(r)}};return a(e),t}function va(e){const t=String(e||"").trim();if(!t||t==="--")return"";const a=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(a==null?void 0:a[1])||t}function ma(e,t,a){return N(this,null,function*(){const r=new Array(e.length);let n=0;const s=Array.from({length:Math.min(t,e.length)},()=>N(this,null,function*(){for(;n<e.length;){const o=n;n+=1,r[o]=yield a(e[o],o)}}));return yield Promise.all(s),r})}function wa(){return N(this,arguments,function*(e={}){const t=$e(fe(e)),a=[];for(const r of Nt(e))try{const n=$e(yield Ar(r));if(n.length&&a.push(...n),n.some(V))break}catch(n){}return ka(He([...a,...t]))})}function ka(){return N(this,arguments,function*(e=[]){const t=He(e);if(!t.length)return[];const a=yield ma(t,5,r=>N(this,null,function*(){if(V(r))return r;const n=At(r);if(!n)return r;try{const s=yield Nr(n),u=$e([s]).find(V);return u?ja(r,u):r}catch(s){return r}}));return He(a)})}function _a(e){return N(this,null,function*(){var s,o,u,f;const t=++ve;D(),(o=(s=m.value)==null?void 0:s.clearFloatingOverlays)==null||o.call(s);let a=[];try{a=yield wa(e)}catch(p){a=fe(e)}if(t!==ve)return;const r=a.filter(V);if(!r.length){mt();return}if(t!==ve)return;((f=(u=m.value)==null?void 0:u.focusPasture)==null?void 0:f.call(u,{name:e==null?void 0:e.name,grasslands:r,highlightTone:"white"}))||mt()})}function ba(){ne.value=!1,O("loading-progress",{progress:0})}function Pa(){ne.value=!0,O("loading-progress",{progress:100}),O("map-ready")}function Aa(e=Ae.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),a=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Mt||a.includes("t_pasture_grassland")}function Na(e={}){const t=document.querySelector(".pasture-management"),a=t==null?void 0:t.getBoundingClientRect();return a?{x:((Number(e.x)||a.left+a.width/2)-a.left)/Math.max(1,a.width)*1920,y:((Number(e.y)||a.top+a.height/2)-a.top)/Math.max(1,a.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function yt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([a,r])=>Ra(a,r)).length)}function Ra(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!$t.has(String(e||"").toLowerCase())}function Ca(e={}){const t=ht(e.lng),a=ht(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function ht(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Sa(e={},t={}){var n,s;const a=Ia(e);if(!a||!Object.keys(a).length)return null;const r=La(e,a);return{id:a.id||a.grasslandId||a.grassland_id||`${(n=t==null?void 0:t.lngLat)==null?void 0:n.lng}-${(s=t==null?void 0:t.lngLat)==null?void 0:s.lat}`,properties:a,feature:{type:"Feature",properties:a,geometry:r},geometry:r,layer:Ae.value||qt.value,lngLat:t.lngLat}}function Ia(e={}){var u,f,p,i;const t=vt(e),a=G((t==null?void 0:t.grassland)||((u=t==null?void 0:t.data)==null?void 0:u.grassland)),r=G((t==null?void 0:t.pasture)||((f=t==null?void 0:t.data)==null?void 0:f.pasture)),n=G((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((p=t==null?void 0:t.data)==null?void 0:p.pasture_balance)),s=a||G(t==null?void 0:t.data)||G(t==null?void 0:t.result)||G(t);if(!s&&!r&&!n)return null;const o=l(s||{},["recognizedYakCount","recognized_yak_count"]);return A(h(h(h(h(h({},s||{}),n||{}),Oe(s)),Oe(r)),Oe(n)),{pastureName:l(r||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||l(s||{},["pastureName","pasture_name"]),recognizedYakCount:o,yakCount:(i=o!=null?o:l(r||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?i:l(n||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Oe(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((a,r)=>{var o,u;const n=String((r==null?void 0:r.field)||(r==null?void 0:r.key)||(r==null?void 0:r.title)||(r==null?void 0:r.label)||"").trim(),s=(u=(o=r==null?void 0:r.value)!=null?o:r==null?void 0:r.text)!=null?u:r==null?void 0:r.content;return n&&s!==void 0&&s!==null&&s!==""&&(a[n]=s),a},{})}function vt(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function La(e={},t={}){var s,o;const a=vt(e),r=G((a==null?void 0:a.grassland)||((s=a==null?void 0:a.data)==null?void 0:s.grassland)),n=G((a==null?void 0:a.pasture)||((o=a==null?void 0:a.data)==null?void 0:o.pasture));return l(r||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||l(n||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||l(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||l(a,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function G(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function We(){W.value=null,Y.value=null,se.value=!1,oe.value=!1}function D(){var e,t;ce+=1,We(),(t=(e=m.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function mt(){var e,t;ve+=1,(t=(e=m.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function xa(e,t){return`<?xml version="1.0" encoding="UTF-8"?><StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><NamedLayer><Name>${e}</Name><UserStyle><Title>${e}</Title><FeatureTypeStyle><Rule><PolygonSymbolizer><Fill><CssParameter name="fill">${t}</CssParameter><CssParameter name="fill-opacity">0.018</CssParameter></Fill><Stroke><CssParameter name="stroke">${t}</CssParameter><CssParameter name="stroke-width">0.55</CssParameter><CssParameter name="stroke-opacity">0.68</CssParameter></Stroke></PolygonSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer></StyledLayerDescriptor>`}function Ta(){return N(this,arguments,function*(e={}){var s,o,u,f,p,i;if(!Aa(e.overlayLayer||Ae.value)){D();return}const t=Number((s=e==null?void 0:e.lngLat)==null?void 0:s.lng),a=Number((o=e==null?void 0:e.lngLat)==null?void 0:o.lat);if(!Number.isFinite(t)||!Number.isFinite(a)){D();return}const r=++ce,n=e.screen||{x:960,y:540};Y.value=null,W.value=null,se.value=!1,oe.value=!0,(f=(u=m.value)==null?void 0:u.clearSelectedFeature)==null||f.call(u);try{const P=yield Pr(Ca({lng:t,lat:a}));if(r!==ce)return;const I=Sa(P,e);if(!I||yt(I)<=0){We();return}W.value=I,Y.value=n,se.value=!1,I.geometry&&((i=(p=m.value)==null?void 0:p.highlightFeature)==null||i.call(p,I,{highlightTone:"v21"}))}catch(P){if(r!==ce)return;We()}finally{r===ce&&(oe.value=!1)}})}function Fa(){var e,t;D(),(t=(e=m.value)==null?void 0:e.refreshView)==null||t.call(e)}function Ba(){var e,t,a,r;if(D(),(t=(e=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ne.value=!0,(r=(a=m.value)==null?void 0:a.resetView)==null||r.call(a);return}ne.value=!1,et.value+=1,xe(()=>{window.setTimeout(()=>{var n,s;(s=(n=m.value)==null?void 0:n.refreshView)==null||s.call(n)},160)})}w({refreshMapView:Fa,resetMap:Ba});function je(){O("module-stats",{moduleKey:"pasture-management",items:za().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function za(){return me.value||ue.value?[]:Ue(J.value.topRows).filter(e=>(e==null?void 0:e.name)&&!Ga(e.name)).slice(0,4)}function Ue(e=[]){return(Array.isArray(e)?e:[]).map((t,a)=>{const r=t.key||t.id||t.code||t.name||t.zh||`${a}`,n=t.name||t.title||t.label||t.zh,s=Ea(n,r),o=l(t,["value","num","count","dataValue"]);if(!s||o===void 0||o===null||o==="")return null;const u=Ma(s,o,t.unit||t.dw||"");return{key:r,name:u.name,value:u.value,unit:u.unit,icon:t.icon||["town","area","yield","rate"][a%4]}}).filter(Boolean)}function Ea(e,t){const a=String(e||t||""),r=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(r)||/户均.*牦牛|牦牛.*户均/.test(a)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(r)||/户均.*草地|草地.*户均/.test(a)?"户均草地面积":/income|revenue|人均收入/.test(r)||a.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(r)||a.includes("防反贫")||a.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(r)||a.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(r)||a.includes("牧户数量")?"牧户数量":/yak/.test(r)||a.includes("牦牛")?null:/grass/.test(r)||a.includes("草地面积")?"草地面积":/wet/.test(r)||a.includes("湿地")?"湿地面积":a.includes("牧户")||a.includes("牧场")?"牧户数量":/project/.test(r)||a.includes("工程")||a.includes("项目")?"工程数量":/base/.test(r)||a.includes("基地")?"基地数量":a}function Ma(e,t,a){const r=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:r,unit:a||"头"}:e==="户均草地面积"?{name:e,value:r,unit:a||"亩"}:e==="人均收入"?{name:e,value:r,unit:a||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:r,unit:a||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(a).includes("万")?{name:e,value:Math.round(r/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:r,unit:a||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:r,unit:a||"个"}:{name:e,value:r,unit:a}}function Ga(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function wt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const a=l(t,["areaName","area_name","name","townName","zoneName"]),r=l(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!a||r===void 0||r===null||r===""?null:{key:t.code||t.areaCode||t.area_code||a,name:a,value:Number(r)||0,unit:"户"}}).filter(Boolean).sort((t,a)=>a.value-t.value)}function kt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const a=l(t,["areaName","area_name","name","townName","zoneName"]),r=Number(l(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),n=Number(l(t,["muhuCount","muhu_count","onlineCount"])),s=l(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),o=s!=null&&s!==""?s:r>0?n/r*100:void 0;return!a||o===void 0||o===null||o===""?null:{key:t.code||t.areaCode||t.area_code||a,name:a,value:Number(String(o).replace("%",""))||0,unit:"%",extra:t.extra||(Number.isFinite(n)&&Number.isFinite(r)&&r>0?`${r}/${n}户`:"")}}).filter(Boolean)}function _t(e=[]){return(Array.isArray(e)?e:[]).map((t,a)=>A(h({},t),{key:t.key||t.areaCode||t.area_code||t.name||`${a}`,name:t.name||t.areaName||t.area_name||t.townName,value:Number(t.value),unit:t.unit||"万亩"})).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0).sort((t,a)=>a.value-t.value)}function bt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(a=>{const r=l(a,["ageRange","age_range","age","name","label"]),n=l(a,["number","value","count","num"]);!r||n===void 0||n===null||n===""||t.set(r,(t.get(r)||0)+(Number(n)||0))}),Array.from(t.entries()).map(([a,r])=>({key:a,name:a,value:r,unit:"人"}))}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(a=>{const r=l(a,["sex","gender","name"]),n=l(a,["number","value","count","num"]);if(!r||n===void 0||n===null||n==="")return;const s=String(r).includes("女")?"女":String(r).includes("男")?"男":r;t.set(s,(t.get(s)||0)+(Number(n)||0))}),Array.from(t.entries()).map(([a,r])=>({key:a,name:a,value:r,unit:"人"}))}function Va(e=[]){return(Array.isArray(e)?e:[]).map((t,a)=>{const r=l(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!r)return null;const n=fe(t),s=Se(t)||Oa(n),o=Ce(t,n),u=qa(t),f=Da(t,n),p=qe(t),i=A(h({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${r}-${a}`,id:u||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:u,name:r,pastureSortOrder:p,township:f||"--",grasslandArea:s,acreage:s,grasslandCount:o,hasGrasslandBoundary:o>0,grasslands:n});return i.canLocate=!!(u||De(t)||n.some(V)||V(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($a)}function qe(e={}){const t=l(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const a=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(a)?a:null}function $a(e,t){const a=qe(e),r=qe(t);if(a!==null||r!==null)return a===null?1:r===null?-1:a!==r?a-r:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const n=De(e)?1:0,s=De(t)?1:0;if(n!==s)return s-n;const o=Ce(e),u=Ce(t);if(o!==u)return u-o;const f=Se(e),p=Se(t),i=f>0?1:0,P=p>0?1:0;if(i!==P)return P-i;const I=Ct(e)?1:0,te=Ct(t)?1:0;return I!==te?te-I:f!==p?p-f:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function De(e={}){const t=l(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:Ce(e)>0}function Ce(e={},t=e==null?void 0:e.grasslands){const a=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const r of a){const n=Number(e==null?void 0:e[r]);if(Number.isFinite(n)&&n>0)return n}return Array.isArray(t)?t.length:0}function Se(e={}){const a=["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(n=>Wa(e==null?void 0:e[n]));return a.find(n=>n>0)||a.find(n=>n===0)||0}function Oa(e=[]){return(Array.isArray(e)?e:[]).reduce((t,a)=>t+Se(a),0)}function Wa(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const a=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!a)return 0;const r=Number(a[0]);return Number.isFinite(r)?t.includes("万")?r*1e4:r:0}function fe(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(n=>{const s=e==null?void 0:e[n];Array.isArray(s)?t.push(...s):Array.isArray(s==null?void 0:s.rows)?t.push(...s.rows):Array.isArray(s==null?void 0:s.list)?t.push(...s.list):Array.isArray(s==null?void 0:s.data)&&t.push(...s.data)});const r=l(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(r||e!=null&&e.geometry)&&t.push(A(h({},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:r,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function V(e={}){var t,a;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||(a=e==null?void 0:e.geometry)!=null&&a.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!l(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function ja(e={},t={}){var s,o,u,f,p;const a=A(h(h({},e),t),{id:(s=e==null?void 0:e.id)!=null?s:t==null?void 0:t.id,grasslandId:(p=(f=(u=(o=e==null?void 0:e.grasslandId)!=null?o:e==null?void 0:e.grassland_id)!=null?u:t==null?void 0:t.grasslandId)!=null?f:t==null?void 0:t.grassland_id)!=null?p:t==null?void 0:t.id}),r=l(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),n=l(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(r||n)&&(a.wkt=r||n),a.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),a}function He(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(a=>{if(!a)return!1;const r=Ua(a);return r&&t.has(r)?!1:(r&&t.add(r),!0)})}function Ua(e={}){const t=l(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(r){return""}const a=At(e);return a?`id:${a}`:""}function At(e={}){return Rt(l(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function Nt(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(Rt).filter(Boolean).filter((t,a,r)=>r.indexOf(t)===a)}function Rt(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function qa(e={}){return Nt(e)[0]||null}function Ct(e={}){return e!=null&&e.canLocate||V(e)?!0:fe(e).some(V)}function l(e={},t=[]){for(const a of t){const r=e==null?void 0:e[a];if(r!=null&&r!=="")return r}}function Da(e={},t=[]){const a=l(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),r=Ie(a);if(r)return r;const n=Ke(l(e,["areaCode","area_code","townCode","town_code","code"]));if(n)return n;for(const o of t){const u=l(o,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),f=Ie(u);if(f)return f;const p=Ke(l(o,["areaCode","area_code","townCode","town_code","code"]));if(p)return p}const s=St(e);if(s)return s;for(const o of t){const u=St(o);if(u)return u}return""}function Ie(e){const t=String(e||"").trim();if(!t||t==="--")return"";const a=Ke(t);if(a)return a;if(yr(t))return t;const r=hr.find(s=>t.includes(s));if(r)return r;const n=va(t);return n&&n!==t?Ie(n):""}function Ke(e){const t=String(e||"").trim();if(!t)return"";const a=t.replace(/\D/g,"");return a?vr(a):""}function St(e={}){const t=Ze(e),a=Za(t);if(!a)return"";const r=jt.find(n=>Ja(a,n.geometry));return r!=null&&r.name?Ie(r.name):""}function Ze(e={}){var r,n;if((e==null?void 0:e.type)==="Feature")return Ze(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((r=e==null?void 0:e.geometry)!=null&&r.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates)return e.geometry;const t=l(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const a=t.trim();if(!a)return null;if(a.startsWith("{")||a.startsWith("["))try{const s=JSON.parse(a);return Ze(s)}catch(s){return null}return Ha(a)}function Ha(e){var s;const t=String(e||"").trim(),a=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),r=(s=a==null?void 0:a[1])==null?void 0:s.toUpperCase();if(!r)return null;const n=t.slice(t.indexOf("("));return r==="POINT"?{type:"Point",coordinates:Ye(n)}:r==="MULTIPOINT"?{type:"MultiPoint",coordinates:Le(n).map(Ye).filter(Boolean)}:r==="LINESTRING"?{type:"LineString",coordinates:Je(n)}:r==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Le(n).map(Je).filter(o=>o.length)}:r==="POLYGON"?{type:"Polygon",coordinates:It(n)}:r==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Le(n).map(It).filter(o=>o.length)}:null}function Ye(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 Je(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(Ye).filter(Boolean)}function It(e){return Le(e).map(Je).filter(t=>t.length>=3)}function Le(e){const t=[];let a=0,r=-1;return Array.from(String(e||"")).forEach((n,s)=>{n==="("?(a===0&&(r=s+1),a+=1):n===")"&&(a-=1,a===0&&r>=0&&(t.push(e.slice(r,s)),r=-1))}),t.length?t:[String(e||"")]}function Ka(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(a=>{var r,n,s,o;return{name:((r=a==null?void 0:a.properties)==null?void 0:r.name)||((n=a==null?void 0:a.properties)==null?void 0:n.areaName)||((s=a==null?void 0:a.properties)==null?void 0:s.townName),code:(o=a==null?void 0:a.properties)==null?void 0:o.code,geometry:a==null?void 0:a.geometry}}).filter(a=>{var r;return a.name&&((r=a.geometry)==null?void 0:r.coordinates)})}catch(t){return[]}}function Za(e){const t=Ya(e);if(!t.length)return null;const a=t.reduce((r,n)=>({lng:r.lng+n[0],lat:r.lat+n[1]}),{lng:0,lat:0});return[a.lng/t.length,a.lat/t.length]}function Ya(e){const t=[],a=r=>{if(Array.isArray(r)){if(r.length>=2&&Number.isFinite(Number(r[0]))&&Number.isFinite(Number(r[1]))){t.push([Number(r[0]),Number(r[1])]);return}r.forEach(a)}};return a(e==null?void 0:e.coordinates),t}function Ja(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Lt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(a=>Lt(e,a)):!1}function Lt(e,t){var o,u,f,p;const a=t==null?void 0:t[0];if(!Array.isArray(a)||a.length<3)return!1;let r=!1;const n=e[0],s=e[1];for(let i=0,P=a.length-1;i<a.length;P=i++){const I=Number((o=a[i])==null?void 0:o[0]),te=Number((u=a[i])==null?void 0:u[1]),Xa=Number((f=a[P])==null?void 0:f[0]),xt=Number((p=a[P])==null?void 0:p[1]);te>s!=xt>s&&n<(Xa-I)*(s-te)/(xt-te||1e-12)+I&&(r=!r)}return r}return(e,t)=>(c(),g("div",Lr,[(c(),H(gr,{key:et.value,ref_key:"mapSceneRef",ref:m,class:"pasture-ol-map-layer",active:ye.active,"tile-url-template":fn,center:z(tt),"initial-zoom":9,"minimum-zoom-distance":1,"admin-boundary-line-scale":1.65,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":Ae.value,"overlay-layers":nt.value,onReady:Pa,onMapClick:Ta},null,8,["active","center","overlay-layer","overlay-layers"])),t[2]||(t[2]=R("div",{class:"pasture-map-scrim"},null,-1)),ne.value?ae("",!0):(c(),g("div",xr,"3D地图加载中")),R("div",Tr,[R("div",Fr,[R("div",Br,[E(Z,{class:"pasture-side-card left-card",title:"牧户区域统计",width:z(x),height:S.value},{default:K(()=>[me.value?(c(),g("div",zr,"牧户统计加载中")):ue.value?(c(),g("div",Er,$(ue.value),1)):Ne.value.length?(c(),H(re,{key:3,panel:Jt.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])):(c(),g("div",Mr,"牧户乡镇分布暂无数据"))]),_:1},8,["width","height"]),E(Z,{class:"pasture-side-card left-card",title:"草场面积分布",width:z(x),height:S.value},{default:K(()=>[ke.value?(c(),g("div",Gr,"草场统计加载中")):Q.value?(c(),g("div",Vr,$(Q.value),1)):Me.value.length?(c(),H(re,{key:3,panel:Xt.value,compact:"","visual-version":"v21"},null,8,["panel"])):(c(),g("div",$r,"草场面积分布暂无数据"))]),_:1},8,["width","height"]),E(Z,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:z(x),height:S.value},{default:K(()=>[R("div",Or,[R("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:F.value.length<=1,"aria-label":"上一个监控点",onClick:ia}," ‹ ",8,Wr),R("div",{class:Bt(["pasture-video-grid",{"is-single":it.value.length<=1}])},[(c(!0),g(ur,null,lr(it.value,a=>(c(),g("div",{key:a.key,ref_for:!0,ref:r=>oa(r,a),class:Bt(["pasture-video-screen",{"is-active":a.isActive,"is-playing":j.value&&a.isActive,"is-loading":B.value&&a.isActive}]),style:Xe(la(a.live,a.isActive)),onClick:r=>da(a.index)},[a.isActive?(c(),g("div",{key:0,id:L,class:"pasture-video-player"})):ae("",!0),(!j.value||!a.isActive)&&a.live.hdPlayUrl?(c(),g("div",Ur)):ae("",!0),B.value&&a.isActive?(c(),g("div",qr,"加载中")):ae("",!0),_.value&&a.isActive?(c(),g("div",Dr,$(_.value),1)):ae("",!0),R("div",Hr,$(a.live.title),1)],14,jr))),128))],2),R("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:F.value.length<=1,"aria-label":"下一个监控点",onClick:ca}," › ",8,Kr)])]),_:1},8,["width","height"]),E(Z,{class:"pasture-side-card left-card",title:"牧户上线率",width:z(x),height:S.value},{default:K(()=>[le.value?(c(),g("div",Zr,"上线率数据加载中")):M.value?(c(),g("div",Yr,$(M.value),1)):ot.value.length?(c(),H(re,{key:3,panel:Qt.value,compact:"","visual-version":"v21"},null,8,["panel"])):(c(),g("div",Jr,"牧户上线率暂无数据"))]),_:1},8,["width","height"])])]),R("div",Xr,[R("div",Qr,[E(Z,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:z(x),height:S.value},{default:K(()=>[le.value?(c(),g("div",en,"人口结构加载中")):M.value?(c(),g("div",tn,$(M.value),1)):ut.value.length?(c(),H(re,{key:3,panel:ea.value,compact:"","visual-version":"v21"},null,8,["panel"])):(c(),g("div",an,"牧户年龄结构暂无数据"))]),_:1},8,["width","height"]),E(Z,{class:"pasture-side-card right-card",title:"牧户性别统计",width:z(x),height:S.value},{default:K(()=>[le.value?(c(),g("div",rn,"人口结构加载中")):M.value?(c(),g("div",nn,$(M.value),1)):lt.value.length?(c(),H(re,{key:3,panel:ta.value,compact:"","visual-version":"v21"},null,8,["panel"])):(c(),g("div",sn,"牧户性别结构暂无数据"))]),_:1},8,["width","height"]),E(Z,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:z(x),height:T.value},{default:K(()=>[ke.value?(c(),g("div",on,"牧户台账加载中")):Q.value?(c(),g("div",un,$(Q.value),1)):ie.value.length?(c(),H(re,{key:3,panel:aa.value,compact:"","visual-version":"v21",onRowSelect:_a},null,8,["panel"])):(c(),g("div",ln,"可定位牧户暂无数据"))]),_:1},8,["width","height"])])]),R("div",{class:"pasture-map-layer-tools",style:Xe({height:`${rt.value}px`})},[E(fr,{modelValue:ee.value,"onUpdate:modelValue":t[0]||(t[0]=a=>ee.value=a),"selected-legend-key":Te.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=a=>Te.value=a),"topic-key":"grassland",layers:Ee.value,legends:at.value,multiple:"",compact:"",width:248,height:rt.value},null,8,["modelValue","selected-legend-key","layers","legends","height"])],4),Ht.value?(c(),g("div",{key:0,class:"pasture-map-feature-info",style:Xe(Yt.value)},[R("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Vt}`,title:"关闭",onClick:ir(D,["stop"])}," × ",8,cn),E(pr,{title:Vt,feature:W.value,empty:se.value,loading:oe.value,width:z(Kt),height:Zt.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):ae("",!0)])]))}};export{Sn as default};
|
|
|