From 3b9f4454cd1e2f69924fd3bd7fb25496c11c603a Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Fri, 1 Aug 2025 18:11:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 58 +- src/assets/images/location.png | Bin 0 -> 5991 bytes src/plugins/modal.js | 157 +-- src/views/basic/level-manage/index.vue | 2 +- .../basic/model-manage/addOrEditForm.vue | 23 +- src/views/basic/model-manage/index.vue | 460 +++++-- .../basic/model-manage/useOrReturnForm.vue | 1158 +++++++++-------- .../basic/model-manage/useOrReturnFormNew.vue | 662 ++++++++++ src/views/basic/project/index.vue | 200 ++- src/views/basic/survey/index.vue | 696 ++++++---- src/views/index.vue | 155 ++- 11 files changed, 2420 insertions(+), 1151 deletions(-) create mode 100644 src/assets/images/location.png create mode 100644 src/views/basic/model-manage/useOrReturnFormNew.vue diff --git a/public/index.html b/public/index.html index 925455c..7eec9d4 100644 --- a/public/index.html +++ b/public/index.html @@ -1,14 +1,21 @@ - - - - - - - <%= webpackConfig.name %> - - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- + + + +
+
+
+
+
+
正在加载系统资源,请耐心等待
+
+
+ + diff --git a/src/assets/images/location.png b/src/assets/images/location.png new file mode 100644 index 0000000000000000000000000000000000000000..0c50528844bd370f891ca86de7dee275fc3d6c8d GIT binary patch literal 5991 zcmd6r_fr$j)5jBf7nI&n=>iEIq>J?4fh?IboP^2iGP?Ta2 zFcc98A|)aaK?D@Ylh60Bcz(FMnY-D$+1;XsoIoCI7vU39*YJ-%e zbPOC=nlQpPi2^qB>x`GLKof_dG0(P*mL2EgKF7pV8tLCsX1WEL;!W(w8gZlR2jjR` z7Y#{LGM8%pc?26pC{9*(@2t2wLJ_4({_6gF=NJ3;$>(qJ&=|6Lo;fEw?PD1|qe@ed ztsW;5WhId;<>?FrmwF9~mq>}CpJ|9P@jB^Q_&Y~1N;0Jreb~~e(zw`X`MBM%8B{RM zBI*jH7ws@SjkYkNf?~dj{C{aqs>9w1z4<^!b)a%U9gx~YwLn!a*LDB!IkbNoNT3GP zcirEnMnZsRz`T0`+b7gc;q5fCqnJh+jItudEnNB}HO<)fONQbqjGh9iNx(#VIk|hn zgxi45%E#5tWv+GH9-o42^(-J+E;37DApS`1fn=Fi^#d+!1bvV;(yqh#c0yo<4JEDy zVER=4=`Q;88Zp7jBmLaXWZ6rwon7I9!$%E#5iB#J%~Y_ify+)n&vrq!Ds(c4wOq{c zH$&wZ6KFL%>aS{#InnGV(_GsAU z=^|>`;+0S^9jIm&(Lv^BMNC4~I1e=(W42(^!Vr#()X>`cV{=#8CIVbq=i|pDnX>4y ze8Vx1W9Tk`h@NPHr)Y&Spm@PhJs`N%msf`90Z^Bda$xz}M5hVqmGvG_Y2_S&>)Uy^ zThLZx00H}=An?zByy*%C;7+NuueWM$pzGCWi?Cdtea$O-te^I&+5KK^pLGF8VQ>am zm&=CmiXuPpHy5A}5ywAzTGA|D*)qOZlAz&z1v7{o;+bW= z{-oD4PW0%n-pB9z0$l9ttRTK&_&HEKqlgLNPoTb#nIeTho(97r< zY9wz{ZlEZ7XF}xp5);<2#afisZzvi~ZxAqmgLSPu4cbruPEQGdR=rpPHMRU>d6O&o z?Jee&l$l@`N>TLH_g4%PaKW zI_aCQP^BI`h2iZ#k%L5OQ9(veGbrzmo9Dv8AigGzozJ)4Guv8pPQ&-kJxkc_{<{C` zx$6At@O|{z>JJPqyPd1wZ8%K?A;0EX=wavK6WSKti727CbM)6p~luTk*owP0^DU2?928iAPNhN7Nw}_wj z{ED%;=4xDteFM-Liw_}4$K$-jhO;e9z@@t@be?I0k0d3dZB-M~d- z_1?t8t?zJp+m!vnBx}dBaO-266g75+8p%rK$U(i2{JZ<6s-+i>ImFBPt%ajuGYgpD zDjAhZT5(C4DUR%F=_0gJ%Q#2&E%3kE7K=JIpN%G}X={g}u$009y!>nQZ1*^aRcN}* z9llQ5$9|2Y=7gX^ty!Y`21>y|`nbtOvd%Q(CRtOjJD9bo884rKp6wh5uO{2=(Yr|2 z21eB90VBKTni*YppZa!T9t~a!e4%IUS)VJUg-Bc%Y6#e{rhBqd(OU4i%vp5|LEpaC zlv;#|kQ_iX>D0RcGx27M9jZ`y}VKFIkgTBvFDE6lVR zo*Mp&yL(NWe@<`oDUy7oH2M%t|hb{B8@(0~PDyWdyZ{FkUaf3G+J!0F)Sp z?k+TJC*$=OHU!e!ApieJyaHdRoEZ!gjfLk1_# zD-|&uG(m~8zTD1){2I4}g6@~+;n!9@4%HdF^AFE1lg#3Ay3#|P%FEi<%LNnGi>>DA z$xKF42^OB+$5bfvBzqF|N95L5%ylbtgaj(wDdk8_w1>_;jQQy8w0=n9?45_j`VA+R zOhJzdmm#M7yI4NJzndMFZacQ7*)|7Vj`MPx9>4SCMX17C$pIB&O`~e1yBBIm>U=+I z{H6o>9i+O4Dpe@|U`Hf`P0RRWT~POh(%=w2x+Z$fx5++NfOYsfDhF?F`DkE*j{MU3 zSU@<5wZyK{rsTJ7a?CX3lgTcRZZdrxcX^BDyyJ3wwaXYF|7Psqfpj?CXgidg3h7P2 z-xD`g8=NQ;LiKkT(uru}`&`B*hy@Tlo0t#C6xa#R&6fe=MqlpED$OYILvr|2HO`I@E2&_s}N z4B;#`Pi`CI{6lqUo(#I@k-;-GvDYN5#-E-Ys=0J@=_5(j^>vRsa*Kux8^w|7%GVt) z*Ry8T3{HG}-DsUV2UXBR2r^W5;!@RY;IWQ50vrQIYNcekQZkFh#t}%%Kgd&W=?Frg zre6QdTweD)YxjP+SMIkOQiW?liK}{F16%vEWSTcG?#^{MqCRJtk0Hjm!vncLnTOO@l!j{Vd50V;8cNnGs2iryE6?wUVA*c|6?XDaO5wa?|6b1&tN@A-^K9W$KDc;q#zg#}qCI@CDgl$;-IDMYznm(L!0-9$+0 z@n^2GDZ?~{-T!n_xAT+sW7hv_@nM6or$||CQ-YwLXXWbYwmiGs2We-qil7a^)nwQU8=b)AyMZZQAbF4_{hn3=`-^`FRPk@wmsy#g5YkQwfcLZJqeVeaN6_hb8|i z+{sm`_G^XMt=Tn=HwA>88;|uLK1fQ^W#<@GlG0ces=b3pbVA9^xrC;nBbM4$f<68L zc&Yi9W#Q>^4&fsnQA9PFwq*f%E?*Dg8V(Bkrz+k~;~U$ob?on(7&^Z?ERbluf=)$a zqlKMDl~VMw!!& zi4D$}Z@!nF&E-8W^S|#7rm6jMM^9enF$uO1nn3N_-?q$=yv2OTDz)K9J4$5q z+}H<96UQTg+P*(j*jcHHIA?{JjYwN|#WK)g{>P)ixGquC?e-=QNGp~H*=#Pfkej^C z#QEljxwP}?FVTBdY*y!SV)?d4Mt9_FH)!xci6QvV7Msz%`f9)*Tghb}lhkM%I0ll_ z4g7>dh@^TC{O%Pt_BmoXl>~KOE$GuF-7Gj~9gRINJ-Nt9#20><`cSthJ#3yvOdN#c zuY29+DrVIIWW7h!f)sjh#q`c~2%yqZKBb!7m6JO6XEEzf5x=s67uK~`=bDTQ%or;0 z%YSiR%EO8f{{W{{4CA|i4*N1k$LdS@SL_+$NngcIeCoFbZ0r}iZmJkDo8dSghFoJU z5S%>?{O~;-U{AW2TU?dDV(?DUg$OyYEmr-@G(lBT_ISn+@7i2}CK&0ADV7$jiWnk3 zKg*_Dp`JV1$RMW-`i-}nFUV}|6yBJP!NmS2+R76T;B}^I6{vH1xdpG}SjVwH;HXgbPqC?9b7-`Tbd zw^ydl=(UFM(A0l`xrDHl8c!XT>XOAqOSH;Qad$;aHLOq$r!Mm+NZW=dYsW}%PQQ{? zS>f&vsn7qaxixVHxfwHK%FucL?yP|qQ7^C;el36L;U++S|&- zVq-b1FhnCteX>J7XgHw0mSC0owm`Vq6+z>0|8<-WWOOLly;jW#KK(3MQ&-aIBA)%+ zDB)f@0twq=+l@@2Yd(Zf!S!uWz`ymC+~dNt1L(2*21IK}o! zAMP^&iuhp!5^AKre@(($dhT1ZGh)tBG!GSKxMNavVvBqv^XUzOfvgW&bBedpPiP3D zc78ak|FggP+3ODT1(g(a1q4=!FUa_!1S;Otc%rN)c!;T#riVZGVXy)X9ddDCqyFl`NP^0#!u?r;KBOA z*I+5%tWB7a+EY~6t+2EyGTn^j1$v6G#re4;yzi0)GnhdxS=RWNdkGm5ZG`dI$4-qYQvOZ)d1|8%jUGtpA$3>a;VNWg$>mlWq7SZI)z}NXzZDod=GG zg*<{a!k8t|J4KqIONbvYu2}=lRFR$f(qwo^XY$mFQ5R9JVbqw{j*l*gpDsVn;9*)a zs9~o;{R_P(zNT_c1rV{poBtw4C!i@8lHNNE*B)67UYX<7`q2MTOLVwL*(9Kk+1+aO zCI;+iYBBHn?M56GLn!!TphG|t&5Sp}GErJ4wE}y~Vjd#VRss<&XcJhAjR(S#sJSOqv4zpB=+j=rh$k}z9 z7qx57-;tA7XP_2pHdlXQS&(?ANMR|z60+56Z`%^ixfWcDjgFvQ#73rUvMvMI)+v)?$KB-!JkzCiCPgqzbS5==^z`BAC12>BMrEWn& zb7|Tu+iOYcH=@rh2cuZaktob_X;?Rzicr%IH#KtAx#Yh0#pkigiPQ+ZJt*K^qo_qg zyDN1knM=#~eajtI*&-BX?z5juKP%?s<^JcF88)(o%}ZCxM!Ke2<4-@}z3emW6TwjJ z#nuBQeR!}oQ~-TxJqh{7w8526`4Oz^9@l4RbBDY8=3mQ4Ta&6hn8>Rc#2+6wNN4kX z@vh?ht^q%UjFZkUM_NQC&9Hnmw@_;~O6vT;iALUaXHP#l+IUBby2s|3@sc+N%sq=2 zckQ%#p1{YzL;oeyS78vz-4pS zoV0SxzMiBMaFCYWZy>#zGynkp-Y5U#!=1ShcNrKUD z;!=4iD@f}ub_gKyn%P}xZ^=8lI z8$hBx1Nf4{>-Ha7<1+}i=dlxIJo+$J zQ&S6nnZ}FAp>nCPzljWG(QVRv*K-=+ep|?0cScdo5obp8Ct>4WW2tc;nV$R%Xq_p- z_3!>Qj<5s?#XgIFoSTOh{PJch6({aRGYm&x+0*T>|6~uiz`?isGu|gMnY~Le*vR`t zfOUZ`zl^j7uJ3^i5FCeFB*Fd&jGGvR%Q5T!#^uFcxFB(0k+Qv%!h&lVADR2X6)1Vb zUtZl8i<`#0Rix`urMDu#Nz!?n)e2MC9k%51HJ4+(x>kmPKXd^-_*3M{#9ca=Y5ILm z_SuKp+6`DZ`wrRQfsAp*f|l;jHM7LKRy^4np51Cx>gED`-|k3lhJ8v?7*LTGm4#YH z1%`xlTT`h!+@(QNO0x?S4Gdtek@A$nh@5e4JbP>n9#ozJ4?kGHI{OuWL-&5KfkiS? zEfOVPjx_6D+EWG`%V6DTH#4H@a;~ayVbh76nXhTaW5cOP>jY;we@}zQWgASov?w~u z*+7%Huon$r!xZ!XPbcr}DG0U8h@xj@!b=H7r`^fLW`K@bzU1k&r%JCk@6QaPD7p5w zo9C5!rpss%9kesDU#@k+enW)p7kXaRZc5>m5_pV?lLUeqg~Rj-h|nq&HXk0;K_q45 zM&Pz%h8|iCXII&?h4Un4#ie}DuXaY=b_0T;!&g$14!X-T&fd__9o=#?lQ-1PT|UVm ze#^Ttp$$y^mr!jM&m|<{dH~R3%lP?C3Y}$+2|3mTyit8+p2(i5fv8Dw15+p=&ojfA znYQIEpx|$D-xrJuvNe^X(vMnaMsBz|E#b-!1fX}qZ0Vuf4@XNSNjf(7rY|rQ8lad{*FvGa|DU!Y bkbxfWIywKnh~}b@bAah>D?^NdXUhKpPGvn8 literal 0 HcmV?d00001 diff --git a/src/plugins/modal.js b/src/plugins/modal.js index 92bc1ef..506609d 100644 --- a/src/plugins/modal.js +++ b/src/plugins/modal.js @@ -3,81 +3,84 @@ import { Message, MessageBox, Notification, Loading } from 'element-ui' let loadingInstance export default { - // 消息提示 - msg(content) { - Message.info(content) - }, - // 错误消息 - msgError(content) { - Message.error(content) - }, - // 成功消息 - msgSuccess(content) { - Message.success(content) - }, - // 警告消息 - msgWarning(content) { - Message.warning(content) - }, - // 弹出提示 - alert(content) { - MessageBox.alert(content, "系统提示") - }, - // 错误提示 - alertError(content) { - MessageBox.alert(content, "系统提示", { type: 'error' }) - }, - // 成功提示 - alertSuccess(content) { - MessageBox.alert(content, "系统提示", { type: 'success' }) - }, - // 警告提示 - alertWarning(content) { - MessageBox.alert(content, "系统提示", { type: 'warning' }) - }, - // 通知提示 - notify(content) { - Notification.info(content) - }, - // 错误通知 - notifyError(content) { - Notification.error(content) - }, - // 成功通知 - notifySuccess(content) { - Notification.success(content) - }, - // 警告通知 - notifyWarning(content) { - Notification.warning(content) - }, - // 确认窗体 - confirm(content) { - return MessageBox.confirm(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 提交内容 - prompt(content) { - return MessageBox.prompt(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 打开遮罩层 - loading(content) { - loadingInstance = Loading.service({ - lock: true, - text: content, - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }) - }, - // 关闭遮罩层 - closeLoading() { - loadingInstance.close() - } + // 消息提示 + msg(content) { + Message.info(content) + }, + // 错误消息 + msgError(content) { + Message.closeAll() + Message.error(content) + }, + // 成功消息 + msgSuccess(content) { + Message.closeAll() + Message.success(content) + }, + // 警告消息 + msgWarning(content) { + Message.closeAll() + Message.warning(content) + }, + // 弹出提示 + alert(content) { + MessageBox.alert(content, '系统提示') + }, + // 错误提示 + alertError(content) { + MessageBox.alert(content, '系统提示', { type: 'error' }) + }, + // 成功提示 + alertSuccess(content) { + MessageBox.alert(content, '系统提示', { type: 'success' }) + }, + // 警告提示 + alertWarning(content) { + MessageBox.alert(content, '系统提示', { type: 'warning' }) + }, + // 通知提示 + notify(content) { + Notification.info(content) + }, + // 错误通知 + notifyError(content) { + Notification.error(content) + }, + // 成功通知 + notifySuccess(content) { + Notification.success(content) + }, + // 警告通知 + notifyWarning(content) { + Notification.warning(content) + }, + // 确认窗体 + confirm(content) { + return MessageBox.confirm(content, '系统提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + }, + // 提交内容 + prompt(content) { + return MessageBox.prompt(content, '系统提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + }, + // 打开遮罩层 + loading(content) { + loadingInstance = Loading.service({ + lock: true, + text: content, + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)', + }) + }, + // 关闭遮罩层 + closeLoading() { + loadingInstance.close() + }, } diff --git a/src/views/basic/level-manage/index.vue b/src/views/basic/level-manage/index.vue index f180aa5..8305d0f 100644 --- a/src/views/basic/level-manage/index.vue +++ b/src/views/basic/level-manage/index.vue @@ -75,7 +75,7 @@ /> - + diff --git a/src/views/basic/model-manage/addOrEditForm.vue b/src/views/basic/model-manage/addOrEditForm.vue index 828ded9..482091d 100644 --- a/src/views/basic/model-manage/addOrEditForm.vue +++ b/src/views/basic/model-manage/addOrEditForm.vue @@ -3,10 +3,10 @@
- + - + @@ -30,25 +30,12 @@ export default { projectId: '', level: '', nodeCount: '', - proName: '', parentId: '', //父级节点id }, addOrEditFormRules: { deviceName: [{ required: true, message: '请输入设备名称', trigger: 'blur' }], - proName: [{ required: true, message: '请输入设备编码', trigger: 'blur' }], - Keeper: [{ required: true, message: '请选择设备保管人', trigger: 'change' }], + proName: [{ required: true, message: '请输入分类名称', trigger: 'blur' }], }, - - KeeperList: [ - { - id: '张三', - name: '张三', - }, - { - id: '李四', - name: '李四', - }, - ], } }, methods: { @@ -78,12 +65,12 @@ export default { }, setFormData(data) { - const { deviceName, id, level, nodeCount, projectId } = data + const { deviceName, level, nodeCount, projectId, id } = data this.addOrEditForm = { deviceName, projectId, parentId: id, - level: parseInt(level) + 1, + level: level, nodeCount, } }, diff --git a/src/views/basic/model-manage/index.vue b/src/views/basic/model-manage/index.vue index 24768d5..fc43835 100644 --- a/src/views/basic/model-manage/index.vue +++ b/src/views/basic/model-manage/index.vue @@ -9,7 +9,12 @@ @keyup.enter.native="handleQuery" /> --> - + @@ -35,44 +40,36 @@ - + + - + - - + - - - - - + + + @@ -600,4 +856,8 @@ export default { color: #409eff; background-color: #f0f7ff; } + +#map-container { + min-height: 76vh; +} diff --git a/src/views/basic/model-manage/useOrReturnForm.vue b/src/views/basic/model-manage/useOrReturnForm.vue index 3490da5..21cfb77 100644 --- a/src/views/basic/model-manage/useOrReturnForm.vue +++ b/src/views/basic/model-manage/useOrReturnForm.vue @@ -1,218 +1,226 @@ \ No newline at end of file + diff --git a/src/views/basic/model-manage/useOrReturnFormNew.vue b/src/views/basic/model-manage/useOrReturnFormNew.vue new file mode 100644 index 0000000..f6fec02 --- /dev/null +++ b/src/views/basic/model-manage/useOrReturnFormNew.vue @@ -0,0 +1,662 @@ + + + + + diff --git a/src/views/basic/project/index.vue b/src/views/basic/project/index.vue index b49ef85..5414530 100644 --- a/src/views/basic/project/index.vue +++ b/src/views/basic/project/index.vue @@ -57,7 +57,7 @@ - + @@ -94,8 +94,8 @@ /> - - + + @@ -109,6 +109,35 @@ /> + + + + + + +
+ + 选择地址 +
+
+ + + + + + + + + + + + + + + @@ -126,9 +155,19 @@ :fullscreen="false" :visible.sync="mapVisible" :close-on-click-modal="false" - style="margin-top: 8.5vh" + @close="handleMapClose" + width="80%" > -
+
+ + 搜索 +
+
+ +
+ 确定 +
+
@@ -237,19 +276,28 @@ export default { }, // 表单参数 form: { - longitude: '', - latitude: '', - location: '', - remark: '', - level: '', + proName: '', // 项目名称 + level: '', // 层级配置 + chargePerson: '', // 负责人 + location: '', // 项目所在地 + longitude: '', // 经度 + latitude: '', // 纬度 + remark: '', // 备注 }, // 表单校验 - rules: { + addOrEditRules: { proName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }], level: [{ required: true, message: '请选择层级配置', trigger: 'change' }], + chargePerson: [{ required: true, message: '请输入负责人', trigger: 'blur' }], + location: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], + longitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], + latitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], }, levelList: [], + + searchAddress: '', + marker: null, } }, created() { @@ -281,14 +329,13 @@ export default { // 表单重置 reset() { this.form = { - proId: undefined, - proName: undefined, - proType: undefined, - unit: undefined, - chargePerson: undefined, - location: undefined, - remark: undefined, - level: undefined, + proName: '', // 项目名称 + level: '', // 层级配置 + chargePerson: '', // 负责人 + location: '', // 项目所在地 + longitude: '', // 经度 + latitude: '', // 纬度 + remark: '', // 备注 } this.resetForm('form') }, @@ -309,8 +356,54 @@ export default { this.title = '新增项目' }, /** 地图选点操作 */ - mapAdd() { - this.mapVisible = true + handleMapAdd() { + const this_ = this + this_.mapVisible = true + this.$nextTick(() => { + this_.map = new BMapGL.Map('map-container') // 创建地图实例 + let point = new BMapGL.Point(117.13805, 31.8734) // 创建点坐标 + // let point = new BMapGL.Point(116.404, 39.915) // 创建点坐标 + this_.map.centerAndZoom(point, 12) // 初始化地图,设置中心点坐标和地图级别 + this_.map.enableScrollWheelZoom(true) // 启用滚轮放大缩小 + this_.map.setHeading(64.5) //设置地图旋转角度 + this_.map.setTilt(73) //设置地图的倾斜角度 + + var geoc = new BMapGL.Geocoder() + + this_.map.addEventListener('click', function (e) { + var pt = e.latlng + geoc.getLocation(pt, function (res) { + var addComp = res.addressComponents + this_.form.location = `${addComp.province}${addComp.city}${addComp.district}${addComp.street}${addComp.streetNumber}` + this_.form.longitude = e.latlng.lng + this_.form.latitude = e.latlng.lat + }) + this_.map.clearOverlays() + const points = new BMapGL.Point(e.latlng.lng, e.latlng.lat) + // let marker = new BMapGL.Marker(point) // 创建标点 + // this_.map.addOverlay(marker) + + if (this_.marker) { + this_.map.removeOverlay(this_.marker) + } + + // 创建新标记 + this_.marker = new BMapGL.Marker(points) + this_.map.addOverlay(this_.marker) + + // 设置地图中心点 + this_.map.centerAndZoom(points, 16) + + // 可以添加信息窗口 + const infoWindow = new BMapGL.InfoWindow(this_.form.location) + this_.marker.addEventListener('click', () => { + this_.map.openInfoWindow(infoWindow, points) + }) + + // 自动打开信息窗口 + this_.map.openInfoWindow(infoWindow, points) + }) + }) }, /** 修改按钮操作 */ handleUpdate(row) { @@ -396,10 +489,10 @@ export default { //返回选中点的位置 findLocation() { this.mapVisible = false - this.$emit('findlocdata', this.form) - this.temp.location = this.keyword - this.temp.lng = this.form.longitude - this.temp.lat = this.form.latitude + // this.$emit('findlocdata', this.form) + // this.temp.location = this.keyword + // this.temp.lng = this.form.longitude + // this.temp.lat = this.form.latitude }, /** 删除按钮操作 */ handleDelete(row) { @@ -425,6 +518,61 @@ export default { `项目信息表.xlsx`, ) }, + + // 根据地址定位 并获取经纬度 + handleSearch() { + console.log(this.searchAddress, '搜索地址') + + const geoc = new BMapGL.Geocoder() + + geoc.getPoint( + this.searchAddress, + (point) => { + if (point) { + // 清除旧标记 + if (this.marker) { + this.map.removeOverlay(this.marker) + } + + // 创建新标记 + this.marker = new BMapGL.Marker(point) + this.map.addOverlay(this.marker) + + // 设置地图中心点 + this.map.centerAndZoom(point, 16) + + // 可以添加信息窗口 + const infoWindow = new BMapGL.InfoWindow(this.searchAddress) + this.marker.addEventListener('click', () => { + this.map.openInfoWindow(infoWindow, point) + }) + + // 自动打开信息窗口 + this.map.openInfoWindow(infoWindow, point) + + console.log('坐标点:', point) + } else { + this.$message.error('未找到该地址对应的位置') + } + }, + '全国', + ) // '全国'是可选的城市参数 + }, + + // 关闭地图选点 + handleMapClose() { + this.mapVisible = false + if (this.marker) { + this.map.removeOverlay(this.marker) + } + // 清除地图 + if (this.map) { + this.map.removeAllOverlays() + this.map.removeAllListeners() + this.map.clear() + this.map = null + } + }, }, } diff --git a/src/views/basic/survey/index.vue b/src/views/basic/survey/index.vue index b8bec96..3c0d839 100644 --- a/src/views/basic/survey/index.vue +++ b/src/views/basic/survey/index.vue @@ -1,284 +1,438 @@ diff --git a/src/views/index.vue b/src/views/index.vue index 1ab56f7..507fe15 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,84 +1,111 @@