fix(工作台): 仪表盘Card跳转权限控制
--bug=1025906 --user=宋昌昌 【工作台】项目只有首页权限从工作台中查看测试计划提示异常 https://www.tapd.cn/55049933/s/1368856
This commit is contained in:
parent
c952c69852
commit
c43861ba43
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<workstation-detail
|
||||
:is-creation="true"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project'"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project' && currentTodo !== 'empty'"
|
||||
:current-todo-name="currentTodo"
|
||||
></workstation-detail>
|
||||
</template>
|
||||
|
@ -26,6 +26,7 @@ export default {
|
|||
methods: {
|
||||
setDefaultCurrentTodo() {
|
||||
// 设置当前默认TAB页为下一个有权限的菜单TAB
|
||||
// 如果该用户无权限存在, 则空白
|
||||
if (hasPermissions('PROJECT_TRACK_CASE:READ')) {
|
||||
this.currentTodo = 'track_case';
|
||||
} else if (hasPermissions('PROJECT_TRACK_PLAN:READ')) {
|
||||
|
@ -40,6 +41,8 @@ export default {
|
|||
this.currentTodo = 'api_automation';
|
||||
} else if (hasPermissions('PROJECT_PERFORMANCE_TEST:READ')) {
|
||||
this.currentTodo = 'performance';
|
||||
} else {
|
||||
this.currentTodo = 'empty'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
</el-row>
|
||||
<el-row>
|
||||
<div class="row-card">
|
||||
<el-card v-for="(option,index) in contentArray" :key="index"
|
||||
<el-card v-for="(option,index) in contentArray" :key="index" :class="!hasPermissions(option.permission) ? 'no-permission' : ''"
|
||||
body-style="padding-top: 16px; padding-left: 16px; padding-bottom: 16px;"
|
||||
class="card-info" shadow="never" @click.native="gotoDetail(option.name)">
|
||||
class="card-info" shadow="never" @click.native="gotoDetail(option.name, option.permission)">
|
||||
<div class="card-name">{{option.label}}</div>
|
||||
<div class="card-value">{{option.value}}</div>
|
||||
</el-card>
|
||||
|
@ -24,6 +24,7 @@
|
|||
|
||||
import {getFollowTotalCount, getUpcomingTotalCount} from "@/api/workstation";
|
||||
import {getCurrentWorkspaceId} from "metersphere-frontend/src/utils/token";
|
||||
import {hasPermissions} from "metersphere-frontend/src/utils/permission"
|
||||
|
||||
export default {
|
||||
name: "MyUpcomingCard",
|
||||
|
@ -42,48 +43,62 @@ export default {
|
|||
name: 'track_case',
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.track_case'),
|
||||
permission: 'PROJECT_TRACK_CASE:READ'
|
||||
},
|
||||
{
|
||||
name:"track_plan",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.track_plan'),
|
||||
permission: 'PROJECT_TRACK_PLAN:READ'
|
||||
},
|
||||
{
|
||||
name:"track_review",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.track_review'),
|
||||
permission: 'PROJECT_TRACK_REVIEW:READ'
|
||||
},
|
||||
{
|
||||
name:"track_issue",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.track_issue'),
|
||||
permission: 'PROJECT_TRACK_ISSUE:READ'
|
||||
},
|
||||
{
|
||||
name:"api_definition",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.api_definition'),
|
||||
permission: 'PROJECT_API_DEFINITION:READ'
|
||||
},
|
||||
{
|
||||
name:"api_case",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.api_case'),
|
||||
permission: 'PROJECT_API_DEFINITION:READ'
|
||||
},
|
||||
{
|
||||
name:"api_automation",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.api_automation'),
|
||||
permission: 'PROJECT_API_SCENARIO:READ'
|
||||
},
|
||||
{
|
||||
name:"performance",
|
||||
value:0,
|
||||
label: this.$t('workstation.table_name.performance'),
|
||||
permission: 'PROJECT_PERFORMANCE_TEST:READ'
|
||||
},
|
||||
],
|
||||
title:"",
|
||||
};
|
||||
},
|
||||
methods:{
|
||||
gotoDetail(name){
|
||||
hasPermissions(permission) {
|
||||
return hasPermissions(permission);
|
||||
},
|
||||
gotoDetail(name, permission){
|
||||
if (!hasPermissions(permission)) {
|
||||
return;
|
||||
}
|
||||
if (this.cardType === 'upcoming') {
|
||||
let upcoming =this.$router.resolve({
|
||||
path: "/workstation/upcoming",
|
||||
|
@ -158,6 +173,12 @@ export default {
|
|||
background: #F5F6F7;
|
||||
}
|
||||
}
|
||||
.no-permission {
|
||||
background: #F5F6F7;
|
||||
&:hover {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
.top-css {
|
||||
left: 24px;
|
||||
font-weight: 650;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<workstation-detail
|
||||
:is-focus="true"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project'"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project' && currentTodo !== 'empty'"
|
||||
:current-todo-name="currentTodo"
|
||||
/>
|
||||
</template>
|
||||
|
@ -24,6 +24,7 @@ export default {
|
|||
methods: {
|
||||
setDefaultCurrentTodo() {
|
||||
// 设置当前默认TAB页为下一个有权限的菜单TAB
|
||||
// 如果该用户无权限存在, 则空白
|
||||
if (hasPermissions('PROJECT_TRACK_CASE:READ')) {
|
||||
this.currentTodo = 'track_case';
|
||||
} else if (hasPermissions('PROJECT_TRACK_PLAN:READ')) {
|
||||
|
@ -38,6 +39,8 @@ export default {
|
|||
this.currentTodo = 'api_automation';
|
||||
} else if (hasPermissions('PROJECT_PERFORMANCE_TEST:READ')) {
|
||||
this.currentTodo = 'performance';
|
||||
} else {
|
||||
this.currentTodo = 'empty'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<el-tab-pane name="track_review" :label="$t('workstation.table_name.track_review')" v-if="disabled(['PROJECT_TRACK_REVIEW:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="track_issue" :label= "$t('workstation.table_name.track_issue')" v-if="disabled(['PROJECT_TRACK_ISSUE:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="api_definition" :label= "$t('workstation.table_name.api_definition')" v-if="disabled(['PROJECT_API_DEFINITION:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="api_case" :label= "$t('workstation.table_name.api_case')" v-if="disabled(['PROJECT_API_SCENARIO:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="api_case" :label= "$t('workstation.table_name.api_case')" v-if="disabled(['PROJECT_API_DEFINITION:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="api_automation" :label= "$t('workstation.table_name.api_automation')" v-if="disabled(['PROJECT_API_SCENARIO:READ'])"></el-tab-pane>
|
||||
<el-tab-pane name="performance" :label= "$t('workstation.table_name.performance')" v-if="disabled(['PROJECT_PERFORMANCE_TEST:READ'])"></el-tab-pane>
|
||||
</el-tabs>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<workstation-detail
|
||||
:is-upcoming="true"
|
||||
:current-todo-name="currentTodo"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project'"
|
||||
v-if="projectId !== '' && projectId !== 'no_such_project' && currentTodo !== 'empty'"
|
||||
></workstation-detail>
|
||||
</template>
|
||||
<script>
|
||||
|
@ -25,6 +25,7 @@ export default {
|
|||
methods: {
|
||||
setDefaultCurrentTodo() {
|
||||
// 设置当前默认TAB页为下一个有权限的菜单TAB
|
||||
// 如果该用户无权限存在, 则空白
|
||||
if (hasPermissions('PROJECT_TRACK_CASE:READ')) {
|
||||
this.currentTodo = 'track_case';
|
||||
} else if (hasPermissions('PROJECT_TRACK_PLAN:READ')) {
|
||||
|
@ -39,6 +40,8 @@ export default {
|
|||
this.currentTodo = 'api_automation';
|
||||
} else if (hasPermissions('PROJECT_PERFORMANCE_TEST:READ')) {
|
||||
this.currentTodo = 'performance';
|
||||
} else {
|
||||
this.currentTodo = 'empty'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue