refactor(所有页面): ♻️ 所有页面的按钮权限配置

This commit is contained in:
猿小天
2023-04-10 16:45:49 +08:00
committed by H0nGzA1
parent 175b151f7f
commit 61ae6e8eb3
5 changed files with 48 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
import * as api from './api'; import * as api from './api';
import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud';
import { dictionary } from '/@/utils/dictionary'; import { dictionary } from '/@/utils/dictionary';
import { nextTick, ref } from 'vue'; import {inject, nextTick, ref} from 'vue';
import { successMessage } from '/@/utils/message'; import { successMessage } from '/@/utils/message';
export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
@@ -18,6 +18,11 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp
const addRequest = async ({ form }: AddReq) => { const addRequest = async ({ form }: AddReq) => {
return await api.AddObj(form); return await api.AddObj(form);
}; };
//权限判定
const hasPermissions = inject("$hasPermissions")
return { return {
crudOptions: { crudOptions: {
request: { request: {
@@ -27,6 +32,7 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp
delRequest, delRequest,
}, },
rowHandle: { rowHandle: {
fixed:'right',
width: 200, width: 200,
buttons: { buttons: {
view: { view: {
@@ -35,14 +41,17 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp
edit: { edit: {
iconRight: 'Edit', iconRight: 'Edit',
type: 'text', type: 'text',
show:hasPermissions('dictonary:Update')
}, },
remove: { remove: {
iconRight: 'Delete', iconRight: 'Delete',
type: 'text', type: 'text',
show:hasPermissions('dictonary:Delete')
}, },
custom: { custom: {
text: '字典配置', text: '字典配置',
type: 'text', type: 'text',
show:hasPermissions('dictonary:Update'),
tooltip: { tooltip: {
placement: 'top', placement: 'top',
content: '字典配置', content: '字典配置',

View File

@@ -1,7 +1,7 @@
import * as api from './api'; import * as api from './api';
import { dict, useCompute, PageQuery, AddReq, DelReq, EditReq, CrudExpose, CrudOptions } from '@fast-crud/fast-crud'; import { dict, useCompute, PageQuery, AddReq, DelReq, EditReq, CrudExpose, CrudOptions } from '@fast-crud/fast-crud';
import tableSelector from '/@/components/tableSelector/index.vue'; import tableSelector from '/@/components/tableSelector/index.vue';
import { shallowRef, computed, ref } from 'vue'; import {shallowRef, computed, ref, inject} from 'vue';
import manyToMany from '/@/components/manyToMany/index.vue'; import manyToMany from '/@/components/manyToMany/index.vue';
const { compute } = useCompute(); const { compute } = useCompute();
@@ -36,6 +36,9 @@ export const createCrudOptions = function ({ crudExpose, tabActivted }: { crudEx
return tabActivted.value === 'receive'; return tabActivted.value === 'receive';
}); });
//权限判定
const hasPermissions = inject("$hasPermissions")
return { return {
crudOptions: { crudOptions: {
request: { request: {
@@ -45,11 +48,17 @@ export const createCrudOptions = function ({ crudExpose, tabActivted }: { crudEx
delRequest, delRequest,
}, },
rowHandle: { rowHandle: {
fixed:'right',
width:150,
buttons: { buttons: {
edit: { edit: {
show: false, show: false,
}, },
view: { view: {
text:"查看",
type:'text',
iconRight:'View',
show:hasPermissions("messageCenter:Search"),
click({ index, row }) { click({ index, row }) {
crudExpose.openView({ index, row }); crudExpose.openView({ index, row });
if (tabActivted.value === 'receive') { if (tabActivted.value === 'receive') {
@@ -58,6 +67,11 @@ export const createCrudOptions = function ({ crudExpose, tabActivted }: { crudEx
} }
}, },
}, },
remove: {
iconRight: 'Delete',
type: 'text',
show:hasPermissions('messageCenter:Delete')
},
}, },
}, },
columns: { columns: {

View File

@@ -3,6 +3,7 @@ import _ from 'lodash-es';
import * as api from './api'; import * as api from './api';
import { dictionary } from '/@/utils/dictionary'; import { dictionary } from '/@/utils/dictionary';
import { successMessage } from '../../../utils/message'; import { successMessage } from '../../../utils/message';
import {inject} from "vue";
interface CreateCrudOptionsTypes { interface CreateCrudOptionsTypes {
crudOptions: CrudOptions; crudOptions: CrudOptions;
} }
@@ -23,6 +24,9 @@ export const createCrudOptions = function ({ crudExpose, rolePermission }: { cru
return await api.AddObj(form); return await api.AddObj(form);
}; };
//权限判定
const hasPermissions = inject("$hasPermissions")
return { return {
crudOptions: { crudOptions: {
request: { request: {
@@ -42,17 +46,20 @@ export const createCrudOptions = function ({ crudExpose, rolePermission }: { cru
edit: { edit: {
iconRight: 'Edit', iconRight: 'Edit',
type: 'text', type: 'text',
show:hasPermissions('role:Update')
}, },
remove: { remove: {
iconRight: 'Delete', iconRight: 'Delete',
type: 'text', type: 'text',
show:hasPermissions('role:Delete')
}, },
custom: { custom: {
text: '权限配置', text: '权限配置',
type: 'text', type: 'text',
show:hasPermissions('role:Update'),
tooltip: { tooltip: {
placement: 'top', placement: 'top',
content: '删除', content: '权限配置',
}, },
click: (context: any): void => { click: (context: any): void => {
const { row } = context; const { row } = context;

View File

@@ -3,6 +3,7 @@ import { dict, PageQuery, AddReq, DelReq, EditReq, CrudExpose, CrudOptions, comp
import { request } from '/@/utils/service'; import { request } from '/@/utils/service';
import { dictionary } from '/@/utils/dictionary'; import { dictionary } from '/@/utils/dictionary';
import { successMessage } from '/@/utils/message'; import { successMessage } from '/@/utils/message';
import {inject} from "vue";
interface CreateCrudOptionsTypes { interface CreateCrudOptionsTypes {
crudOptions: CrudOptions; crudOptions: CrudOptions;
} }
@@ -21,6 +22,10 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp
const addRequest = async ({ form }: AddReq) => { const addRequest = async ({ form }: AddReq) => {
return await api.AddObj(form); return await api.AddObj(form);
}; };
//权限判定
const hasPermissions = inject("$hasPermissions")
return { return {
crudOptions: { crudOptions: {
request: { request: {
@@ -40,10 +45,12 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp
edit: { edit: {
iconRight: 'Edit', iconRight: 'Edit',
type: 'text', type: 'text',
show:hasPermissions('user:Update')
}, },
remove: { remove: {
iconRight: 'Delete', iconRight: 'Delete',
type: 'text', type: 'text',
show:hasPermissions('user:Delete')
}, },
}, },
}, },

View File

@@ -3,6 +3,7 @@ import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOption
import { request } from '/@/utils/service'; import { request } from '/@/utils/service';
import { dictionary } from '/@/utils/dictionary'; import { dictionary } from '/@/utils/dictionary';
import { successMessage } from '/@/utils/message'; import { successMessage } from '/@/utils/message';
import {inject} from "vue";
export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const pageRequest = async (query: UserPageQuery) => { const pageRequest = async (query: UserPageQuery) => {
@@ -18,6 +19,10 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
const addRequest = async ({ form }: AddReq) => { const addRequest = async ({ form }: AddReq) => {
return await api.AddObj(form); return await api.AddObj(form);
}; };
//权限判定
const hasPermissions = inject("$hasPermissions")
return { return {
crudOptions: { crudOptions: {
request: { request: {
@@ -29,7 +34,7 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
rowHandle: { rowHandle: {
//固定右侧 //固定右侧
fixed: 'right', fixed: 'right',
width: 200, width: 150,
buttons: { buttons: {
view: { view: {
show: false, show: false,
@@ -37,10 +42,12 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
edit: { edit: {
iconRight: 'Edit', iconRight: 'Edit',
type: 'text', type: 'text',
show:hasPermissions("api_white_list:Update")
}, },
remove: { remove: {
iconRight: 'Delete', iconRight: 'Delete',
type: 'text', type: 'text',
show:hasPermissions("api_white_list:Delete")
}, },
}, },
}, },