refactor: 完善部分权限指令

This commit is contained in:
2024-04-16 21:54:27 +08:00
parent 8f4e7e8f59
commit 66c4526aac
7 changed files with 82 additions and 51 deletions

View File

@@ -31,12 +31,12 @@
<a-button @click="reset">重置</a-button>
</template>
<template #custom-right>
<a-button type="primary" @click="onAdd">
<a-button v-permission="['system:dept:add']" type="primary" @click="onAdd">
<template #icon><icon-plus /></template>
<span>新增</span>
</a-button>
<a-tooltip content="导出">
<a-button @click="onExport">
<a-button v-permission="['system:dept:export']" @click="onExport">
<template #icon>
<icon-download />
</template>
@@ -52,11 +52,8 @@
</template>
<template #action="{ record }">
<a-space>
<template #split>
<a-divider direction="vertical" :margin="0" />
</template>
<a-link @click="onUpdate(record)">修改</a-link>
<a-link @click="onAdd(record.id)">新增</a-link>
<a-link v-permission="['system:dept:update']" @click="onUpdate(record)">修改</a-link>
<a-link v-permission="['system:dept:add']" @click="onAdd(record.id)">新增</a-link>
<a-popconfirm
type="warning"
content="是否确定删除该条数据?"
@@ -64,6 +61,7 @@
@ok="onDelete(record)"
>
<a-link
v-permission="['system:dept:delete']"
status="danger"
:title="record.isSystem ? '系统内置数据不能删除' : undefined"
:disabled="record.disabled"
@@ -89,6 +87,7 @@ import type { TableInstanceColumns } from '@/components/GiTable/type'
import { DisEnableStatusList } from '@/constant/common'
import { useDownload } from '@/hooks'
import { isMobile } from '@/utils'
import has from '@/utils/has'
defineOptions({ name: 'Dept' })
@@ -98,11 +97,18 @@ const columns: TableInstanceColumns[] = [
{ title: '排序', dataIndex: 'sort', align: 'center', show: false },
{ title: '系统内置', slotName: 'isSystem', align: 'center', show: false },
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 180, align: 'center', fixed: !isMobile() ? 'right' : undefined }
{
title: '操作',
slotName: 'action',
width: 180,
align: 'center',
fixed: !isMobile() ? 'right' : undefined,
show: has.hasPermOr(['system:dept:update', 'system:dept:delete', 'system:dept:add'])
}
]
const queryForm = reactive({

View File

@@ -13,7 +13,7 @@
@refresh="search"
>
<template #custom-left>
<a-button type="primary" @click="onAdd">
<a-button v-permission="['system:dict:add']" type="primary" @click="onAdd">
<template #icon><icon-plus /></template>
<span>新增</span>
</a-button>
@@ -30,12 +30,10 @@
</template>
<template #action="{ record }">
<a-space>
<template #split>
<a-divider direction="vertical" :margin="0" />
</template>
<a-link @click="onViewDictItem(record)">管理</a-link>
<a-link @click="onUpdate(record)">修改</a-link>
<a-link v-permission="['system:dict:update']" @click="onUpdate(record)">修改</a-link>
<a-link
v-permission="['system:dict:delete']"
status="danger"
:title="record.isSystem ? '系统内置数据不能删除' : '删除'"
:disabled="record.disabled"
@@ -60,6 +58,7 @@ import DictItemModal from '@/views/system/dict/item/index.vue'
import type { TableInstanceColumns } from '@/components/GiTable/type'
import { useTable } from '@/hooks'
import { isMobile } from '@/utils'
import has from '@/utils/has'
defineOptions({ name: 'Dict' })
@@ -74,11 +73,18 @@ const columns: TableInstanceColumns[] = [
{ title: '编码', dataIndex: 'code', width: 170, ellipsis: true, tooltip: true },
{ title: '系统内置', slotName: 'isSystem', align: 'center', show: false },
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 180, align: 'center', fixed: !isMobile() ? 'right' : undefined }
{
title: '操作',
slotName: 'action',
width: 180,
align: 'center',
fixed: !isMobile() ? 'right' : undefined,
show: has.hasPermOr(['system:dict:update', 'system:dict:delete'])
}
]
const queryForm = reactive({

View File

@@ -83,15 +83,15 @@ const columns: TableInstanceColumns[] = [
dataIndex: 'sort',
width: 90,
align: 'center',
show: false,
sortable: {
sortDirections: ['ascend', 'descend']
}
},
show: false
},
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 130, align: 'center', fixed: !isMobile() ? 'right' : undefined }
]

View File

