refactor: delete workspace add warning message
This commit is contained in:
parent
0b64e92a33
commit
abf8c6a62e
@ -6,27 +6,31 @@
|
|||||||
<div class="workspace-left border-r p-16">
|
<div class="workspace-left border-r p-16">
|
||||||
<div class="workspace-left_title">
|
<div class="workspace-left_title">
|
||||||
<h4 class="medium">{{ $t('views.workspace.list') }}</h4>
|
<h4 class="medium">{{ $t('views.workspace.list') }}</h4>
|
||||||
<el-tooltip effect="dark" :content="`${$t('common.create')}${$t('views.workspace.title')}`" placement="top">
|
<el-tooltip effect="dark"
|
||||||
|
:content="`${$t('common.create')}${$t('views.workspace.title')}`"
|
||||||
|
placement="top">
|
||||||
<el-button type="primary" text @click="createOrUpdateWorkspace()"
|
<el-button type="primary" text @click="createOrUpdateWorkspace()"
|
||||||
v-hasPermission="[RoleConst.ADMIN, PermissionConst.WORKSPACE_CREATE]"
|
v-hasPermission="[RoleConst.ADMIN, PermissionConst.WORKSPACE_CREATE]"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-copy"></AppIcon>
|
<AppIcon iconName="app-copy"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-8">
|
<div class="p-8">
|
||||||
<el-input v-model="filterText" :placeholder="$t('common.search')" prefix-icon="Search" clearable />
|
<el-input v-model="filterText" :placeholder="$t('common.search')" prefix-icon="Search"
|
||||||
|
clearable/>
|
||||||
</div>
|
</div>
|
||||||
<div class="list-height-left">
|
<div class="list-height-left">
|
||||||
<el-scrollbar v-loading="loading">
|
<el-scrollbar v-loading="loading">
|
||||||
<common-list :data="filterList" @click="clickWorkspace" :default-active="currentWorkspace?.id">
|
<common-list :data="filterList" @click="clickWorkspace"
|
||||||
|
:default-active="currentWorkspace?.id">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<span class="ellipsis" style="max-width: initial;">{{ row.name }}</span>
|
<span class="ellipsis" style="max-width: initial;">{{ row.name }}</span>
|
||||||
<el-dropdown :teleported="false">
|
<el-dropdown :teleported="false">
|
||||||
<el-button text>
|
<el-button text>
|
||||||
<el-icon class="color-secondary">
|
<el-icon class="color-secondary">
|
||||||
<MoreFilled />
|
<MoreFilled/>
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
@ -37,7 +41,8 @@
|
|||||||
$t('common.rename')
|
$t('common.rename')
|
||||||
}}
|
}}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item @click.stop="deleteWorkspace(row)" class="border-t p-8" v-if ="row.id !== 'default'">
|
<el-dropdown-item @click.stop="deleteWorkspace(row)" class="border-t p-8"
|
||||||
|
v-if="row.id !== 'default'">
|
||||||
<AppIcon iconName="app-copy"></AppIcon>
|
<AppIcon iconName="app-copy"></AppIcon>
|
||||||
{{
|
{{
|
||||||
$t('common.delete')
|
$t('common.delete')
|
||||||
@ -60,31 +65,32 @@
|
|||||||
<div class="workspace-right" v-loading="loading">
|
<div class="workspace-right" v-loading="loading">
|
||||||
<div class="flex align-center" style="margin-bottom: 20px;">
|
<div class="flex align-center" style="margin-bottom: 20px;">
|
||||||
<h4 class="medium">{{ currentWorkspace?.name }}</h4>
|
<h4 class="medium">{{ currentWorkspace?.name }}</h4>
|
||||||
<el-divider direction="vertical" class="mr-8 ml-8" />
|
<el-divider direction="vertical" class="mr-8 ml-8"/>
|
||||||
<AppIcon iconName="app-wordspace" style="font-size: 16px" class="color-input-placeholder"></AppIcon>
|
<AppIcon iconName="app-wordspace" style="font-size: 16px"
|
||||||
|
class="color-input-placeholder"></AppIcon>
|
||||||
<span class="color-input-placeholder ml-4">
|
<span class="color-input-placeholder ml-4">
|
||||||
{{ currentWorkspace?.user_count }}
|
{{ currentWorkspace?.user_count }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<Member :currentWorkspace="currentWorkspace" />
|
<Member :currentWorkspace="currentWorkspace"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<CreateOrUpdateWorkspaceDialog ref="createOrUpdateWorkspaceDialogRef" @refresh="refresh" />
|
<CreateOrUpdateWorkspaceDialog ref="createOrUpdateWorkspaceDialogRef" @refresh="refresh"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, watch } from 'vue'
|
import {onMounted, ref, watch} from 'vue'
|
||||||
import WorkspaceApi from '@/api/workspace/workspace'
|
import WorkspaceApi from '@/api/workspace/workspace'
|
||||||
import { t } from '@/locales'
|
import {t} from '@/locales'
|
||||||
import Member from './component/Member.vue'
|
import Member from './component/Member.vue'
|
||||||
import CreateOrUpdateWorkspaceDialog from './component/CreateOrUpdateWorkspaceDialog.vue'
|
import CreateOrUpdateWorkspaceDialog from './component/CreateOrUpdateWorkspaceDialog.vue'
|
||||||
import type { WorkspaceItem } from '@/api/type/workspace'
|
import type {WorkspaceItem} from '@/api/type/workspace'
|
||||||
import { MsgSuccess, MsgConfirm } from '@/utils/message'
|
import {MsgSuccess, MsgConfirm} from '@/utils/message'
|
||||||
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
import {PermissionConst, RoleConst} from '@/utils/permission/data'
|
||||||
import { hasPermission } from '@/utils/permission/index'
|
import {hasPermission} from '@/utils/permission/index'
|
||||||
|
|
||||||
const filterText = ref('')
|
const filterText = ref('')
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
@ -146,7 +152,8 @@ async function check(id: string) {
|
|||||||
|
|
||||||
async function deleteWorkspace(item: WorkspaceItem) {
|
async function deleteWorkspace(item: WorkspaceItem) {
|
||||||
// 判断是否能删除
|
// 判断是否能删除
|
||||||
const canDelete = await check(item.id as string);
|
const res = await check(item.id as string);
|
||||||
|
const canDelete = res ? res.data.can_delete : true;
|
||||||
if (canDelete) {
|
if (canDelete) {
|
||||||
MsgConfirm(
|
MsgConfirm(
|
||||||
`${t('views.workspace.delete.confirmTitle')}${item.name} ?`,
|
`${t('views.workspace.delete.confirmTitle')}${item.name} ?`,
|
||||||
@ -166,7 +173,7 @@ async function deleteWorkspace(item: WorkspaceItem) {
|
|||||||
} else {
|
} else {
|
||||||
MsgConfirm(
|
MsgConfirm(
|
||||||
`${t('views.workspace.delete.confirmTitle')}${item.name} ?`,
|
`${t('views.workspace.delete.confirmTitle')}${item.name} ?`,
|
||||||
t('views.workspace.delete.confirmContentNotDelete'),
|
res ? res.data.message : t('views.workspace.delete.confirmContent'),
|
||||||
{
|
{
|
||||||
showConfirmButton: false,
|
showConfirmButton: false,
|
||||||
cancelButtonText: t('common.close'),
|
cancelButtonText: t('common.close'),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user