diff --git a/frontend/package.json b/frontend/package.json index ffeaa651..38eb81a6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,6 +11,11 @@ "test:unit": "vue-cli-service test:unit" }, "dependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.19", + "@fortawesome/free-brands-svg-icons": "^5.9.0", + "@fortawesome/free-regular-svg-icons": "^5.9.0", + "@fortawesome/free-solid-svg-icons": "^5.9.0", + "@fortawesome/vue-fontawesome": "^0.1.6", "@tinymce/tinymce-vue": "^2.0.0", "axios": "0.18.0", "cross-env": "^5.2.0", diff --git a/frontend/src/i18n/zh.js b/frontend/src/i18n/zh.js index 978f2aea..80705224 100644 --- a/frontend/src/i18n/zh.js +++ b/frontend/src/i18n/zh.js @@ -207,6 +207,12 @@ export default { 'Yes': '是', 'No': '否', + // 系统 + 'OS': '操作系统', + 'ARCH': '操作架构', + 'Number of CPU': 'CPU数', + 'Executables': '执行文件', + // 弹出框 Notification: '提示', 'Are you sure to delete this node?': '你确定要删除该节点?', diff --git a/frontend/src/main.js b/frontend/src/main.js index f71efae5..b548e734 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -9,6 +9,11 @@ import locale from 'element-ui/lib/locale/lang/en' // lang i18n import '@/styles/index.scss' // global css import 'font-awesome/scss/font-awesome.scss'// FontAwesome +import { library } from '@fortawesome/fontawesome-svg-core' +import { fab } from '@fortawesome/free-brands-svg-icons' +import { fas } from '@fortawesome/free-solid-svg-icons' +import { far } from '@fortawesome/free-regular-svg-icons' +import { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from '@fortawesome/vue-fontawesome' import 'codemirror/lib/codemirror.css' @@ -25,10 +30,12 @@ import utils from './utils' Vue.use(ElementUI, { locale }) -// Vue.use(ba, 'c35e3a563a06caee2524902c81975add') -// Vue.use(ba, { -// siteId: 'c35e3a563a06caee2524902c81975add' -// }) +library.add(fab) +library.add(far) +library.add(fas) +Vue.component('font-awesome-icon', FontAwesomeIcon) +Vue.component('font-awesome-layers', FontAwesomeLayers) +Vue.component('font-awesome-layers-text', FontAwesomeLayersText) Vue.config.productionTip = false diff --git a/frontend/src/store/modules/node.js b/frontend/src/store/modules/node.js index 48c01ee5..266beb3e 100644 --- a/frontend/src/store/modules/node.js +++ b/frontend/src/store/modules/node.js @@ -20,6 +20,23 @@ const mutations = { }, SET_ACTIVE_SPIDER (state, value) { state.activeSpider = value + }, + SET_NODE_SYSTEM_INFO (state, payload) { + const { id, systemInfo } = payload + for (let i = 0; i < state.nodeList.length; i++) { + if (state.nodeList[i]._id === id) { + // Vue.set(state.nodeList[i], 'systemInfo', {}) + state.nodeList[i].systemInfo = systemInfo + // for (const key in systemInfo) { + // if (systemInfo.hasOwnProperty(key)) { + // console.log(key) + // state.nodeList[i].systemInfo[key] = systemInfo[key] + // // Vue.set(state.nodeList[i].systemInfo, key, systemInfo[key]) + // } + // } + break + } + } } } @@ -27,7 +44,15 @@ const actions = { getNodeList ({ state, commit }) { request.get('/nodes', {}) .then(response => { - commit('SET_NODE_LIST', response.data.data) + commit('SET_NODE_LIST', response.data.data.map(d => { + d.systemInfo = { + os: '', + arch: '', + num_cpu: '', + executables: [] + } + return d + })) }) }, editNode ({ state, dispatch }) { @@ -56,6 +81,12 @@ const actions = { .sort((a, b) => a.create_ts < b.create_ts ? 1 : -1), { root: true }) }) + }, + getNodeSystemInfo ({ state, commit }, id) { + return request.get(`/nodes/${id}/system`) + .then(response => { + commit('SET_NODE_SYSTEM_INFO', { id, systemInfo: response.data.data }) + }) } } diff --git a/frontend/src/views/node/NodeList.vue b/frontend/src/views/node/NodeList.vue index 33d8a67f..48138eef 100644 --- a/frontend/src/views/node/NodeList.vue +++ b/frontend/src/views/node/NodeList.vue @@ -22,7 +22,53 @@ + border + @expand-change="onRowExpand"> + + +