Browse Source

feat(vben5): add edition feature manage

pull/1136/head
colin 1 year ago
parent
commit
e22110e904
  1. 28
      apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue

28
apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue

@ -13,6 +13,7 @@ import { $t } from '@vben/locales';
import { AuditLogPermissions, EntityChangeDrawer } from '@abp/auditing'; import { AuditLogPermissions, EntityChangeDrawer } from '@abp/auditing';
import { useFeatures } from '@abp/core'; import { useFeatures } from '@abp/core';
import { FeatureModal } from '@abp/features';
import { useVbenVxeGrid } from '@abp/ui'; import { useVbenVxeGrid } from '@abp/ui';
import { import {
DeleteOutlined, DeleteOutlined,
@ -30,6 +31,7 @@ defineOptions({
const MenuItem = Menu.Item; const MenuItem = Menu.Item;
const AuditLogIcon = createIconifyIcon('fluent-mdl2:compliance-audit'); const AuditLogIcon = createIconifyIcon('fluent-mdl2:compliance-audit');
const FeatureIcon = createIconifyIcon('pajamas:feature-flag');
const { isEnabled } = useFeatures(); const { isEnabled } = useFeatures();
const { hasAccessByCodes } = useAccess(); const { hasAccessByCodes } = useAccess();
@ -115,6 +117,9 @@ const [Grid, { query }] = useVbenVxeGrid({
const [EditionChangeDrawer, entityChangeDrawerApi] = useVbenDrawer({ const [EditionChangeDrawer, entityChangeDrawerApi] = useVbenDrawer({
connectedComponent: EntityChangeDrawer, connectedComponent: EntityChangeDrawer,
}); });
const [EditionFeatureModal, featureModalApi] = useVbenModal({
connectedComponent: FeatureModal,
});
const onCreate = () => { const onCreate = () => {
modalApi.setData({}); modalApi.setData({});
@ -155,6 +160,14 @@ const onMenuClick = (row: EditionDto, info: MenuInfo) => {
entityChangeDrawerApi.open(); entityChangeDrawerApi.open();
break; break;
} }
case 'features': {
featureModalApi.setData({
displayName: row.displayName,
providerKey: row.id,
providerName: 'E',
});
featureModalApi.open();
}
} }
}; };
</script> </script>
@ -191,16 +204,26 @@ const onMenuClick = (row: EditionDto, info: MenuInfo) => {
> >
{{ $t('AbpUi.Delete') }} {{ $t('AbpUi.Delete') }}
</Button> </Button>
<Dropdown v-if="isEnabled('AbpAuditing.Logging.AuditLog')"> <Dropdown>
<template #overlay> <template #overlay>
<Menu @click="(info) => onMenuClick(row, info)"> <Menu @click="(info) => onMenuClick(row, info)">
<MenuItem <MenuItem
v-if="hasAccessByCodes([AuditLogPermissions.Default])" v-if="
isEnabled(['AbpAuditing.Logging.AuditLog']) &&
hasAccessByCodes([AuditLogPermissions.Default])
"
key="entity-changes" key="entity-changes"
:icon="h(AuditLogIcon)" :icon="h(AuditLogIcon)"
> >
{{ $t('AbpAuditLogging.EntitiesChanged') }} {{ $t('AbpAuditLogging.EntitiesChanged') }}
</MenuItem> </MenuItem>
<MenuItem
v-if="hasAccessByCodes([EditionsPermissions.ManageFeatures])"
key="features"
:icon="h(FeatureIcon)"
>
{{ $t('AbpSaas.ManageFeatures') }}
</MenuItem>
</Menu> </Menu>
</template> </template>
<Button :icon="h(EllipsisOutlined)" type="link" /> <Button :icon="h(EllipsisOutlined)" type="link" />
@ -210,6 +233,7 @@ const onMenuClick = (row: EditionDto, info: MenuInfo) => {
</Grid> </Grid>
<EditionModal @change="() => query()" /> <EditionModal @change="() => query()" />
<EditionChangeDrawer /> <EditionChangeDrawer />
<EditionFeatureModal />
</template> </template>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

Loading…
Cancel
Save