2025-06-30 09:38:03 +08:00

2 lines
6.9 KiB
JavaScript

import{_ as R,au as A,av as z,aw as B,ax as U,ay as J,az as F,aA as w,r as s,j as P,o as p,d as u,w as i,b as d,f as o,C as E,k as _,m,aB as I,t as W,l as g,u as q}from"./index-f87df9cc.js";const K={props:{menu:{type:Boolean,default:!0}},components:{AvueEchartMap:A},computed:{isEdit(){return this.boxType=="edit"}},data(){return{boxType:null,mapFormatter:z,search:{},publicPath:"/DataV/",loading:!1,form:{data:""},data:[],option:{lazy:!0,dialogWidth:"600",height:"auto",calcHeight:140,header:!1,labelWidth:100,menuWidth:350,column:[{label:"上一级别",hide:!0,span:24,disabled:!0,prop:"parentName"},{label:"地图名称",prop:"name",span:24,row:!0,rules:[{required:!0,message:"请输入地图名称",trigger:"blur"}]},{label:"地图级别",prop:"level",width:100,align:"center",headerAlign:"center",type:"select",dicData:[{label:"国家",value:0},{label:"省份",value:1},{label:"城市",value:2},{label:"区县",value:3}],rules:[{required:!0,message:"请选择地图级别",trigger:"blur"}],span:24},{label:"地图编号",prop:"code",width:100,align:"center",headerAlign:"center",span:24,row:!0,rules:[{required:!0,message:"请输入地图编号",trigger:"blur"}]},{span:24,label:"地图数据",prop:"data",hide:!0,formslot:!0,type:"textarea",minRows:20}]},viewObj:{option:{width:600,height:700,option:{mapData:1,tipBackgroundColor:"rgba(13, 255, 255, .5)",tipColor:"rgba(217, 38, 10, 1)",tipFontSize:"20",borderWidth:1,scale:100,type:0,borderColor:"#0dffff",areaColor:"rgba(6, 29, 51, 0.59)",banner:!0,bannerTime:3e3,fontSize:12,zoom:.5,roam:!0,empAreaColor:"rgba(35, 183, 229, 0.42)",empColor:"rgba(217, 38, 10, 1)",color:"rgba(13, 255, 255, 1)"}},box:!1,form:{}}}},created(){this.option.menu=this.menu,this.onLoad()},methods:{expanded(){const e=document.getElementsByClassName("el-table__expand-icon");this.$nextTick(()=>{e[0]&&e[0].click()})},handleCurrentRowChange(e){this.$emit("submit",e)},goDraw(){window.open("https://datav.aliyun.com/tools/atlas/#&lat=33.521903996156105&lng=104.29849999999999&zoom=4")},handleView(e){e=e||this.form,this.viewObj.form=e,this.viewObj.box=!0,this.viewObj.option.option.mapData=e.id},handleLefAdd(e,a){this.form.parentId=e.id,this.form.parentName=e.name,this.form.parentCode=e.code,this.$refs.crud.rowAdd()},uploadFile(e){this.loading=!0;const a=new FileReader;a.readAsText(e.raw,"UTF-8"),a.onload=n=>{const c=n.target.result;let t=JSON.parse(c)||{};this.form.data=t||"",this.loading=!1}},beforeOpen(e,a){this.boxType=a,a=="edit"?(e(),this.loading=!0,B(this.form.id).then(n=>{this.loading=!1;const c=n.data.data;this.form=c,this.form.code=this.form.code.replace(this.form.parentCode,""),this.form.data=JSON.parse(this.form.data)}).catch(n=>{this.loading=!1})):(this.form.parentCode=this.form.parentCode||0,e())},rowDel(e,a,n){this.$confirm("此操作将永久删除, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{U(e.id).then(()=>{this.$message.success("删除成功"),n(e)})}).catch(()=>{})},isValidJSON(e){try{return JSON.stringify(e),!0}catch{return!1}},rowUpdate(e,a,n){this.isValidJSON(e.data)&&(e.data=JSON.stringify(e.data)),J(e).then(()=>{n(e),this.$message.success("修改成功")})},handleEdit(e,a){this.$refs.crud.rowEdit(e,a)},rowSave(e,a,n){this.isValidJSON(e.data)&&(e.data=JSON.stringify(e.data)),e.parentId=e.parentId||0,e.parentCode=e.parentCode||e.code,e.code=e.parentCode+e.code,F(e).then(()=>{this.$message.success("新增成功"),this.data=[],this.onLoad(),a(e)}).catch(c=>{n()})},treeLoad(e,a,n){w({parentId:e.id}).then(c=>{const t=c.data.data.map(l=>({...l,data:""}));n(t)})},onLoad(){this.loading=!0,w({name:this.search.name,parentId:0}).then(e=>{this.loading=!1;const a=e.data.data.map(n=>({...n,data:""}));this.data=a,this.$nextTick(()=>{this.expanded()})})}}},M={class:"content__box content__nav"},H={class:"avue-flex"},G=["src"],Q=o("div",null,[o("p",null,"创建地图"),o("span",null,"自定义地图 随心所欲")],-1),X=["src"],Y=o("div",null,[o("p",null,"地图下载"),o("span",null,"全国任意地图下载")],-1),Z={class:"content__page"},$={class:"list-search"},ee={class:"content__box"};function ae(e,a,n,c,t,l){const x=s("el-icon-search"),y=s("el-icon"),b=s("el-input"),O=s("el-header"),V=s("json-viewer"),h=s("el-button"),j=s("el-upload"),k=s("avue-crud"),D=s("el-main"),N=s("avue-echart-map"),S=s("el-dialog"),T=s("el-container"),f=P("loading");return p(),u(T,{class:"list"},{default:i(()=>[d(O,{class:"content__header"},{default:i(()=>[o("div",M,[o("div",H,[o("div",{class:"content__add",onClick:a[0]||(a[0]=r=>e.$refs.crud.rowAdd())},[o("img",{src:`${t.publicPath}img/map.png`,height:"40px",alt:""},null,8,G),Q]),o("div",{class:"content__add",onClick:a[1]||(a[1]=(...r)=>l.goDraw&&l.goDraw(...r))},[o("img",{src:`${t.publicPath}img/download.png`,height:"40px",alt:""},null,8,X),Y])]),o("div",Z,[o("div",$,[d(b,{modelValue:t.search.name,"onUpdate:modelValue":a[2]||(a[2]=r=>t.search.name=r),onKeyup:E(l.onLoad,["enter"]),placeholder:"请输入名称"},{suffix:i(()=>[d(y,{onClick:l.onLoad,class:"el-input__icon"},{default:i(()=>[d(x)]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"])])])])]),_:1}),_((p(),u(D,m({class:"content"},e.$loadingParams),{default:i(()=>[o("div",ee,[_((p(),u(k,m({ref:"crud",option:t.option,modelValue:t.form,"onUpdate:modelValue":a[4]||(a[4]=r=>t.form=r),onRowSave:l.rowSave,onRowUpdate:l.rowUpdate,onRowDel:l.rowDel,onTreeLoad:l.treeLoad,onCurrentRowChange:l.handleCurrentRowChange},e.$loadingParams,{"before-open":l.beforeOpen,data:t.data}),{"code-form":i(()=>[d(b,{placeholder:"请输入内容",modelValue:t.form.code,"onUpdate:modelValue":a[3]||(a[3]=r=>t.form.code=r)},I({_:2},[t.form.parentCode?{name:"prepend",fn:i(()=>[o("span",null,W(t.form.parentCode),1)]),key:"0"}:void 0]),1032,["modelValue"])]),"data-form":i(()=>[_(d(V,m({value:t.form.data},e.$loadingParams,{copyable:"","expand-depth":2,theme:"avue-json-theme",boxed:""}),null,16,["value"]),[[f,t.loading]]),d(j,{action:"#",style:{"margin-top":"20px"},"show-file-list":!1,"auto-upload":!1,"on-change":l.uploadFile},{default:i(()=>[d(h,{loading:t.loading,icon:"el-icon-upload",type:"primary"},{default:i(()=>[g("点击上传")]),_:1},8,["loading"])]),_:1},8,["on-change"])]),menu:i(({row:r,index:v,size:C})=>[d(h,{type:"primary",text:"",size:C,onClick:L=>l.handleLefAdd(r,v),icon:"el-icon-plus"},{default:i(()=>[g(" 增加子级 ")]),_:2},1032,["size","onClick"]),d(h,{type:"primary",text:"",size:C,onClick:L=>l.handleView(r,v),icon:"el-icon-view"},{default:i(()=>[g(" 预览 ")]),_:2},1032,["size","onClick"])]),_:1},16,["option","modelValue","onRowSave","onRowUpdate","onRowDel","onTreeLoad","onCurrentRowChange","before-open","data"])),[[f,t.loading]])])]),_:1},16)),[[f,t.loading]]),d(S,{title:t.viewObj.form.name+" 预览",class:"avue-dialog",width:"50%",modelValue:t.viewObj.box,"onUpdate:modelValue":a[5]||(a[5]=r=>t.viewObj.box=r)},{default:i(()=>[t.viewObj.box?(p(),u(N,m({key:0},t.viewObj.option,{"map-formatter":t.mapFormatter}),null,16,["map-formatter"])):q("",!0)]),_:1},8,["title","modelValue"])]),_:1})}const oe=R(K,[["render",ae]]);export{oe as default};