#)B%Bw(2JiLvqH^FOgxnuUb;s%aCn
z)e#Rcv;0y7zDfDMi3vqVDN#z|`l&c?-qA+BdHc<~VKakUew~$j!7VChTWFqJ1V3A$
z7bNiG5`B{SfAgUy`0(R|33@p{$1OZeHx!lQe<2qWpPj7bhI(*Ac%g|Rei}!k&g#;n
z%vrD9v3r|oj`
zBlFAVzg$dN`~pv)+ELNZEOvk)Y9Ri_RbI{~Q0%FdYplqw9@hpzRQXg(?WNwQ4pRsk
zE`$|nK+eBMcd2;1pH8ULt
z{w9JBjUsR`i6@_3Wfg4`(cMeHKx8)`TjeleT~#tSm~*%yuvwX-Hx9Xd5Boce|phzu4Dd-_}DCy;!WT73*~3TD@4LLl2=dT~p0o
zS{_fE$_r1IUYj;~@wDMQ&wpDE5oWrkC1Sl^T%)1sYL6A7^&@jONlM|8R!!5fd2P}#
zq&kP88X~AtYiwE~GB`yt&t@t$T#2?kJ1nsq)@xu|IMTAoa~Mmbt$D%UC2lDmVIH9&
z+)(cJ(hG4ns#~YHd64T|>&W9<7j4gnkw*H_A*2EPP2yqp)SXM-_q*=%CSzhQC~N?k
zeE$(R$7?7Cipd#`<{W)|$GG#pl`Da=apc@W*vqoOcp$ObY1
z5}`hMPqjzZW8eSn%|qaVXqpOT28qNVEBr{11OuwkkE0fwtPC83l}?bvkB{dk2~H}?
zYJR*R=_GkbI{$CKmEo7wx>E?_#9E^NiHHniBegOd@VN3)OhuDm{rnVRihZ=c$^Uw_
zXBeak_vjRUSxn0PyZ7$g?(VkrPdQFX=C@z+X-^5bqduTH0LMp_mspGlmdOzprmMH`
z7>ggIFrWFwxpOd(d5IruL=d3dh$%IG9vSF$Hk7f3I1b7=Q@4`|t2S5N-iyIF`Aj%}d?Gmu0?
z;4|K2J{>tR%dGJJtg4)yB8Q3?%C`5~_da|aLjn>pGIp^!e^MY|yOalyhwO%|zFyXs
zboX(OUC+K=yWYEsGWDhX>db@b)rI2|Mx$Dxsji+lG3}edlSduJ{cH#b%EQ(2i!#+)
zmEBLB!*TImN)3m*{^<2oRVDv7*N-jZhH|`=xOnIAr#~u3vozkt_&P;y!JH#UN7XY%G%*2S$B$Q>9EY~V#t`x02f5?zF0d~B+3=*
z|Kscdd3gbP@qb9s-t~rCE!QUs;=H}%1c|2=Dbg+y1*af^AMfoQ&rg6;w;xYQ8A(XG
z78^b6q;MSmK{wqk1i#A{l%<9mb=k-fbP?_kztpfWjauubs)prDFJ7(oN=w#;`KA7e
zTY?^u?B~ZS6;WEfJ5J-;DEXxLF*LJk&wMj(ehrSZzETt~#3zvBPdf$^DjfJ#kF0Ip
zVN1L0xwy(Cl^LP?v`Z&NM_2VfqG{gW%UDvp-8?LwiPw{LqmIFjG17BB_HldWK(=kR
zZ55W-b!MuQoJUXS_8>jS{Y)Pt5BL{P&_n|R+jQIF;S^DKEVQFjJ9jTwb!VWzPq(Un
z;2}jdtidv{nqd`%G%zr#8*O|`6=fw>!_Z)dDIt?p@6+|6)w2s0?&_pC+wVSOA4Ot1
zFjh8Zo17?c{Nc8RBZIhvC~y#PuJ1+x9Sl2FP-`y7-wY-jx2uT^2a+i`A8UU0F17Nh
z2RS9kO+%0>Oy4hdHYQLK8j%z4O>0I3H%(9q+2d)UGOa2_BTw@UO^sGcRNg8tmFz?J
zr!G&^r2G)@s6Kj8=;`M&@xzy|9*V<=>y{Az+Ul?1IbU=6$(qSGcV$}B#{$Pd)DIjY
z5Xb}|Hj?T`&S_;`Id#icXWF}P2z})*eh_Zm-o7Y2u)D2p*NvEK|6Lo9YkTP~-1TO1
z^Nor=0@wm!WNr*G&TMQghNL10os>?#z-xC+TDmkTPK@=~3HToVtvW!-!Y!*iOZP-;{Iz%Khxs?fomV+_Ao*(1F@*b=%@|ex9`8pp!r2`^Q1(
zngD|3&qx)Lz>PAd8duas8On%BcR5ID{l`CIc36rRVFkv%6kf4+B^>0^D
zkBzjA9_W>+B$p)1(;P~^tAWBH8(i~^0e8$d%Tq?KUQ=&~8#KFvPIZkCps-)H?zrRc
zaqT~-dbg3j|9F@_9`)es4=kT3K0Lho4`{v}{x*5DX@K0TZ&w7fu1d29vZYs7i^q%E
z37j`w6gvvxO^!^^%WT9|L<;e*xE*;KoCMA)Z1!@SI5$9)TSb&$Y+d5HRf5DO;u6Vr
zlocbRZ{=Yl1LQ5EuoE=1DZ~tm$z6Z!=x*8*a6P6;S|@5PNgQz8;gafQsq9>NIUFymIQj@Ec@Ht!qRcsdnf^JCfPi|7*#V&>`Ls7)
zIsHNsU%Ivf+tTeId$1HjLQv6CdydyajV_-x7PTrx#hR*0dTHp
zoNxVEL}$}aIx*?1PG|pPfkKGN<`7m#0Ie3cDS0Pw{{MT0?O004Y
ze;|GWup^k;0C|H2F03((BT|!E7?ViMlULoh&JgdHDTi?oNy^%SCe^v}5%weY2|I>4
z@*q|qdTT$9BU!xcB_`LAm~Vn1e39+F?)$9|FFlXV2VlB
zNt2H-95H!-DG#s#p__l>H$;djhfss4tS?n7l9t5mACYzw_7{SoQ?6kr;yL9k1`!@S
zb?vpLgGtC9#q#~=c^(H(D8a~cs0@5u(GYA;>I1VarSHCl{tM&0-)qJeg3aiv=SA8d
zrmAH8m(9#K5H&KST0W#<#DpbQYenBoC=Kx=0P21u||Hu3M35&tRK
z)PHRT7HIHfh8d9H(+mqp!kG6E1r8?DLU}z3a-=Zr14n6@6@C@lfDM14td*1oca#4?
zjZ4DYY@eIzpJ-6?7HnJI-E+t)OZd@l(ow5~uJVcKtm
z`|YwErDfBvK-|X$^6P$~td*3%2gd#nY6F7H3*L;rh~=NOsq8TcPTQ7uzG68<+p8?W
zk3=z4VoA{X@JZHY3Uo2Pa&33nU@>j<0ei6k$s_?m~x)?i4J5J4RY@LQkjv~50QMS#+sIF70
zP`^kj-I{u_X`u?G(>Nn;&J~&U+I&%|m6ZyvlBCuL^y$=mUvY;2om#riYpsJt1=`u#
zjm?`*aU-8LR53fLeXX20FE}=<*DB&KzuiLIu9D2BMjjM#RpTwLe&mH#pGDcpV~huv
yp4r?jDsg|A$mU5%(*>HdSJ)-D$Z06H2U6!u(QTNDMgToGxN|G%O7Eg>2L}LQBs1s$
literal 6804
zcmV;F8f)cuPew8T0RR9102-743jhEB051pt02)I80RR9100000000000000000000
z0000SR0d!Ghhz%JP`U&GHUcCAfiMeN00bZfgkcARbsHNeHPg+VAaEW)-McvvMpSDG
z+5i73fsQe_v4ds_GTGs<=nlG>9W#)}7CY?DU6PY0MsG(_B!nabB#tSKNs*D44tH~rWvoiV;I{rAI1ZCkBMvk$nr}bnrGR;9ei`NJM{2^20+`#y
z1!Y(^DYf$fFw+foeCi^~D6^JZ|h$iy;pRb}ulExi6J)Y6r+;gkq|iy<*p}*q^cm
zd$QM^mQFVFvM7-J76I`8{MCHGX4*JE0MN4De_LJ)?Os|uf@PkSW|<`tiTC%@noYLQ
zo4Q8p!Y~Mja2Waj&n~ks*_PcMCjWY_XLBukHI&lSaf*{T1_kc_Ydw@&g}K3jm1qUF
z4XINCwgIn~xmLap`?-A3+BOy?v9xrfWaI0uPY{5eT&j_c7q1iG9{l+GFF`np#l3*j
zwHW+K>@l$RmncCluujdYFO@@l1uub|GD84n?Y=MGuvb_?V$xW=)#knM3>@}XR%TLZ
z>fA?$7;1UEjxDVNn%*KnpvC
z=9V+DJeg2fISngvtf6T`AvcO!6`3TD?HG2r$&c#jlnTo%@Vb|mVvZt&&i-40p(x5S
zkC3Wh8XaX1&43}x3A?&eQ5bf6>t#dnYyw+Qtj6dk&I=hd(#(?F+z&bdZRQL$4F&eV#3UMj9$JemcX
z|K^RZtFmd;EopkuC;;g2Jc_b73iB9SQvP00kba=(08Tmt=R}Pu&u+#XBPv@|cxDPD
z?N+KzjOBr(1)~T(+^5K56_G3hfLNXuFz5CwA=%epp0%jEU*1vRVgULi?8{u3PgU)9
zYV}pNOjnFGbxqE~kN3}0b8^uM|Adtg;=eWYY;rQu7P{L^i`nk_-^;DI(C?i$vtqKB
zb(e8?ll-Kelu~~-_OAD6tG>^Wm+5Qzqry%}L%}8QRVR9kz8m>zHoMiko$!X|_j_{3
z!iZnCA{Xb3nJvM+WH7dLC{Q{VM|tHc$!A}l--gVln`z68G1sQI&T2*h$fBZdpU+On
z7dXeGsF_TB@yuimDdsp*&I!*sn$3h~FKm{l6Wzi$20yCDhLK9T*>s_jAT5(CR*v}M
zyBBscRm^3Eq`0+o))k8s`wH3Hd$fb11hM)nKCl3a91jHU@ELQZkX_6bfVA>IMZ^Q^
zXv;zg+Lzj3{*x1cfW>
zx_s7h9No6-$hp;Np4)HnV4-;G(%!TTa>xy72G7TL@ody8`ZcF~fuOH(y|4xwt729CR1dw@zE9hS)cT_osy10RBc&y5`?Ze>r1$-QXSPh@991KA;
z_J(;uEngBQ%EJpeVfMthdpZ}&2P8*yf^CgF#pKGfYrt=bX+~wsaiE87e-Yuj(z(dX
zSkbj*NGg~LjLmU4@jN((YB?y+t_xg5r6DoW?e_3OKCYCIub!;6Ee%ikhAk)?9@iQ*
z6Pt(vj&?mD`xx9cj*V+~(MT$Xj{dDy06
zH_@xiwAj`j6Jux=)|*ZzR505&+U}o4b)=*nsL08E7s;yabqM!!$A~7=5a@c7>Fc_q
zI&!$vChJ0+6wUGvR1=Sp?bQ{?0hhFH>mpk;&qM|Cv?tm1kIcAGk|>v{CHHKAmgGd%
zlBx{Z$trD?ARV@1i=n4@RI(SIWH&0iDeG*7W3>M7B(U5YrSDV%nmj*tVo9wi9Wp<3#1!)@h;;BKrhc
zouDcfa>Akl$qp!`5IiTrGqjgtZsJ5gd-=wK9E(pLnWAlruQ-nMre%TQA><^(!cwtZ
zR2DKNn^J;o)yzInNY@5uVH1Axtph?yy@#UkosA|L$b_wLepF8MxPZ}D87RRUCC00s
z8}<(0TV|^~IMh$UM*8VM0U1vn%c5zah}l8MM+VLltsXZgIBUi!$B0JKfqQV0MV7GC
zw#e6uJq){$5l^FVTTEg36AhnIYS!&7>1p+XQ<#v9Db0WKC<0ZqSCG7fp+w39Z~X_!
zw~J5g?~EG@KJ~88GiCAYsD5tjR#0oKIJ)HYvTN$EP!fKKn*DLJ&&+U@{RP!F!q;Ae
zo=9WfIe3z^V!Sf^mJC@55`{Nj(p7k5Qhk#?8lbwuaVbLfS%Rw>`-K@RL5!j|`?Xc;X
znq~`bBw!fVF#|8sQ;!maHp7!2;@|*;(nHY$AnoV>1JtuTddqpe`W6j?PaF@D8q_6AD`(p3C
zn7d=j{*;cXG56dc5_e5oR{T1tZH*cmEerd7J?6Ld|1ErlrS0Cm*=N)a8=D9U)>0j>iNbs_pz^j|-V%_>Mf+
zu8q08tvhR!b1A;87G=%Ot@Sx<>~hW90T(j_$7B8Nsu2M(#|2CgVtc+z*QQ+FmYvm6
zbJTk8RBRR>X3L#hj!YCHj1$oc)g~Gdr}>cmE=aZ0+9O4cmV5{hR5etJ=MS8g7mzhlAd_J_U?qpJlS{e-;St|9|y
z#`KQ(qtf!CY8{%)o2N-
z2F*M!wy#A=eAX=tl}W=El7CVP#@_UkyvRl>4Uyr7aZ7v_u!^!Yj1W~$NJ>KfK}Zo)
zOqPWD`Gzv)^Yza+74sf8?3|Q!*(X-NJ~G=Unw}{#GLq?uDZy&`MLzT7V0t1m*(jvz
zeWDbG1+n_j%UM=QnQEn9q_3aUKQe_)*HPuNj1IYG%2MhUss=g=()*$7*eU*ze$q%^
zrJowK-u?UIFTF_+h9aW)zJK>v8$DeImoS$My6Rc_-H3fjU(WQ+Y_dUmnC|#Z11I#o
zIq|io>%5%g#D?o5R)iwPx#BvdY{c_s+Z6qw{`&|T4hn`>C+gGuYwOHb8u?jp%fab2JC|2^AINZPL&Qj5fI_ykF%noNRWCbB^xp
zhO9tLCmm*XA9gYqP7_d%mxgzWabp!`m@uN#ZprBH8M*74QPF$g+Qz}WWS%sye18iR
zz1ub4ypM7V99nmbYvgc@l^lbCQ)%R|4aj52aUQG>RQmfXwf<4*FmUziK!0VFf57{O
zW6(GcaXCgKr$R$DR34J-6$4XNOA1kfQr78M0$0n4JVS(m3L?n7(C84CZEy~^G0cQE
zN=a#WbdVcv(5QiF(LlrMfI&n@`w9dX3w<=c3g1YnU!>oL(hK-)RCm_+_+qLERhXfT
zgO*ndt!wco7g*PT&)*CV{v+}6mqpG1_ww&u;FToDny?ej%jFmFLmP*@
z4lP;)u&V|xEL7eFekeB9>O97T0bECb5E_cGGjPu#eQrnP{fLx*-&G|CVx5fZ`w-q3M4(yEI3ViOXLW&
zFF6ot5Ad$|>2Z(zALBANj-G!wu!f0X9$bqR5Uo?J8Now!wv(B|lWd9}O)~4Zk{l|0
zP`shrt^3Kdcr-wVeZ8JS-AkbqyH!1Yw!n3PH0J&%VeP!sFek+EA-eYA;}E7IwVLJ8WpAwR5{uZTiwL&twbIYmNjjSIFytK(*?yT
z>2ne56=~_JYI2QBc669oY=d;csnKM+=V&iH2KC&IjGE3E4oH$GCX?M#K}Zsw%m|r9
zAyRyOv(x{VZhqMR?1*-IVKJKgj#bzDxfYUd=jXYD9N<&kIdH9?XCeCaKlgWg-e4E=
z(ygW#iF=JS^f@fDi+<@|<6Dp0K4-sZySQ0MEVAqWE+oMaT;a5KAtjRL!OEGmE_>Ic
zV?DN}Nf{dhxy#Ry?A_B1Jk(3ga9|rY8jjCDD_?x$AGIuo%rm-%N;G=qd78IMpx~VFK2*%ig4TmD;ozpuB)u(-GH30AUD4kNHYK
zU>CvUL^*6BRytC(9zzfM{Qtk{o7=HoZd=Z~#iB{>#HEGQB1ADfKHPTjAfjfW814+t
z&E3w$1Jfo6sI(O#?g%iJ4Kftbo!l$%I#vJjtG4WgFGdsLBZqjRiQgtdwaM7zTI)04
zCf0j`eB==tjPHv)vCgcK3w0rp+Bh*+5+n(f@IQ2a??RniGd1jKb=-`|!B>3FlQ(al
za1^NJvrzlig^K*WZhCKXBGGLLBq#jA@PmNe3#cdny#WD~hOQpCpyYSxtL7|8ck`w~
zJteQFGS_Wroe>q@*;2LncKpo`H~ZxJpS>A=s~%H-yR-)aE&%#>S^zP=x87w|XbHsh
z6nlmM|5k!(_H0!m2j;ulcL2soJQme#%0T?U5QR+PPY@|F$%ZLK(8;UgR|AEH@1?jN
z+tL!d)p}cEzGyF5qA@MN^d0xM#L7z^V&M+=?mED+U1p-K!yKZXm?Yb{!2u3fqr#)>
zk206E_RhBij-E+kiTT0rdKIYqNE-U#vxInO7BOQTz3(
zm1G!TUlZZmlC)xz%oG{YCdFS{b}9T4I6a(BoH;%A05CQ2ORz#8pJbnS*MwlL(;)jq
z%id)2M*PYdKk^jVTCXAcUrel@P6&ov&@H-hnDKEuU
zV%CB2{GK;T`22;}um5R=Mvz=+*m)S@B1gcVpROZ)SK(IqBCn6CyjAvtRBR5xgr#Ck
zgd9uQecLrc&A^SDvXzPbHusUEr2`Pi>y<1&?Xf$tb*iL$J^J5!3-Lq#DE_={|6KHa
z|B^kR{$A7`mBinK!=76OeE4GW#-lH&(Bw3nYYB36n+81@j
zOr4rcU5sXL)^oDL*jZ+x1WW4@%`yuT3)>Hcam6kv2KhxERxyCtP%I@`GY5-G3o*WV
z&sNz&M*|3_C_xmxii^(6uRm;G@c(bLU25fcC9xM)MN5nmVaf<~%n0pOrJd+kew!})t
z_4ymR;QpO{*iowNjp|faFrGNfEv6mAa>haP7|s1oYZ<(pS#t}qNrTK4b6tzv@vLSK
z#%_ab!ni{)nR{9sAfkf9Yo&rICfO(D59mshkC6VzN_gXfU6@Eeq$1R4{-M()F=xJ3
z6S|8PO}}B2fb_Ha`NQ+5-GNGf5^{E%yPG|6t?-Nz%si*e_j5&O{JuSOKXa-4_A34t
z#wGVZ{oFvXnX>G0A?qKevdH)^D-AG(fbnxvzfM#_ra}-`dq;ma-~T&@Yq9^2Va0yh
z=XZ?)orhTr1u2saSQuYVl-@{D^CpPOo4(kDgS^FNEL1MGlR?AK4gwe&4WVp6I+MM{
z0yo=4>D?o0-czFT-dJoRm}iU4xcRl%PN%~%N(afJC;E$G1vyd}c7dbR%%oo!YKMkj
z7*~aq`nPF+P~+0@(m!8Sf1*Ood$INS>YhVZnZrlBO-Csbn#w<-_mg{jUo0~3KKdy0
z-i25}jueL7W@C<0v*8zpU8Ezw?hE6pkn#_}SpT5bC%C%s(m#vEPo=6HFbQ^BkFUO@
zIrzJ)%;6(Z6or@)8Xx{i-RS*fV6^uIJyBLw`p1UmW)%X~caX&mHM1R%O%A!_kxv1I
z6w#ktKQTxsAzjuDB1|abLMm;n^C6~OYU^W$x&yrQBV+S&{Dmmqj-Ds>lY|1tm4la~
z7)TE(rHd_79c@}GXGe@qFGy83T|xFsyfNi*@&it1O^ltT9;Rwnwi>!fj!|@Xq-@Kx
zVZX;zpnjHAT9QpYBfS)%bQ~wd<*6c5x9O}rD!HN&N6C4hWAk0X3AT-Dy3DImI*SU_
zlT|Y_t{TOqWJ*`W?8w$`|Hyg9p;@_95$}@B#PuS{bnN0z5m#!w#>H5kXyubAJ9&V9
z=hCv7w?-k(&lA}+2x&S)b@l=~=NdT;_;yF?oGH3>L!oe>rv`VfV~SFnsM{U@0000}
CSvB(j
diff --git a/src/assets/css/rightBoxCommon.scss b/src/assets/css/rightBoxCommon.scss
index ea96c467..b5704259 100644
--- a/src/assets/css/rightBoxCommon.scss
+++ b/src/assets/css/rightBoxCommon.scss
@@ -25,7 +25,6 @@
height: 60px;
padding: 0 20px;
border-bottom: 1px solid $--right-box-border-color;
- box-sizing: border-box;
.header__title {
font-size: 16px;
@@ -231,7 +230,6 @@
border: none;
border-radius: 4px;
outline: none;
- box-sizing: border-box;
font-size: 14px;
cursor: pointer;
transition: background-color linear .2s, color linear .1s;
@@ -302,7 +300,6 @@
height: 100%;
transform: translateY(-50%);
justify-content: space-between;
- box-sizing: border-box;
}
.form-item--end-with-btn { // 末尾留出btn宽度空间的form item
diff --git a/src/assets/css/tableCommon.scss b/src/assets/css/tableCommon.scss
index 32ee65ec..901d3bd5 100644
--- a/src/assets/css/tableCommon.scss
+++ b/src/assets/css/tableCommon.scss
@@ -2,7 +2,6 @@
.list-page {
height: 100%;
width: 100%;
- box-sizing: border-box;
background-color: #f6f6f6;
.main-list {
@@ -45,7 +44,7 @@
height: 44px;
background-color: white;
border: 1px solid #E6EAED;
- box-sizing: border-box;
+
}
.top-tool-right {
@@ -135,7 +134,7 @@
color: #666666;
font-size: 14px;
text-align: center;
- box-sizing: border-box;
+
line-height: 40px;
&.sub-list-tab--active {
@@ -157,7 +156,7 @@
background-color: #e6eaed;
position: absolute;
z-index: 1;
- box-sizing: border-box;
+
user-select: none;
color: #5f6368;
cursor: ns-resize;
@@ -189,7 +188,7 @@
position: relative;
padding: 0 20px;
width: 100%;
- box-sizing: border-box;
+
flex: auto;
height: calc(100% - 58px);
@@ -231,7 +230,6 @@
height: 49px;
border-bottom: 1px solid $--right-box-border-color;
background-color: white;
- box-sizing: content-box;
}
thead {
color: #333;
@@ -358,7 +356,7 @@
left: 270px !important;
margin-top: -3px !important;
box-shadow: none;
- box-sizing: border-box;
+
border-radius: 0;
border-color: #c7c7c7;
diff --git a/src/assets/css/theme.scss b/src/assets/css/theme.scss
index a526384f..8f4a3749 100644
--- a/src/assets/css/theme.scss
+++ b/src/assets/css/theme.scss
@@ -56,9 +56,9 @@ $--color-warning: $--color-primary; //全局警告橙色
$--color-suspended: #9e9c98; //全局停用色灰色
$--color-monitor: #98AEC5; //全局停用色灰色
-$global-text-color-active: $--color-primary; // 全局文字active字色
+$--chart-single-value-icon-background-color: #E8F6FF;
-$content-right-background-color: #f9f9f9; //右侧背景色
+$--content-right-background-color: #EFF2F5; //右侧背景色
/** 改变 icon 字体路径变量,并引入element-ui变量文件 **/
$--font-path: '~element-plus/lib/theme-chalk/fonts';
@import "~element-plus/packages/theme-chalk/src/index";
diff --git a/src/components/charts/ChartSingleValue.vue b/src/components/charts/ChartSingleValue.vue
new file mode 100644
index 00000000..8239bec2
--- /dev/null
+++ b/src/components/charts/ChartSingleValue.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/charts/ChartTable.vue b/src/components/charts/ChartTable.vue
new file mode 100644
index 00000000..d161ade0
--- /dev/null
+++ b/src/components/charts/ChartTable.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+ {{c}}
+ {{row[c]}}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/charts/EchartsFrame.vue b/src/components/charts/EchartsFrame.vue
new file mode 100644
index 00000000..3f9f02f0
--- /dev/null
+++ b/src/components/charts/EchartsFrame.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/charts/chart-options.js b/src/components/charts/chart-options.js
new file mode 100644
index 00000000..a34108ec
--- /dev/null
+++ b/src/components/charts/chart-options.js
@@ -0,0 +1,186 @@
+/**
+ * @author 陈劲松
+ * @date 2021/6/16
+ * @description chart option和一些工具
+*/
+import { calculateTextWidth } from '@/utils/tools'
+const timeData = [["1988/10/4",89],["1988/10/5",95],["1988/10/6",94],["1988/10/7",86],["1988/10/8",95],["1988/10/9",93],["1988/10/10",88],["1988/10/11",80],["1988/10/12",89],["1988/10/13",83],["1988/10/14",85],["1988/10/15",83],["1988/10/16",73],["1988/10/17",79],["1988/10/18",82],["1988/10/19",77],["1988/10/20",80],["1988/10/21",75],["1988/10/22",79],["1988/10/23",75],["1988/10/24",83],["1988/10/25",85],["1988/10/26",77],["1988/10/27",74],["1988/10/28",70],["1988/10/29",80],["1988/10/30",71],["1988/10/31",73],["1988/11/1",77],["1988/11/2",78],["1988/11/3",81],["1988/11/4",89],["1988/11/5",79],["1988/11/6",76],["1988/11/7",80],["1988/11/8",77],["1988/11/9",72],["1988/11/10",68],["1988/11/11",58],["1988/11/12",54],["1988/11/13",50],["1988/11/14",41],["1988/11/15",36],["1988/11/16",43],["1988/11/17",45],["1988/11/18",54],["1988/11/19",49],["1988/11/20",45],["1988/11/21",42],["1988/11/22",41],["1988/11/23",33],["1988/11/24",23],["1988/11/25",19],["1988/11/26",18],["1988/11/27",13],["1988/11/28",4],["1988/11/29",4],["1988/11/30",-4],["1988/12/1",-4],["1988/12/2",0],["1988/12/3",4],["1988/12/4",-2],["1988/12/5",-11],["1988/12/6",-2],["1988/12/7",-1],["1988/12/8",3],["1988/12/9",6],["1988/12/10",10],["1988/12/11",10],["1988/12/12",14],["1988/12/13",10],["1988/12/14",7],["1988/12/15",1],["1988/12/16",0],["1988/12/17",1],["1988/12/18",2],["1988/12/19",-6],["1988/12/20",3],["1988/12/21",9],["1988/12/22",3],["1988/12/23",4],["1988/12/24",12],["1988/12/25",8],["1988/12/26",0],["1988/12/27",-8],["1988/12/28",-10],["1988/12/29",-13],["1988/12/30",-10],["1988/12/31",-13],["1989/1/1",-3],["1989/1/2",5],["1989/1/3",-5],["1989/1/4",-9],["1989/1/5",1],["1989/1/6",5],["1989/1/7",-1],["1989/1/8",4],["1989/1/9",9],["1989/1/10",-1],["1989/1/11",6],["1989/1/12",1],["1989/1/13",11],["1989/1/14",11],["1989/1/15",7],["1989/1/16",1],["1989/1/17",0],["1989/1/18",-5],["1989/1/19",-9],["1989/1/20",-8],["1989/1/21",-12],["1989/1/22",-6],["1989/1/23",-6],["1989/1/24",-9],["1989/1/25",-13],["1989/1/26",-23],["1989/1/27",-25],["1989/1/28",-21],["1989/1/29",-21],["1989/1/30",-22],["1989/1/31",-31],["1989/2/1",-23],["1989/2/2",-17],["1989/2/3",-19],["1989/2/4",-26],["1989/2/5",-28],["1989/2/6",-24],["1989/2/7",-26],["1989/2/8",-33],["1989/2/9",-30],["1989/2/10",-39],["1989/2/11",-37],["1989/2/12",-36],["1989/2/13",-32],["1989/2/14",-39],["1989/2/15",-30],["1989/2/16",-28],["1989/2/17",-19],["1989/2/18",-19],["1989/2/19",-20],["1989/2/20",-17],["1989/2/21",-26],["1989/2/22",-26],["1989/2/23",-32],["1989/2/24",-35],["1989/2/25",-44],["1989/2/26",-44],["1989/2/27",-48],["1989/2/28",-46],["1989/3/1",-53],["1989/3/2",-57],["1989/3/3",-50],["1989/3/4",-44],["1989/3/5",-43],["1989/3/6",-48],["1989/3/7",-58],["1989/3/8",-67],["1989/3/9",-58],["1989/3/10",-53],["1989/3/11",-52],["1989/3/12",-59],["1989/3/13",-67],["1989/3/14",-59],["1989/3/15",-51],["1989/3/16",-49],["1989/3/17",-40],["1989/3/18",-39],["1989/3/19",-48],["1989/3/20",-48],["1989/3/21",-52],["1989/3/22",-47],["1989/3/23",-53],["1989/3/24",-46],["1989/3/25",-53],["1989/3/26",-57],["1989/3/27",-67],["1989/3/28",-65],["1989/3/29",-68],["1989/3/30",-62],["1989/3/31",-53],["1989/4/1",-46],["1989/4/2",-42],["1989/4/3",-40],["1989/4/4",-45],["1989/4/5",-42],["1989/4/6",-47],["1989/4/7",-46],["1989/4/8",-55],["1989/4/9",-60],["1989/4/10",-55],["1989/4/11",-45],["1989/4/12",-50],["1989/4/13",-40],["1989/4/14",-48],["1989/4/15",-53],["1989/4/16",-51],["1989/4/17",-46],["1989/4/18",-43],["1989/4/19",-38],["1989/4/20",-44]]
+const timeData2 = [["1988/10/4",69],["1988/10/5",65],["1988/10/6",64],["1988/10/7",66],["1988/10/8",65],["1988/10/9",63],["1988/10/10",68],["1988/10/11",60],["1988/10/12",69],["1988/10/13",63],["1988/10/14",65],["1988/10/15",63],["1988/10/16",73],["1988/10/17",79],["1988/10/18",62],["1988/10/19",77],["1988/10/20",60],["1988/10/21",75],["1988/10/22",79],["1988/10/23",75],["1988/10/24",63],["1988/10/25",65],["1988/10/26",77],["1988/10/27",74],["1988/10/28",70],["1988/10/29",60],["1988/10/30",71],["1988/10/31",73],["1988/11/1",77],["1988/11/2",78],["1988/11/3",61],["1988/11/4",69],["1988/11/5",79],["1988/11/6",76],["1988/11/7",60],["1988/11/8",77],["1988/11/9",72],["1988/11/10",68],["1988/11/11",58],["1988/11/12",54],["1988/11/13",50],["1988/11/14",41],["1988/11/15",36],["1988/11/16",43],["1988/11/17",45],["1988/11/18",54],["1988/11/19",49],["1988/11/20",45],["1988/11/21",42],["1988/11/22",41],["1988/11/23",33],["1988/11/24",23],["1988/11/25",19],["1988/11/26",18],["1988/11/27",13],["1988/11/28",4],["1988/11/29",4],["1988/11/30",-4],["1988/12/1",-4],["1988/12/2",0],["1988/12/3",4],["1988/12/4",-2],["1988/12/5",-11],["1988/12/6",-2],["1988/12/7",-1],["1988/12/8",3],["1988/12/9",6],["1988/12/10",10],["1988/12/11",10],["1988/12/12",14],["1988/12/13",10],["1988/12/14",7],["1988/12/15",1],["1988/12/16",0],["1988/12/17",1],["1988/12/18",2],["1988/12/19",-6],["1988/12/20",3],["1988/12/21",9],["1988/12/22",3],["1988/12/23",4],["1988/12/24",12],["1988/12/25",6],["1988/12/26",0],["1988/12/27",-8],["1988/12/28",-10],["1988/12/29",-13],["1988/12/30",-10],["1988/12/31",-13],["1989/1/1",-3],["1989/1/2",5],["1989/1/3",-5],["1989/1/4",-9],["1989/1/5",1],["1989/1/6",5],["1989/1/7",-1],["1989/1/8",4],["1989/1/9",9],["1989/1/10",-1],["1989/1/11",6],["1989/1/12",1],["1989/1/13",11],["1989/1/14",11],["1989/1/15",7],["1989/1/16",1],["1989/1/17",0],["1989/1/18",-5],["1989/1/19",-9],["1989/1/20",-8],["1989/1/21",-12],["1989/1/22",-6],["1989/1/23",-6],["1989/1/24",-9],["1989/1/25",-13],["1989/1/26",-23],["1989/1/27",-25],["1989/1/28",-21],["1989/1/29",-21],["1989/1/30",-22],["1989/1/31",-31],["1989/2/1",-23],["1989/2/2",-17],["1989/2/3",-19],["1989/2/4",-26],["1989/2/5",-28],["1989/2/6",-24],["1989/2/7",-26],["1989/2/8",-33],["1989/2/9",-30],["1989/2/10",-39],["1989/2/11",-37],["1989/2/12",-36],["1989/2/13",-32],["1989/2/14",-39],["1989/2/15",-30],["1989/2/16",-28],["1989/2/17",-19],["1989/2/18",-19],["1989/2/19",-20],["1989/2/20",-17],["1989/2/21",-26],["1989/2/22",-26],["1989/2/23",-32],["1989/2/24",-35],["1989/2/25",-44],["1989/2/26",-44],["1989/2/27",-48],["1989/2/28",-46],["1989/3/1",-53],["1989/3/2",-57],["1989/3/3",-50],["1989/3/4",-44],["1989/3/5",-43],["1989/3/6",-48],["1989/3/7",-58],["1989/3/8",-67],["1989/3/9",-58],["1989/3/10",-53],["1989/3/11",-52],["1989/3/12",-59],["1989/3/13",-67],["1989/3/14",-59],["1989/3/15",-51],["1989/3/16",-49],["1989/3/17",-40],["1989/3/18",-39],["1989/3/19",-48],["1989/3/20",-48],["1989/3/21",-52],["1989/3/22",-47],["1989/3/23",-53],["1989/3/24",-46],["1989/3/25",-53],["1989/3/26",-57],["1989/3/27",-67],["1989/3/28",-65],["1989/3/29",-68],["1989/3/30",-62],["1989/3/31",-53],["1989/4/1",-46],["1989/4/2",-42],["1989/4/3",-40],["1989/4/4",-45],["1989/4/5",-42],["1989/4/6",-47],["1989/4/7",-46],["1989/4/8",-55],["1989/4/9",-60],["1989/4/10",-55],["1989/4/11",-45],["1989/4/12",-50],["1989/4/13",-40],["1989/4/14",-48],["1989/4/15",-53],["1989/4/16",-51],["1989/4/17",-46],["1989/4/18",-43],["1989/4/19",-38],["1989/4/20",-44]]
+const timeData3 = [["1988/10/4",49],["1988/10/5",45],["1988/10/6",44],["1988/10/7",46],["1988/10/8",45],["1988/10/9",43],["1988/10/10",48],["1988/10/11",40],["1988/10/12",49],["1988/10/13",43],["1988/10/14",45],["1988/10/15",43],["1988/10/16",73],["1988/10/17",79],["1988/10/18",42],["1988/10/19",77],["1988/10/20",40],["1988/10/21",75],["1988/10/22",79],["1988/10/23",75],["1988/10/24",63],["1988/10/25",65],["1988/10/26",77],["1988/10/27",74],["1988/10/28",70],["1988/10/29",60],["1988/10/30",71],["1988/10/31",73],["1988/11/1",77],["1988/11/2",78],["1988/11/3",61],["1988/11/4",69],["1988/11/5",79],["1988/11/6",76],["1988/11/7",60],["1988/11/8",77],["1988/11/9",72],["1988/11/10",68],["1988/11/11",58],["1988/11/12",54],["1988/11/13",50],["1988/11/14",41],["1988/11/15",36],["1988/11/16",43],["1988/11/17",45],["1988/11/18",54],["1988/11/19",49],["1988/11/20",45],["1988/11/21",42],["1988/11/22",41],["1988/11/23",33],["1988/11/24",23],["1988/11/25",19],["1988/11/26",18],["1988/11/27",13],["1988/11/28",4],["1988/11/29",4],["1988/11/30",-4],["1988/12/1",-4],["1988/12/2",0],["1988/12/3",4],["1988/12/4",-2],["1988/12/5",-11],["1988/12/6",-2],["1988/12/7",-1],["1988/12/8",3],["1988/12/9",6],["1988/12/10",10],["1988/12/11",10],["1988/12/12",14],["1988/12/13",10],["1988/12/14",7],["1988/12/15",1],["1988/12/16",0],["1988/12/17",1],["1988/12/18",2],["1988/12/19",-6],["1988/12/20",3],["1988/12/21",9],["1988/12/22",3],["1988/12/23",4],["1988/12/24",12],["1988/12/25",6],["1988/12/26",0],["1988/12/27",-8],["1988/12/28",-10],["1988/12/29",-13],["1988/12/30",-10],["1988/12/31",-13],["1989/1/1",-3],["1989/1/2",5],["1989/1/3",-5],["1989/1/4",-9],["1989/1/5",1],["1989/1/6",5],["1989/1/7",-1],["1989/1/8",4],["1989/1/9",9],["1989/1/10",-1],["1989/1/11",6],["1989/1/12",1],["1989/1/13",11],["1989/1/14",11],["1989/1/15",7],["1989/1/16",1],["1989/1/17",0],["1989/1/18",-5],["1989/1/19",-9],["1989/1/20",-8],["1989/1/21",-12],["1989/1/22",-6],["1989/1/23",-6],["1989/1/24",-9],["1989/1/25",-13],["1989/1/26",-23],["1989/1/27",-25],["1989/1/28",-21],["1989/1/29",-21],["1989/1/30",-22],["1989/1/31",-31],["1989/2/1",-23],["1989/2/2",-17],["1989/2/3",-19],["1989/2/4",-26],["1989/2/5",-28],["1989/2/6",-24],["1989/2/7",-26],["1989/2/8",-33],["1989/2/9",-30],["1989/2/10",-39],["1989/2/11",-37],["1989/2/12",-36],["1989/2/13",-32],["1989/2/14",-39],["1989/2/15",-30],["1989/2/16",-28],["1989/2/17",-19],["1989/2/18",-19],["1989/2/19",-20],["1989/2/20",-17],["1989/2/21",-26],["1989/2/22",-26],["1989/2/23",-32],["1989/2/24",-35],["1989/2/25",-44],["1989/2/26",-44],["1989/2/27",-48],["1989/2/28",-46],["1989/3/1",-53],["1989/3/2",-57],["1989/3/3",-50],["1989/3/4",-44],["1989/3/5",-43],["1989/3/6",-48],["1989/3/7",-58],["1989/3/8",-67],["1989/3/9",-58],["1989/3/10",-53],["1989/3/11",-52],["1989/3/12",-59],["1989/3/13",-67],["1989/3/14",-59],["1989/3/15",-51],["1989/3/16",-49],["1989/3/17",-40],["1989/3/18",-39],["1989/3/19",-48],["1989/3/20",-48],["1989/3/21",-52],["1989/3/22",-47],["1989/3/23",-53],["1989/3/24",-46],["1989/3/25",-53],["1989/3/26",-57],["1989/3/27",-67],["1989/3/28",-65],["1989/3/29",-68],["1989/3/30",-62],["1989/3/31",-53],["1989/4/1",-46],["1989/4/2",-42],["1989/4/3",-40],["1989/4/4",-45],["1989/4/5",-42],["1989/4/6",-47],["1989/4/7",-46],["1989/4/8",-55],["1989/4/9",-60],["1989/4/10",-55],["1989/4/11",-45],["1989/4/12",-50],["1989/4/13",-40],["1989/4/14",-48],["1989/4/15",-53],["1989/4/16",-51],["1989/4/17",-46],["1989/4/18",-43],["1989/4/19",-38],["1989/4/20",-44]]
+const line = {
+ xAxis: {
+ type: 'time'
+ },
+ yAxis: {
+ type: 'value'
+ },
+ grid: {
+ left: 55,
+ bottom: 45,
+ top: 30
+ },
+ legend: {
+ show: true,
+ right: 30,
+ top: 'top',
+ orient: 'horizontal',
+ icon: 'circle',
+ itemGap: 20,
+ itemWidth: 10,
+ textStyle: {
+ padding: [0, 0, 0, 5],
+ fontSize: 14
+ }
+ },
+ axisLabel: {
+ fontSize: 14
+ },
+ series: [
+ {
+ name: 'a',
+ type: 'line',
+ smooth: true,
+ symbol: 'none',
+ data: timeData
+ },
+ {
+ name: 'b',
+ type: 'line',
+ smooth: true,
+ symbol: 'none',
+ data: timeData2
+ }
+ ]
+}
+const lineStack = {
+ xAxis: {
+ type: 'time'
+ },
+ yAxis: {
+ type: 'value'
+ },
+ grid: {
+ left: 55,
+ bottom: 45,
+ top: 10,
+ right: 180
+ },
+ legend: {
+ show: true,
+ right: 30,
+ top: 'middle',
+ orient: 'vertical',
+ icon: 'circle',
+ itemGap: 20,
+ itemWidth: 10,
+ formatter: function (name) {
+ const width = calculateTextWidth(name)
+ if (width <= 110) {
+ return name
+ } else {
+ const index = name.length / (width / 110.0) - 3
+ return name.substring(0, index) + '...'
+ }
+ },
+ textStyle: {
+ padding: [0, 0, 0, 5],
+ fontSize: 14
+ }
+ },
+ axisLabel: {
+ fontSize: 14
+ },
+ series: [
+ {
+ name: 'a',
+ type: 'line',
+ stack: 'value',
+ areaStyle: {},
+ symbol: 'none',
+ data: timeData
+ },
+ {
+ name: 'bbbbbbbbbbbbbbb aerapo',
+ type: 'line',
+ stack: 'value',
+ areaStyle: {},
+ symbol: 'none',
+ data: timeData2
+ },
+ {
+ name: 'c',
+ type: 'line',
+ stack: 'value',
+ areaStyle: {},
+ symbol: 'none',
+ data: timeData3
+ }
+ ]
+}
+const typeOptionMappings = [
+ { value: 11, option: line }, // 常规折线图
+ { value: 13, option: lineStack }, // 常规折线图
+ { value: 91, option: line }, // tab容器
+ { value: 92, option: line }, // tab页
+ { value: 93, option: line } // 大标题
+]
+const typeCategory = {
+ TABLE: 'table',
+ ECHARTS: 'echarts',
+ TITLE: 'title',
+ SINGLE: 'singleValue'
+}
+export function getTypeCategory (type) {
+ if (isEcharts(type)) {
+ return typeCategory.ECHARTS
+ } else if (isTable(type)) {
+ return typeCategory.TABLE
+ } else if (isSingleValue(type)) {
+ return typeCategory.SINGLE
+ } else if (isTitle(type)) {
+ return typeCategory.TITLE
+ }
+}
+/* 饼图柱状图等 */
+export function isEcharts (type) {
+ return type <= 50
+}
+/* 带统计的折线图 */
+export function isEchartsWithStatistics (type) {
+ return type === 12
+}
+/* 单值 */
+export function isSingleValue (type) {
+ return type >= 51 && type <= 60
+}
+/* 带折线图的单值 */
+export function isSingleValueWithEcharts (type) {
+ return type === 52
+}
+/* table */
+export function isTable (type) {
+ return type >= 61 && type <= 70
+}
+/* title、tab等 */
+export function isTitle (type) {
+ return type >= 91
+}
+export function getOption (type) {
+ const mapping = typeOptionMappings.find(m => m.value === type)
+ return mapping && mapping.option ? mapping.option : null
+}
+export const layoutConstant = {
+ HEADER: 'header',
+ FOOTER: 'footer'
+}
+export function getLayout (type) {
+ const layout = []
+ if (!isSingleValue(type) && !isTitle(type)) {
+ layout.push(layoutConstant.HEADER)
+ }
+ if (type === 12 || type === 31) {
+ layout.push(layoutConstant.FOOTER)
+ }
+ return layout
+}
+export const heightUnit = 150
diff --git a/src/components/charts/panel.scss b/src/components/charts/panel.scss
new file mode 100644
index 00000000..a3e64483
--- /dev/null
+++ b/src/components/charts/panel.scss
@@ -0,0 +1,207 @@
+.cn-panel {
+ display: grid;
+ grid-template-columns: repeat(12, 1fr);
+ grid-template-rows: repeat(auto-fill, 50px);
+ grid-gap: 10px;
+ padding: 20px;
+ height: 100%;
+ width: 100%;
+
+ .cn-chart {
+ background-color: #FFFFFF;
+ border: 1px solid #E7EAED;
+ box-shadow: 0 2px 4px 0 rgba(51,51,51,0.02);
+ border-radius: 2px;
+ height: 100%;
+ width: 100%;
+ }
+ .cn-chart__echarts, .cn-chart__table {
+ display: flex;
+ flex-direction: column;
+ .cn-chart__header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px 20px 10px 18px;
+ height: 50px;
+ font-size: 16px;
+ color: #333333;
+ font-weight: bold;
+
+ .header__operations {
+ .cn-icon-more-light {
+ color: #999;
+ }
+ }
+ }
+ .cn-chart__body {
+ flex: auto;
+
+ .chart-drawing {
+ height: 100%;
+ width: 100%;
+ }
+ }
+ }
+ .cn-chart__single-value.cn-chart__single-value--icon-left {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .single-value__icon {
+ position: relative;
+ margin-right: 7.5%;
+ width: 72px;
+ height: 72px;
+ background-color: $--chart-single-value-icon-background-color;
+ border-radius: 50%;
+
+ i {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%,-50%);
+ font-size: 28px;
+ color: $--color-primary;
+ }
+ }
+
+ .single-value__content {
+ display: flex;
+ flex-direction: column;
+
+ .content__data {
+ padding-bottom: 7%;
+ font-size: 24px;
+ color: #333333;
+ font-weight: bold;
+ }
+ .content__title {
+ font-size: 16px;
+ color: #666666;
+ }
+ }
+ }
+ .cn-chart__single-value.cn-chart__single-value--icon-right {
+ display: flex;
+ flex-direction: row-reverse;
+ justify-content: space-around;
+ align-items: center;
+
+ .single-value__icon {
+ background-color: $--chart-single-value-icon-background-color;
+ border-radius: 50%;
+ position: relative;
+ margin-right: 7.5%;
+ margin-bottom: 6%;
+ width: 56px;
+ height: 56px;
+
+ i {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%,-50%);
+ font-size: 24px;
+ color: $--color-primary;
+ }
+ }
+
+ .single-value__content {
+ display: flex;
+ height: 100%;
+ flex-direction: column;
+
+ .content__title {
+ display: flex;
+ align-items: center;
+ height: 50%;
+ font-size: 16px;
+ color: #666666;
+ }
+ .content__data {
+ display: flex;
+ padding-top: 5%;
+ height: 50%;
+ flex: auto;
+ font-size: 24px;
+ color: #333333;
+ font-weight: bold;
+ }
+ }
+ }
+ .cn-chart__table {
+ .cn-chart__header {
+ border-bottom: 1px solid $--content-right-background-color;
+ .header__operations {
+ display: grid;
+ justify-content: end;
+ align-items: center;
+ grid-template-rows: 30px;
+ grid-template-columns: repeat(5, auto);
+ grid-column-gap: 10px;
+
+ .header__operation.header__operation--table {
+ display: flex;
+ align-items: center;
+ height: 22px;
+ color: $--color-primary;
+ border: 1px solid $--color-primary;
+ border-radius: $--border-radius-primary;
+
+ .option__button {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ padding: 0 5px;
+ cursor: pointer;
+ background-color: white;
+ transition: all linear .2s;
+ }
+ .option__button:hover {
+ background-color: #EFF2F5;
+ }
+ .option__button.icon-group-item:first-of-type:not(:last-of-type) {
+ padding: 0 5px 0 0;
+ }
+ .option__button.icon-group-item:last-of-type:not(:first-of-type) {
+ padding: 0 0 0 5px;
+ }
+ .icon-group-divide {
+ height: 14px;
+ width: 1px;
+ background-color: $--color-primary;
+ }
+ i {
+ font-size: 12px;
+ }
+ }
+ }
+ }
+ .cn-chart__body {
+ flex: auto;
+ overflow-y: auto;
+
+ .el-table {
+ padding: 0 10px;
+
+ &:before {
+ height: 0;
+ }
+ thead {
+ color: #333;
+ }
+ th.is-leaf, td {
+ border-bottom: none;
+ }
+ th {
+ padding-bottom: 5px;
+ }
+ td {
+ padding: 7px 0;
+ color: #333;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/common/pagination.vue b/src/components/common/pagination.vue
index c58abffc..6eb7968a 100644
--- a/src/components/common/pagination.vue
+++ b/src/components/common/pagination.vue
@@ -26,12 +26,9 @@
min-width: 20px;
height: 20px;
line-height: 20px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
text-align: center;
border: 1px solid rgba(154,154,154,0.20);
border-radius: 2px;
- border-radius: 2px;
}
:deep(.el-pagination .el-pager li.btn-quicknext), :deep( .el-pager li.btn-quickprev) {
line-height: 20px;
@@ -40,20 +37,20 @@
line-height: 20px;
}
:deep( .el-pagination .el-pager .more) {
- background-color: $content-right-background-color;
+ background-color: $--content-right-background-color;
}
.btn-next, .btn-prev {
- background-color: $content-right-background-color !important;
+ background-color: $--content-right-background-color !important;
}
.pagination input {
- background-color: $content-right-background-color !important;
+ background-color: $--content-right-background-color !important;
}
:deep(.el-pager li.number){
font-family: NotoSansSC-Regular;
color: #666666;
letter-spacing: 0;
font-weight:normal;
- background-color: $content-right-background-color;
+ background-color: $--content-right-background-color;
}
:deep( .el-pager li.number.active){
font-family: NotoSansSC-Regular;
@@ -62,7 +59,7 @@
}
:deep( .el-pagination .el-pager li.active) {
- background-color: $global-text-color-active;
+ background-color: $--color-primary;
border-radius: 2px;
border-radius: 2px;
}
diff --git a/src/components/layout/Container.vue b/src/components/layout/Container.vue
index 1a93e684..72f3e026 100644
--- a/src/components/layout/Container.vue
+++ b/src/components/layout/Container.vue
@@ -1,6 +1,9 @@
+
+
+
@@ -22,10 +25,22 @@ export default {
diff --git a/src/components/layout/Home.vue b/src/components/layout/Home.vue
index f7bdadfd..9a00e739 100644
--- a/src/components/layout/Home.vue
+++ b/src/components/layout/Home.vue
@@ -1,10 +1,10 @@
diff --git a/src/components/layout/LeftMenu.vue b/src/components/layout/LeftMenu.vue
index a7e52cef..0e108081 100644
--- a/src/components/layout/LeftMenu.vue
+++ b/src/components/layout/LeftMenu.vue
@@ -205,12 +205,10 @@ export default {
padding: 13px 0 0 18px !important;
height: 50px;
border-right: 1px solid #202F3F;
- box-sizing: border-box;
background-color: #182534 !important;
.logo {
display: flex;
- box-sizing: border-box;
img {
box-shadow: 0 0 2px 0 rgba(0,0,0,0.50);
diff --git a/src/components/table/settings/RoleTable.vue b/src/components/table/settings/RoleTable.vue
index 30668e50..0b45e313 100644
--- a/src/components/table/settings/RoleTable.vue
+++ b/src/components/table/settings/RoleTable.vue
@@ -59,7 +59,7 @@
-
+
diff --git a/src/components/table/settings/UserTable.vue b/src/components/table/settings/UserTable.vue
index 7b4682cf..51117886 100644
--- a/src/components/table/settings/UserTable.vue
+++ b/src/components/table/settings/UserTable.vue
@@ -63,10 +63,10 @@
-
+
-
+
diff --git a/src/main.js b/src/main.js
index e2afc500..bc95483b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -8,7 +8,7 @@ import commonMixin from '@/mixins/common'
import { cancelWithChange, clickOutside } from '@/utils/tools'
import i18n from '@/i18n'
import '@/assets/css/main.scss' // 样式入口
-
+// import VueGridLayout from 'vue-grid-layout'
import ElementPlus from 'element-plus'
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc' // dependent on utc plugin
@@ -27,6 +27,7 @@ app.use(router)
app.use(store)
app.use(ElementPlus)
app.use(i18n)
+// app.use(VueGridLayout)
app.use(_)
app.directive('has', hasPermission) // 注册指令
diff --git a/src/utils/api.js b/src/utils/api.js
index 56340466..c081b784 100644
--- a/src/utils/api.js
+++ b/src/utils/api.js
@@ -9,15 +9,22 @@ export const api = {
panel: '/visual/panel',
chart: '/visual/chart'
}
-
+/* panel */
export async function getPanelList (params) {
return await getData(api.panel, params, true)
}
-export async function getPanel (url, params) {
- return await getData(api.panel, params)
+export async function getPanel (id) {
+ return await getData(`${api.chart}/${id}`)
+}
+/* chart */
+export async function getChartList (params) {
+ return await getData(api.chart, params, true)
+}
+export async function getChart (id) {
+ return await getData(`${api.chart}/${id}`)
}
-export async function getData (url, params, isQueryList) {
+export async function getData (url, params = {}, isQueryList) {
const request = new Promise((resolve, reject) => {
get(url, params).then(response => {
if (response.code === 200) {
diff --git a/src/utils/tools.js b/src/utils/tools.js
index 5aaad454..94c6e5b5 100644
--- a/src/utils/tools.js
+++ b/src/utils/tools.js
@@ -369,3 +369,10 @@ export function isEqual (o1, o2) {
}
return isEqualForInner(o1, o2)
}
+
+/* 计算文本的实际width,而不是length */
+export function calculateTextWidth (text, fontSize = 14) {
+ const html = document.querySelector(`.temp-dom--${fontSize}`)
+ html.innerText = text
+ return html.offsetWidth
+}
diff --git a/src/views/charts/Chart.vue b/src/views/charts/Chart.vue
new file mode 100644
index 00000000..ae8f0d67
--- /dev/null
+++ b/src/views/charts/Chart.vue
@@ -0,0 +1,220 @@
+
+
+ {{chartInfo.i18n ? $t(chartInfo.i18n) : chartInfo.name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{chartInfo.i18n ? $t(chartInfo.i18n) : chartInfo.name}}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/charts/Panel.vue b/src/views/charts/Panel.vue
index f3dd5a58..978de654 100644
--- a/src/views/charts/Panel.vue
+++ b/src/views/charts/Panel.vue
@@ -1,38 +1,73 @@
- {{panel}}
+
+
+
+
-
-