fix(产品需求、项目需求): 修复权限码的语义问题。
This commit is contained in:
@@ -44,9 +44,12 @@
|
||||
"@sa/hooks": "workspace:*",
|
||||
"@sa/materials": "workspace:*",
|
||||
"@sa/utils": "workspace:*",
|
||||
"@univerjs/preset-sheets-core": "^0.25.0",
|
||||
"@univerjs/presets": "^0.25.0",
|
||||
"@vueuse/core": "13.9.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"@zwight/luckyexcel": "^1.1.6",
|
||||
"clipboard": "2.0.11",
|
||||
"dayjs": "1.11.18",
|
||||
"defu": "^6.1.4",
|
||||
|
||||
3607
pnpm-lock.yaml
generated
3607
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -462,7 +462,7 @@ const columns = computed(() => [
|
||||
onClick: () => void;
|
||||
}[] = [];
|
||||
|
||||
if (hasObjectAuth('project:product:query') && canViewReviewRecord(row)) {
|
||||
if (hasObjectAuth('project:product:requirement:query') && canViewReviewRecord(row)) {
|
||||
actions.push({
|
||||
key: 'reviewRecord',
|
||||
label: '查看评审记录',
|
||||
@@ -472,7 +472,7 @@ const columns = computed(() => [
|
||||
});
|
||||
}
|
||||
|
||||
if (hasObjectAuth('project:product:split') && canSplitRequirement(row)) {
|
||||
if (hasObjectAuth('project:product:requirement:split') && canSplitRequirement(row)) {
|
||||
actions.push({
|
||||
key: 'split',
|
||||
label: '拆分',
|
||||
@@ -482,7 +482,7 @@ const columns = computed(() => [
|
||||
});
|
||||
}
|
||||
|
||||
if (hasObjectAuth('project:product:update') && canEditRequirement(row)) {
|
||||
if (hasObjectAuth('project:product:requirement:update') && canEditRequirement(row)) {
|
||||
actions.push({
|
||||
key: 'edit',
|
||||
label: '编辑',
|
||||
@@ -503,8 +503,8 @@ const columns = computed(() => [
|
||||
}
|
||||
|
||||
const lifecycleActions = getRowActions(row);
|
||||
const hasReviewAuth = hasObjectAuth('project:product:review');
|
||||
const hasStatusAuth = hasObjectAuth('project:product:status');
|
||||
const hasReviewAuth = hasObjectAuth('project:product:requirement:review');
|
||||
const hasStatusAuth = hasObjectAuth('project:product:requirement:status');
|
||||
|
||||
if (hasReviewAuth && lifecycleActions.some(action => isReviewAction(row, action))) {
|
||||
actions.push({
|
||||
@@ -540,7 +540,7 @@ const columns = computed(() => [
|
||||
}
|
||||
}
|
||||
|
||||
if (canDeleteRequirement(row) && hasObjectAuth('project:product:delete')) {
|
||||
if (canDeleteRequirement(row) && hasObjectAuth('project:product:requirement:delete')) {
|
||||
actions.push({
|
||||
key: 'delete',
|
||||
label: '删除',
|
||||
@@ -922,7 +922,7 @@ onMounted(async () => {
|
||||
<TableHeaderOperation v-model:columns="columnChecks" :loading="loading" @refresh="reloadTable">
|
||||
<template #default>
|
||||
<ElButton
|
||||
v-auth="{ code: 'project:product:create', source: 'object' }"
|
||||
v-auth="{ code: 'project:product:requirement:create', source: 'object' }"
|
||||
plain
|
||||
type="primary"
|
||||
@click="openCreate"
|
||||
|
||||
@@ -45,12 +45,12 @@ const isRootModule = computed(() => props.module.id === props.rootModuleId);
|
||||
|
||||
const hasAnyActionPermission = computed(() => {
|
||||
if (isRootModule.value) {
|
||||
return hasObjectAuth('project:product:create');
|
||||
return hasObjectAuth('project:product:requirement:create');
|
||||
}
|
||||
return (
|
||||
hasObjectAuth('project:product:create') ||
|
||||
hasObjectAuth('project:product:update') ||
|
||||
hasObjectAuth('project:product:delete')
|
||||
hasObjectAuth('project:product:requirement:create') ||
|
||||
hasObjectAuth('project:product:requirement:update') ||
|
||||
hasObjectAuth('project:product:requirement:delete')
|
||||
);
|
||||
});
|
||||
|
||||
@@ -163,18 +163,22 @@ function handleToggle() {
|
||||
</div>
|
||||
|
||||
<div v-if="!isEditing && hasAnyActionPermission" class="module-tree-item__actions" @click.stop>
|
||||
<ElTooltip v-if="hasObjectAuth('project:product:create')" content="新增子模块" placement="top">
|
||||
<ElTooltip v-if="hasObjectAuth('project:product:requirement:create')" content="新增子模块" placement="top">
|
||||
<ElButton link type="primary" class="module-tree-item__action-btn" @click="handleStartAddChild">
|
||||
<icon-mdi-plus class="text-14px" />
|
||||
</ElButton>
|
||||
</ElTooltip>
|
||||
<ElTooltip v-if="!isRootModule && hasObjectAuth('project:product:update')" content="编辑" placement="top">
|
||||
<ElTooltip
|
||||
v-if="!isRootModule && hasObjectAuth('project:product:requirement:update')"
|
||||
content="编辑"
|
||||
placement="top"
|
||||
>
|
||||
<ElButton link type="primary" class="module-tree-item__action-btn" @click="handleStartEdit">
|
||||
<icon-mdi-pencil-outline class="text-14px" />
|
||||
</ElButton>
|
||||
</ElTooltip>
|
||||
<ElPopconfirm
|
||||
v-if="!isRootModule && canDeleteModule && hasObjectAuth('project:product:delete')"
|
||||
v-if="!isRootModule && canDeleteModule && hasObjectAuth('project:product:requirement:delete')"
|
||||
title="确定删除该模块吗?"
|
||||
@confirm="handleDelete"
|
||||
>
|
||||
|
||||
@@ -234,12 +234,12 @@ function buildRequirementActions(row: Api.Project.ProjectRequirement) {
|
||||
onClick: () => void;
|
||||
}> = [];
|
||||
|
||||
const hasUpdateAuth = hasObjectAuth('project:project:update');
|
||||
const hasDeleteAuth = hasObjectAuth('project:project:delete');
|
||||
const hasStatusAuth = hasObjectAuth('project:project:status');
|
||||
const hasSplitAuth = hasObjectAuth('project:project:split');
|
||||
const hasQueryAuth = hasObjectAuth('project:project:query');
|
||||
const hasReviewAuth = hasObjectAuth('project:project:review');
|
||||
const hasUpdateAuth = hasObjectAuth('project:project:requirement:update');
|
||||
const hasDeleteAuth = hasObjectAuth('project:project:requirement:delete');
|
||||
const hasStatusAuth = hasObjectAuth('project:project:requirement:status');
|
||||
const hasSplitAuth = hasObjectAuth('project:project:requirement:split');
|
||||
const hasQueryAuth = hasObjectAuth('project:project:requirement:query');
|
||||
const hasReviewAuth = hasObjectAuth('project:project:requirement:review');
|
||||
const lifecycleActions = getRowActions(row);
|
||||
|
||||
if (hasQueryAuth && canViewReviewRecord(row)) {
|
||||
@@ -892,7 +892,7 @@ Promise.all([loadStatusOptions()]);
|
||||
<TableHeaderOperation v-model:columns="columnChecks" :loading="loading" @refresh="reloadTable">
|
||||
<template #default>
|
||||
<ElButton
|
||||
v-auth="{ code: 'project:project:create', source: 'object' }"
|
||||
v-auth="{ code: 'project:project:requirement:create', source: 'object' }"
|
||||
plain
|
||||
type="primary"
|
||||
@click="openCreate"
|
||||
|
||||
@@ -45,12 +45,12 @@ const isRootModule = computed(() => props.module.id === props.rootModuleId);
|
||||
|
||||
const hasAnyActionPermission = computed(() => {
|
||||
if (isRootModule.value) {
|
||||
return hasObjectAuth('project:project:create');
|
||||
return hasObjectAuth('project:project:requirement:create');
|
||||
}
|
||||
return (
|
||||
hasObjectAuth('project:project:create') ||
|
||||
hasObjectAuth('project:project:update') ||
|
||||
hasObjectAuth('project:project:delete')
|
||||
hasObjectAuth('project:project:requirement:create') ||
|
||||
hasObjectAuth('project:project:requirement:update') ||
|
||||
hasObjectAuth('project:project:requirement:delete')
|
||||
);
|
||||
});
|
||||
|
||||
@@ -146,18 +146,22 @@ function handleToggle() {
|
||||
</div>
|
||||
|
||||
<div v-if="!isEditing && hasAnyActionPermission" class="module-tree-item__actions" @click.stop>
|
||||
<ElTooltip v-if="hasObjectAuth('project:project:create')" content="新增子模块" placement="top">
|
||||
<ElTooltip v-if="hasObjectAuth('project:project:requirement:create')" content="新增子模块" placement="top">
|
||||
<ElButton link type="primary" class="module-tree-item__action-btn" @click="emit('addChild', module)">
|
||||
<icon-mdi-plus class="text-14px" />
|
||||
</ElButton>
|
||||
</ElTooltip>
|
||||
<ElTooltip v-if="!isRootModule && hasObjectAuth('project:project:update')" content="编辑" placement="top">
|
||||
<ElTooltip
|
||||
v-if="!isRootModule && hasObjectAuth('project:project:requirement:update')"
|
||||
content="编辑"
|
||||
placement="top"
|
||||
>
|
||||
<ElButton link type="primary" class="module-tree-item__action-btn" @click="emit('edit', module)">
|
||||
<icon-mdi-pencil-outline class="text-14px" />
|
||||
</ElButton>
|
||||
</ElTooltip>
|
||||
<ElPopconfirm
|
||||
v-if="!isRootModule && canDeleteModule && hasObjectAuth('project:project:delete')"
|
||||
v-if="!isRootModule && canDeleteModule && hasObjectAuth('project:project:requirement:delete')"
|
||||
title="确定删除该模块吗?"
|
||||
@confirm="emit('delete', module)"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user