diff --git a/nezha-fronted/src/components/charts/chart-alert-list.vue b/nezha-fronted/src/components/charts/chart-alert-list.vue index df7a220b3..956bf0569 100644 --- a/nezha-fronted/src/components/charts/chart-alert-list.vue +++ b/nezha-fronted/src/components/charts/chart-alert-list.vue @@ -27,15 +27,15 @@ @@ -150,7 +150,8 @@ export default { default: 0, }, chartInfo:{}, - id:'' + id:'', + from: {type: String} }, data() { return { diff --git a/nezha-fronted/src/components/charts/chart-list.vue b/nezha-fronted/src/components/charts/chart-list.vue index 8882a49c5..ad5ff5bd2 100644 --- a/nezha-fronted/src/components/charts/chart-list.vue +++ b/nezha-fronted/src/components/charts/chart-list.vue @@ -432,7 +432,7 @@ from: params.from }; //alert-rule单独处理 - if (param.from == "alertRule") { + if (param.from == this.$CONSTANTS.fromRoute.rule) { this.dataList = []; this.dataList.push({ id: -10, @@ -478,7 +478,7 @@ return; } //endpoint单独处理 - if (param.from == "endpoint") { + if (param.from == this.$CONSTANTS.fromRoute.endpoint) { this.dataList = []; // this.dataList.push({ // id: -8, @@ -571,12 +571,12 @@ this.dataList.forEach((item,index) => { this.setChartSize(item, index);//设置该图表宽度 this.$set(item, "from", params.from); - if (param.from == "asset") { + if (param.from == this.$CONSTANTS.fromRoute.asset) { if (item.type == "assetInfo") { this.$set(item, "draggable", true); this.$set(item, "resizable", true); } - } else if (param.from == "project") { + } else if (param.from == this.$CONSTANTS.fromRoute.project) { if (item.type == "projectInfo") { this.$set(item, "draggable", true); this.$set(item, "resizable", true); @@ -690,7 +690,7 @@ const chartItem = chartInfo; const index = pos; // 指标 if(chartItem.type === 'assetInfo'){ - if (chartItem.from != 'endpoint') { + if (chartItem.from != this.$CONSTANTS.fromRoute.endpoint) { this.$set(chartItem, "draggable", true); this.$set(chartItem, "resizable", true); } diff --git a/nezha-fronted/src/components/charts/chart-single-stat.vue b/nezha-fronted/src/components/charts/chart-single-stat.vue index 84af5567e..12d6a21b3 100644 --- a/nezha-fronted/src/components/charts/chart-single-stat.vue +++ b/nezha-fronted/src/components/charts/chart-single-stat.vue @@ -29,13 +29,13 @@ @@ -100,7 +100,8 @@ export default { chartIndex:{ type: Number, default: 0, - } + }, + from: {type: String} }, data() { return { diff --git a/nezha-fronted/src/components/charts/chart-table.vue b/nezha-fronted/src/components/charts/chart-table.vue index 20ae5e547..8e962879b 100644 --- a/nezha-fronted/src/components/charts/chart-table.vue +++ b/nezha-fronted/src/components/charts/chart-table.vue @@ -34,16 +34,16 @@
  • {{$t('dashboard.refresh')}}
  • -
  • +
  • {{$t('dashboard.edit')}}
  • -
  • +
  • {{$t('dashboard.delete')}}
  • {{$t('dashboard.screen')}}
  • -
  • +
  • {{$t('dashboard.duplicate')}}
  • @@ -140,7 +140,8 @@ chartIndex: { type: Number, default: 0, - } + }, + from: {type: String} }, data() { return { diff --git a/nezha-fronted/src/components/charts/chart-url.vue b/nezha-fronted/src/components/charts/chart-url.vue index 022d32f56..4d99bb558 100644 --- a/nezha-fronted/src/components/charts/chart-url.vue +++ b/nezha-fronted/src/components/charts/chart-url.vue @@ -15,15 +15,15 @@ @@ -86,7 +86,7 @@ export default { type: Number, default: 0, }, - + from: {type: String} }, data() { return { diff --git a/nezha-fronted/src/components/charts/chart.scss b/nezha-fronted/src/components/charts/chart.scss index cd2aebdb9..b063b8be4 100644 --- a/nezha-fronted/src/components/charts/chart.scss +++ b/nezha-fronted/src/components/charts/chart.scss @@ -25,6 +25,7 @@ } .legend-container{ width: calc(100% - 30px); + overflow: auto; max-height:80px; min-height:25px; font-size:12px; diff --git a/nezha-fronted/src/components/charts/line-chart-block.vue b/nezha-fronted/src/components/charts/line-chart-block.vue index edaa6b0e9..be9155039 100644 --- a/nezha-fronted/src/components/charts/line-chart-block.vue +++ b/nezha-fronted/src/components/charts/line-chart-block.vue @@ -7,7 +7,7 @@
    -
    +
    {{chartData.title}} - + -
      +
      • {{$t('dashboard.refresh')}}
      • -
      • +
      • {{$t('dashboard.edit')}}
      • -
      • +
      • {{$t('dashboard.delete')}}
      • {{$t('dashboard.screen')}}
      • -
      • +
      • {{$t('dashboard.duplicate')}}
      @@ -57,14 +57,14 @@
      No Data
      - +
      @@ -350,24 +350,11 @@ width: 90 } ], - viewRuleData: { - id: '', - alertName: '', - type: '', - linkObject: {id: '', name: ''}, - linkId: '', - expr: '', - last: '', - severity: '', - summary: '', - description: '', - receiver: '', - }, viewProjectData: {id: '', name: '', remark: ''}, viewModuleData: {id: '', name: '', project: {}, port: '', path: '', param: '', paramObj: []}, viewAssetState: false, - scrollWrap: null, + scrollbarWrap: null, } }, computed: { @@ -568,10 +555,10 @@ this.graphShow = false; }, getAlertList() { - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.alertListTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.alertListTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } }, @@ -778,40 +765,6 @@ return ""; } }, - viewRule(id) { - this.closeViews(); - this.$get('alert/rule', {"id": id}).then(response => { - if (response.code == 200) { - this.viewRuleData = response.data.list[0]; - this.$refs.alertConfigBox.show(true); - } - }) - }, - viewAlertType: function (type, typeObj) { - this.closeViews(); - switch (type) { - case 1: - this.viewProjectData = JSON.parse(JSON.stringify(typeObj)); - this.$refs.projectBox.show(true); - break; - case 2: - // this.fillProject(typeObj); - let tempObj = JSON.parse(typeObj.param) - this.$set(typeObj, 'paramObj', []); - for (let k in tempObj) { - typeObj.paramObj.push({key: k, value: tempObj[k]}); - } - this.viewModuleData = JSON.parse(JSON.stringify(typeObj)); - - this.$refs.moduleBox.show(true); - break; - case 3: - this.viewAssetState = true; - this.$refs.assetEditUnit.getAssetData(typeObj); - this.$refs.assetEditUnit.tabView = true; - break; - } - }, fillProject: function (module) { this.$get('project', {"id": module.projectId}).then(response => { if (response.code == 200) { diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue index ff2095a2c..af6e06b07 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue @@ -9,8 +9,8 @@
      {{$t("overall.detail")}}
      {{$t("asset.tableTitle.alerts")}}
      {{$t("asset.tableTitle.modules")}}
      -
      {{$t("overall.query")}}
      + @click="changeTab('endpoint')" class="sub-list-tab" v-has="'asset_endpoint_view'">{{$t("asset.tableTitle.modules")}}
    +
    {{$t("overall.query")}}
    diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue index 5ed862a74..bd6ce4164 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue @@ -205,6 +205,10 @@ this.rightBox.show = true; }, getTableData() { + if (!this.hasButton('dc_cabinet_view')) { + this.$message.error(this.$t("tip.noAccess")); + return; + } this.tableData = []; this.loading = true; this.$set(this.searchLabel, "pageNo", 1); diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/endpointQueryTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/endpointQueryTab.vue index f6628792c..4bd95049e 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/endpointQueryTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/endpointQueryTab.vue @@ -99,7 +99,7 @@ min-width="180"> - + { + this.scrollbarWrap = this.$refs.endpointQueryTable.$refs.singleTable.bodyWrapper; + console.info(this.scrollbarWrap) + this.toTopBtnHandler(this.scrollbarWrap); + }); + } } }); }, 450); diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/endpointTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/endpointTab.vue index 5b596d8c4..b6bb12a38 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/endpointTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/endpointTab.vue @@ -4,7 +4,7 @@
    {{obj.host}}
    {{$t("overall.detail")}}
    {{$t("asset.tableTitle.alerts")}}
    {{$t("asset.tableTitle.alerts")}}
    {{$t("asset.tableTitle.modules")}}
    diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue index 87c4a9b69..04d1c8d3e 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue @@ -1,7 +1,7 @@ - +
    @@ -267,7 +267,7 @@ }, searchLabel: {}, //搜索参数 tabShow: 1, // 控制显示一级页面和二级页面 1 dc 2cabinet - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -396,6 +396,10 @@ }); }, getTableData() { + if (!this.hasButton('dc_view')) { + this.$message.error(this.$t("tip.noAccess")); + return; + } this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo); this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize); this.tools.loading = true; @@ -404,10 +408,10 @@ if (response.code === 200) { this.tableData = response.data.list; this.pageObj.total = response.data.total; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.dcTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.dcTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/config/menus.vue b/nezha-fronted/src/components/page/config/menus.vue index d33d08a10..f86a911fc 100644 --- a/nezha-fronted/src/components/page/config/menus.vue +++ b/nezha-fronted/src/components/page/config/menus.vue @@ -15,11 +15,11 @@ - - +
    @@ -69,9 +69,9 @@ - +
    @@ -203,7 +203,7 @@ }], }, searchLabel: {}, //搜索参数 - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -214,6 +214,9 @@ return ""; }, panel(obj) { + if (!this.hasButton('model_chart_view')) { + return; + } this.bottomBox.showSubList = true; this.bottomBox.model = obj; this.bottomBox.targetTab = "panel"; @@ -276,6 +279,10 @@ }); }, getTableData() { + if (!this.hasButton('model_view')) { + this.$message.error(this.$t("tip.noAccess")); + return; + } this.tableData = []; this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo); this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize); @@ -286,10 +293,10 @@ if (response.code === 200) { this.tableData = response.data.list; this.pageObj.total = response.data.total; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.modelTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.modelTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/config/operationlog.vue b/nezha-fronted/src/components/page/config/operationlog.vue index c307bb085..5a4847c88 100644 --- a/nezha-fronted/src/components/page/config/operationlog.vue +++ b/nezha-fronted/src/components/page/config/operationlog.vue @@ -8,7 +8,7 @@
    - @@ -60,7 +60,7 @@ - +
    @@ -192,7 +192,7 @@ ], }, searchLabel: {}, //搜索参数 - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -215,10 +215,10 @@ if (response.code === 200) { this.tableData = response.data.list; this.pageObj.total = response.data.total; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.operationLogTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.operationLogTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/config/promServer.vue b/nezha-fronted/src/components/page/config/promServer.vue index a4b8ea485..5170e7ce4 100644 --- a/nezha-fronted/src/components/page/config/promServer.vue +++ b/nezha-fronted/src/components/page/config/promServer.vue @@ -82,7 +82,7 @@ - +
    @@ -223,7 +223,7 @@ }, searchLabel: {}, //搜索参数 promServerType:null, - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -310,6 +310,10 @@ }); }, getTableData() { + if (!this.hasButton('prom_view')) { + this.$message.error(this.$t("tip.noAccess")); + return; + } this.tableData = []; this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo); this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize); @@ -327,10 +331,10 @@ } this.tableData = response.data.list; this.pageObj.total = response.data.total; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.promTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.promTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/config/roles.vue b/nezha-fronted/src/components/page/config/roles.vue index beef24755..f163d31a1 100644 --- a/nezha-fronted/src/components/page/config/roles.vue +++ b/nezha-fronted/src/components/page/config/roles.vue @@ -97,7 +97,7 @@ - +
    @@ -178,7 +178,7 @@ }], }, searchLabel: {}, //搜索参数 - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -216,6 +216,10 @@ }); }, getTableData() { + if (!this.hasButton('role_view')) { + this.$message.error(this.$t("tip.noAccess")); + return; + } this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo); this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize); this.tools.loading = true; @@ -225,10 +229,10 @@ this.tableData = response.data.list; this.pageObj.total = response.data.total this.tools.loading = false; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.rolesTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.rolesTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue index a5bb997d5..54cf97c2f 100644 --- a/nezha-fronted/src/components/page/config/system.vue +++ b/nezha-fronted/src/components/page/config/system.vue @@ -216,7 +216,7 @@ - + @@ -230,7 +230,7 @@
    - +
    @@ -282,19 +282,19 @@ - +
    {{item.name}}
    - + {{item.url}}
    - +
    diff --git a/nezha-fronted/src/components/page/config/terminallog.vue b/nezha-fronted/src/components/page/config/terminallog.vue index 4056f2c38..2f8ea6985 100644 --- a/nezha-fronted/src/components/page/config/terminallog.vue +++ b/nezha-fronted/src/components/page/config/terminallog.vue @@ -8,7 +8,7 @@
    - @@ -64,7 +64,7 @@ - +
    @@ -214,7 +214,7 @@ ], }, searchLabel: {}, //搜索参数 - scrollWrap: null, + scrollbarWrap: null, } }, methods: { @@ -230,10 +230,10 @@ } this.tableData = response.data.list; this.pageObj.total = response.data.total; - if (!this.scrollWrap) { + if (!this.scrollbarWrap) { this.$nextTick(() => { - this.scrollWrap = this.$refs.terminalLogTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.terminalLogTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } diff --git a/nezha-fronted/src/components/page/dashboard/panel.vue b/nezha-fronted/src/components/page/dashboard/panel.vue index 8e0834d4a..e282f2df9 100644 --- a/nezha-fronted/src/components/page/dashboard/panel.vue +++ b/nezha-fronted/src/components/page/dashboard/panel.vue @@ -349,6 +349,9 @@ }, // 获取数据,用在子页面 getData(params) { + if (!this.hasButton('panel_view')) { + return; + } if (params.start_time === '' || params.end_time === '') { let now = bus.getTimezontDateRange(); let endTimeTmp = bus.timeFormate(now[1].getTime(), 'yyyy-MM-dd hh:mm:ss'); @@ -407,6 +410,9 @@ }); }, panelReloadOnlyPanel() { //仅刷新panel数据 + if (!this.hasButton('panel_view')) { + return; + } this.$get('panel').then(response => { if (response.code === 200) { this.panelData = response.data.list; diff --git a/nezha-fronted/src/components/page/project/project.vue b/nezha-fronted/src/components/page/project/project.vue index 82848f6c9..e9fca6015 100644 --- a/nezha-fronted/src/components/page/project/project.vue +++ b/nezha-fronted/src/components/page/project/project.vue @@ -168,7 +168,7 @@
    { - this.scrollWrap = this.$refs.endpointTable.bodyWrapper; - this.toTopBtnHandler(this.scrollWrap); + this.scrollbarWrap = this.$refs.endpointTable.bodyWrapper; + this.toTopBtnHandler(this.scrollbarWrap); }); } } @@ -562,6 +562,9 @@ }); }, jumpToAlertMsg(endpoint){ + if (!this.hasButton('project_endpoint_alerts_view')) { + return; + } this.endpoint=Object.assign({},endpoint); this.bottomBox.targetTab='alertMessage'; this.bottomBox.showSubList=true; diff --git a/nezha-fronted/src/permission.js b/nezha-fronted/src/permission.js index 212c2fa59..3e020c717 100644 --- a/nezha-fronted/src/permission.js +++ b/nezha-fronted/src/permission.js @@ -9,39 +9,39 @@ import VueResource from 'vue-resource' Vue.use(VueResource); const loginWhiteList = ['/login']; // 免登陆白名单 -const permissionWhiteList = ['/login']; // 权限白名单 +const permissionWhiteList = ['/menu', ...loginWhiteList]; // 权限白名单 router.beforeEach((to, from, next) => { if (sessionStorage.getItem('nz-token')) { - if (loginWhiteList.indexOf(to.path) !== -1) { + if (permissionWhiteList.indexOf(to.path) !== -1) { next(); } else { - let configUrl = "static/config.json?Timestamp=" + new Date().getTime(); - let result = Vue.http.get(configUrl).then(res => { - new Promise(resolve => { - if (store.getters.menuList.length === 0) { + new Promise(resolve => { + if (store.getters.menuList.length === 0) { + let configUrl = "static/config.json?Timestamp=" + new Date().getTime(); + Vue.http.get(configUrl).then(res => { post(res.body.baseUrl + "/sys/user/permissions", {token: sessionStorage.getItem("nz-token")}).then(res => { store.commit("setMenuList", sortByOrderNum(res.data.menus)); store.commit("setButtonList", res.data.buttons); store.commit("setRoleList", res.data.roles); resolve(); }); + }); + } else { + resolve(); + } + }).then(res => { + if (to.path) { + if (hasMenu(store.getters.menuList, to.path)) { + next(); } else { - resolve(); + ElementUI.Message.error(i18n.t("tip.noAccess")); } - }).then(res => { - if (to.path) { - if (hasMenu(store.getters.menuList, to.path)) { - next(); - } else { - ElementUI.Message.error(i18n.t("tip.noAccess")); - } - } - }); + } }); } } else { - if (permissionWhiteList.indexOf(to.path) !== -1) { + if (loginWhiteList.indexOf(to.path) !== -1) { next(); } else { next({path: '/login'}) diff --git a/nezha-fronted/src/store/user.js b/nezha-fronted/src/store/user.js index 36d734b5d..d4169ddec 100644 --- a/nezha-fronted/src/store/user.js +++ b/nezha-fronted/src/store/user.js @@ -49,7 +49,7 @@ const user = { bus.$emit("login"); router.push({ - path: menuList.find(menu => {return menu.route && menu.route != "/menu" && menu.route != "/header"}).route, + path: menuList.find(menu => {return menu.route && menu.route != "/header"}).route, query: { t: +new Date() }