qy-vue-plugins 1.0.8-beta → 1.0.9-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("../../chunks/base-DiDWGUIe.js"),he=require("../../chunks/el-select-gS7tMqpt.js"),e=require("vue"),L=require("@element-plus/icons-vue"),c=require("../../chunks/EventKeys-BvyQ87Zy.js"),_=require("../../chunks/ProvideKeys-91lTuLnq.js"),ke=require("../../chunks/mapStore-dFPYwvXT.js"),Ee=require("../widgets/LegendPoint.cjs"),Ve=require("../widgets/LegendLine.cjs"),Ne=require("../widgets/LegendShape.cjs"),Be=require("../widgets/TopicPop.cjs"),_e=require("../widgets/LegendPopPoint.cjs"),xe=require("../widgets/LegendPopInterestPoint.cjs"),Ce=require("../widgets/LegendPopLine.cjs"),Le=require("../widgets/ShapeDialog.cjs"),Te=require("../widgets/TopicItemPop.cjs"),y=require("element-plus"),we=require("../widgets/LayerDialog.cjs"),Se=require("pinia"),qe=require("../../chunks/mapSetting-ChTZShcE.js"),w=require("../../chunks/aria-DSSjwg9N.js"),Pe=require("../../chunks/index-aZtm4DKf.js"),be=require("../../chunks/_plugin-vue_export-helper-BHFhmbuH.js"),De=e.defineComponent({name:"ImgEmpty"}),Re=e.defineComponent({...De,setup(x){const p=T.useNamespace("empty"),g=w.useId();return(k,V)=>(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},[e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`linearGradient-1-${e.unref(g)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(p).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,["stop-color"]),e.createElementVNode("stop",{"stop-color":`var(${e.unref(p).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,["stop-color"])],8,["id"]),e.createElementVNode("linearGradient",{id:`linearGradient-2-${e.unref(g)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(p).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,["stop-color"]),e.createElementVNode("stop",{"stop-color":`var(${e.unref(p).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,["stop-color"])],8,["id"]),e.createElementVNode("rect",{id:`path-3-${e.unref(g)}`,x:"0",y:"0",width:"17",height:"36"},null,8,["id"])]),e.createElementVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createElementVNode("g",{transform:"translate(-1268.000000, -535.000000)"},[e.createElementVNode("g",{transform:"translate(1268.000000, 535.000000)"},[e.createElementVNode("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${e.unref(p).cssVarBlockName("fill-color-3")})`},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,["fill"]),e.createElementVNode("g",{transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},[e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,["fill"]),e.createElementVNode("rect",{fill:`url(#linearGradient-1-${e.unref(g)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,["fill"])]),e.createElementVNode("rect",{fill:`url(#linearGradient-2-${e.unref(g)})`,x:"13",y:"45",width:"40",height:"36"},null,8,["fill"]),e.createElementVNode("g",{transform:"translate(53.000000, 45.000000)"},[e.createElementVNode("use",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${e.unref(g)}`},null,8,["fill","xlink:href"]),e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${e.unref(g)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,["fill","mask"])]),e.createElementVNode("polygon",{fill:`var(${e.unref(p).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,["fill"])])])])]))}});var $e=w._export_sfc(Re,[["__file","img-empty.vue"]]);const Me=T.buildProps({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),Ke=e.defineComponent({name:"ElEmpty"}),Fe=e.defineComponent({...Ke,props:Me,setup(x){const p=x,{t:g}=Pe.useLocale(),k=T.useNamespace("empty"),V=e.computed(()=>p.description||g("el.table.emptyText")),S=e.computed(()=>({width:T.addUnit(p.imageSize)}));return(v,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(k).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(k).e("image")),style:e.normalizeStyle(e.unref(S))},[v.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:v.image,ondragstart:"return false"},null,8,["src"])):e.renderSlot(v.$slots,"image",{key:1},()=>[e.createVNode($e)])],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(k).e("description"))},[v.$slots.description?e.renderSlot(v.$slots,"description",{key:0}):(e.openBlock(),e.createElementBlock("p",{key:1},e.toDisplayString(e.unref(V)),1))],2),v.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(k).e("bottom"))},[e.renderSlot(v.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var ze=w._export_sfc(Fe,[["__file","empty.vue"]]);const Ge=w.withInstall(ze),Ue={key:0,class:"topic-list-content"},We={class:"qy-flex-between"},Ie={class:"qy-flex-center",style:{gap:"5px"}},Oe={class:"qy-flex-center",style:{gap:"5px"}},je={class:"qy-flex-row qy-flex-between"},Ae={class:"qy-flex-row qy-flex-align",style:{margin:"5px 0",gap:"5px"}},He={key:1,class:"research-type"},Je={key:1,class:"qy-flex-center",style:{height:"30px",color:"#999","font-size":"12px"}},Xe={key:0,class:"loading-text"},Ye={key:1,class:"qyuan icon-empty"},Ze={key:1},Qe=e.defineComponent({__name:"mapTopic",props:{onDelete:{type:Function},onUpdate:{type:Function},onDefaultTopicClick:{type:Function},checkPermissions:{type:Function},researchTypes:{},shpUploadUrl:{},isShowHeader:{type:Boolean},mapRootId:{},mapLayerEntity:{},dbfDataRequest:{type:Function},researchDataRequest:{type:Function},subTopicListRequest:{type:Function},dialogConfig:{}},emits:["openFilterDialog"],setup(x,{expose:p,emit:g}){const k=e.useTemplateRef("mapSettingRef"),V=ke.useMapStore(),S=e.ref(V.topicWidth||300),v=e.ref(!1),D=e.ref(0),ee=e.ref(0),{topicVisible:R,topTopicList:te}=Se.storeToRefs(V),$=e.ref(null);$.value;const q=e.ref(),M=e.ref(),P=e.ref(),b=e.ref(),K=e.ref(),F=e.ref(),u=e.ref([]),s=e.ref([]),z=e.computed(()=>u.value.filter(t=>t.layerType=="topic").sort((t,l)=>t.id>l.id?1:-1)),G=t=>u.value.filter(a=>a.pid===t),le=()=>{R.value=!0},oe=()=>{R.value=!1},U=t=>{if(!v.value)return;const l=ee.value+(t.clientX-D.value);l>=200&&l<=600&&(S.value=l,V.setTopicWidth(l))},W=()=>{v.value=!1,document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",W)},ae=t=>{const l=new Set(t.map(o=>o.id)),a=d.value.filter(o=>o.pid!=null&&l.has(o.pid));u.value=[...t,...a],d.value=a;for(const o of h.value)l.has(o)||h.value.delete(o);B.value.length>0&&B.value.forEach(o=>{h.value.has(o)&&h.value.delete(o),d.value.filter(m=>m.pid===o).forEach(m=>{const r=u.value.findIndex(i=>i.id===m.id);r>-1&&u.value.splice(r,1)}),d.value=d.value.filter(m=>m.pid!==o),H(o)}),t.filter(o=>o.defaultChecked===1).forEach(o=>{s.value.indexOf(o.id)===-1&&s.value.push(o.id)}),t.forEach(o=>{o.defaultChecked===1&&f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:o,visible:!0})}),d.value.filter(o=>o.defaultChecked===1).forEach(o=>{s.value.indexOf(o.id)===-1&&s.value.push(o.id),f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:o,visible:!0})})},N=x;e.watch(()=>N.mapLayerEntity,()=>{Z()},{deep:!0});const{onDelete:C,onUpdate:I,shpUploadUrl:ne,onDefaultTopicClick:tt,checkPermissions:re,mapRootId:f,dbfDataRequest:O,researchDataRequest:j,subTopicListRequest:se,researchTypes:ie}=N;f&&e.provide("mapRootId",f);const A=t=>{if(!t.pid&&t.layerType==="topic"){h.value.delete(t.id),delete E.value[t.id];const a=B.value.indexOf(t.id);a>-1&&B.value.splice(a,1);const o=d.value.filter(n=>n.pid===t.id);d.value=d.value.filter(n=>n.pid!==t.id),o.forEach(n=>{f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:n,visible:!1}),s.value=s.value.filter(m=>m!==n.id)}),C&&C(t)}else{f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:t,visible:!1}),s.value=s.value.filter(o=>o!==t.id);const a=d.value.findIndex(o=>o.id===t.id);a>-1&&d.value.splice(a,1),C&&C(t)}};c.deleteTopicBus.on(A);const H=t=>{E.value[t]||(h.value.add(t),E.value[t]=!0,se?.call(null,t)?.then(l=>{const a=l?.data?.list||[];if(a.length===0)return;const o=new Set(u.value.map(i=>i.id)),n=a.filter(i=>!o.has(i.id));if(n.length===0)return;u.value.push(...n);const m=new Set(d.value.map(i=>i.id)),r=n.filter(i=>!m.has(i.id));d.value.push(...r),u.value=[...u.value],d.value=[...d.value],r.filter(i=>i.defaultChecked===1).forEach(i=>{console.log("处理默认勾选的子图层:",i),s.value.indexOf(i.id)===-1&&s.value.push(i.id),f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:i,visible:!0})})}).catch(l=>{console.error(` ✗ 加载父专题 ${t} 的子数据失败:`,l),y.ElMessage.error("加载子专题数据失败,请稍后重试"),h.value.delete(t)}).finally(()=>{E.value[t]=!1,console.log(" ← 加载完成")}))},J=t=>{I&&I(t);const l=u.value.find(a=>a.id===t.id);if(l?(Object.assign(l,t),u.value=[...u.value]):(u.value.push(t),t.pid&&d.value.push(t)),u.value=[...u.value],d.value=[...d.value],t.defaultChecked===0&&s.value.includes(t.id)){console.log("默认加载改为关闭,取消勾选并隐藏图层:",t.id);const a=s.value.indexOf(t.id);a>-1&&s.value.splice(a,1),f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:l??t,visible:!1})}else f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:l??t,visible:s.value.includes(t.id)})};c.createTopicBus.on(J);const ce=(t,l)=>{t.stopPropagation(),c.topicPanelClickBus.emit(t),K.value?.show(t.clientY,l)},ue=t=>{c.topicPanelClickBus.emit(t)},de=g,fe=(t,l)=>{l.stopPropagation(),de("openFilterDialog",t)},pe=t=>!!(t.layerType==="species-group"||t.layerType==="sample-group"&&t.layerShapes?.includes("point")||t.layerType==="interest-point"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("point")),me=t=>!!(t.layerType==="sample-group"&&t.layerShapes?.includes("line")||t.layerType==="track"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("line")),ye=t=>!!(t.layerType==="tif"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("polygon")),ge=async(t,l)=>{console.log("checkbox change",t,l),f&&c.toggleGeographicLayerKeyBus.emit({mapRootId:f,topic:l,visible:!!t})},h=e.ref(new Set),d=e.ref([]),E=e.ref({}),B=e.ref([]),ve=t=>{if(!Array.isArray(t))return;const l=t.filter(a=>typeof a=="string");B.value=l,t.forEach(a=>{typeof a=="string"&&(h.value.has(a)||E.value[a]||H(a))})};p({SetTopics:ae,setTopTopicList:t=>{te.value=t},showTopicList:le,hideTopicList:oe,selectTopics:s,loadingStates:E});const X=({e:t,layer:l})=>{t.stopPropagation(),c.topicPanelClickBus.emit(t),l.layerType=="geojson"?b.value?.open(l,[]):l.layerType=="species-group"?q.value?.show(l):l.layerType=="sample-group"?l.layerShapes=="point"?q.value?.show(l):l.layerShapes=="line"&&P.value?.show(l):l.layerType=="track"?P.value?.show(l):l.layerType=="interest-point"?M.value?.show(l):l.layerType=="shp"||l.layerType=="kml"||l.layerType=="kmz"?l.dbfUrl?fetch(l.dbfUrl).then(a=>a.json()).then(a=>{console.log("geojson",a);const o=a.map((n,m)=>({id:m,data:JSON.stringify(n),source_id:l.sourceId}));console.log("dbfData",o),b.value?.open(l,o)}).catch(a=>{console.error("解析 GeoJSON 数据失败:",a),y.ElMessage.error("加载地理数据失败")}):y.ElMessage.error("没有找到 dbfUrl,请上传正确数据"):l.layerType=="tif"},Y=({action:t,pid:l,layer:a})=>{F.value?.open(t,l,a)},Z=()=>{if(N.mapLayerEntity){let t;Array.isArray(N.mapLayerEntity)?t=N.mapLayerEntity.find(l=>l.layerType==="map-layer"):t=N.mapLayerEntity,t&&k.value?.setMapConfig(t)}},Q=({keyword:t,mapRootId:l})=>{if(!s.value||s.value.length===0){y.ElMessage.warning("请先勾选左侧树结构中的数据到地图上");return}const a=t.toLowerCase(),o=u.value.find(n=>n.layerName?.toLowerCase().includes(a)&&s.value.includes(n.id));o?(c.locateToLayerCenterKeyBus.emit({mapRootId:l,layer:o}),y.ElMessage.success(`已定位到图层:${o.layerName}`)):u.value.some(m=>m.layerName?.toLowerCase().includes(a)&&!s.value.includes(m.id))?y.ElMessage.warning("找到匹配的图层,但未勾选到地图上,请先勾选该图层"):y.ElMessage.warning("未找到匹配的图层,请检查关键词或勾选更多数据")};return e.onMounted(()=>{c.showLayerEditKeyBus.on(X),c.showLayerDialogKeyBus.on(Y),c.searchLayerBus.on(Q),Z()}),e.onUnmounted(()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",W),c.showLayerEditKeyBus.off(X),c.showLayerDialogKeyBus.off(Y),c.searchLayerBus.off(Q),c.createTopicBus.off(J),c.deleteTopicBus.off(A),h.value.clear(),d.value=[],u.value=[],E.value={},B.value=[]}),O&&e.provide(_.dbfDataRequestKey,O),j&&e.provide(_.researchDataRequestKey,j),e.provide(_.selectTopicsKey,s),e.provide("shpUploadUrl",ne),e.provide(_.geographicLayerListKey,u),e.provide(_.permissionCheckKey,re||(()=>!0)),(t,l)=>{const a=he.ElScrollbar,o=Ge;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"map-topic-list qy-flex-col",onClick:ue},[z.value.length>0?(e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElCheckboxGroup),{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=n=>s.value=n)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElCollapse),{"expand-icon-position":"left",onChange:ve},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z.value,(n,m)=>(e.openBlock(),e.createBlock(e.unref(y.ElCollapseItem),{key:m,name:n.id},{title:e.withCtx(({isActive:r})=>[e.createElementVNode("div",We,[e.createElementVNode("div",Ie,[r?(e.openBlock(),e.createBlock(e.unref(y.ElIcon),{key:1,size:"16"},{default:e.withCtx(()=>[e.createVNode(e.unref(L.FolderOpened))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.ElIcon),{key:0,size:"16"},{default:e.withCtx(()=>[e.createVNode(e.unref(L.Folder))]),_:1})),e.createElementVNode("span",null,e.toDisplayString(n.layerName)+"("+e.toDisplayString(n.subCount)+")",1)]),e.createElementVNode("div",Oe,[n.layerName==="物种分布点位"?(e.openBlock(),e.createBlock(e.unref(y.ElIcon),{key:0,class:"filter-icon",size:"18",onClick:i=>fe(n,i)},{default:e.withCtx(()=>[e.createVNode(e.unref(L.Filter))]),_:1},8,["onClick"])):e.createCommentVNode("",!0)])])]),default:e.withCtx(()=>[G(n.id).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(G(n.id),r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"sub-topic-item"},[e.createElementVNode("div",je,[e.createElementVNode("div",Ae,[e.createVNode(e.unref(y.ElCheckbox),{value:r.id,onChange:i=>ge(i,r)},null,8,["value","onChange"]),pe(r)?(e.openBlock(),e.createBlock(Ee.default,{key:0,"layer-paint-config":r.layerPaintConfig||r.customLayerConfig,"layer-type":r.layerType},null,8,["layer-paint-config","layer-type"])):me(r)?(e.openBlock(),e.createBlock(Ve.default,{key:1,topic:r},null,8,["topic"])):ye(r)?(e.openBlock(),e.createBlock(Ne.default,{key:2,topic:r},null,8,["topic"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(r.layerName)+" ",1),n.layerName=="物种分布点位"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(r.pointInfo?.length||0)+") ",1)],64)):e.createCommentVNode("",!0),n.layerName=="样地样线分布"?(e.openBlock(),e.createElementBlock("span",He,e.toDisplayString(r.researchType?e.unref(ie)[r.researchType]:""),1)):e.createCommentVNode("",!0)])]),e.createVNode(e.unref(y.ElButton),{style:{display:"none"},size:"small",type:"default",circle:"",onClick:i=>ce(i,r),icon:e.unref(L.MoreFilled)},null,8,["onClick","icon"])])]))),128)):(e.openBlock(),e.createElementBlock("div",Je,[E.value[n.id]?(e.openBlock(),e.createElementBlock("span",Xe,[...l[1]||(l[1]=[e.createElementVNode("i",{class:"el-icon-loading"},null,-1),e.createTextVNode(" 加载中... ",-1)])])):(e.openBlock(),e.createElementBlock("span",Ye,"暂无数据"))]))]),_:2},1032,["name"]))),128))]),_:1})]),_:1},8,["modelValue"])]),_:1})])):(e.openBlock(),e.createElementBlock("div",Ze,[e.createVNode(o,{description:"请点击“新增”按钮,添加地理数据"})]))])]),_:1}),e.createVNode(Be.default,{ref_key:"topicPopRef",ref:$},null,512),e.createVNode(_e.default,{ref_key:"legendPopRef",ref:q},null,512),e.createVNode(xe.default,{ref_key:"legendPopInterestPointRef",ref:M},null,512),e.createVNode(Ce.default,{ref_key:"legendPopLineRef",ref:P},null,512),e.createVNode(Le.default,{ref_key:"shapeDialogRef",ref:b},null,512),e.createVNode(Te.default,{ref_key:"topicItemPopRef",ref:K},null,512),e.createVNode(we.default,{ref_key:"layerDialogRef",ref:F},null,512),e.createVNode(qe.MapSetting,{ref_key:"mapSettingRef",ref:k},null,512)],64)}}}),et=be._export_sfc(Qe,[["__scopeId","data-v-9b52ee51"]]);exports.default=et;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("../../chunks/base-DiDWGUIe.js"),Ve=require("../../chunks/el-select-gS7tMqpt.js"),e=require("vue"),S=require("@element-plus/icons-vue"),i=require("../../chunks/EventKeys-BvyQ87Zy.js"),C=require("../../chunks/ProvideKeys-91lTuLnq.js"),Ne=require("../../chunks/mapStore-dFPYwvXT.js"),Be=require("../widgets/LegendPoint.cjs"),Ce=require("../widgets/LegendLine.cjs"),_e=require("../widgets/LegendShape.cjs"),xe=require("../widgets/TopicPop.cjs"),Le=require("../widgets/LegendPopPoint.cjs"),Te=require("../widgets/LegendPopInterestPoint.cjs"),we=require("../widgets/LegendPopLine.cjs"),Se=require("../widgets/ShapeDialog.cjs"),Pe=require("../widgets/TopicItemPop.cjs"),m=require("element-plus"),qe=require("../widgets/LayerDialog.cjs"),be=require("pinia"),De=require("../../chunks/mapSetting-ChTZShcE.js"),q=require("../../chunks/aria-DSSjwg9N.js"),Re=require("../../chunks/index-aZtm4DKf.js"),$e=require("../../chunks/_plugin-vue_export-helper-BHFhmbuH.js"),Me=e.defineComponent({name:"ImgEmpty"}),Ke=e.defineComponent({...Me,setup(_){const f=P.useNamespace("empty"),g=q.useId();return(V,N)=>(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},[e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`linearGradient-1-${e.unref(g)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(f).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,["stop-color"]),e.createElementVNode("stop",{"stop-color":`var(${e.unref(f).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,["stop-color"])],8,["id"]),e.createElementVNode("linearGradient",{id:`linearGradient-2-${e.unref(g)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(f).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,["stop-color"]),e.createElementVNode("stop",{"stop-color":`var(${e.unref(f).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,["stop-color"])],8,["id"]),e.createElementVNode("rect",{id:`path-3-${e.unref(g)}`,x:"0",y:"0",width:"17",height:"36"},null,8,["id"])]),e.createElementVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createElementVNode("g",{transform:"translate(-1268.000000, -535.000000)"},[e.createElementVNode("g",{transform:"translate(1268.000000, 535.000000)"},[e.createElementVNode("path",{d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${e.unref(f).cssVarBlockName("fill-color-3")})`},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,["fill"]),e.createElementVNode("g",{transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},[e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,["fill"]),e.createElementVNode("rect",{fill:`url(#linearGradient-1-${e.unref(g)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,["fill"]),e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,["fill"])]),e.createElementVNode("rect",{fill:`url(#linearGradient-2-${e.unref(g)})`,x:"13",y:"45",width:"40",height:"36"},null,8,["fill"]),e.createElementVNode("g",{transform:"translate(53.000000, 45.000000)"},[e.createElementVNode("use",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${e.unref(g)}`},null,8,["fill","xlink:href"]),e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${e.unref(g)})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,["fill","mask"])]),e.createElementVNode("polygon",{fill:`var(${e.unref(f).cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,["fill"])])])])]))}});var Ie=q._export_sfc(Ke,[["__file","img-empty.vue"]]);const Fe=P.buildProps({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),ze=e.defineComponent({name:"ElEmpty"}),Ge=e.defineComponent({...ze,props:Fe,setup(_){const f=_,{t:g}=Re.useLocale(),V=P.useNamespace("empty"),N=e.computed(()=>f.description||g("el.table.emptyText")),b=e.computed(()=>({width:P.addUnit(f.imageSize)}));return(h,F)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(V).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(V).e("image")),style:e.normalizeStyle(e.unref(b))},[h.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:h.image,ondragstart:"return false"},null,8,["src"])):e.renderSlot(h.$slots,"image",{key:1},()=>[e.createVNode(Ie)])],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(V).e("description"))},[h.$slots.description?e.renderSlot(h.$slots,"description",{key:0}):(e.openBlock(),e.createElementBlock("p",{key:1},e.toDisplayString(e.unref(N)),1))],2),h.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(V).e("bottom"))},[e.renderSlot(h.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var Ue=q._export_sfc(Ge,[["__file","empty.vue"]]);const We=q.withInstall(Ue),Oe={key:0,class:"topic-list-content"},je={class:"qy-flex-between"},Ae={class:"qy-flex-center",style:{gap:"5px"}},He={class:"qy-flex-center",style:{gap:"5px"}},Je={class:"qy-flex-row qy-flex-between"},Xe={class:"qy-flex-row qy-flex-align",style:{margin:"5px 0",gap:"5px"}},Ye={key:1,class:"research-type"},Ze={key:1,class:"qy-flex-center",style:{height:"30px",color:"#999","font-size":"12px"}},Qe={key:0,class:"loading-text"},et={key:1,class:"qyuan icon-empty"},tt={key:1},lt=e.defineComponent({__name:"mapTopic",props:{onDelete:{type:Function},onUpdate:{type:Function},onDefaultTopicClick:{type:Function},checkPermissions:{type:Function},researchTypes:{},shpUploadUrl:{},isShowHeader:{type:Boolean},mapRootId:{},mapLayerEntity:{},dbfDataRequest:{type:Function},researchDataRequest:{type:Function},subTopicListRequest:{type:Function},dialogConfig:{}},emits:["openFilterDialog"],setup(_,{expose:f,emit:g}){const V=e.useTemplateRef("mapSettingRef"),N=Ne.useMapStore(),b=e.ref(N.topicWidth||300),h=e.ref(!1),F=e.ref(0),oe=e.ref(0),{topicVisible:z,topTopicList:ae}=be.storeToRefs(N),G=e.ref(null);G.value;const D=e.ref(),U=e.ref(),R=e.ref(),$=e.ref(),W=e.ref(),O=e.ref(),c=e.ref([]),u=e.ref([]),j=e.computed(()=>c.value.filter(t=>t.layerType=="topic").sort((t,l)=>t.id>l.id?1:-1)),A=t=>c.value.filter(o=>o.pid===t),ne=()=>{z.value=!0},re=()=>{z.value=!1},H=t=>{if(!h.value)return;const l=oe.value+(t.clientX-F.value);l>=200&&l<=600&&(b.value=l,N.setTopicWidth(l))},J=()=>{h.value=!1,document.removeEventListener("mousemove",H),document.removeEventListener("mouseup",J)},se=t=>{const l=new Set(t.map(n=>n.id));for(const n of v.value)l.has(n)||v.value.delete(n);if(p.value=[],k.value={},v.value.clear(),c.value=[...t],t.filter(n=>n.defaultChecked===1).forEach(n=>{u.value.indexOf(n.id)===-1&&u.value.push(n.id),d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:n,visible:!0})}),M&&t.length>0){const n=t.map(a=>M(a.id).then(y=>{const s=y?.data?.list||[];if(s.length===0)return;v.value.add(String(a.id));const r=new Set(c.value.map(E=>E.id)),w=s.filter(E=>!r.has(E.id));w.length!==0&&(c.value.push(...w),p.value.push(...w),w.filter(E=>E.defaultChecked===1).forEach(E=>{u.value.indexOf(E.id)===-1&&u.value.push(E.id),d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:E,visible:!0})}))}).catch(y=>{console.error(`加载父专题 ${a.id} 的子数据失败:`,y)}));Promise.allSettled(n).then(()=>{c.value=[...c.value],p.value=[...p.value]})}},B=_;e.watch(()=>B.mapLayerEntity,()=>{te()},{deep:!0});const{onDelete:x,onUpdate:L,shpUploadUrl:ie,onDefaultTopicClick:at,checkPermissions:ce,mapRootId:d,dbfDataRequest:X,researchDataRequest:Y,subTopicListRequest:M,researchTypes:ue}=B;d&&e.provide("mapRootId",d);const Z=t=>{if(!t.pid&&t.layerType==="topic"){v.value.delete(t.id),delete k.value[t.id];const o=T.value.indexOf(t.id);o>-1&&T.value.splice(o,1);const n=p.value.filter(a=>a.pid===t.id);p.value=p.value.filter(a=>a.pid!==t.id),n.forEach(a=>{d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:a,visible:!1}),u.value=u.value.filter(y=>y!==a.id)}),x&&x(t)}else{d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:t,visible:!1}),u.value=u.value.filter(n=>n!==t.id);const o=p.value.findIndex(n=>n.id===t.id);o>-1&&p.value.splice(o,1),x&&x(t)}};i.deleteTopicBus.on(Z);const de=t=>{k.value[t]||(v.value.add(t),k.value[t]=!0,M?.call(null,t)?.then(l=>{const o=l?.data?.list||[];if(o.length===0)return;const n=new Set(c.value.map(r=>r.id)),a=o.filter(r=>!n.has(r.id));if(a.length===0)return;c.value.push(...a);const y=new Set(p.value.map(r=>r.id)),s=a.filter(r=>!y.has(r.id));p.value.push(...s),c.value=[...c.value],p.value=[...p.value],s.filter(r=>r.defaultChecked===1).forEach(r=>{console.log("处理默认勾选的子图层:",r),u.value.indexOf(r.id)===-1&&u.value.push(r.id),d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:r,visible:!0})})}).catch(l=>{console.error(` ✗ 加载父专题 ${t} 的子数据失败:`,l),m.ElMessage.error("加载子专题数据失败,请稍后重试"),v.value.delete(t)}).finally(()=>{k.value[t]=!1,console.log(" ← 加载完成")}))},Q=t=>{L&&L(t);const l=c.value.find(o=>o.id===t.id);l?(Object.assign(l,t),c.value=[...c.value]):(c.value.push(t),t.pid&&p.value.push(t)),c.value=[...c.value],p.value=[...p.value],t.defaultChecked===0&&u.value.includes(t.id)?(console.log("默认加载改为关闭,取消勾选并隐藏图层:",t.id),d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:l??t,visible:!0})):d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:l??t,visible:u.value.includes(t.id)})};i.createTopicBus.on(Q);const fe=(t,l)=>{t.stopPropagation(),i.topicPanelClickBus.emit(t),W.value?.show(t.clientY,l)},pe=t=>{i.topicPanelClickBus.emit(t)},me=g,ye=(t,l)=>{l.stopPropagation(),me("openFilterDialog",t)},ge=t=>!!(t.layerType==="species-group"||t.layerType==="sample-group"&&t.layerShapes?.includes("point")||t.layerType==="interest-point"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("point")),he=t=>!!(t.layerType==="sample-group"&&t.layerShapes?.includes("line")||t.layerType==="track"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("line")),ve=t=>!!(t.layerType==="tif"||(t.layerType==="shp"||t.layerType==="kml"||t.layerType==="kmz"||t.layerType==="geojson")&&t.layerShapes?.includes("polygon")),ke=async(t,l)=>{console.log("checkbox change",t,l),d&&i.toggleGeographicLayerKeyBus.emit({mapRootId:d,topic:l,visible:!!t}),l.defaultChecked=t?1:0,L&&L({...l})},v=e.ref(new Set),p=e.ref([]),k=e.ref({}),T=e.ref([]),Ee=t=>{if(!Array.isArray(t))return;const l=t.filter(o=>typeof o=="string");T.value=l,t.forEach(o=>{typeof o=="string"&&(v.value.has(o)||k.value[o]||de(o))})};f({SetTopics:se,setTopTopicList:t=>{ae.value=t},showTopicList:ne,hideTopicList:re,selectTopics:u,loadingStates:k});const K=(t,l)=>{t.stopPropagation(),I({e:t,layer:l})},I=({e:t,layer:l})=>{t.stopPropagation(),i.topicPanelClickBus.emit(t),l.layerType=="geojson"?$.value?.open(l,[]):l.layerType=="species-group"?D.value?.show(l):l.layerType=="sample-group"?l.layerShapes=="point"?D.value?.show(l):l.layerShapes=="line"&&R.value?.show(l):l.layerType=="track"?R.value?.show(l):l.layerType=="interest-point"?U.value?.show(l):l.layerType=="shp"||l.layerType=="kml"||l.layerType=="kmz"?l.dbfUrl?fetch(l.dbfUrl).then(o=>o.json()).then(o=>{console.log("geojson",o);const n=o.map((a,y)=>({id:y,data:JSON.stringify(a),source_id:l.sourceId}));console.log("dbfData",n),$.value?.open(l,n)}).catch(o=>{console.error("解析 GeoJSON 数据失败:",o),m.ElMessage.error("加载地理数据失败")}):m.ElMessage.error("没有找到 dbfUrl,请上传正确数据"):l.layerType=="tif"},ee=({action:t,pid:l,layer:o})=>{O.value?.open(t,l,o)},te=()=>{if(B.mapLayerEntity){let t;Array.isArray(B.mapLayerEntity)?t=B.mapLayerEntity.find(l=>l.layerType==="map-layer"):t=B.mapLayerEntity,t&&V.value?.setMapConfig(t)}},le=({keyword:t,mapRootId:l})=>{if(!u.value||u.value.length===0){m.ElMessage.warning("请先勾选左侧树结构中的数据到地图上");return}const o=t.toLowerCase(),n=c.value.find(a=>a.layerName?.toLowerCase().includes(o)&&u.value.includes(a.id));n?(i.locateToLayerCenterKeyBus.emit({mapRootId:l,layer:n}),m.ElMessage.success(`已定位到图层:${n.layerName}`)):c.value.some(y=>y.layerName?.toLowerCase().includes(o)&&!u.value.includes(y.id))?m.ElMessage.warning("找到匹配的图层,但未勾选到地图上,请先勾选该图层"):m.ElMessage.warning("未找到匹配的图层,请检查关键词或勾选更多数据")};return e.onMounted(()=>{i.showLayerEditKeyBus.on(I),i.showLayerDialogKeyBus.on(ee),i.searchLayerBus.on(le),te()}),e.onUnmounted(()=>{document.removeEventListener("mousemove",H),document.removeEventListener("mouseup",J),i.showLayerEditKeyBus.off(I),i.showLayerDialogKeyBus.off(ee),i.searchLayerBus.off(le),i.createTopicBus.off(Q),i.deleteTopicBus.off(Z),v.value.clear(),p.value=[],c.value=[],k.value={},T.value=[]}),X&&e.provide(C.dbfDataRequestKey,X),Y&&e.provide(C.researchDataRequestKey,Y),e.provide(C.selectTopicsKey,u),e.provide("shpUploadUrl",ie),e.provide(C.geographicLayerListKey,c),e.provide(C.permissionCheckKey,ce||(()=>!0)),(t,l)=>{const o=Ve.ElScrollbar,n=We;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"map-topic-list qy-flex-col",onClick:pe},[j.value.length>0?(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(o,null,{default:e.withCtx(()=>[e.createVNode(e.unref(m.ElCheckboxGroup),{modelValue:u.value,"onUpdate:modelValue":l[0]||(l[0]=a=>u.value=a)},{default:e.withCtx(()=>[e.createVNode(e.unref(m.ElCollapse),{"expand-icon-position":"left",onChange:Ee},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,(a,y)=>(e.openBlock(),e.createBlock(e.unref(m.ElCollapseItem),{key:y,name:a.id},{title:e.withCtx(({isActive:s})=>[e.createElementVNode("div",je,[e.createElementVNode("div",Ae,[s?(e.openBlock(),e.createBlock(e.unref(m.ElIcon),{key:1,size:"16"},{default:e.withCtx(()=>[e.createVNode(e.unref(S.FolderOpened))]),_:1})):(e.openBlock(),e.createBlock(e.unref(m.ElIcon),{key:0,size:"16"},{default:e.withCtx(()=>[e.createVNode(e.unref(S.Folder))]),_:1})),e.createElementVNode("span",null,e.toDisplayString(a.layerName)+"("+e.toDisplayString(a.subCount)+")",1)]),e.createElementVNode("div",He,[a.layerName==="物种分布点位"?(e.openBlock(),e.createBlock(e.unref(m.ElIcon),{key:0,class:"filter-icon",size:"18",onClick:r=>ye(a,r)},{default:e.withCtx(()=>[e.createVNode(e.unref(S.Filter))]),_:1},8,["onClick"])):e.createCommentVNode("",!0)])])]),default:e.withCtx(()=>[A(a.id).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(A(a.id),s=>(e.openBlock(),e.createElementBlock("div",{key:s.id,class:"sub-topic-item"},[e.createElementVNode("div",Je,[e.createElementVNode("div",Xe,[e.createVNode(e.unref(m.ElCheckbox),{value:s.id,onChange:r=>ke(r,s)},null,8,["value","onChange"]),ge(s)?(e.openBlock(),e.createBlock(Be.default,{key:0,"layer-paint-config":s.layerPaintConfig||s.customLayerConfig,"layer-type":s.layerType,class:"legend-clickable",onClick:r=>K(r,s)},null,8,["layer-paint-config","layer-type","onClick"])):he(s)?(e.openBlock(),e.createBlock(Ce.default,{key:1,topic:s,class:"legend-clickable",onClick:r=>K(r,s)},null,8,["topic","onClick"])):ve(s)?(e.openBlock(),e.createBlock(_e.default,{key:2,topic:s,class:"legend-clickable",onClick:r=>K(r,s)},null,8,["topic","onClick"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(s.layerName)+" ",1),a.layerName=="物种分布点位"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(s.pointInfo?.length||0)+") ",1)],64)):e.createCommentVNode("",!0),a.layerName=="样地样线分布"?(e.openBlock(),e.createElementBlock("span",Ye,e.toDisplayString(s.researchType?e.unref(ue)[s.researchType]:""),1)):e.createCommentVNode("",!0)])]),e.createVNode(e.unref(m.ElButton),{style:{display:"none"},size:"small",type:"default",circle:"",onClick:r=>fe(r,s),icon:e.unref(S.MoreFilled)},null,8,["onClick","icon"])])]))),128)):(e.openBlock(),e.createElementBlock("div",Ze,[k.value[a.id]?(e.openBlock(),e.createElementBlock("span",Qe,[...l[1]||(l[1]=[e.createElementVNode("i",{class:"el-icon-loading"},null,-1),e.createTextVNode(" 加载中... ",-1)])])):(e.openBlock(),e.createElementBlock("span",et,"暂无数据"))]))]),_:2},1032,["name"]))),128))]),_:1})]),_:1},8,["modelValue"])]),_:1})])):(e.openBlock(),e.createElementBlock("div",tt,[e.createVNode(n,{description:"请点击“新增”按钮,添加地理数据"})]))])]),_:1}),e.createVNode(xe.default,{ref_key:"topicPopRef",ref:G},null,512),e.createVNode(Le.default,{ref_key:"legendPopRef",ref:D},null,512),e.createVNode(Te.default,{ref_key:"legendPopInterestPointRef",ref:U},null,512),e.createVNode(we.default,{ref_key:"legendPopLineRef",ref:R},null,512),e.createVNode(Se.default,{ref_key:"shapeDialogRef",ref:$},null,512),e.createVNode(Pe.default,{ref_key:"topicItemPopRef",ref:W},null,512),e.createVNode(qe.default,{ref_key:"layerDialogRef",ref:O},null,512),e.createVNode(De.MapSetting,{ref_key:"mapSettingRef",ref:V},null,512)],64)}}}),ot=$e._export_sfc(lt,[["__scopeId","data-v-7df1a45a"]]);exports.default=ot;