From 6084d9832f49c604bd22ec0ef50c0431d62d6c83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E4=B8=87=E4=BF=8A?= Date: Wed, 15 Oct 2025 14:31:36 +0800 Subject: [PATCH] feat/1 --- src/assets/icon/sdcgq.png | Bin 0 -> 398 bytes src/assets/icon/sfj.png | Bin 0 -> 568 bytes src/assets/icon/sgbj.png | Bin 0 -> 366 bytes src/assets/icon/wdcgq.png | Bin 0 -> 423 bytes src/assets/icon/xfzj.png | Bin 0 -> 3185 bytes src/assets/icon/yjzm.png | Bin 0 -> 348 bytes src/assets/icon/yqcgq.png | Bin 0 -> 617 bytes src/assets/icon/ywcgq.png | Bin 0 -> 442 bytes src/assets/icons/index.js | 9 +++++++++ src/assets/icons/svg/1.svg | 1 + src/assets/icons/svg/404.svg | 1 + src/assets/icons/svg/afmj.svg | 1 + src/assets/icons/svg/afxt.svg | 1 + src/assets/icons/svgo.yml | 22 ++++++++++++++++++++++ src/views/plan.vue | 25 +++++++++++++++++++++++++ 15 files changed, 60 insertions(+) create mode 100644 src/assets/icon/sdcgq.png create mode 100644 src/assets/icon/sfj.png create mode 100644 src/assets/icon/sgbj.png create mode 100644 src/assets/icon/wdcgq.png create mode 100644 src/assets/icon/xfzj.png create mode 100644 src/assets/icon/yjzm.png create mode 100644 src/assets/icon/yqcgq.png create mode 100644 src/assets/icon/ywcgq.png create mode 100644 src/assets/icons/index.js create mode 100644 src/assets/icons/svg/1.svg create mode 100644 src/assets/icons/svg/404.svg create mode 100644 src/assets/icons/svg/afmj.svg create mode 100644 src/assets/icons/svg/afxt.svg create mode 100644 src/assets/icons/svgo.yml diff --git a/src/assets/icon/sdcgq.png b/src/assets/icon/sdcgq.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6a1ea4aa39d5c2ce2d03db4f2cfa233d835d45 GIT binary patch literal 398 zcmV;90df9`P)Px#1am@3R0s$N2z&@+hyVZqI7vi7R5*>LlEF>GKoCX$pS2I%T!K3wXQYTt2aynm zoFEkhDzH)kP(k1nDIl42u+RXMkP>`DWV1UQA_Ph7IEXoZ?Yw<68ltAUPoI543P3ZE z&#!0cb=^AvknO;hnh{be;#hp>0jRpO<>kSE;C&y^g;A+sOeR6+B68XUNa{jDoI6h( z0NAPKkkHh>Yw*{qH2?tn=xtEV5#aU#8V!`Zpm5S=@b3{?0dBwrpxHqHJN?KhC}NB+ z-%YmEOo9Alw(PV5G))VT_cT0Kpbr2s_&13}M{P)Px#1am@3R0s$N2z&@+hyVZq;z>k7R5*>LlR<78K@de>b@vc^#}VcRAzMq>;}c*M zY{{#@2`o;4d;;JG_R10=!Z`txaDdDWY~NsZC^K}I7vqr!k*r+H{#EsV{i=o!hWzWX zyC{Yj>4D~80Bwtq8RO<@U-JKUJ6RN+?y_7bi=qRNth8NYNrkPt%fA=R8q+LxR(hL3 zbdLA=>9TkVe)rT}6hnaYs+Da9QD4M-ZZ>4E& zv%g(c9b0_n)yCHQG##|^v*nIP1Bp2ZeFkPAGZC3k@?~?~N^3MUw?NSQPx#1am@3R0s$N2z&@+hyVZq7)eAyR5*>blEHC@3JTtJHavRaIsFBmGq=9EpSguvNlYzHgx5Po1%(? zi*KcftQ65$Y`kN|fhx>lDy|B1_z$5;Sk{JCiU>Ugo|N_bl8&<^0D#K%rkDN)K~yAY z*W2z(<$5y-P{nDX3cUk>BsU2Wr2vMb21JyqH@yacxHPFMPK!|qacNR8e!DSH6L3kc zo0VKTB`_oU^LY#A2Eg$Q3uo=%T>kBWKE2M?gSVSA`qKakndp(Fm*9FIa{&N@*N#h% z1H7KMAnX2d1G~b0NK!EF_-y`NdN!< M07*qoM6N<$g0JzIP5=M^ literal 0 HcmV?d00001 diff --git a/src/assets/icon/wdcgq.png b/src/assets/icon/wdcgq.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0909235f7ba0a0fe6a783f1edcaab502465fde GIT binary patch literal 423 zcmV;Y0a*TtP)Px#1am@3R0s$N2z&@+hyVZqQAtEWR5*>DlR-|xKoo}m_og*r*CX@>;?~4E+yD|| z!pd+0yg|bW&=Y_w6NOZ6P{RS>2GkpLXJk6_T$n~^i>Uwd<)3f<_vQ`Ipo`f@H=3DM zG}~^Xxfz#rok&piQnjEH37jo9Y>KnA-^!x7iN(sBBFY@eL_q81mESAhNB*vf*LFRe%jP+s-d05w@Z2Y}`E$&{7X*}eUDfE}g1dIIl|Sw9J$1ckA+6w Rvz7n=002ovPDHLkV1k~OwYmTR literal 0 HcmV?d00001 diff --git a/src/assets/icon/xfzj.png b/src/assets/icon/xfzj.png new file mode 100644 index 0000000000000000000000000000000000000000..3a59ab35ec930241426b4f29dcf0ce0a12d8492f GIT binary patch literal 3185 zcmbW4dpOkF8pqd+Ys8rtm&T=^nlNsqv?)zS(G0mx3{x8!*CDrDl0mbvg%}f(2w~hZ zM#ycj?Ltu^s{YB+0F(pC4rIv z07zL7%!mT^{2bz5=l!!kGIQ`1=0PNJZFf(=YMkEruw9GJq&xr$*?Sq`ZlX@tXe7)Z<^@5axCO|vrvriO)q`vMXm@&oUL%ZPv(bh5ftJ{%MerPbRM z1Nt5GU_#|tfD7Y>j9MT8GZUSAFkHd`Hj{2U`7yq=rffd;_FqlM#*S7c!avtVk8?H$ zI{DX7v60pDq69jn;IH)|gRO-4jv{2UaPW41*|Vl=tTU8 z+AtzIVMN6*+@UANBk-_NaVY4-k8gSQ3lntq;DKkWP6HmdFwn0)pj%fYYFWLE-nQ|# zN0FJ`1vH@#xU=D@IdClFygEJDR8?Eb)lKf(_vHqQ=T|VfA9R8vOZ{@f_1q@gx2taX z*1_I!OKv$dP5aoEkmRAT^oSJBVO#F}UNZd!_L%mw#EB23*DGK}Gy{i#7%tCT0meLW z-Cw+h7KuM2B|bfZICAbtlImj}ImostD`B(x+o|7_MRNDlJJ5r-Zk(09(`pZJnqo*J zI|2TIG$P(zlMEk8>P|~Ww%>#UN+~)b(E;ERt+Y+a7yywhDLw=d;Mwy)ChNZ}-?nVj zyWkyZU9i0IOYGuCz;-BeRODjaqr>@drW+hi@YYX@JVpmSN#OzVvUHF{)=%>l#{thS z?l0GO;6N8U=d^(^1P)PL^1212kgWEh;0Un0mh+q9TRfEO7TT*H9_ zqSIAU(62B+J#O0UC<%K>JeFjd&$4JT$pkT2i*-x(HO)w!)!@IA~r7AxYv9q5`y2UFye zSNy4~c}>Mj7r{oUf{Gc*SRF4!C`(1b=Aqlg#s!?-ni86l^x3d9dKlAcP{np^W^539OkAa_e!`U_0^R=ZFU*Sf zOj(ZPs&_D!2TkXog7>Gz^qtPvcfK&K8w!5+FeDwddQ`kHzU?mN`194*o&5Jd-%x_W zttT3~@*6`J>E_Dg`mc^dKR$Z88)j}(_vFpDWE-eAO*`QlC9~s1a1*?zCrJ{0&sJ9o zueBEPr$-C->j28lBTLN~gwPDPekSz-n93%}*Aa2>9Rp>=WO3CFY<}R1LU;ghbS?6YPNlRWMGWD-w|5aW=|4d7`Icx&p`GZj-TDn_GhOU$Bu_YVn`XiKMl*iTb3mpjDh6>2Rs&2=Pgl13?Cm*{9wa&yS{1 zK9XS;A*HE!{8yq{W|@ZQd%pv1v}~>#A;#!ffi$JEtfYGQ(JLEIfe&#D| z9L=^n3mf+U-ZLn6Q^ti=DTJt`$feuzF-_fB#&Jdrr>Z)`B1TL`;k`727_iro&0EQE zS@j!px_ragK09NIRIBl=nDJRt8endEd9?1PC%iuFaOJCN4TE!v7(MuS2lTl6T<0D1 z#+b*Ah`xIVT|Y3$7`pGYFcT#g&|Jo%Ev4?ATG>|$Nu7#zUx+$I_<~pV(GhiAY}lT% z>g%oV(3@AK{f_3l$V%2Z`*F6cKX~(uJYaxeRrIvx4EM><>(+NZ*&lltipY zW^A@hTWndR9o}CJGKz_%9xOTk4{|vnR{J!G$Dp*m+U#%P#p~N zgQm0Qhriepaf&rO9%f{%M{6G`ch;Pdv3v<+WQziep~|(AuAoz^fBx|x%hFKw7$KL# z!BZoSg5+{Si8j3}Jly2u=X|Qbv?!@M3iUl&G3#c$NQHq*?0ezs;#HM;JlWVjG-*%y zRTbRQ8C(gqPf}2I9A?8;M52P@)2Jr9_j9jt;}c{z{!n9om)_IRvOKav~Pkkt9^_he`#v6CJDsj)^;<}9xNZpVnT*7Gc~SW#vY z%TUbIC8jHoC@DQ8U8kGAD-*5tBO(6GALd7y+duzeGjAU=7rgniU4DD*|#_K^mod)OxFOQ%6n%Tu literal 0 HcmV?d00001 diff --git a/src/assets/icon/yjzm.png b/src/assets/icon/yjzm.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8d1ee1098b50ebdecff36dab19a2a189d60e23 GIT binary patch literal 348 zcmV-i0i*tjP)Px#1am@3R0s$N2z&@+hyVZq21!IgR5*>rl0iWc37%sKnYgz(-(-8Yjb|Dr#dlt=KTj@t^rm`Ud`6k}^+Um!($n zBoGGx1k2E|`k3UdKdbu2*>riU6|6uUg`Pq$5T}*Q&)=H+K>{;vOedHRA+uw(nB>n% z0t#-1!mET_Ckc#Y(Y4_dK(V)@3CH!-k>4U{+h7j~13;VUhlpTJf$&`prUU$XdsG0d zuAoGnq_Px#y^pfHO;1NtB9{bBay#h(Y!yWRKtX)p`^_ibq5>gbb`^k}?JcOsS*?f* u0`-RN*s)rS^T(a#DH+ScSRQoRKkEl=S6*kGK?Rrq0000Px#1am@3R0s$N2z&@+hyVZr6G=otR5*>Dl21TNJ9pJI&b-^DIXsOiM&b;4z-+Pbv&y$RA zBlvz~USG6Ro3+yW&c6Vz;U798^ONyyq#)=!xvP1%aZJxY@b2!yzX@CEeaFDtW@(35 zTN^S?%WHrU02ozUd3QZeCS|iWib&Iz(~T$O`Cg*{fH<|k0E8e07rVjGe@U-t!gyv! zPUrzFC@x4uj_Aj!T~tm7l7=Mrt6Jv(;8zYif#IQ(yCOM~P~MJ}i=jjcW^2>OCLfR++Y=H151 zZ|&4(B8rRMU5y)Dan^4u}Cf8$#+y55_%B`!77 zR-2QuxiSF&7+Y^a7__G4(VxW0_%`wlG7y8GkF5kAV|;!zwTYv?3S2-s_fQu#O=#e4 z3+g@9_oZe9002p*u&!*+kZnOtfeR9aDXWv$?F4||41@>&^&p3t00000NkvXXu0mjf Dtu_mS literal 0 HcmV?d00001 diff --git a/src/assets/icon/ywcgq.png b/src/assets/icon/ywcgq.png new file mode 100644 index 0000000000000000000000000000000000000000..15cfb26331e9ad67e5032cb3a28f569ac8dd714a GIT binary patch literal 442 zcmV;r0Y(0aP)Px#1am@3R0s$N2z&@+hyVZqWJyFpR5*>zkU>rYK@de>^)MKAbA<5*Z~$U+0}@9Q zSLzAW6BtgQoBI(B{PC+tzFg6|MmZee>wfh=GuZL!JP#?-$m*gB^n z5My-(Y`-dc@om?gblkjX9|}^|Ij#Dlij^OcLXueE$xby3-VY<13oQ3KklOd!@$=?= zZj3n+H2*aMLc<=gN~%x-xYPFAtY}>d#{DWVKTb!gdIP*EIOD6HJL@a~?0B6Yy;P4% zv~^CS1AxUz`yRO8i2}qJXBf%rJv9XEWNiaUH>pDD&N|Ef^X3Aht3`28ens5rXe-vA zY_3JP0$G7(f^l2BA|e16lZ)G%!{;M1&07*qoM6N<$f`3ZC!2kdN literal 0 HcmV?d00001 diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js new file mode 100644 index 0000000..d79e164 --- /dev/null +++ b/src/assets/icons/index.js @@ -0,0 +1,9 @@ +import Vue from 'vue' +import SvgIcon from '@/components/SvgIcon'// svg component + +// register globally +Vue.component('svg-icon', SvgIcon) + +const req = require.context('./svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys().map(requireContext) +requireAll(req) diff --git a/src/assets/icons/svg/1.svg b/src/assets/icons/svg/1.svg new file mode 100644 index 0000000..b258268 --- /dev/null +++ b/src/assets/icons/svg/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/404.svg b/src/assets/icons/svg/404.svg new file mode 100644 index 0000000..6df5019 --- /dev/null +++ b/src/assets/icons/svg/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/afmj.svg b/src/assets/icons/svg/afmj.svg new file mode 100644 index 0000000..d661899 --- /dev/null +++ b/src/assets/icons/svg/afmj.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/afxt.svg b/src/assets/icons/svg/afxt.svg new file mode 100644 index 0000000..c83f66e --- /dev/null +++ b/src/assets/icons/svg/afxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svgo.yml b/src/assets/icons/svgo.yml new file mode 100644 index 0000000..14f8f5c --- /dev/null +++ b/src/assets/icons/svgo.yml @@ -0,0 +1,22 @@ +# replace default config + +# multipass: true +# full: true + +plugins: + + # - name + # + # or: + # - name: false + # - name: true + # + # or: + # - name: + # param1: 1 + # param2: 2 + +- removeAttrs: + attrs: + - 'fill' + - 'fill-rule' diff --git a/src/views/plan.vue b/src/views/plan.vue index 9667bfc..39cab86 100644 --- a/src/views/plan.vue +++ b/src/views/plan.vue @@ -248,6 +248,8 @@ const MOUSE_CURRENT_Y = ref(0); const activeMarker = ref({ target: "" }); const Shrink = ref(false); +const SELECT_ACTION_TYPE = ref(''); + //背景图片/标记图片等(保持不变) const backgroundImage = new URL("../assets/gl.png", import.meta.url).href; const icons = { @@ -325,6 +327,11 @@ const handleTabbar = (e) => { d.isSelected = false; } }); + if(e.isSelected) { + SELECT_ACTION_TYPE.value = e.value; + } else { + SELECT_ACTION_TYPE.value = ""; + } showFlag.value = false; nextTick(() => { showFlag.value = true; @@ -606,6 +613,9 @@ const draw = (alpha = 1) => { for (const key in points) { let _points = points[key]; _points.forEach((point) => { + if(SELECT_ACTION_TYPE.value && point.TypeId !== SELECT_ACTION_TYPE.value) { + return + } let status = getIconStatus(point.TypeId); const size = @@ -645,6 +655,21 @@ const draw = (alpha = 1) => { ); } + // 添加文字传感器数值 + if(point.TypeId == 26) { + + ctx.value.font = `10px Arial`; // 设置字体和大小 + ctx.value.fillStyle = "#FFF"; // 设置文字颜色 + // 计算文字位置(图标右侧10px处,垂直居中对齐) + + let _value = point.Data[0].Value; //传感器数值value + + const textX = point.x * BL.value + (iSize * BL.value) / scale.value / 2 + 1; + const textY = point.y * BL.value + 15; // +5是为了视觉上垂直居中 + ctx.value.fillText(_value, textX, textY); // 绘制文字 + + } + if (point.target == "device" && point.IsOpen) { ctx.value.strokeStyle = window.customConfigUrl.openColor; ctx.value.lineWidth = (4 / scale.value) * BL.value;