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

1 lines
4.5 KiB

import{g as o,o as s,C as z,x as I,a as i,n as g,c as r,F as k,y as m,f as L,t as b,K as w,j as h}from"./index-1785726778446.js";import{_ as R}from"./index-7b46d381-1785726778446.js";import{b as j}from"./townshipBoundaries-8867fad4-1785726778446.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],$=["onClick"],G={key:0,class:"layer-panel-empty"},J={key:1,class:"layer-panel-legend"},Q=["disabled","title","onClick"],U={class:"legend-name"},W={key:0,class:"legend-check"},X={key:1,class:"layer-panel-empty is-legend"},le={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:248},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(d,{emit:V}){const t=d,p=V,f=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),v=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),c=o(()=>Array.isArray(t.legends)?t.legends:[]),C=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),A=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),x=o(()=>c.value.filter(K).length>1),M=o(()=>c.value.length===1),O=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),T=o(()=>{const l=t.legendOnly?0:f.value.length+v.value.length,e=t.showLegend?Math.ceil(c.value.length/2):0,a=l?l*34+Math.max(0,l-1)*5:30,u=t.showLegend?c.value.length?30+Math.max(28,e*28):28:0,q=t.showLegend?172:108;return Math.max(q,Math.min(430,72+a+u))}),N=o(()=>t.compact?t.height||T.value:t.height?t.height:430);function F(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const u=new Set(C.value);u.has(l)?u.delete(l):u.add(l),p("update:modelValue",Array.from(u));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return C.value.includes(String(n))}function H(n,l){var a,u;(u=(a=n.currentTarget)==null?void 0:a.blur)==null||u.call(a);const e=new Set(A.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function _(n){return A.value.includes(String(n))}function B(n={}){const l=n.color||n.fillColor||n.strokeColor||"";return l?{"--layer-item-color":l}:null}function P(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),y(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function K(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function y(n){return x.value&&K(n)}return(n,l)=>(s(),z(R,{title:O.value,width:d.width,height:N.value},{default:I(()=>[i("div",{class:g(["layer-panel",{"is-legend-only":d.legendOnly,"is-compact":d.compact,"is-without-legend":!d.showLegend}])},[d.legendOnly?h("",!0):(s(),r("div",D,[(s(!0),r(k,null,m(f.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=L(()=>{},["prevent"])),onClick:a=>F(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,E))),128)),(s(!0),r(k,null,m(v.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":_(e.key),"is-checked":_(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=L(()=>{},["prevent"])),onClick:a=>H(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,$))),128)),!f.value.length&&!v.value.length?(s(),r("div",G,"暂无图层配置")):h("",!0)])),d.showLegend?(s(),r("div",J,[l[3]||(l[3]=i("div",{class:"layer-panel-section-title"},"图例",-1)),c.value.length?(s(),r("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":M.value}])},[(s(!0),r(k,null,m(c.value,e=>(s(),r("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":y(e)&&e.key===d.selectedLegendKey,"is-checkable":y(e),"is-disabled":!y(e)}]),type:"button",disabled:!y(e),title:e.name,onMousedown:l[2]||(l[2]=L(()=>{},["prevent"])),onClick:a=>P(a,e)},[i("span",{class:"legend-swatch",style:w({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),i("span",U,b(e.name),1),y(e)?(s(),r("i",W)):h("",!0)],42,Q))),128))],2)):(s(),r("div",X,"暂无图例"))])):h("",!0)],2)]),_:1},8,["title","width","height"]))}};export{le as _};