From 2496b86a99f5c0ec20e6ea4f61b7839d1fd59d2f Mon Sep 17 00:00:00 2001 From: hanyuxia Date: Wed, 13 Nov 2024 11:26:26 +0800 Subject: feat: ASW-153 pcap列表页面样式更新及pcap接口修改(workspaceId改为path参数) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/iconfont/iconfont.css | 10 +- src/assets/iconfont/iconfont.js | 2 +- src/assets/iconfont/iconfont.json | 7 ++ src/assets/iconfont/iconfont.ttf | Bin 26436 -> 26592 bytes src/assets/iconfont/iconfont.woff | Bin 16436 -> 16504 bytes src/assets/iconfont/iconfont.woff2 | Bin 14024 -> 14176 bytes src/axios/api/pcap.js | 32 +++--- src/i18n/en.js | 2 + src/i18n/zh.js | 2 + src/views/pcaps/index.vue | 217 ++++++++++++++++++++++--------------- src/views/pcaps/naviPcap.vue | 2 +- src/views/pcaps/naviSession.vue | 3 +- 12 files changed, 167 insertions(+), 110 deletions(-) diff --git a/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css index d765151..246895b 100644 --- a/src/assets/iconfont/iconfont.css +++ b/src/assets/iconfont/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "asw-icon"; /* Project id 4624922 */ - src: url('iconfont.woff2?t=1731316754762') format('woff2'), - url('iconfont.woff?t=1731316754762') format('woff'), - url('iconfont.ttf?t=1731316754762') format('truetype'); + src: url('iconfont.woff2?t=1731402399290') format('woff2'), + url('iconfont.woff?t=1731402399290') format('woff'), + url('iconfont.ttf?t=1731402399290') format('truetype'); } .asw-icon { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-a-Noparsed:before { + content: "\e84c"; +} + .icon-shezhi:before { content: "\e84b"; } diff --git a/src/assets/iconfont/iconfont.js b/src/assets/iconfont/iconfont.js index 9e48775..3b501d0 100644 --- a/src/assets/iconfont/iconfont.js +++ b/src/assets/iconfont/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_4624922='',(l=>{var a=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var h,o,i,m,v,z=function(a,c){c.parentNode.insertBefore(a,c)};if(a&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}h=function(){var a,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4624922,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(a=document.body).firstChild?z(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),h()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=h,m=l.document,v=!1,s(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,t())})}function t(){v||(v=!0,i())}function s(){try{m.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}t()}})(window); \ No newline at end of file +window._iconfont_svg_string_4624922='',(l=>{var a=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var h,o,i,m,v,z=function(a,c){c.parentNode.insertBefore(a,c)};if(a&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}h=function(){var a,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4624922,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(a=document.body).firstChild?z(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),h()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=h,m=l.document,v=!1,s(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,t())})}function t(){v||(v=!0,i())}function s(){try{m.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}t()}})(window); \ No newline at end of file diff --git a/src/assets/iconfont/iconfont.json b/src/assets/iconfont/iconfont.json index a8c2452..612c6b2 100644 --- a/src/assets/iconfont/iconfont.json +++ b/src/assets/iconfont/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "42435508", + "name": "No parsed", + "font_class": "a-Noparsed", + "unicode": "e84c", + "unicode_decimal": 59468 + }, { "icon_id": "42419048", "name": "设置", diff --git a/src/assets/iconfont/iconfont.ttf b/src/assets/iconfont/iconfont.ttf index d6fb2b5..0807cc4 100644 Binary files a/src/assets/iconfont/iconfont.ttf and b/src/assets/iconfont/iconfont.ttf differ diff --git a/src/assets/iconfont/iconfont.woff b/src/assets/iconfont/iconfont.woff index b73e5d3..1e5be90 100644 Binary files a/src/assets/iconfont/iconfont.woff and b/src/assets/iconfont/iconfont.woff differ diff --git a/src/assets/iconfont/iconfont.woff2 b/src/assets/iconfont/iconfont.woff2 index ab84829..9c82190 100644 Binary files a/src/assets/iconfont/iconfont.woff2 and b/src/assets/iconfont/iconfont.woff2 differ diff --git a/src/axios/api/pcap.js b/src/axios/api/pcap.js index cd4def7..2fcf026 100644 --- a/src/axios/api/pcap.js +++ b/src/axios/api/pcap.js @@ -15,10 +15,10 @@ export const pcapListApi = async (workspaceId, data) => { }; // pcap上传 -export const pcapUploadApi = async (data) => { +export const pcapUploadApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap', + url: `/api/v1/workspace/${workspaceId}/pcap`, method: 'POST', data: data, headers: { 'Content-Type': 'multipart/form-data' }, @@ -30,10 +30,10 @@ export const pcapUploadApi = async (data) => { }; // pcap下载 -export const pcapDownloadApi = async (data, config) => { +export const pcapDownloadApi = async (workspaceId, data, config) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap/download', + url: `/api/v1/workspace/${workspaceId}/pcap/download`, method: 'GET', params: data, ...config, @@ -45,10 +45,10 @@ export const pcapDownloadApi = async (data, config) => { }; // pcap删除 -export const pcapDeleteApi = async (data) => { +export const pcapDeleteApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap', + url: `/api/v1/workspace/${workspaceId}/pcap`, method: 'DELETE', params: data, }); @@ -59,10 +59,10 @@ export const pcapDeleteApi = async (data) => { }; // pcap解析 -export const pcapParseApi = async (data) => { +export const pcapParseApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap/parse2session', + url: `/api/v1/workspace/${workspaceId}/pcap/parse2session`, method: 'PUT', params: data, }); @@ -73,10 +73,10 @@ export const pcapParseApi = async (data) => { }; // pcap删除解析 -export const pcapUnparseApi = async (data) => { +export const pcapUnparseApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap/unparse2session', + url: `/api/v1/workspace/${workspaceId}/pcap/unparse2session`, method: 'PUT', params: data, }); @@ -87,10 +87,10 @@ export const pcapUnparseApi = async (data) => { }; // pcap explore -export const pcapExploreApi = async (data) => { +export const pcapExploreApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap/explore', + url: `/api/v1/workspace/${workspaceId}/pcap/explore`, method: 'GET', params: data, }); @@ -101,10 +101,10 @@ export const pcapExploreApi = async (data) => { }; // pcap session statistic -export const pcapStatisticApi = async (data) => { +export const pcapStatisticApi = async (workspaceId, data) => { try { const res = await axiosInstance({ - url: '/api/v1/pcap/dashboard', + url: `/api/v1/workspace/${workspaceId}/pcap/dashboard`, method: 'GET', params: data, }); @@ -115,10 +115,10 @@ export const pcapStatisticApi = async (data) => { }; // pcap webshark -export const pcapWebsharkApi = async (id, data) => { +export const pcapWebsharkApi = async (workspaceId, id, data) => { try { const res = await axiosInstance({ - url: `/api/v1/pcap/${id}/webshark`, + url: `/api/v1/workspace/${workspaceId}/pcap/${id}/webshark`, method: 'GET', params: data, }); diff --git a/src/i18n/en.js b/src/i18n/en.js index e7d3376..bf3f898 100644 --- a/src/i18n/en.js +++ b/src/i18n/en.js @@ -200,6 +200,8 @@ export default { pcap_file: 'PCAP file', view_in_webshark: 'View in Webshark', session_statistics: 'Session Statistics', + sessions: 'Sessions', + download_pcap_file: 'Download PCAP file' }, user: { user: 'User', diff --git a/src/i18n/zh.js b/src/i18n/zh.js index 2ea923b..7ac6d41 100644 --- a/src/i18n/zh.js +++ b/src/i18n/zh.js @@ -200,6 +200,8 @@ export default { pcap_file: 'PCAP 文件', view_in_webshark: '在webshark中查看', session_statistics: '会话统计', + sessions: '会话', + download_pcap_file: '下载PCAP 文件' }, user: { user: '用户', diff --git a/src/views/pcaps/index.vue b/src/views/pcaps/index.vue index 67e5bfb..6a3b3bf 100644 --- a/src/views/pcaps/index.vue +++ b/src/views/pcaps/index.vue @@ -73,10 +73,7 @@ :disabled="sessionStatisticsDisabled" @click="sessionStatistics(tableSelect)" > - + {{ t('pcap.session_statistics') }} @@ -146,25 +143,107 @@