fix: 🧩 系统配置权限按钮显示完成

This commit is contained in:
bunny 2024-11-05 18:24:33 +08:00
parent 397dbcfdff
commit 7cc97f162a
22 changed files with 220 additions and 116 deletions

View File

@ -12,32 +12,26 @@ import { selectUserinfo } from '@/components/Table/Userinfo/columns';
import { $t } from '@/plugins/i18n'; import { $t } from '@/plugins/i18n';
import { useEmailTemplateStore } from '@/store/configuration/emailTemplate.ts'; import { useEmailTemplateStore } from '@/store/configuration/emailTemplate.ts';
import { useRenderIcon } from '@/components/CommonIcon/src/hooks'; import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
import { auth } from '@/views/configuration/emailTemplate/utils/auth';
import { hasAuth } from '@/router/utils';
const tableRef = ref(); const tableRef = ref();
const formRef = ref(); const formRef = ref();
const emailTemplateStore = useEmailTemplateStore(); const emailTemplateStore = useEmailTemplateStore();
/** /** 当前页改变时 */
* * 当前页改变时
*/
const onCurrentPageChange = async (value: number) => { const onCurrentPageChange = async (value: number) => {
emailTemplateStore.pagination.currentPage = value; emailTemplateStore.pagination.currentPage = value;
await onSearch(); await onSearch();
}; };
/** /** 当分页发生变化 */
* * 当分页发生变化
* @param value
*/
const onPageSizeChange = async (value: number) => { const onPageSizeChange = async (value: number) => {
emailTemplateStore.pagination.pageSize = value; emailTemplateStore.pagination.pageSize = value;
await onSearch(); await onSearch();
}; };
/** /** 重置表单 */
* 重置表单
* @param formEl
*/
const resetForm = async formEl => { const resetForm = async formEl => {
if (!formEl) return; if (!formEl) return;
formEl.resetFields(); formEl.resetFields();
@ -57,6 +51,7 @@ onMounted(() => {
<template> <template>
<div class="main"> <div class="main">
<Auth :value="auth.search">
<el-form ref="formRef" :inline="true" :model="emailTemplateStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"> <el-form ref="formRef" :inline="true" :model="emailTemplateStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto">
<el-form-item :label="$t('emailTemplate_templateName')" prop="templateName"> <el-form-item :label="$t('emailTemplate_templateName')" prop="templateName">
<el-input v-model="emailTemplateStore.form.templateName" :placeholder="`${$t('input')}${$t('emailTemplate_templateName')}`" class="!w-[180px]" clearable /> <el-input v-model="emailTemplateStore.form.templateName" :placeholder="`${$t('input')}${$t('emailTemplate_templateName')}`" class="!w-[180px]" clearable />
@ -75,13 +70,16 @@ onMounted(() => {
<el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button> <el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</Auth>
<PureTableBar :columns="columns" :title="$t('emailTemplate')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch"> <PureTableBar :columns="columns" :title="$t('emailTemplate')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
<template #buttons> <template #buttons>
<el-button :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd"> {{ $t('addNew') }}</el-button> <el-button v-if="hasAuth(auth.add)" :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd">
{{ $t('addNew') }}
</el-button>
<!-- 批量删除按钮 --> <!-- 批量删除按钮 -->
<el-button :disabled="!(selectRows.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch"> <el-button v-if="hasAuth(auth.deleted)" :disabled="!(selectRows.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch">
{{ $t('deleteBatches') }} {{ $t('deleteBatches') }}
</el-button> </el-button>
</template> </template>
@ -124,8 +122,8 @@ onMounted(() => {
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button> <el-button v-if="hasAuth(auth.update)" :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
<el-popconfirm :title="`${$t('delete')} ${row.templateName}?`" @confirm="onDelete(row)"> <el-popconfirm v-if="hasAuth(auth.deleted)" :title="`${$t('delete')} ${row.templateName}?`" @confirm="onDelete(row)">
<template #reference> <template #reference>
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary"> <el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
{{ $t('delete') }} {{ $t('delete') }}

View File

@ -0,0 +1,10 @@
export const auth = {
// 分页查询
search: ['emailTemplate::getEmailTemplateList'],
// 添加操作
add: ['emailTemplate::addEmailTemplate'],
// 更新操作
update: ['emailTemplate::updateEmailTemplate'],
// 删除操作
deleted: ['emailTemplate::deleteEmailTemplate'],
};

View File

@ -14,6 +14,8 @@ import { useEmailUsersStore } from '@/store/configuration/emailUsers';
import { useRenderIcon } from '@/components/CommonIcon/src/hooks'; import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
import { usePublicHooks } from '@/views/hooks'; import { usePublicHooks } from '@/views/hooks';
import { FormInstance } from 'element-plus'; import { FormInstance } from 'element-plus';
import { auth } from '@/views/configuration/emailUsers/utils/auth';
import { hasAuth } from '@/router/utils';
const tableRef = ref(); const tableRef = ref();
const formRef = ref(); const formRef = ref();
@ -21,37 +23,26 @@ const emailUsersStore = useEmailUsersStore();
// //
const { switchStyle } = usePublicHooks(); const { switchStyle } = usePublicHooks();
/** /** 当前页改变时 */
* * 当前页改变时
*/
const onCurrentPageChange = async (value: number) => { const onCurrentPageChange = async (value: number) => {
emailUsersStore.pagination.currentPage = value; emailUsersStore.pagination.currentPage = value;
await onSearch(); await onSearch();
}; };
/** /** 当分页发生变化 */
* * 当分页发生变化
* @param value
*/
const onPageSizeChange = async (value: number) => { const onPageSizeChange = async (value: number) => {
emailUsersStore.pagination.pageSize = value; emailUsersStore.pagination.pageSize = value;
await onSearch(); await onSearch();
}; };
/** /** 重置表单 */
* 重置表单
* @param formEl
*/
const resetForm = async (formEl: FormInstance | undefined) => { const resetForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return; if (!formEl) return;
formEl.resetFields(); formEl.resetFields();
await onSearch(); await onSearch();
}; };
/** /** 选择多行 */
* * 选择多行
* @param rows
*/
const onSelectionChange = (rows: Array<any>) => { const onSelectionChange = (rows: Array<any>) => {
deleteIds.value = rows.map((row: any) => row.id); deleteIds.value = rows.map((row: any) => row.id);
}; };
@ -63,6 +54,7 @@ onMounted(() => {
<template> <template>
<div class="main"> <div class="main">
<Auth :value="auth.search">
<el-form ref="formRef" :inline="true" :model="emailUsersStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"> <el-form ref="formRef" :inline="true" :model="emailUsersStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto">
<!-- 邮箱--> <!-- 邮箱-->
<el-form-item :label="$t('emailUsers_email')" prop="email"> <el-form-item :label="$t('emailUsers_email')" prop="email">
@ -89,13 +81,16 @@ onMounted(() => {
<el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button> <el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</Auth>
<PureTableBar :columns="columns" :title="$t('email_user_send_config')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch"> <PureTableBar :columns="columns" :title="$t('email_user_send_config')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
<template #buttons> <template #buttons>
<el-button :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd"> {{ $t('addNew') }}</el-button> <el-button v-if="hasAuth(auth.add)" :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd">
{{ $t('addNew') }}
</el-button>
<!-- 批量删除按钮 --> <!-- 批量删除按钮 -->
<el-button :disabled="!(deleteIds.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch"> <el-button v-if="hasAuth(auth.deleted)" :disabled="!(deleteIds.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch">
{{ $t('deleteBatches') }} {{ $t('deleteBatches') }}
</el-button> </el-button>
</template> </template>
@ -148,8 +143,8 @@ onMounted(() => {
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button> <el-button v-if="hasAuth(auth.update)" :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
<el-popconfirm :title="`${$t('delete')}${row.email}?`" @confirm="onDelete(row)"> <el-popconfirm v-if="hasAuth(auth.deleted)" :title="`${$t('delete')}${row.email}?`" @confirm="onDelete(row)">
<template #reference> <template #reference>
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary"> <el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
{{ $t('delete') }} {{ $t('delete') }}

View File

@ -0,0 +1,10 @@
export const auth = {
// 分页查询
search: ['emailUsers::getEmailUsersList'],
// 添加操作
add: ['emailUsers::addEmailUsers'],
// 更新操作
update: ['emailUsers::updateEmailUsers'],
// 删除操作
deleted: ['emailUsers::deleteEmailUsers'],
};

View File

@ -13,40 +13,31 @@ import { selectUserinfo } from '@/components/Table/Userinfo/columns';
import { $t } from '@/plugins/i18n'; import { $t } from '@/plugins/i18n';
import { useMenuIconStore } from '@/store/configuration/menuIcon'; import { useMenuIconStore } from '@/store/configuration/menuIcon';
import MenuIconSelectIconName from '@/views/configuration/menuIcon/menu-icon-select-icon-name.vue'; import MenuIconSelectIconName from '@/views/configuration/menuIcon/menu-icon-select-icon-name.vue';
import { auth } from '@/views/configuration/menuIcon/utils/auth';
import { hasAuth } from '@/router/utils';
const tableRef = ref(); const tableRef = ref();
const formRef = ref(); const formRef = ref();
const menuIconStore = useMenuIconStore(); const menuIconStore = useMenuIconStore();
/** /** 当前页改变时 */
* * 当前页改变时
*/
const onCurrentPageChange = async (value: number) => { const onCurrentPageChange = async (value: number) => {
menuIconStore.pagination.currentPage = value; menuIconStore.pagination.currentPage = value;
await onSearch(); await onSearch();
}; };
/** /** 当分页发生变化 */
* * 当分页发生变化
* @param value
*/
const onPageSizeChange = async (value: number) => { const onPageSizeChange = async (value: number) => {
menuIconStore.pagination.pageSize = value; menuIconStore.pagination.pageSize = value;
await onSearch(); await onSearch();
}; };
/** /** 选择多行 */
* * 选择多行
* @param rows
*/
const onSelectionChange = (rows: Array<any>) => { const onSelectionChange = (rows: Array<any>) => {
deleteIds.value = rows.map((row: any) => row.id); deleteIds.value = rows.map((row: any) => row.id);
}; };
/** /** 重置表单 */
* 重置表单
* @param formEl
*/
const resetForm = async formEl => { const resetForm = async formEl => {
if (!formEl) return; if (!formEl) return;
formEl.resetFields(); formEl.resetFields();
@ -60,6 +51,7 @@ onMounted(() => {
<template> <template>
<div class="main"> <div class="main">
<Auth :value="auth.search">
<el-form ref="formRef" :inline="true" :model="menuIconStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"> <el-form ref="formRef" :inline="true" :model="menuIconStore.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto">
<el-form-item :label="$t('menuIcon_iconCode')" prop="iconCode"> <el-form-item :label="$t('menuIcon_iconCode')" prop="iconCode">
<el-input v-model="menuIconStore.form.iconCode" :placeholder="`${$t('input')} ${$t('iconCode')}`" class="!w-[180px]" clearable /> <el-input v-model="menuIconStore.form.iconCode" :placeholder="`${$t('input')} ${$t('iconCode')}`" class="!w-[180px]" clearable />
@ -72,13 +64,16 @@ onMounted(() => {
<el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button> <el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</Auth>
<PureTableBar :columns="columns" :title="$t('menuIcon')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch"> <PureTableBar :columns="columns" :title="$t('menuIcon')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
<template #buttons> <template #buttons>
<el-button :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd"> {{ $t('addNew') }}</el-button> <el-button v-if="hasAuth(auth.add)" :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd">
{{ $t('addNew') }}
</el-button>
<!-- 批量删除按钮 --> <!-- 批量删除按钮 -->
<el-button :disabled="!(deleteIds.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch"> <el-button v-if="hasAuth(auth.deleted)" :disabled="!(deleteIds.length > 0)" :icon="useRenderIcon(Delete)" type="danger" @click="onDeleteBatch">
{{ $t('deleteBatches') }} {{ $t('deleteBatches') }}
</el-button> </el-button>
</template> </template>
@ -123,8 +118,8 @@ onMounted(() => {
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button> <el-button v-if="hasAuth(auth.update)" :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
<el-popconfirm :title="`${$t('delete')}${row.iconName}?`" @confirm="onDelete(row)"> <el-popconfirm v-if="hasAuth(auth.deleted)" :title="`${$t('delete')}${row.iconName}?`" @confirm="onDelete(row)">
<template #reference> <template #reference>
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary"> <el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
{{ $t('delete') }} {{ $t('delete') }}

View File

@ -0,0 +1,10 @@
export const auth = {
// 分页查询
search: ['menuIcon::getMenuIconList'],
// 添加操作
add: ['menuIcon::addMenuIcon'],
// 更新操作
update: ['menuIcon::updateMenuIcon'],
// 删除操作
deleted: ['menuIcon::deleteMenuIcon'],
};

View File

@ -7,6 +7,8 @@ import { form, onSearch, submitForm } from '@/views/configuration/webConifg/util
import { rules } from '@/views/configuration/webConifg/utils/columns'; import { rules } from '@/views/configuration/webConifg/utils/columns';
import { userI18nTypeStore } from '@/store/i18n/i18nType'; import { userI18nTypeStore } from '@/store/i18n/i18nType';
import { usePublicHooks } from '@/views/hooks'; import { usePublicHooks } from '@/views/hooks';
import { auth } from '@/views/configuration/webConifg/utils/auth';
import { hasAuth } from '@/router/utils';
const ruleFormRef = ref<FormInstance>(); const ruleFormRef = ref<FormInstance>();
const i18nTypeStore = userI18nTypeStore(); const i18nTypeStore = userI18nTypeStore();
@ -216,7 +218,7 @@ onMounted(() => {
</re-col> </re-col>
<!-- 提交内容 --> <!-- 提交内容 -->
<re-col :sm="24" :value="12" :xs="24"> <re-col v-if="hasAuth(auth.update)" :sm="24" :value="12" :xs="24">
<el-form-item> <el-form-item>
<el-button type="primary" @click="submitForm(ruleFormRef)"> {{ $t('modifyingConfiguration') }}</el-button> <el-button type="primary" @click="submitForm(ruleFormRef)"> {{ $t('modifyingConfiguration') }}</el-button>
</el-form-item> </el-form-item>
@ -224,5 +226,3 @@ onMounted(() => {
</el-row> </el-row>
</el-form> </el-form>
</template> </template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,4 @@
export const auth = {
// 更新操作
update: ['config::updateWebConfiguration'],
};

View File

@ -0,0 +1,10 @@
export const auth = {
// 分页查询
search: ['emailTemplate::getEmailTemplateList'],
// 添加操作
add: ['emailTemplate::addEmailTemplate'],
// 更新操作
update: ['emailTemplate::updateEmailTemplate'],
// 删除操作
deleted: ['emailTemplate::deleteEmailTemplate'],
};

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -0,0 +1,8 @@
// 分页查询
export const search = [];
// 添加操作
export const add = [];
// 更新操作
export const update = [];
// 删除操作
export const deleted = [];

View File

@ -7,8 +7,6 @@ export const auth = {
search: ['files::getFilesList'], search: ['files::getFilesList'],
// 删除操作 // 删除操作
deleted: ['files::deleteFiles'], deleted: ['files::deleteFiles'],
// 上传
upload: ['files::upload'],
// 下载文件 // 下载文件
downloadFilesByFileId: ['files::downloadFilesByFileId'], downloadFilesByFileId: ['files::downloadFilesByFileId'],
}; };

View File

@ -1,8 +1,6 @@
export const auth = { export const auth = {
// 更新操作 // 更新操作
update: ['router::updateMenu'], update: ['router::updateMenu'],
// 修改菜单排序
updateMenuByIdWithRank: ['router::updateMenuByIdWithRank'],
// 添加操作 // 添加操作
add: ['router::addMenu'], add: ['router::addMenu'],
// 分页查询 // 分页查询
@ -13,8 +11,6 @@ export const auth = {
assignRolesToRouter: ['routerRole::assignRolesToRouter'], assignRolesToRouter: ['routerRole::assignRolesToRouter'],
// 批量为菜单添加角色 // 批量为菜单添加角色
assignAddBatchRolesToRouter: ['routerRole::assignAddBatchRolesToRouter'], assignAddBatchRolesToRouter: ['routerRole::assignAddBatchRolesToRouter'],
// 根据菜单id获取所有角色
getRoleListByRouterId: ['routerRole::getRoleListByRouterId'],
// 清除选中菜单所有角色 // 清除选中菜单所有角色
clearAllRolesSelect: ['routerRole::clearAllRolesSelect'], clearAllRolesSelect: ['routerRole::clearAllRolesSelect'],
}; };

View File

@ -1,8 +1,6 @@
export const auth = { export const auth = {
// 分页查询 // 分页查询
search: ['power::getPowerList'], search: ['power::getPowerList'],
// 获取所有权限
getAllPowers: ['power::getAllPowers'],
// 添加操作 // 添加操作
add: ['power::addPower'], add: ['power::addPower'],
// 更新操作 // 更新操作