@gis_victory/curd-form 0.0.1

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.
@@ -0,0 +1,2 @@
1
+ (function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@gis_victory/gismap")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@gis_victory/gismap"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.CurdForm={},P.Vue,P.ElementPlus,P.GisMap))})(this,(function(P,e,S,R){"use strict";const H={name:"FormItem"},G=e.defineComponent({...H,props:{modelValue:{type:[String,Number,Array],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]},currentOperationType:{type:String,default:"default"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a;let r=t.modelValue;const n=t.item.type==="multiple-select"||t.item.type==="checkbox"||t.item.searchFormType==="multiple-select"||t.item.searchFormType==="checkbox";n&&typeof r=="string"&&r&&(r=r.split(","));const l=e.ref(r),y=o,m=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1}),i=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1});return e.watch(l,d=>{let s=d;n&&Array.isArray(d)&&(s=d.join(",")),y("update:modelValue",s)}),e.watch(()=>t.modelValue,d=>{let s=d;n&&typeof d=="string"&&d&&(s=d.split(",")),l.value=s}),(d,s)=>{const c=e.resolveComponent("el-option"),p=e.resolveComponent("el-select"),b=e.resolveComponent("el-date-picker"),k=e.resolveComponent("el-checkbox"),x=e.resolveComponent("el-checkbox-group"),M=e.resolveComponent("el-radio"),C=e.resolveComponent("el-radio-group"),F=e.resolveComponent("el-input");return a.item.searchFormType==="select"||a.item.type==="select"?(e.openBlock(),e.createBlock(p,{key:0,modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="multiple-select"||a.item.type==="multiple-select"?(e.openBlock(),e.createBlock(p,{key:1,modelValue:l.value,"onUpdate:modelValue":s[1]||(s[1]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",multiple:"",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="date"||a.item.type==="date"?(e.openBlock(),e.createBlock(b,{key:2,modelValue:l.value,"onUpdate:modelValue":s[2]||(s[2]=f=>l.value=f),type:"date","value-format":"YYYY-MM-DD",placeholder:a.item.placeholder||"请选择日期",disabled:e.unref(m),readonly:e.unref(i),clearable:"",style:{width:"100%"}},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="daterange"||a.item.type==="daterange"?(e.openBlock(),e.createBlock(b,{key:3,modelValue:l.value,"onUpdate:modelValue":s[3]||(s[3]=f=>l.value=f),type:"daterange","value-format":"yyyy-MM-dd",placeholder:a.item.placeholder||"请选择日期范围",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="checkbox"||a.item.type==="checkbox"?(e.openBlock(),e.createBlock(x,{key:4,modelValue:l.value,"onUpdate:modelValue":s[4]||(s[4]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(k,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="radio"||a.item.type==="radio"?(e.openBlock(),e.createBlock(C,{key:5,modelValue:l.value,"onUpdate:modelValue":s[5]||(s[5]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(M,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="textarea"||a.item.type==="textarea"?(e.openBlock(),e.createBlock(F,{key:6,modelValue:l.value,"onUpdate:modelValue":s[6]||(s[6]=f=>l.value=f),type:"textarea",placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="input"||a.item.type==="input"?(e.openBlock(),e.createBlock(F,{key:7,modelValue:l.value,"onUpdate:modelValue":s[7]||(s[7]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):(e.openBlock(),e.createBlock(F,{key:8,modelValue:l.value,"onUpdate:modelValue":s[8]||(s[8]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"]))}}}),Z={name:"FormItemDetail"},Q=e.defineComponent({...Z,props:{modelValue:{type:[String,Number,Array,Object],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]}},setup(a){const o=a;let t=o.modelValue;const r=o.item.type==="multiple-select"||o.item.type==="checkbox"||o.item.searchFormType==="multiple-select"||o.item.searchFormType==="checkbox";typeof t=="object"&&t!==null&&!Array.isArray(t)&&(t=Object.values(t).join(",")),r&&typeof t=="string"&&t&&(t=t.split(","));const n=e.ref(t);return e.onMounted(()=>{switch(o.item.type){case"select":case"radio":const l=o.dropdownOptions.find(i=>i.id===o.modelValue);n.value=l?.name||"";break;case"checkbox":case"multiple-select":const m=(Array.isArray(n.value)?n.value:n.value?.split(",")||[]).map(i=>o.dropdownOptions.find(s=>s.id===i)?.name||i).filter(Boolean);n.value=m.join(",")||"";break;case"date":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD"):"";break;case"datetime":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD HH:mm:ss"):"";break;default:n.value=o.modelValue;break}}),(l,y)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(n.value),1))}});var z={exports:{}},Y;function X(){if(Y)return z.exports;Y=1,z.exports=t,z.exports.parse=t,z.exports.stringify=r;var a=/[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/,o=new RegExp("^"+a.source+"(\\s"+a.source+"){1,}");function t(n){var l=n.split(";"),y=l.pop(),m=(l.shift()||"").split("=").pop(),i=0;function d(g){var V=y.substring(i).match(g);return V?(i+=V[0].length,V[0]):null}function s(g){return g&&m.match(/\d+/)&&(g.crs={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+m}}),g}function c(){d(/^\s*/)}function p(){c();for(var g=0,V=[],N=[V],E=V,T;T=d(/^(\()/)||d(/^(\))/)||d(/^(,)/)||d(o);){if(T==="(")N.push(E),E=[],N[N.length-1].push(E),g++;else if(T===")"){if(E.length===0||(E=N.pop(),!E))return null;if(g--,g===0)break}else if(T===",")E=[],N[N.length-1].push(E);else if(!T.split(/\s/g).some(isNaN))Array.prototype.push.apply(E,T.split(/\s/g).map(parseFloat));else return null;c()}return g!==0?null:V}function b(){for(var g=[],V,N;N=d(o)||d(/^(,)/);)N===","?(g.push(V),V=[]):N.split(/\s/g).some(isNaN)||(V||(V=[]),Array.prototype.push.apply(V,N.split(/\s/g).map(parseFloat))),c();if(V)g.push(V);else return null;return g.length?g:null}function k(){if(!d(/^(point(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||(c(),!d(/^(\))/))?null:{type:"Point",coordinates:g[0]}}function x(){if(!d(/^(multipoint)/i))return null;c();var g=y.substring(y.indexOf("(")+1,y.length-1).replace(/\(/g,"").replace(/\)/g,"");y="MULTIPOINT ("+g+")";var V=p();return V?(c(),{type:"MultiPoint",coordinates:V}):null}function M(){if(!d(/^(multilinestring)/i))return null;c();var g=p();return g?(c(),{type:"MultiLineString",coordinates:g}):null}function C(){if(!d(/^(linestring(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||!d(/^(\))/)?null:{type:"LineString",coordinates:g}}function F(){if(!d(/^(polygon(\sz)?)/i))return null;c();var g=p();return g?{type:"Polygon",coordinates:g}:null}function f(){if(!d(/^(multipolygon)/i))return null;c();var g=p();return g?{type:"MultiPolygon",coordinates:g}:null}function B(){var g=[],V;if(!d(/^(geometrycollection)/i)||(c(),!d(/^(\()/)))return null;for(;V=L();)g.push(V),c(),d(/^(,)/),c();return d(/^(\))/)?{type:"GeometryCollection",geometries:g}:null}function L(){return k()||C()||F()||x()||M()||f()||B()}return s(L())}function r(n){n.type==="Feature"&&(n=n.geometry);function l(s){return s.join(" ")}function y(s){return s.map(l).join(", ")}function m(s){return s.map(y).map(d).join(", ")}function i(s){return s.map(m).map(d).join(", ")}function d(s){return"("+s+")"}switch(n.type){case"Point":return"POINT ("+l(n.coordinates)+")";case"LineString":return"LINESTRING ("+y(n.coordinates)+")";case"Polygon":return"POLYGON ("+m(n.coordinates)+")";case"MultiPoint":return"MULTIPOINT ("+y(n.coordinates)+")";case"MultiPolygon":return"MULTIPOLYGON ("+i(n.coordinates)+")";case"MultiLineString":return"MULTILINESTRING ("+m(n.coordinates)+")";case"GeometryCollection":return"GEOMETRYCOLLECTION ("+n.geometries.map(r).join(", ")+")";default:throw new Error("stringify requires a valid GeoJSON Feature or geometry object as input")}}return z.exports}var W=X();function v(a,o,t={}){const r={type:"Feature"};return(t.id===0||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=o||{},r.geometry=a,r}function ee(a,o,t={}){if(!a)throw new Error("coordinates is required");if(!Array.isArray(a))throw new Error("coordinates must be an Array");if(a.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!j(a[0])||!j(a[1]))throw new Error("coordinates must contain numbers");return v({type:"Point",coordinates:a},o,t)}function j(a){return!isNaN(a)&&a!==null&&!Array.isArray(a)}function J(a,o,t){if(a!==null)for(var r,n,l,y,m,i,d,s=0,c=0,p,b=a.type,k=b==="FeatureCollection",x=b==="Feature",M=k?a.features.length:1,C=0;C<M;C++){d=k?a.features[C].geometry:x?a.geometry:a,p=d?d.type==="GeometryCollection":!1,m=p?d.geometries.length:1;for(var F=0;F<m;F++){var f=0,B=0;if(y=p?d.geometries[F]:d,y!==null){i=y.coordinates;var L=y.type;switch(s=L==="Polygon"||L==="MultiPolygon"?1:0,L){case null:break;case"Point":if(o(i,c,C,f,B)===!1)return!1;c++,f++;break;case"LineString":case"MultiPoint":for(r=0;r<i.length;r++){if(o(i[r],c,C,f,B)===!1)return!1;c++,L==="MultiPoint"&&f++}L==="LineString"&&f++;break;case"Polygon":case"MultiLineString":for(r=0;r<i.length;r++){for(n=0;n<i[r].length-s;n++){if(o(i[r][n],c,C,f,B)===!1)return!1;c++}L==="MultiLineString"&&f++,L==="Polygon"&&B++}L==="Polygon"&&f++;break;case"MultiPolygon":for(r=0;r<i.length;r++){for(B=0,n=0;n<i[r].length;n++){for(l=0;l<i[r][n].length-s;l++){if(o(i[r][n][l],c,C,f,B)===!1)return!1;c++}B++}f++}break;case"GeometryCollection":for(r=0;r<y.geometries.length;r++)if(J(y.geometries[r],o)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function te(a,o={}){let t=0,r=0,n=0;return J(a,function(l){t+=l[0],r+=l[1],n++}),ee([t/n,r/n],o.properties)}class oe{map;sourceId="curd-map-source";layerId="curd-map-layer";featureCollection={type:"FeatureCollection",features:[]};constructor(o){this.map=o,this.setSource()}setSource(){this.map.addSource(this.sourceId,{type:"geojson",data:this.featureCollection})}setLayer(o){if(!this.map.getLayer(this.layerId))switch(o.toLowerCase()){case"polygon":case"multipolygon":this.map.addLayer({id:this.layerId,type:"fill",source:this.sourceId,paint:{"fill-color":"#ff0000","fill-opacity":.5}});break;case"linestring":case"multilinestring":this.map.addLayer({id:this.layerId,type:"line",source:this.sourceId,paint:{"line-color":"#ff0000","line-opacity":.8,"line-width":3}});break;case"point":this.map.addLayer({id:this.layerId,type:"circle",source:this.sourceId,paint:{"circle-color":"#ff0000","circle-opacity":.8,"circle-radius":5,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}});break}}setData(o){if(!o)return;const t={type:"Feature",geometry:o},r=this.map.getSource(this.sourceId);r&&(this.featureCollection.features=[t],r?.setData(this.featureCollection))}flyTo(){if(this.featureCollection.features.length!==0)try{let o=this.featureCollection.features[0];if(!o)return;let t=null;if(o.geometry.type.toLowerCase()==="point"?t=o.geometry.coordinates:t=te(this.featureCollection)?.geometry?.coordinates||null,!t)return;this.map.flyTo({center:t,zoom:16})}catch(o){console.error("计算外包边框中心点失败:",o)}}formatWktToGeoJson(o){if(!o)return null;try{return W.parse(o)}catch(t){return console.error("WKT 转换为 GeoJSON 失败:",t),null}}formatGeoJsonToWkt(o){if(!o)return"";try{return W.stringify(o)}catch(t){return console.error("GeoJSON 转换为 WKT 失败:",t),""}}clear(){this.map.removeLayer(this.layerId),this.map.removeSource(this.sourceId)}}class re{map;drawSourceId="curd-map-draw-source";drawLayerId="curd-map-draw-layer";drawLineLayerId="curd-map-draw-line-layer";drawPointLayerId="curd-map-draw-point-layer";drawFeatureCollection={type:"FeatureCollection",features:[]};drawType="none";drawCoordinates=[];drawCallback=null;constructor(o){this.map=o,this.initDrawSource()}initDrawSource(){this.map.getSource(this.drawSourceId)||this.map.addSource(this.drawSourceId,{type:"geojson",data:this.drawFeatureCollection})}startDraw(o,t){this.clearDraw(),this.drawType=o,this.drawCallback=t,this.drawCoordinates=[],this.setupDrawLayers(),this.setupDrawEvents(),this.map.getCanvas().style.cursor="crosshair"}stopDraw(){this.drawType="none",this.drawCallback=null,this.clearDraw(),this.removeDrawEvents(),this.map.getCanvas().style.cursor=""}clearDraw(){this.drawCoordinates=[],this.drawFeatureCollection.features=[];const o=this.map.getSource(this.drawSourceId);o&&o.setData(this.drawFeatureCollection),[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)})}setupDrawLayers(){[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)});const o="#ff0000";this.drawType==="point"&&this.map.addLayer({id:this.drawLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":6,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}}),(this.drawType==="line"||this.drawType==="polygon")&&(this.map.addLayer({id:this.drawLineLayerId,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":3}}),this.map.addLayer({id:this.drawPointLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":4,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}})),this.drawType==="polygon"&&(this.map.addLayer({id:this.drawLayerId,type:"fill",source:this.drawSourceId,paint:{"fill-color":o,"fill-opacity":.3}}),this.map.addLayer({id:`${this.drawLayerId}-outline`,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":2}}))}setupDrawEvents(){this.map.on("click",this.handleMapClick.bind(this)),this.map.on("mousemove",this.handleMapMouseMove.bind(this)),this.map.on("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.disable()}removeDrawEvents(){this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.enable()}handleMapClick(o){const t=o.lngLat.toArray();this.drawCoordinates.push(t),this.updateDrawFeature(),this.drawType==="point"&&this.finishDraw()}handleMapMouseMove(o){if(this.drawType==="none"||this.drawCoordinates.length===0)return;const t=o.lngLat.toArray(),r=[...this.drawCoordinates,t];this.updateDrawFeature(r)}handleMapDoubleClick(){(this.drawType==="line"||this.drawType==="polygon")&&this.finishDraw()}updateDrawFeature(o){const t=o||this.drawCoordinates;if(t.length===0)return;let r=null;switch(this.drawType){case"point":r={type:"Point",coordinates:t[0]};break;case"line":r={type:"LineString",coordinates:t};break;case"polygon":r={type:"Polygon",coordinates:[t]};break}if(r){this.drawFeatureCollection.features=[{type:"Feature",geometry:r}];const n=this.map.getSource(this.drawSourceId);n&&n.setData(this.drawFeatureCollection)}}finishDraw(){if(this.drawCoordinates.length===0)return;let o=null;switch(this.drawType){case"point":o={type:"Point",coordinates:this.drawCoordinates[0]};break;case"line":if(this.drawCoordinates.length<2){this.clearDraw();return}o={type:"LineString",coordinates:this.drawCoordinates};break;case"polygon":if(this.drawCoordinates.length<3){this.clearDraw();return}o={type:"Polygon",coordinates:[[...this.drawCoordinates,this.drawCoordinates[0]]]};break}if(o&&this.drawCallback){const t=W.stringify(o);this.drawCallback(this.drawType,o,t),this.map.getCanvas().style.cursor="",this.drawType="none",this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),setTimeout(()=>{this.map.doubleClickZoom.enable()},0)}}destroy(){this.stopDraw(),this.map.getSource(this.drawSourceId)&&this.map.removeSource(this.drawSourceId)}}var ae=e.defineComponent({name:"CircleClose",__name:"circle-close",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),le=ae,ne=e.defineComponent({name:"EditPen",__name:"edit-pen",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696zM455.04 229.248l193.92 112 56.704-98.112-193.984-112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336zm384 254.272v-64h448v64z"})]))}}),ie=ne,se=e.defineComponent({name:"MoreFilled",__name:"more-filled",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),ce=se;const de={class:"map-draw-container"},pe={name:"FormItemMapDraw"},me=e.defineComponent({...pe,props:{geomType:{type:String,default:"point"}},emits:["draw-start","draw-end","draw-cancel"],setup(a,{emit:o}){const t=o,r=e.ref("none");e.ref(!1),e.ref(null);const n=le,l=ie,y=ce,m=i=>{r.value=i,i==="none"?t("draw-cancel"):t("draw-start",i)};return(i,d)=>{const s=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",de,[a.geomType==="point"?(e.openBlock(),e.createBlock(s,{key:0,type:"primary",size:"small",circle:"",onClick:d[0]||(d[0]=c=>m("point")),icon:e.unref(n),class:e.normalizeClass({active:r.value==="point"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="linestring"?(e.openBlock(),e.createBlock(s,{key:1,type:"primary",size:"small",circle:"",onClick:d[1]||(d[1]=c=>m("line")),icon:e.unref(l),class:e.normalizeClass({active:r.value==="line"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="polygon"?(e.openBlock(),e.createBlock(s,{key:2,type:"primary",size:"small",circle:"",onClick:d[2]||(d[2]=c=>m("polygon")),icon:e.unref(y),class:e.normalizeClass({active:r.value==="polygon"})},null,8,["icon","class"])):e.createCommentVNode("",!0)])}}}),I=(a,o)=>{const t=a.__vccOpts||a;for(const[r,n]of o)t[r]=n;return t},ue=I(me,[["__scopeId","data-v-fa667d3f"]]),fe={class:"curd-map"},he={name:"FormItemMap"},ye=e.defineComponent({...he,props:{modelValue:{type:String||void 0,default:()=>""},glyphs:{type:String||void 0,default:()=>""},mapViewData:{type:Object||void 0,default:()=>({})},currentOperationType:{type:String,default:()=>"details"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a,r=e.ref(t.modelValue);let n,l;const y=e.reactive({mapViewData:{zoom:t.mapViewData.zoom||13,center:t.mapViewData.center||[120.656774,29.8],maxPitch:t.mapViewData.maxPitch||0,dragRotate:t.mapViewData.dragRotate||!1,style:{glyphs:t.glyphs},...t.mapViewData},switchData:{layers:[{name:"tdt-vec",label:"地图",iconName:"vector",checked:!0},{name:"tdt-img",label:"影像",iconName:"satellite",checked:!1}],extensions:[{name:"tdt-cia",label:"注记",checked:!0}]}}),m=o;e.watch(r,c=>{m("update:modelValue",c)}),e.watch(()=>t.modelValue,c=>{r.value=c});const i=c=>{n=new oe(c),l=new re(c);const p=n.formatWktToGeoJson(r.value);p&&(n.setLayer(p.type),n.setData(p),n.flyTo())},d=c=>{l&&l.startDraw(c,(p,b,k)=>{r.value=k})},s=()=>{l&&l.stopDraw()};return e.onUnmounted(()=>{l&&(l.destroy(),l=void 0)}),(c,p)=>(e.openBlock(),e.createElementBlock("div",fe,[e.createVNode(e.unref(R.GisMapView),{options:y.mapViewData,onLoad:i},{"top-left":e.withCtx(()=>[a.currentOperationType!=="details"?(e.openBlock(),e.createBlock(ue,{key:0,onDrawStart:d,onDrawCancel:s})):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[e.createVNode(e.unref(R.GisMapSwitch),{data:y.switchData},null,8,["data"])]),default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},8,["options"])]))}}),ge=I(ye,[["__scopeId","data-v-e1f42b56"]]),we={class:"field-select-container"},Ce={name:"ExportButton"},ke=e.defineComponent({...Ce,props:{columns:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]}},setup(a){const o=a,t=e.ref(!1),r=e.reactive({filename:"",dataType:"current",selectedFields:[]});e.onMounted(()=>{r.selectedFields=o.columns.map(y=>y.columnProperty)});const n=()=>{let y=[...o.data];if(y.length===0){S.ElMessage.warning("没有数据可导出");return}const m=y.map(b=>{const k={};return r.selectedFields.forEach(x=>{k[x]=b[x]}),k}),i=r.filename||`导出数据_${new Date().getTime()}`,d=l(m),s=new Blob([d],{type:"text/csv;charset=utf-8;"}),c=document.createElement("a"),p=URL.createObjectURL(s);c.setAttribute("href",p),c.setAttribute("download",`${i}.csv`),c.style.visibility="hidden",document.body.appendChild(c),c.click(),document.body.removeChild(c),t.value=!1,S.ElMessage.success("导出成功")},l=y=>{if(y.length===0)return"";const m=Object.keys(y[0])||[],i=[];i.push(m.join(","));for(const d of y){const s=m.map(c=>{const p=d[c];return typeof p=="string"?`"${p.replace(/"/g,'""')}"`:p});i.push(s.join(","))}return i.join(`
2
+ `)};return(y,m)=>{const i=e.resolveComponent("el-icon-download"),d=e.resolveComponent("el-icon"),s=e.resolveComponent("el-button"),c=e.resolveComponent("el-input"),p=e.resolveComponent("el-form-item"),b=e.resolveComponent("el-checkbox"),k=e.resolveComponent("el-checkbox-group"),x=e.resolveComponent("el-form"),M=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{type:"default",round:"",onClick:m[0]||(m[0]=C=>t.value=!0)},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i)]),_:1})]),_:1}),e.createVNode(M,{modelValue:t.value,"onUpdate:modelValue":m[4]||(m[4]=C=>t.value=C),title:"导出数据",width:"400px","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(s,{onClick:m[3]||(m[3]=C=>t.value=!1)},{default:e.withCtx(()=>[...m[5]||(m[5]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(s,{type:"primary",onClick:n},{default:e.withCtx(()=>[...m[6]||(m[6]=[e.createTextVNode("导出",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(x,{model:r,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"文件名称"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:r.filename,"onUpdate:modelValue":m[1]||(m[1]=C=>r.filename=C),placeholder:"请输入文件名称"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"选择字段"},{default:e.withCtx(()=>[e.createElementVNode("div",we,[e.createVNode(k,{modelValue:r.selectedFields,"onUpdate:modelValue":m[2]||(m[2]=C=>r.selectedFields=C)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.columns,C=>(e.openBlock(),e.createElementBlock("div",{key:C.columnProperty,class:"column-item"},[e.createVNode(b,{value:C.columnProperty},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C.columnLabel),1)]),_:2},1032,["value"])]))),128))]),_:1},8,["modelValue"])])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),be=I(ke,[["__scopeId","data-v-a28ea63e"]]),Ve={class:"column-manager"},Be={name:"ColumnManager"},Se=e.defineComponent({...Be,props:{tableColumns:{type:Array,default:()=>({columns:[]})},visibleColumns:{type:Array,default:()=>[]}},emits:["update:visibleColumns","update:columns"],setup(a,{emit:o}){const t=a,r=o,n=e.ref(!1),l=e.ref([...t.visibleColumns]),y=(m,i)=>{i?l.value.push(m):l.value=l.value.filter(d=>d!==m),r("update:visibleColumns",l.value)};return e.watch(()=>t.visibleColumns,m=>{l.value=[...m]},{deep:!0}),(m,i)=>{const d=e.resolveComponent("el-icon-menu"),s=e.resolveComponent("el-icon"),c=e.resolveComponent("el-button"),p=e.resolveComponent("el-checkbox"),b=e.resolveComponent("el-popover");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(b,{visible:n.value,"onUpdate:visible":i[0]||(i[0]=k=>n.value=k),placement:"bottom-end",width:220,trigger:"click","popper-class":"column-manager-popover"},{reference:e.withCtx(()=>[e.createVNode(c,{type:"default",round:""},{default:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(d)]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Ve,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.tableColumns,k=>(e.openBlock(),e.createElementBlock("div",{class:"column-item",key:k.columnProperty},[e.createVNode(p,{modelValue:l.value.includes(k.columnProperty),onChange:x=>y(k.columnProperty,x)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.columnLabel||k.columnProperty),1)]),_:2},1032,["modelValue","onChange"])]))),128))])]),_:1},8,["visible"])])}}}),xe=I(Se,[["__scopeId","data-v-ef5ba627"]]);class Fe{serverConfig;curdConfig={};searchConfig={};tableConfig={};editorConfig={};searchFormMap=new Map;cloneSearchForm="{}";cloneFormData="{}";dictionaryMap=new Map;constructor({serverConfig:o}){this.serverConfig=o}setConfig({curdConfig:o,searchConfig:t,tableConfig:r,editorConfig:n}){this.curdConfig=o||this.curdConfig,this.searchConfig=t||this.searchConfig,this.tableConfig=r||this.tableConfig,this.editorConfig=n||this.editorConfig}async loadDictionary(){if(!this.tableConfig?.columns)return this.dictionaryMap;const o=this.tableConfig.columns.filter(t=>["code","table"].includes(t.dictType||"")&&t.dictService).map(t=>{let r=t.fieldType||"String";return r==="integer"&&(r="Integer"),(t.dictType==="code"?this.serverConfig?.dict({dictCode:t.dictService,itemIdType:r}):this.serverConfig?.dictServer(t.dictService,{})).then(l=>{l&&t.dictService&&this.dictionaryMap.set(t.dictService,l||[])}).catch(l=>{console.error(`加载字典 ${t.dictService} 失败:`,l)})});return await Promise.all(o),this.dictionaryMap}getDictOptionsByCode(o){return o?this.dictionaryMap.get(o)||[]:[]}getDictOptionsByColumnProperty(o){if(!o)return[];const t=this.tableConfig?.columns?.find(r=>r.columnProperty===o)?.dictService;return this.getDictOptionsByCode(t||void 0)}formatColumnValue(o,t){if(!t||t==="")return t;if(o.dictType&&o.dictService){const r=this.dictionaryMap.get(o.dictService)||[];if(!r||r.length===0)return t;const n=r.find(l=>l.id===t);return n?n.name:t}if(!o.formatter||o.formatter==="")return t;switch(o.fieldType){case"date":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD"):"";case"datetime":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD HH:mm:ss"):"";default:return t}}formatFormRules(){const o={};return(this.editorConfig?.columns||[]).forEach(t=>{o[t.columnProperty]=[],t.isRequired&&o[t.columnProperty].push({required:!0,message:"请输入"+t.columnLabel,trigger:"blur"})}),o}formatSearchConfigForm(){this.searchConfig.columns=this.tableConfig?.columns?.filter(t=>t.searchable!="no")||[],this.searchConfig?.columns.forEach(t=>{this.searchFormMap.set(t.columnProperty,t)});const o={};return this.searchConfig?.columns.forEach(t=>{o[t.columnProperty]=t.searchDefaultValue}),this.cloneSearchForm=JSON.stringify(o),o}formatFormConfigData(){const o={};return(this.editorConfig?.columns||[]).filter(r=>r.columnProperty===this.curdConfig?.priKey?!0:r.type!=="hidden").forEach(r=>{o[r.columnProperty]=r.defaultValue}),this.cloneFormData=JSON.stringify(o),o}formatSearchForm(o){const t={};return this.searchFormMap.forEach((r,n)=>{const l=o[n];if(l!=null&&l!==""){let y="";switch(r.searchable){case"=":y=`= '${l}'`;break;case"like":y=`like '%${l}%'`;break;case"in":y=`in (${l})`;break}t[n]=y}}),t}formatFormData(o){if(!o||Object.keys(o).length===0)return{};let t={};return(this.tableConfig?.columns||[]).forEach(r=>{r?.fieldType==="integer"?t[r.columnProperty]=Number(o[r.columnProperty]):t[r.columnProperty]=o[r.columnProperty]}),o.wktstr&&(t.wktstr=o.wktstr),t}initVisibleColumns(){return(this.tableConfig?.columns||[]).filter(o=>o.showMethod!="hidden").map(o=>o.columnProperty)}getFormItems(o=""){let t=[];switch(o){case"details":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break;case"add":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.createFormStatus!=="hidden"&&r.type!=="shape");break;case"update":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break}return t}hasGeometryField(){return(this.editorConfig?.columns||[]).find(t=>t.type==="shape")||void 0}}const Ne={class:"curd-container"},_e={class:"curd-search"},Me={key:0,class:"table-actions"},De={class:"table-actions-left"},Te={class:"table-actions-right"},Le={class:"curd-table"},Ee={key:1,class:"curd-pagination"},Oe={name:"CurdForm"},Pe=e.defineComponent({...Oe,props:{size:{type:String,default:"default"},title:{type:String,default:"信息管理"},permissions:{type:Object,default:()=>({add:!1,edit:!1,delete:!1,deleteBatch:!1,export:!1})},serverConfig:{type:Object,default:()=>({init:Function,list:Function,view:Function,add:Function,delete:Function,deleteBatch:Function,update:Function,dict:Function,dictServer:Function})},mapViewData:{type:Object,default:()=>({})}},emits:["loadDataSuccess"],setup(a,{expose:o,emit:t}){const r=a,n=e.ref(!1),l=e.ref(null),y=t,m=e.ref(),i=new Fe({serverConfig:r.serverConfig}),d=e.ref(""),s=e.ref("details"),c=e.reactive({priKey:"id",priKeyType:"string",sortField:"id",sortOrder:0,geomType:"point",webFunction:[],dataExt:"{}"}),p=e.reactive({showIndex:!0,indexWidth:50,showCheckbox:!0,showOperation:!0,operationWidth:120,operationLocation:"right",operationButtons:[],visibleOperationButtons:[],operationAlign:"center",showPagination:!0,defaultPageSize:10,pageUISize:"default",showExpand:!1,columns:[]}),b=e.reactive({total:0,pageSize:p.defaultPageSize,currentPage:1}),k=e.reactive({title:"弹框表单",formDialogWidth:"800px",labelWidth:"120px"}),x=e.reactive({columns:[],formColumns:[]}),M=e.reactive({searchLabelWidth:"80",searchFormWidth:"290",columns:[]}),C=e.ref({}),F=e.ref(!1),f=e.ref([]),B=e.reactive({data:{}}),L=e.ref({}),g=e.ref(!1),V=e.ref(!1),N=e.ref(),E=e.ref([]),T=async()=>{if(r.serverConfig?.list)try{n.value=!0;const w=await r.serverConfig?.list({whereClause:i.formatSearchForm(C.value),orderParam:[{fieldName:c.sortField,asc:c.sortOrder===0}],pageParam:{pageNum:b.currentPage,pageSize:b.pageSize}});if(w){const h=w.data;f.value=h.dataList||[],b.total=h.totalCount,y("loadDataSuccess",f.value)}}catch{}finally{n.value=!1}},ze=()=>{C.value=JSON.parse(i.cloneSearchForm),T()},Ie=async()=>{r.serverConfig?.add&&(s.value="add",x.formColumns=i.getFormItems("add"),k.title="新增信息",F.value=!0,B.data=JSON.parse(i.cloneFormData))},$e=async()=>{if(r.serverConfig?.deleteBatch&&l?.value){const w=l.value.getSelectionRows();if(w.length===0){S.ElMessage.warning("请选择要删除的项");return}const h=w.map(_=>_[c.priKey||"id"]);h.length>0&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{await r.serverConfig?.deleteBatch?.(h.join(","))?S.ElMessage.success("删除成功"):S.ElMessage.error("删除失败"),T()})}},Ae=w=>{b.pageSize=Number(w),T()},We=w=>{b.currentPage=w,T()},Ue=async w=>{if(r.serverConfig?.view){s.value="details",x.formColumns=i.getFormItems("details"),k.title="查看详情";try{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("查看失败,未获取到主键值");return}const _=await r.serverConfig?.view?.({key:h});_.success&&_.data?(B.data={..._.data},F.value=!0):S.ElMessage.error("查询失败")}catch{S.ElMessage.error("查询失败")}}},Re=async w=>{r.serverConfig?.update&&(s.value="update",x.formColumns=i.getFormItems("update"),k.title="编辑信息",F.value=!0,B.data={...w})},Ge=w=>{r.serverConfig?.delete&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("删除失败,未获取到主键值");return}await r.serverConfig?.delete?.(h)?(S.ElMessage.success("删除成功"),T()):S.ElMessage.error("删除失败")})},Ye=()=>{g.value=!0,m.value?.validate(async(w,h)=>{if(w){let _=s.value==="add"?r.serverConfig?.add:r.serverConfig?.update;if(_)try{const D=await _({params:{...i.formatFormData(B.data)}});D.success?(S.ElMessage.success(s.value==="add"?"新增成功":"编辑成功"),F.value=!1,T()):S.ElMessage.error("保存失败"+D.msg)}catch(D){S.ElMessage.error("保存失败"+D.message)}finally{g.value=!1}}else g.value=!1})};e.onMounted(async()=>{if(r.serverConfig?.init){const w=await r.serverConfig.init();if(w.success&&w.data){const h=w.data||{},_=h.dataExt?JSON.parse(h.dataExt):{};Object.assign(c,h||{}),Object.assign(p,_?.tableConfig||{}),Object.assign(k,_?.dialogConfig||{}),Object.assign(x?.columns||[],_?.editorConfig||{}),b.pageSize=p.defaultPageSize||b.pageSize,p.visibleOperationButtons=(p.operationButtons||[]).map(D=>D.type),console.log("curdConfig",c),console.log("tableConfig",p),console.log("dialogConfig",k),console.log("editorConfig",x),M.searchFormWidth=p.searchFormWidth&&p.searchFormWidth!==""?p.searchFormWidth:M.searchFormWidth,M.searchLabelWidth=p.searchLabelWidth&&p.searchLabelWidth!==""?p.searchLabelWidth:M.searchLabelWidth,i.setConfig({curdConfig:c,searchConfig:M,tableConfig:p,editorConfig:x}),E.value=i.initVisibleColumns(),C.value=i.formatSearchConfigForm(),B.data=i.formatFormConfigData(),L.value=i.formatFormRules(),N.value=i.hasGeometryField(),await i.loadDictionary(),T(),e.nextTick(()=>{d.value="100%"})}else S.ElMessage.error("未查询到有效配置")}else S.ElMessage.error("请配置init方法")}),e.watch(F,w=>{w?e.nextTick(()=>{V.value=!0}):V.value=!1});const je=w=>{f.value=w},Je=w=>{p.columns=w};return o({setTableData:je,getTableData:()=>f.value}),(w,h)=>{const _=e.resolveComponent("el-form-item"),D=e.resolveComponent("el-button"),q=e.resolveComponent("el-form"),$=e.resolveComponent("el-table-column"),Ke=e.resolveComponent("el-table"),qe=e.resolveComponent("el-pagination"),A=e.resolveComponent("el-col"),U=e.resolveComponent("el-row"),He=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Ne,[e.createElementVNode("div",_e,[e.createVNode(q,{inline:!0,class:"form-inline","label-width":M.searchLabelWidth},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,u=>(e.openBlock(),e.createBlock(_,{key:u.columnProperty,label:u.searchFormLabel||u.columnLabel,style:e.normalizeStyle(`width: ${M.searchFormWidth}px;`)},{default:e.withCtx(()=>[u.showMethod==="slot"?e.renderSlot(w.$slots,"search-"+u.columnProperty,{key:0,scope:{...w.scope,searchForm:C.value,data:C.value[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,modelValue:C.value[u.columnProperty],"onUpdate:modelValue":O=>C.value[u.columnProperty]=O,item:u,dropdownOptions:e.unref(i).getDictOptionsByCode(u.dictService)},null,8,["modelValue","onUpdate:modelValue","item","dropdownOptions"]))]),_:2},1032,["label","style"]))),128)),e.createVNode(_,{style:{"margin-left":"10px"}},{default:e.withCtx(()=>[e.createVNode(D,{type:"primary",size:a.size,icon:"Search",onClick:T},{default:e.withCtx(()=>[...h[6]||(h[6]=[e.createTextVNode("查询",-1)])]),_:1},8,["size"]),e.createVNode(D,{type:"default",size:a.size,icon:"Refresh",onClick:ze},{default:e.withCtx(()=>[...h[7]||(h[7]=[e.createTextVNode("重置",-1)])]),_:1},8,["size"])]),_:1})]),_:3},8,["label-width"])]),c.webFunction.length>0?(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",De,[a.permissions.add&&c.webFunction.includes("add")?(e.openBlock(),e.createBlock(D,{key:0,type:"primary",size:a.size,icon:"CirclePlus",onClick:Ie},{default:e.withCtx(()=>[...h[8]||(h[8]=[e.createTextVNode("新增",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock(D,{key:1,type:"danger",size:a.size,icon:"Delete",onClick:$e},{default:e.withCtx(()=>[...h[9]||(h[9]=[e.createTextVNode("批量删除",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-actions",{},void 0,!0)]),e.createElementVNode("div",Te,[e.renderSlot(w.$slots,"table-actions-right",{},void 0,!0),e.createVNode(be,{columns:p.columns,data:f.value},null,8,["columns","data"]),e.createVNode(xe,{"table-columns":p.columns,"visible-columns":E.value,"onUpdate:visibleColumns":h[0]||(h[0]=u=>E.value=u),"onUpdate:columns":Je},null,8,["table-columns","visible-columns"])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Le,[e.createVNode(Ke,{ref_key:"tableRef",ref:l,data:f.value,border:"",stripe:"",size:a.size,height:d.value,"header-cell-style":{background:"#F5F7FA"}},{default:e.withCtx(()=>[p.showIndex?(e.openBlock(),e.createBlock($,{key:0,type:"index",width:p.indexWidth,label:"#",align:"center"},null,8,["width"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock($,{key:1,type:"selection",width:"55",align:"center"})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.columns,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.prop},[E.value.includes(u.columnProperty)?(e.openBlock(),e.createBlock($,{key:0,label:u.columnLabel,width:(u.width||"")+"px",fixed:u.fixed,"show-overflow-tooltip":!u.noWrap,align:u.align,"header-align":u.headerAlign},{default:e.withCtx(O=>[w.$slots["table-column-"+u.columnProperty]?e.renderSlot(w.$slots,"table-column-"+u.columnProperty,{key:0,scope:O},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(i).formatColumnValue(u,O.row[u.columnProperty])),1)],64))]),_:2},1032,["label","width","fixed","show-overflow-tooltip","align","header-align"])):e.createCommentVNode("",!0)],64))),128)),e.createVNode($,{align:p.operationAlign,fixed:"right",width:p.operationWidth,label:"操作"},{default:e.withCtx(u=>[p.visibleOperationButtons.includes("detail")?(e.openBlock(),e.createBlock(D,{key:0,type:"primary",plain:"",size:p.operationSize,onClick:O=>Ue(u.row)},{default:e.withCtx(()=>[...h[10]||(h[10]=[e.createTextVNode("详情",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("edit")&&a.permissions.edit?(e.openBlock(),e.createBlock(D,{key:1,type:"success",plain:"",size:p.operationSize,onClick:O=>Re(u.row)},{default:e.withCtx(()=>[...h[11]||(h[11]=[e.createTextVNode("编辑",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("delete")&&a.permissions.delete?(e.openBlock(),e.createBlock(D,{key:2,type:"danger",plain:"",size:p.operationSize,onClick:O=>Ge(u.row)},{default:e.withCtx(()=>[...h[12]||(h[12]=[e.createTextVNode("删除",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-column-action",{scope:u},void 0,!0)]),_:3},8,["align","width"])]),_:3},8,["data","size","height"])]),p.showPagination?(e.openBlock(),e.createElementBlock("div",Ee,[e.createVNode(qe,{"current-page":b.currentPage,"onUpdate:currentPage":h[1]||(h[1]=u=>b.currentPage=u),"page-size":b.pageSize,"onUpdate:pageSize":h[2]||(h[2]=u=>b.pageSize=u),total:b.total,layout:"total, sizes, prev, pager, next",background:"",size:a.size,onSizeChange:Ae,onCurrentChange:We},null,8,["current-page","page-size","total","size"])])):e.createCommentVNode("",!0)]),e.createVNode(He,{title:k.title,"close-on-click-modal":!1,"close-on-press-escape":!1,width:k.formDialogWidth,modelValue:F.value,"onUpdate:modelValue":h[5]||(h[5]=u=>F.value=u),"destroy-on-close":!0,draggable:"","append-to-body":!0,"align-center":""},e.createSlots({default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:N.value?24-N.value.span:24},{default:e.withCtx(()=>[e.createVNode(q,{ref_key:"formRef",ref:m,model:B.data,rules:L.value,size:"default","label-width":k.labelWidth,"label-suffix":":",class:e.normalizeClass({"curd-form-details":s.value==="details"})},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:24},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.formColumns,u=>(e.openBlock(),e.createBlock(A,{key:u.columnProperty,span:u.span||12},{default:e.withCtx(()=>[e.createVNode(_,{label:u.columnLabel,prop:u.columnProperty},{default:e.withCtx(()=>[s.value==="details"?(e.openBlock(),e.createBlock(Q,{key:0,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty)},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[u.showMethod==="slot"?e.renderSlot(w.$slots,"form-"+u.columnProperty,{key:0,item:u,scope:{...w.scope,formData:B.data,data:B.data[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty),currentOperationType:s.value},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions","currentOperationType"]))],64))]),_:2},1032,["label","prop"])]),_:2},1032,["span"]))),128))]),_:3})]),_:3})]),_:3})]),_:3},8,["model","rules","label-width","class"])]),_:3},8,["span"]),N.value?(e.openBlock(),e.createBlock(A,{key:0,span:N.value?N.value.span:0,style:{padding:"0 10px"}},{default:e.withCtx(()=>[V.value?(e.openBlock(),e.createBlock(ge,{key:0,modelValue:B.data.wktstr,"onUpdate:modelValue":h[3]||(h[3]=u=>B.data.wktstr=u),currentOperationType:s.value,mapViewData:a.mapViewData,geomType:w.geomType},null,8,["modelValue","currentOperationType","mapViewData","geomType"])):e.createCommentVNode("",!0)]),_:1},8,["span"])):e.createCommentVNode("",!0)]),_:3})]),_:2},[s.value!=="details"?{name:"footer",fn:e.withCtx(()=>[e.createVNode(D,{type:"primary",onClick:Ye,loading:g.value},{default:e.withCtx(()=>[...h[13]||(h[13]=[e.createTextVNode("确定",-1)])]),_:1},8,["loading"]),e.createVNode(D,{onClick:h[4]||(h[4]=u=>F.value=!1)},{default:e.withCtx(()=>[...h[14]||(h[14]=[e.createTextVNode("取消",-1)])]),_:1})]),key:"0"}:void 0]),1032,["title","width","modelValue"])],64)}}}),K=I(Pe,[["__scopeId","data-v-844ae082"]]);P.CurdForm=K,P.default=K,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/dist/vite.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@gis_victory/curd-form",
3
+ "private": false,
4
+ "version": "0.0.1",
5
+ "type": "module",
6
+ "main": "dist/curd-form.umd.cjs",
7
+ "module": "dist/curd-form.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/curd-form.js",
11
+ "require": "./dist/curd-form.umd.cjs"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "description": "A CRUD form component for Vue 3",
18
+ "keywords": [
19
+ "vue",
20
+ "form",
21
+ "crud",
22
+ "component"
23
+ ],
24
+ "scripts": {
25
+ "dev": "vite",
26
+ "build": "vite build",
27
+ "preview": "vite preview"
28
+ },
29
+ "dependencies": {
30
+ "@turf/turf": "^7.3.2",
31
+ "element-plus": "^2.13.1",
32
+ "vue": "^3.5.24",
33
+ "wellknown": "^0.5.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^25.0.10",
37
+ "@vitejs/plugin-vue": "^6.0.1",
38
+ "sass-embedded": "^1.97.3",
39
+ "typescript": "^5.9.3",
40
+ "vite": "^7.2.4"
41
+ }
42
+ }