@@ -31,7 +31,7 @@
<a-button @click="reset">重置</a-button>
</template>
<template #custom-right>
<a-button type="primary" @click="onAdd">
<a-button v-permission="['system:menu:add']" type="primary" @click="onAdd">
<template #icon><icon-plus /></template>
<span>新增</span>
</a-button>
@@ -70,18 +70,17 @@
</template>
<template #action="{ record }">
<a-space>
<template #split>
<a-divider direction="vertical" :margin="0" />
</template>
<a-link @click="onUpdate(record)">修改</a-link>
<a-link v-if="[1, 2].includes(record.type)" @click="onAdd(record.id)">新增</a-link>
<a-link v-permission="['system:menu:update']" @click="onUpdate(record)">修改</a-link>
<a-link v-if="[1, 2].includes(record.type)" v-permission="['system:menu:add']" @click="onAdd(record.id)">
新增
</a-link>
<a-popconfirm
type="warning"
content="是否确定删除该条数据?"
:ok-button-props="{ status: 'danger' }"
@ok="onDelete(record)"
>
<a-link status="danger">删除</a-link>
<a-link v-permission="['system:menu:delete']" status="danger">删除</a-link>
</a-popconfirm>
</a-space>
</template>
@@ -100,6 +99,7 @@ import type GiTable from '@/components/GiTable/index.vue'
import type { TableInstanceColumns } from '@/components/GiTable/type'
import { DisEnableStatusList } from '@/constant/common'
import { isMobile } from '@/utils'
import has from '@/utils/has'
defineOptions({ name: 'Menu' })
@@ -115,11 +115,18 @@ const columns: TableInstanceColumns[] = [
{ title: '外链', slotName: 'isExternal', align: 'center' },
{ title: '隐藏', slotName: 'isHidden', align: 'center' },
{ title: '缓存', slotName: 'isCache', align: 'center' },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 180, align: 'center', fixed: !isMobile() ? 'right' : undefined }
{
title: '操作',
slotName: 'action',
width: 180,
align: 'center',
fixed: !isMobile() ? 'right' : undefined,
show: has.hasPermOr(['system:menu:update', 'system:menu:delete', 'system:menu:add'])
}
]
const queryForm = reactive({

View File

@@ -26,7 +26,7 @@
<a-button @click="reset">重置</a-button>
</template>
<template #custom-right>
<a-button type="primary" @click="onAdd">
<a-button v-permission="['system:role:add']" type="primary" @click="onAdd">
<template #icon><icon-plus /></template>
<span>新增</span>
</a-button>
@@ -46,11 +46,9 @@
</template>
<template #action="{ record }">
<a-space>
<template #split>
<a-divider direction="vertical" :margin="0" />
</template>
<a-link @click="onUpdate(record)">修改</a-link>
<a-link v-permission="['system:role:update']" @click="onUpdate(record)">修改</a-link>
<a-link
v-permission="['system:role:delete']"
status="danger"
:title="record.isSystem ? '系统内置数据不能删除' : undefined"
:disabled="record.disabled"
@@ -77,6 +75,7 @@ import { useTable } from '@/hooks'
import { useDict } from '@/hooks/app'
import { isMobile } from '@/utils'
import { DisEnableStatusList } from '@/constant/common'
import has from '@/utils/has'
defineOptions({ name: 'Role' })
@@ -96,11 +95,18 @@ const columns: TableInstanceColumns[] = [
{ title: '排序', dataIndex: 'sort', align: 'center', show: false },
{ title: '系统内置', slotName: 'isSystem', align: 'center', show: false },
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 200, align: 'center', fixed: !isMobile() ? 'right' : undefined }
{
title: '操作',
slotName: 'action',
width: 200,
align: 'center',
fixed: !isMobile() ? 'right' : undefined,
show: has.hasPermOr(['system:role:update', 'system:role:delete'])
}
]
const queryForm = reactive({

View File

@@ -96,9 +96,9 @@ const columns: TableInstanceColumns[] = [
{ title: '桶名称', dataIndex: 'bucketName', ellipsis: true, tooltip: true },
{ title: '域名', dataIndex: 'domain', ellipsis: true, tooltip: true },
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{
title: '操作',

View File

@@ -37,12 +37,12 @@
<a-button @click="reset">重置</a-button>
</template>
<template #custom-right>
<a-button type="primary" @click="onAdd">
<a-button v-permission="['system:user:add']" type="primary" @click="onAdd">
<template #icon><icon-plus /></template>
<span>新增</span>
</a-button>
<a-tooltip content="导出">
<a-button @click="onExport">
<a-button v-permission="['system:user:export']" @click="onExport">
<template #icon>
<icon-download />
</template>
@@ -69,11 +69,9 @@
</template>
<template #action="{ record }">
<a-space>
<template #split>
<a-divider direction="vertical" :margin="0" />
</template>
<a-link @click="onUpdate(record)">修改</a-link>
<a-link v-permission="['system:user:update']" @click="onUpdate(record)">修改</a-link>
<a-link
v-permission="['system:user:delete']"
status="danger"
:title="record.isSystem ? '系统内置数据不能删除' : '删除'"
:disabled="record.disabled"
@@ -111,6 +109,7 @@ import { useTable, useDownload } from '@/hooks'
import { useDept } from '@/hooks/app'
import { isMobile } from '@/utils'
import getAvatar from '@/utils/avatar'
import has from '@/utils/has'
import { DisEnableStatusList } from '@/constant/common'
defineOptions({ name: 'User' })
@@ -139,11 +138,18 @@ const columns: TableInstanceColumns[] = [
{ title: '所属部门', dataIndex: 'deptName', ellipsis: true, tooltip: true },
{ title: '系统内置', slotName: 'isSystem', width: 100, align: 'center', show: false },
{ title: '描述', dataIndex: 'description', ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', show: false, ellipsis: true, tooltip: true },
{ title: '创建人', dataIndex: 'createUserString', ellipsis: true, tooltip: true, show: false },
{ title: '创建时间', dataIndex: 'createTime', width: 180 },
{ title: '修改人', dataIndex: 'updateUserString', show: false, ellipsis: true, tooltip: true },
{ title: '修改人', dataIndex: 'updateUserString', ellipsis: true, tooltip: true, show: false },
{ title: '修改时间', dataIndex: 'updateTime', width: 180, show: false },
{ title: '操作', slotName: 'action', width: 200, align: 'center', fixed: !isMobile() ? 'right' : undefined }
{
title: '操作',
slotName: 'action',
width: 200,
align: 'center',
fixed: !isMobile() ? 'right' : undefined,
show: has.hasPermOr(['system:user:update', 'system:user:delete', 'system:user:resetPwd'])
}
]
const queryForm = reactive({