feat(系统设置): 用户组权限&组织项目权限补充
This commit is contained in:
parent
685e7891c0
commit
4de46b9122
|
@ -390,18 +390,14 @@
|
|||
};
|
||||
|
||||
// 初始化数据
|
||||
const initData = async (id: string, internal: boolean) => {
|
||||
const initData = async (id: string) => {
|
||||
try {
|
||||
let res: UserGroupAuthSetting[] = [];
|
||||
loading.value = true;
|
||||
if (systemType === AuthScopeEnum.SYSTEM) {
|
||||
res = await getGlobalUSetting(id);
|
||||
} else if (systemType === AuthScopeEnum.ORGANIZATION) {
|
||||
if (internal) {
|
||||
res = await getGlobalUSetting(id);
|
||||
} else {
|
||||
res = await getOrgUSetting(id);
|
||||
}
|
||||
} else {
|
||||
res = await getAuthByUserGroup(id);
|
||||
}
|
||||
|
@ -449,7 +445,7 @@
|
|||
});
|
||||
}
|
||||
Message.success(t('common.saveSuccess'));
|
||||
initData(props.current.id, props.current.internal);
|
||||
initData(props.current.id);
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(error);
|
||||
|
@ -459,13 +455,13 @@
|
|||
// 恢复默认值
|
||||
const handleReset = () => {
|
||||
if (props.current.id) {
|
||||
initData(props.current.id, props.current.internal);
|
||||
initData(props.current.id);
|
||||
}
|
||||
};
|
||||
|
||||
watchEffect(() => {
|
||||
if (props.current.id) {
|
||||
initData(props.current.id, props.current.internal);
|
||||
initData(props.current.id);
|
||||
}
|
||||
});
|
||||
defineExpose({
|
||||
|
|
|
@ -167,6 +167,7 @@
|
|||
</div>
|
||||
</MsMoreAction>
|
||||
<MsMoreAction
|
||||
v-permission="['ORGANIZATION_USER_ROLE:READ+UPDATE']"
|
||||
:list="orgMoreAction"
|
||||
@select="(value) => handleMoreAction(value, element.id, AuthScopeEnum.ORGANIZATION)"
|
||||
>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<template v-if="hasAnyPermission(props.updatePermission || [])" #quickCreate>
|
||||
<MsConfirmUserSelector :ok-loading="okLoading" v-bind="userSelectorProps" @confirm="handleAddMember" />
|
||||
</template>
|
||||
<template #action="{ record }">
|
||||
<template v-if="hasAnyPermission(props.updatePermission || [])" #action="{ record }">
|
||||
<MsRemoveButton
|
||||
:title="t('system.userGroup.removeName', { name: record.name })"
|
||||
:sub-title-tip="t('system.userGroup.removeTip')"
|
||||
|
|
|
@ -25,9 +25,13 @@
|
|||
<MsUserAdminDiv :is-admin="record.orgCreateUserIsAdmin" :name="record.createUser" />
|
||||
</template>
|
||||
<template #memberCount="{ record }">
|
||||
<span class="cursor-pointer text-[rgb(var(--primary-5))]" @click="showUserDrawer(record)">{{
|
||||
record.memberCount
|
||||
}}</span>
|
||||
<span
|
||||
v-if="hasAnyPermission(['ORGANIZATION_PROJECT:READ+UPDATE'])"
|
||||
class="cursor-pointer text-[rgb(var(--primary-5))]"
|
||||
@click="showUserDrawer(record)"
|
||||
>{{ record.memberCount }}</span
|
||||
>
|
||||
<span v-else>{{ record.memberCount }}</span>
|
||||
</template>
|
||||
<template #operation="{ record }">
|
||||
<template v-if="record.deleted">
|
||||
|
@ -103,6 +107,7 @@
|
|||
import { useI18n } from '@/hooks/useI18n';
|
||||
import useModal from '@/hooks/useModal';
|
||||
import { useAppStore, useTableStore } from '@/store';
|
||||
import { hasAnyPermission } from '@/utils/permission';
|
||||
|
||||
import { UserItem } from '@/models/setting/log';
|
||||
import { CreateOrUpdateSystemProjectParams, OrgProjectTableItem } from '@/models/setting/system/orgAndProject';
|
||||
|
@ -117,6 +122,13 @@
|
|||
const { openDeleteModal, openModal } = useModal();
|
||||
const appStore = useAppStore();
|
||||
const currentOrgId = computed(() => appStore.currentOrgId);
|
||||
const hasOperationPermission = computed(() =>
|
||||
hasAnyPermission([
|
||||
'ORGANIZATION_PROJECT:READ+RECOVER',
|
||||
'ORGANIZATION_PROJECT:READ+UPDATE',
|
||||
'ORGANIZATION_PROJECT:READ+DELETE',
|
||||
])
|
||||
);
|
||||
|
||||
const keyword = ref('');
|
||||
|
||||
|
@ -126,39 +138,13 @@
|
|||
dataIndex: 'num',
|
||||
width: 100,
|
||||
showTooltip: true,
|
||||
filterConfig: {
|
||||
multiple: false,
|
||||
options: [
|
||||
{
|
||||
label: t('common.all'),
|
||||
value: 'all',
|
||||
},
|
||||
{
|
||||
label: t('common.only'),
|
||||
value: 'only',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'system.organization.name',
|
||||
revokeDeletedSlot: 'revokeDelete',
|
||||
editType: ColumnEditTypeEnum.INPUT,
|
||||
editType: hasAnyPermission(['ORGANIZATION_PROJECT:READ+UPDATE']) ? ColumnEditTypeEnum.INPUT : undefined,
|
||||
dataIndex: 'name',
|
||||
showTooltip: true,
|
||||
filterConfig: {
|
||||
multiple: false,
|
||||
options: [
|
||||
{
|
||||
label: t('common.all'),
|
||||
value: 'all',
|
||||
},
|
||||
{
|
||||
label: t('common.only'),
|
||||
value: 'only',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'system.organization.member',
|
||||
|
@ -201,11 +187,11 @@
|
|||
},
|
||||
},
|
||||
{
|
||||
title: 'system.organization.operation',
|
||||
title: hasOperationPermission.value ? 'system.organization.operation' : '',
|
||||
slotName: 'operation',
|
||||
dataIndex: 'operation',
|
||||
fixed: 'right',
|
||||
width: 230,
|
||||
width: hasOperationPermission.value ? 230 : 50,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -20,10 +20,22 @@
|
|||
<MsUserAdminDiv :is-admin="record.projectCreateUserIsAdmin" :name="record.createUser" />
|
||||
</template>
|
||||
<template #memberCount="{ record }">
|
||||
<span class="primary-color" @click="showUserDrawer(record)">{{ record.memberCount }}</span>
|
||||
<span
|
||||
v-if="hasAnyPermission(['SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE'])"
|
||||
class="primary-color"
|
||||
@click="showUserDrawer(record)"
|
||||
>{{ record.memberCount }}</span
|
||||
>
|
||||
<span v-else>{{ record.memberCount }}</span>
|
||||
</template>
|
||||
<template #projectCount="{ record }">
|
||||
<span class="primary-color" @click="showProjectDrawer(record)">{{ record.projectCount }}</span>
|
||||
<span
|
||||
v-if="hasAnyPermission(['SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE'])"
|
||||
class="primary-color"
|
||||
@click="showProjectDrawer(record)"
|
||||
>{{ record.projectCount }}</span
|
||||
>
|
||||
<span v-else>{{ record.projectCount }}</span>
|
||||
</template>
|
||||
<template #operation="{ record }">
|
||||
<template v-if="record.deleted">
|
||||
|
@ -43,12 +55,14 @@
|
|||
<MsButton v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ+UPDATE']" @click="showOrganizationModal(record)">{{
|
||||
t('common.edit')
|
||||
}}</MsButton>
|
||||
<MsButton v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ']" @click="showAddUserModal(record)">{{
|
||||
<MsButton v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ+UPDATE']" @click="showAddUserModal(record)">{{
|
||||
t('system.organization.addMember')
|
||||
}}</MsButton>
|
||||
<MsButton v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ']" @click="handleEnableOrDisableOrg(record, false)">{{
|
||||
t('common.end')
|
||||
}}</MsButton>
|
||||
<MsButton
|
||||
v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ+UPDATE']"
|
||||
@click="handleEnableOrDisableOrg(record, false)"
|
||||
>{{ t('common.end') }}</MsButton
|
||||
>
|
||||
<MsTableMoreAction
|
||||
v-permission="['SYSTEM_ORGANIZATIN_PROJECT:READ+DELETE']"
|
||||
:list="tableActions"
|
||||
|
@ -118,6 +132,13 @@
|
|||
const currentOrganizationId = ref('');
|
||||
const currentUpdateOrganization = ref<CreateOrUpdateSystemOrgParams>();
|
||||
const { openDeleteModal, openModal } = useModal();
|
||||
const hasOperationPermission = computed(() =>
|
||||
hasAnyPermission([
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+RECOVER',
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE',
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+DELETE',
|
||||
])
|
||||
);
|
||||
|
||||
const organizationColumns: MsTableColumn = [
|
||||
{
|
||||
|
@ -164,11 +185,11 @@
|
|||
width: 180,
|
||||
},
|
||||
{
|
||||
title: 'system.organization.operation',
|
||||
title: hasOperationPermission.value ? 'system.organization.operation' : '',
|
||||
slotName: 'operation',
|
||||
dataIndex: 'operation',
|
||||
fixed: 'right',
|
||||
width: 230,
|
||||
width: hasOperationPermission.value ? 230 : 50,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -20,7 +20,13 @@
|
|||
<MsUserAdminDiv :is-admin="record.projectCreateUserIsAdmin" :name="record.createUser" />
|
||||
</template>
|
||||
<template #memberCount="{ record }">
|
||||
<span class="primary-color" @click="showUserDrawer(record)">{{ record.memberCount }}</span>
|
||||
<span
|
||||
v-if="hasAnyPermission(['SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE'])"
|
||||
class="primary-color"
|
||||
@click="showUserDrawer(record)"
|
||||
>{{ record.memberCount }}</span
|
||||
>
|
||||
<span v-else>{{ record.memberCount }}</span>
|
||||
</template>
|
||||
<template #operation="{ record }">
|
||||
<template v-if="record.deleted">
|
||||
|
@ -117,6 +123,13 @@
|
|||
const currentProjectId = ref('');
|
||||
const currentUpdateProject = ref<CreateOrUpdateSystemProjectParams>();
|
||||
const { openDeleteModal, openModal } = useModal();
|
||||
const hasOperationPermission = computed(() =>
|
||||
hasAnyPermission([
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+RECOVER',
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE',
|
||||
'SYSTEM_ORGANIZATION_PROJECT:READ+DELETE',
|
||||
])
|
||||
);
|
||||
|
||||
const organizationColumns: MsTableColumn = [
|
||||
{
|
||||
|
@ -167,10 +180,11 @@
|
|||
width: 180,
|
||||
},
|
||||
{
|
||||
title: 'system.organization.operation',
|
||||
title: hasOperationPermission.value ? 'system.organization.operation' : '',
|
||||
slotName: 'operation',
|
||||
dataIndex: 'operation',
|
||||
fixed: 'right',
|
||||
width: 230,
|
||||
width: hasOperationPermission.value ? 230 : 50,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
Loading…
Reference in New Issue