From 22973e9313af427c0f4b33a8d7afaeef0fdbf7dc Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Fri, 18 Jul 2025 10:46:23 +0800 Subject: [PATCH] refactor: dashboard layout update --- frontend/src/assets/img/none-dashboard.png | Bin 0 -> 8765 bytes frontend/src/assets/img/none.png | Bin 1683 -> 1646 bytes frontend/src/assets/svg/dv-sort-asc.svg | 6 + frontend/src/assets/svg/dv-sort-desc.svg | 6 + frontend/src/assets/svg/icon_dashboard.svg | 6 +- frontend/src/i18n/en.json | 12 +- frontend/src/i18n/zh-CN.json | 10 ++ frontend/src/router/index.ts | 5 +- .../dashboard/common/EmptyBackground.vue | 4 +- .../dashboard/common/ResourceGroupOpt.vue | 4 +- .../views/dashboard/common/ResourceTree.vue | 134 ++++++++++++------ .../views/dashboard/preview/SQPreviewHead.vue | 16 --- .../views/dashboard/preview/SQPreviewShow.vue | 15 +- 13 files changed, 143 insertions(+), 75 deletions(-) create mode 100644 frontend/src/assets/img/none-dashboard.png create mode 100644 frontend/src/assets/svg/dv-sort-asc.svg create mode 100644 frontend/src/assets/svg/dv-sort-desc.svg diff --git a/frontend/src/assets/img/none-dashboard.png b/frontend/src/assets/img/none-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3dc6ca8676d560dbcf8205c64647ac54f4c8ff GIT binary patch literal 8765 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 XCCq=MkMy701M0W9yjYdUAOHUYTMuwh literal 0 HcmV?d00001 diff --git a/frontend/src/assets/img/none.png b/frontend/src/assets/img/none.png index 358dfdd8f32720b2de573b1c174daa4caba425c9..124f68048670c75fd9cc4ffa50263c0c895797cd 100644 GIT binary patch delta 1614 zcmai#eLT|%9LF_U@(}IT?p{p8ZDCAg6P3fFHcv5gSQKe5>4>-}mcVs5`4;lI`nrP*=-9 zOHEBpmq>6Ut?x7IL)8SYYr;U4S-uI5p-yyjCDS&1zSbRU7y!*=M|Q9sq{^+Gry;oW zzPkyUvQ57BR#Oi(k=sebcLX35`ljG^Kd6pRxLXw@(~pk2gBR$bAo+v}tlxREh;pMh zt*0=t(%Y~zB5`)4&MqPO2Mg9-8M3%l)#s$hlWL#xa$H!-T`8A!ZJWsC)i9dUGC;N! zK?CpQ+@mfc&+w z!Hx6nD1AP8F#LH|{h;{(1-&h7-H|n3(wCd17Hve#+qx2FlzUCzXnHNyfPKDXs9u*g zeQnr{$!b||{juE6h%M)ZG}4|nvBenD zUX<&N#O_OH^=_(FjHU=TISO-G#U>?&Al!sYaurz=`a{>nXkW|e(C)b7 zq|>Sp%8|51mbbC83wT-Ps~TY$QymKAj2!7CtG#vX{gSnQ(!8eog`)8HfS_yI%N*yX z3KO~WgXrf7KcNTFpO5~6LN50G0ai6V(9&?GzS8mb&P~vEDz~|MF+Y557yQ0T;8o-? z?{8H7h};4;otZJ<^iy5@4>K$p3z@nv&e(^xMQOLON8wnj;k)1=d0h8tYY~=_!n6%W zD2i7F05BQmz>C@QDnQ)+>ZI;V*(vFL490w3*8etfCgPhN!^%$$LStruN1O5lKWg@k zpE&&WUA3KEeebMG<(D}=k>!EVV9MhDs2B;I{}TiaUP9ze*E&{cwIrcx5GIK#sYB_ZFYFTlP z>mwUhaRh8HY+~WcG4FvB7IT;{h>k!p)zKv@TvFX{qE*i;K5lEnmqv^9OLW+R<*#7{ z=nmJk51H)%TKufi7@fY+@Yb`gIEiPR$F#aBUvMdO;DiA<-Mv4uoI&|L$-CYiT|v&h zu3LbxZe~;EIql0Q{1Cs>TPx)`c#$jQv8K89-tYj=#9p7>^VSj6HQ7scB|x#SAVc?# zB}`#vH7+&NowlsFZ$?A?w(z10$tHVngp{94o5z34{pxfpWTD(C(FI9{+CBMsqrVV< z5{#OHPF>z%xaBd9K|WMLN<$vtfS>ABaaOEYV(~et`A9 zR#WV}|Ii{%=a4u5jS=G?9Q`}_-vGBkhk7SOVJ5OY=m!-RX@yLFp#~l>gUen*18;8V7z)~?%BX=GE-`GGE*EQSjy;@39i?O^iY;g7$ zKITB2YM-s`D?2{nps103scdd_>783*T%eZI8ja@M{_V)p*0*I=UR4_)EX! wR)!`R4C+Qk*Oh0!Q`%eQ$6yaV$z0p;7~Pk#AuZi|{Y9t|-F@6@@L?DJ1WC#RP5=M^ literal 1683 zcmaKtYg7^j6vxr>nPqCr6qnD8EQdSU$XAG?A(#&YHF}^f%h|veB;*j&rc%y#zEJap zspX>-=OmSBDoGhBn&yiInSzhPe9g$l_F-Rk+J}4ZxxaJnx%d1({O=7PFT_r5V{HHc zuoLMH_f=N9GU7DVl{ut!)LL1zBHeK$0APo~-=P9v7VlF+6_PK)4bbq+M5=7Ihr&Ez z0KkKc9g1Kz06-mtgu}2@mBkW|2;jv%$r)hDkKb1#$60B{T3z}zJ^GwC5Hr-1(rY$) z=gGLJm*snZ#kvtPT`$8Di9^Q@=&26-CnRUvphw{Hiwh41DAp*X@PUhnCVBGos%d{y z^r~3i_Ka$cu6^OSy(i1cOrK$>-LpeYoTMsuOQ4p!w)>djLA$|w{=o-)#o+e%+!)Gw z|E&q=w7C?HqP1aJjod#APvN%a9FYfo#iF=bB1b;c8p2<~C$S6;$!A55h}6{gHnMmN zgKm%^`e5|H)KH3{betEMr8Tp>9eFTX{D={|^aabHKPtVFj+N3W;QbdZvc(Rv!dxfH zArQ>CoogCCnB);~VbBsDlR)yBj~KFhH7e=1*yZ9D(pv;~S=Z!5vK#BRWH&RmW#M1$ zIx5R=q`^G$!M^7hY-&!;tmfL2MN|JU;v$_;QF228V+O-NF6RQtAK&YOyx@3RW(@_% z&gQD8@%l#baY@g(SJTCCi(REG9InG-^h6u7we!QR?l-HD>B_UB`0r9fXF*;)Vk&JP zsl(7@ap{iTrJ=&HVn&zrC*ntyB(27n{I3Elj_aplbyvD-1O6+en%L6)9-FYc=7J$6+m+8y8|OF>fZRww(237HZS2pFi()@=B%0zw<$g4wUgGYjFXNIjGQ@ zN>yl9nX8VUGh!XgouZT`>^~B>^?ISX(TN{B5RNv_uQ1c`bgo`og+eA78nMOak9!I+ zGlrcJkT3bCk*MmGM|6-F@{Q@eluwwF-&JZuvhnn=tmU?IqoUg3BCJga8?)uwOCpOt z%~1=X*euVJWC{tsV^%p@Exq&g{@*&YioS;g7Sjk1mpaY6 z6M+wJw2x5o)@}C>hNoA`K1BWY3_>XCzGm5hWn-Cd-}0-e?vR=LweKqi?@zHK+#E}= zDWSH3XPwjsrZSHcWE^zBAt(sfQdfwTx|B!xOy^TsSC6JcuHe}t0-(xk!{K)PV;MLo zj*&vfv@;#S#%akf2!fR0X8-%7rOlfNc9CRc`06Xlud|Sp^NpLA#hgKe^2VWi%9SF5 z0D8}V%`ePuVzayrX!lV$e_S@P-zA~Guk%d3F@I9jeAtx@`>TJ#IMBWQ@4`uE(S0C@#s=WX1r&0~f`eIHMA8mGem;zTTh&sk4;JFPa{Qr?2M%c}9DS2TT^mQ_zAAO)@4p zxiJzKVc)kITQ5=9@I(=(mW?`q8aoqzSL;Pp4_kVhG0TEJ=g9x+pwRf!(^v}wRn1WT O5CHO|7renODDf|gUOR~Z diff --git a/frontend/src/assets/svg/dv-sort-asc.svg b/frontend/src/assets/svg/dv-sort-asc.svg new file mode 100644 index 00000000..253a3ce5 --- /dev/null +++ b/frontend/src/assets/svg/dv-sort-asc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/svg/dv-sort-desc.svg b/frontend/src/assets/svg/dv-sort-desc.svg new file mode 100644 index 00000000..4b666610 --- /dev/null +++ b/frontend/src/assets/svg/dv-sort-desc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/svg/icon_dashboard.svg b/frontend/src/assets/svg/icon_dashboard.svg index 1da45d61..7fd632b9 100644 --- a/frontend/src/assets/svg/icon_dashboard.svg +++ b/frontend/src/assets/svg/icon_dashboard.svg @@ -1,4 +1,6 @@ - - + + + + diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index a267e7d4..6ec465da 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -31,6 +31,16 @@ "password_reset_successful": "Password reset successful" }, "dashboard": { + "rename_dashboard": "Rename Dashboard", + "dashboard_name": "Dashboard Name", + "select_dashboard_tips": "Please select a dashboard on the left", + "no_dashboard": "No Dashboards", + "no_dashboard_info": "No content yet, click the button below to add", + "search": "Search", + "time_asc": "Sort by Time (Ascending)", + "time_desc": "Sort by Time (Descending)", + "name_asc": "Sort by Name (Ascending)", + "name_desc": "Sort by Name (Descending)", "select_dashboard": "Please Select Dashboard", "view": "View", "text": "Text", @@ -336,4 +346,4 @@ "back_community": "Restore to Community Edition", "confirm_tips": "Are you sure to restore to Community Edition?" } -} \ No newline at end of file +} diff --git a/frontend/src/i18n/zh-CN.json b/frontend/src/i18n/zh-CN.json index 66bb2feb..86fe0fbb 100644 --- a/frontend/src/i18n/zh-CN.json +++ b/frontend/src/i18n/zh-CN.json @@ -33,6 +33,16 @@ "password_reset_successful": "重置密码成功" }, "dashboard": { + "rename_dashboard": "重命名仪表板", + "dashboard_name": "仪表板名称", + "select_dashboard_tips": "请在左侧选择仪表板", + "no_dashboard": "暂无仪表板", + "no_dashboard_info": "暂无内容,点击下列按钮进行添加", + "search": "搜索", + "time_asc": "按时间升序", + "time_desc": "按时间降序", + "name_asc": "按名称升序", + "name_desc": "按名称降序", "select_dashboard": "请选择仪表板", "name": "名称", "view": "图表", diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 2df029b4..5607be38 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHashHistory } from 'vue-router' - +// @ts-expect-error eslint-disable-next-line @typescript-eslint/ban-ts-comment import Layout from '@/components/layout/index.vue' import LayoutDsl from '@/components/layout/LayoutDsl.vue' import SinglePage from '@/components/layout/SinglePage.vue' @@ -11,7 +11,6 @@ import DashboardPreview from '@//views/dashboard/preview/SQPreviewSingle.vue' import Dashboard from '@/views/dashboard/index.vue' import Model from '@/views/system/model/Model.vue' import assistant from '@/views/embedded/assistant.vue' -// import User from "@/views/system/user/index.vue"; import User from '@/views/system/user/User.vue' import Workspace from '@/views/system/workspace/index.vue' import { watchRouter } from './watch' @@ -63,7 +62,7 @@ const router = createRouter({ }, { path: '/dashboard', - component: Layout, + component: LayoutDsl, redirect: '/dashboard/index', children: [ { diff --git a/frontend/src/views/dashboard/common/EmptyBackground.vue b/frontend/src/views/dashboard/common/EmptyBackground.vue index f87aa97d..e6f894fd 100644 --- a/frontend/src/views/dashboard/common/EmptyBackground.vue +++ b/frontend/src/views/dashboard/common/EmptyBackground.vue @@ -3,6 +3,7 @@ import { type PropType } from 'vue' import nothingInput from '@/assets/img/nothing-input.png' import nothingSelect from '@/assets/img/nothing-select.png' import nothingTable from '@/assets/img/nothing-table.png' +import nothingSelectDashoard from '@/assets/img/none-dashboard.png' import none from '@/assets/img/none.png' import error from '@/assets/img/error.png' import nothingTree from '@/assets/img/nothing-tree.png' @@ -10,7 +11,7 @@ import nothingNone from '@/assets/img/nothing-none.png' defineProps({ imgType: { type: String as PropType< - 'input' | 'select' | 'table' | 'none' | 'noneWhite' | 'tree' | 'error' + 'input' | 'select' | 'table' | 'none' | 'noneWhite' | 'tree' | 'error' | 'selectDashboard' >, default: 'table', }, @@ -29,6 +30,7 @@ const getAssetsFile = { table: nothingTable, noneWhite: nothingNone, tree: nothingTree, + selectDashboard: nothingSelectDashoard, error, none, } diff --git a/frontend/src/views/dashboard/common/ResourceGroupOpt.vue b/frontend/src/views/dashboard/common/ResourceGroupOpt.vue index 91e971a9..ac988a1d 100644 --- a/frontend/src/views/dashboard/common/ResourceGroupOpt.vue +++ b/frontend/src/views/dashboard/common/ResourceGroupOpt.vue @@ -14,7 +14,7 @@ const state = reactive({ placeholder: '', nodeType: 'folder', parentSelect: false, - resourceFormNameLabel: t('dashboard.name'), + resourceFormNameLabel: t('dashboard.dashboard_name'), dialogTitle: '', tData: [], tDataSource: [], @@ -30,7 +30,7 @@ const getTitle = (opt: string) => { case 'newFolder': return t('dashboard.new_folder') case 'rename': - return t('dashboard.rename') + return t('dashboard.rename_dashboard') default: return } diff --git a/frontend/src/views/dashboard/common/ResourceTree.vue b/frontend/src/views/dashboard/common/ResourceTree.vue index 61d6b849..6a4c7c4e 100644 --- a/frontend/src/views/dashboard/common/ResourceTree.vue +++ b/frontend/src/views/dashboard/common/ResourceTree.vue @@ -1,15 +1,16 @@