V@_ z&apFea%uh*3y_(Ug|6e<(6sAubRO+FM-Z2JBU0zAa06k}XB%NXP$gHqB>s7qoDcT) z3tde(w*4WrRrj2X*QH;C(dF}@A7{Yf zFPEUBzULHla^3?-n)++EsK#&Zg(@}!$$1ZA+r};U{=5Bhsu1Pve)~^+`!r5|*OSOw zosf-;g`U$`f}<6Un|_M)1*_ZuWI&Wd^=%5gxW{v7lm}5@hs|vCdntz$0I*NMXdVjr z%bMj+{&h=k#IOV{tZ(%V7-2m?`X#Tpdw_;dZvauKkg;%!doZ^73%*zJEL?m&5>t{; z_uhGMwDkSNjJfJ_Xp*O*z3zP+*{}@yn-75~G+4FrH3)+AlS?f5#Zx;tF1iwYXe~Bg z?a#MT0I&ssCww(XVkdT4?i{(axM&HKXhF5be+oi%g24@dI$JHi{E+Wmjs5_@>`}#z zfwSE+T*}J-9*US0tTDd{dzbVXPp6CE58L?xfF0tsnG1drECAL3D3IG|-uSgjiic;* zA01zI?d2FXb~LQ3{GSkt&A1xr^It*vmYw)+N8d=}VD<0TfxY4EP4`EJC5`UKum3~d z#UH%0qe{sqDB1&L7g<(NiU)&rV0U>200sm(H1qt~m^@>O``gRD!M-T{lGhMB=1TnM zqt8)m^?oEvPQAT(CrzJ%Sr^Pkd;P~a^5v~Q#dMELYO1QS;o~o5Rmb(DFblM!xV5Up z_(o7YfWFXDNC?cbEb+rEC4E}|;t7cfxPHk^?*DH5dO2EctW)Ys$ Ud3y^lfi|+ql|L>1+q*n;I6oob&(SRL$ z=S50jc7@rvBPammEL%HUPzc+2DaDc}vLuRfX~NWrm~*k`D&f}ZGPEE15JJ~+sN%B_ zmzfV;`o->N|6a8gEvH)KikHNnp&yF{S9t<$JCA;aR+|ORwrVJ1QV}=iD#T^wyPuVB z-G%SA4?ONJRtal-1_EBBYjwqlU1cx&3BY5IDGb$lY$U_w^y1Z7c3hY)ePGnv87XP0 zm^=SG3?DJ@)DRo_Z{Nhu7zQR=s?*10Wnk{b^ALAB)m#5^+c#~+{@sD4?UR!FMyj3w z-DNcw%oO7n2LJ$`SwXy|h8I(^_j7ipj;#o$3{P>d#WyuJ;n>ke)Kpf>5fe0T&ctyT zF)AI}SgreD>+z$ P?n) z1dyGF&X+eM6%}--x(a1)tn{kZvgHp(q!-w8LWwsyZUPbDnJTkU(%Ox502G$qMF{as zayihonO!*F%T+2IM2m`8XL$ux2ln>in}7L2%$Vz$N`{*(Ra)%gkSwxWZ$ilYs^a{O zQtXfnfSjdeBLo${08y6S?T$$ui1%?*h!o`m<>~6`#QOJEp8-K68=pl0u}C0ZM1e}1 z+2~0=B!MIYfXOnLEbN@w^%CStVv(9xUy`r@n7;b#edNu)AR^s JE7TC|bK1RCr6Oa4CGtCU#)lF!>QeQe=zqlyBLH>GLAf?K9m%ks3y! zAbFK9<@e;J6>)+r05Dm4lckOT+%h?2C%9mmB!7!otZ}70k0bz&b|}EEjA7YMInpOq zv++lA GO_`Xb(>|BLXE!ZuH@9{g_kM8u2>6XlPJ)ts}AfzLQ)D^PByuJrj77>fF{st zyq5d2UXAs2e3L=}*l#r(eP6fY!vfg=U~&wFrGEn zccb><_PXC7Z3o(EnA!8QV5b#k;-vqtV+Nw ^P>z+A8kdzT0F1y1dF<5YQrBzyQz}t{zE g6eu<^1{VPz=6m;JC}zPeDrQO}3JPfU~#<1%T6^f}H^Iea%;p9?eT};j)ZQ z4A%~>_yKm6%x86)P~UkR)TNQ04kSp@n@X=FARh)P#&7XqY5|vJ*fBdzek@@q_3|d0 z!SvI*7_g~cXo+@Gs+?pixryE27BB@309JFhsq8rl`ip?IkXUf$a3|)ZIglB`S%O4W zyt3^(p~j}eo@?epO@!j^suJT1!PdhC0G>}l@b?HyHHIx1O;2@VN`S}ArPd>buggWS z>$n>17O~n^F7Yx_sx7sejf i9x$*$V>qd? zL*c$QuKc(PC%d@0QGyAiR^h~)%2)G`N?;ac;i|d8RC*6Ug1%5%RO@~Wi5dap6FnD3 zW+eznj*)&KQ%+rVZA#R%DBSn^>^rG~D>T*kRf$q^wXGzd+n9?h0NkH~BFo=Fv0RR0 zdGq$ZHr6oACHp8^w?0i>1eK>$sA~3pTPSb6#pKDk3rI{>_jB$5V1jwa4@x!07oSE+ z5v!!oso@4gtP;?vh0}Kl6SO-4b~L-g#eVl(NXdRWBJhU$w3Xm_Yq630%4 }(sz3{il?xdF z+@FHN(uo9ke+UF(&EWkx1wK>7>#nJI{+h19B#4&^DF9gYSxd_%DU`yxArOc+Mn8^E z9IdV!>eeg{X}ny>0pRHg*6Kk73jqS&wUX_=L0o_WYi;IyqdUbzh$$=pU^ZmmxjK>B zm2ZL|WZ$z8`zlQ0=}N1)K=f2EFJ;08fNq7ei^^W4l-|Y5fU`;t!Nb;K<5S_ZDeM3^ zJvjUYA>_Gm8XDzwog{?bQB_=E3AdgR0RS`7@Ds}=)P)xaLHLj3hTF^j>Z9aiC$%rH zefh^+b23XcF=7C4EBJ%QR0jRD=Rhde2xF zQeKd$JO)Ujn!z3=I^rDkvo@ zlrH>*R{#fZMWYq~-G*i@U2RaRRX?Lt_$feo?up^;3BK|wDDY2}z2hGhuiwV?z6HK& za)=7%t&nedl;}-sZzrHEQSTMut5-%%1ZyZ2UKhKtS%$=rvqpUn;LQVUZ$SZ9J|&9l z0Q!TFd&x%y6mStxw%hrRD<-C_=Ea44uPF(GVS^F?z5O!g_Oev9l3osA0Rg=jAbBD7 z+h%}lBntY4qW;kOiVyA!*;Z|c?Qn}9^Z@AZB(~`!*vU)+MIIEG2!W0RQDgy>Wi^SH z=+u({>Hun^z(GP4`zTTDPE}{@*uHWOyF%xzp|cJE{#qt|=__#wF>%QbkOWXct8@`} zb|wJ|2T>?G1eLQ{9iwXsWdKIBA?KU|K(skO8uS?gKs2;M1a%k!Km?s14OI^TAR1aB zf;tQVAcD@1hN_1E5Dl#mK^=ww5JBfhL)HHe8@|8!k?8Ei00000NkvXXu0mjfm)!eN diff --git a/web/src/layout/components/Navbar.vue b/web/src/layout/components/Navbar.vue index 0bb8386..1a955b8 100644 --- a/web/src/layout/components/Navbar.vue +++ b/web/src/layout/components/Navbar.vue @@ -4,9 +4,6 @@ - - - + + + +@@ -94,4 +106,36 @@ export default { } + .floating-component { + position: fixed; /* 固定位置 */ + bottom: 5%; /* 下边距 */ + right: 1%; /* 右边距 */ + padding: 0; + border-radius: 50%; /* 圆角 */ + z-index: 10000; /* 设置 z-index 确保悬浮在顶层 */ + } + .but { + font-size: larger; + color: rgb(0,119,216); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2); /* 阴影 */ + } + .butto { + border: 0; + padding: 10px; + margin: 0; + } + + .too.el-tooltip__popper.is-light { + border: none !important; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2); + padding: 5px + } + /* 修改箭头边框 这里方位是left,所以 x-placement^="left" 并且是设置 border-right-color 的颜色*/ + .too.el-tooltip__popper.is-light[x-placement^="left"] .popper__arrow { + border-left-color: #eaeaea !important; + } + .too.el-tooltip__popper[x-placement^="left"] .popper__arrow { + border-left-color: #eaeaea !important; + } + diff --git a/web/src/utils/request.js b/web/src/utils/request.js index f9c774a..47b741a 100644 --- a/web/src/utils/request.js +++ b/web/src/utils/request.js @@ -18,7 +18,10 @@ service.interceptors.request.use( // do something before request is sent if(config.method == 'post'){ - showLoading() + console.log(config) + if(!config.noLoading){ + showLoading() + } } if (store.getters.token) { @@ -79,7 +82,12 @@ service.interceptors.response.use( return Promise.reject(new Error(res.message || 'Error')) } else { if(response.config.method == 'post'){ - success('提交成功') + console.log(response) + + if(response.data.data=='noAlert'){ + return res + } + success('请求成功') } return res } diff --git a/web/src/views/business/operationLog/operationLogList.vue b/web/src/views/business/operationLog/operationLogList.vue index 8b7c587..6209ab4 100644 --- a/web/src/views/business/operationLog/operationLogList.vue +++ b/web/src/views/business/operationLog/operationLogList.vue @@ -73,6 +73,16 @@ ++ + + + + + ++ + + {{ scope.row.operIpAddress }} + + +- - {{ scope.row.operDeptId }} - - - -- - {{ scope.row.operDeptName }} - - - -@@ -185,25 +175,6 @@ -- - {{ scope.row.memberId }} - - - -- - {{ scope.row.memberName }} - - @@ -24,8 +26,8 @@ diff --git a/web/src/views/dashboard/components/PieChart.vue b/web/src/views/dashboard/components/PieChart.vue new file mode 100644 index 0000000..c556d49 --- /dev/null +++ b/web/src/views/dashboard/components/PieChart.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/web/src/views/dashboard/components/RaddarChart.vue b/web/src/views/dashboard/components/RaddarChart.vue new file mode 100644 index 0000000..9c10333 --- /dev/null +++ b/web/src/views/dashboard/components/RaddarChart.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/web/src/views/dashboard/components/mixins/resize.js b/web/src/views/dashboard/components/mixins/resize.js new file mode 100644 index 0000000..234953b --- /dev/null +++ b/web/src/views/dashboard/components/mixins/resize.js @@ -0,0 +1,55 @@ +import { debounce } from '@/utils' + +export default { + data() { + return { + $_sidebarElm: null, + $_resizeHandler: null + } + }, + mounted() { + this.$_resizeHandler = debounce(() => { + if (this.chart) { + this.chart.resize() + } + }, 100) + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + beforeDestroy() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + // to fixed bug when cached by keep-alive + // https://github.com/PanJiaChen/vue-element-admin/issues/2116 + activated() { + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + deactivated() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_initResizeEvent() { + window.addEventListener('resize', this.$_resizeHandler) + }, + $_destroyResizeEvent() { + window.removeEventListener('resize', this.$_resizeHandler) + }, + $_sidebarResizeHandler(e) { + if (e.propertyName === 'width') { + this.$_resizeHandler() + } + }, + $_initSidebarResizeEvent() { + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) + }, + $_destroySidebarResizeEvent() { + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) + } + } +} diff --git a/web/src/views/dashboard/index.vue b/web/src/views/dashboard/index.vue index c39721e..739a193 100644 --- a/web/src/views/dashboard/index.vue +++ b/web/src/views/dashboard/index.vue @@ -1,23 +1,416 @@ - dashboard ++ diff --git a/web/src/views/login/login.vue b/web/src/views/login/login.vue index 2e7e6a7..b7ac697 100644 --- a/web/src/views/login/login.vue +++ b/web/src/views/login/login.vue @@ -38,7 +38,7 @@ z-0 ">++ + + ++ ++ + ++ +++ ++++ 用户总数 ++ 102400 ++ +++ ++++ 文章总数 ++ 81212 ++ +++ ++++ 评论总数 ++ 9280 ++ +++ ++++ 阅读总数 ++ 13600 ++ + ++ ++++ + ++++ + ++++ + ++ ++ ++ 阅读量排行 +++ ++ + + + ++ ++ 收益排行 +++++ Vue +++ + JavaScript +++ + CSS +++ + PHP +++ + Hyperf +++ + ESLint +++ + ++ ++ 待办事项 +++++ ++ {{ activity.content }} + +-小红书社区后台管理系统+{{title}}@@ -269,7 +269,8 @@ export default { loading: false, passwordType: 'password', redirect: undefined, - logoShow:false + logoShow:false, + title:'' } }, watch: { @@ -282,6 +283,7 @@ export default { }, mounted() { this.loginLogo = require('@/assets/' + process.env.VUE_APP_SYSTEM_LOGO) + this.title = process.env.VUE_APP_SYSTEM_NAME }, methods: { showPwd() {