Browse Source

feat(vben5): 完善删除事件顺序.

pull/1060/head
colin 1 year ago
parent
commit
ede002fe77
  1. 6
      apps/vben5/apps/app-antd/src/store/auth.ts
  2. 4
      apps/vben5/packages/@abp/account/src/api/index.ts
  3. 2
      apps/vben5/packages/@abp/auditing/src/api/index.ts
  4. 50
      apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue
  5. 1
      apps/vben5/packages/@abp/auditing/src/index.ts
  6. 5
      apps/vben5/packages/@abp/identity/src/api/index.ts
  7. 8
      apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue
  8. 3
      apps/vben5/packages/@abp/identity/src/components/claims/ClaimTable.vue
  9. 16
      apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitTree.vue
  10. 8
      apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue
  11. 8
      apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue
  12. 8
      apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue
  13. 9
      apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue
  14. 9
      apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue
  15. 9
      apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue
  16. 9
      apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue

6
apps/vben5/apps/app-antd/src/store/auth.ts

@ -6,7 +6,7 @@ import { useRouter } from 'vue-router';
import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants'; import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants';
import { resetAllStores, useAccessStore, useUserStore } from '@vben/stores'; import { resetAllStores, useAccessStore, useUserStore } from '@vben/stores';
import { getUserInfoApi, loginApi } from '@abp/account'; import { tokenApi, userInfoApi } from '@abp/account';
import { useAbpStore } from '@abp/core'; import { useAbpStore } from '@abp/core';
import { notification } from 'ant-design-vue'; import { notification } from 'ant-design-vue';
import { defineStore } from 'pinia'; import { defineStore } from 'pinia';
@ -35,7 +35,7 @@ export const useAuthStore = defineStore('auth', () => {
let userInfo: null | UserInfo = null; let userInfo: null | UserInfo = null;
try { try {
loginLoading.value = true; loginLoading.value = true;
const loginResult = await loginApi(params as any); const loginResult = await tokenApi.loginApi(params as any);
const { accessToken, tokenType, refreshToken } = loginResult; const { accessToken, tokenType, refreshToken } = loginResult;
// 如果成功获取到 accessToken // 如果成功获取到 accessToken
if (accessToken) { if (accessToken) {
@ -93,7 +93,7 @@ export const useAuthStore = defineStore('auth', () => {
async function fetchUserInfo() { async function fetchUserInfo() {
let userInfo: ({ [key: string]: any } & UserInfo) | null = null; let userInfo: ({ [key: string]: any } & UserInfo) | null = null;
const userInfoRes = await getUserInfoApi(); const userInfoRes = await userInfoApi.getUserInfoApi();
const abpConfig = await getConfigApi(); const abpConfig = await getConfigApi();
userInfo = { userInfo = {
userId: userInfoRes.sub, userId: userInfoRes.sub,

4
apps/vben5/packages/@abp/account/src/api/index.ts

@ -1,2 +1,2 @@
export * from './token'; export * as tokenApi from './token';
export * from './user'; export * as userInfoApi from './user';

2
apps/vben5/packages/@abp/auditing/src/api/index.ts

@ -0,0 +1,2 @@
export * as auditLogsApi from './audit-logs';
export * as entityChangesApi from './entity-changes';

50
apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue

@ -4,7 +4,7 @@ import type { VbenFormProps, VxeGridListeners, VxeGridProps } from '@abp/ui';
import type { AuditLogDto } from '../../types/audit-logs'; import type { AuditLogDto } from '../../types/audit-logs';
import { defineAsyncComponent, h, nextTick } from 'vue'; import { defineAsyncComponent, h } from 'vue';
import { useVbenDrawer } from '@vben/common-ui'; import { useVbenDrawer } from '@vben/common-ui';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
@ -12,7 +12,7 @@ import { $t } from '@vben/locales';
import { formatToDateTime } from '@abp/core'; import { formatToDateTime } from '@abp/core';
import { useVbenVxeGrid } from '@abp/ui'; import { useVbenVxeGrid } from '@abp/ui';
import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue'; import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue';
import { Button, Popconfirm, Tag } from 'ant-design-vue'; import { Button, message, Modal, Tag } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/audit-logs'; import { deleteApi, getPagedListApi } from '../../api/audit-logs';
import { AuditLogPermissions } from '../../constants/permissions'; import { AuditLogPermissions } from '../../constants/permissions';
@ -235,7 +235,7 @@ const gridOptions: VxeGridProps<AuditLogDto> = {
const gridEvents: VxeGridListeners<AuditLogDto> = { const gridEvents: VxeGridListeners<AuditLogDto> = {
sortChange: onSort, sortChange: onSort,
}; };
const [Grid, { formApi, query }] = useVbenVxeGrid({ const [Grid, gridApi] = useVbenVxeGrid({
formOptions, formOptions,
gridEvents, gridEvents,
gridOptions, gridOptions,
@ -253,19 +253,26 @@ function onUpdate(row: AuditLogDto) {
} }
async function onDelete(row: AuditLogDto) { async function onDelete(row: AuditLogDto) {
await deleteApi(row.id).then(() => query()); Modal.confirm({
centered: true,
content: $t('AbpUi.ItemWillBeDeletedMessage'),
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query();
},
title: $t('AbpUi.AreYouSure'),
});
} }
function onSort(params: { field: string; order: SortOrder }) { function onSort(params: { field: string; order: SortOrder }) {
const sorting = params.order ? `${params.field} ${params.order}` : undefined; const sorting = params.order ? `${params.field} ${params.order}` : undefined;
query({ sorting }); gridApi.query({ sorting });
} }
function onFilter(field: string, value: any) { function onFilter(field: string, value: any) {
nextTick(() => { gridApi.formApi.setFieldValue(field, value);
formApi.setFieldValue(field, value); gridApi.formApi.validateAndSubmitForm();
formApi.validateAndSubmitForm();
});
} }
</script> </script>
@ -274,13 +281,14 @@ function onFilter(field: string, value: any) {
<template #url="{ row }"> <template #url="{ row }">
<Tag <Tag
:color="getHttpStatusCodeColor(row.httpStatusCode)" :color="getHttpStatusCodeColor(row.httpStatusCode)"
class="cursor-pointer"
@click="onFilter('httpStatusCode', row.httpStatusCode)" @click="onFilter('httpStatusCode', row.httpStatusCode)"
> >
{{ row.httpStatusCode }} {{ row.httpStatusCode }}
</Tag> </Tag>
<Tag <Tag
:color="getHttpMethodColor(row.httpMethod)" :color="getHttpMethodColor(row.httpMethod)"
style="margin-left: 5px" class="ml-px cursor-pointer"
@click="onFilter('httpMethod', row.httpMethod)" @click="onFilter('httpMethod', row.httpMethod)"
> >
{{ row.httpMethod }} {{ row.httpMethod }}
@ -303,20 +311,16 @@ function onFilter(field: string, value: any) {
> >
{{ $t('AbpAuditLogging.ShowLogDialog') }} {{ $t('AbpAuditLogging.ShowLogDialog') }}
</Button> </Button>
<Popconfirm <Button
:title="$t('AbpUi.ItemWillBeDeletedMessage')" :icon="h(DeleteOutlined)"
@confirm="onDelete(row)" block
danger
type="link"
v-access:code="[AuditLogPermissions.Delete]"
@click="onDelete(row)"
> >
<Button {{ $t('AbpUi.Delete') }}
:icon="h(DeleteOutlined)" </Button>
block
danger
type="link"
v-access:code="[AuditLogPermissions.Delete]"
>
{{ $t('AbpUi.Delete') }}
</Button>
</Popconfirm>
</div> </div>
</template> </template>
</Grid> </Grid>

1
apps/vben5/packages/@abp/auditing/src/index.ts

@ -1,3 +1,4 @@
export * from './api';
export * from './components'; export * from './components';
export * from './constants'; export * from './constants';
export * from './types'; export * from './types';

5
apps/vben5/packages/@abp/identity/src/api/index.ts

@ -1 +1,6 @@
export * as claimTypesApi from './claim-types';
export * as organizationUnitsApi from './organization-units';
export * as rolesApi from './roles';
export * as securityLogsApi from './security-logs';
export * as usersApi from './users';
export * as userLookupApi from './users-lookup'; export * as userLookupApi from './users-lookup';

8
apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue

@ -12,7 +12,7 @@ import { $t } from '@vben/locales';
import { useVbenVxeGrid } from '@abp/ui'; import { useVbenVxeGrid } from '@abp/ui';
import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue'; import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue';
import { Button, Modal } from 'ant-design-vue'; import { Button, message, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/claim-types'; import { deleteApi, getPagedListApi } from '../../api/claim-types';
import { IdentityClaimTypePermissions } from '../../constants/permissions'; import { IdentityClaimTypePermissions } from '../../constants/permissions';
@ -165,8 +165,10 @@ const handleDelete = (row: IdentityClaimTypeDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: $t('AbpIdentity.WillDeleteClaim', [row.name]), content: $t('AbpIdentity.WillDeleteClaim', [row.name]),
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => query()); await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

3
apps/vben5/packages/@abp/identity/src/components/claims/ClaimTable.vue

@ -11,7 +11,7 @@ import { $t } from '@vben/locales';
import { useVbenVxeGrid } from '@abp/ui'; import { useVbenVxeGrid } from '@abp/ui';
import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue'; import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue';
import { Button, Popconfirm } from 'ant-design-vue'; import { Button, message, Popconfirm } from 'ant-design-vue';
defineOptions({ defineOptions({
name: 'ClaimTable', name: 'ClaimTable',
@ -91,6 +91,7 @@ async function onDelete(row: IdentityClaimDto) {
claimType: row.claimType, claimType: row.claimType,
claimValue: row.claimValue, claimValue: row.claimValue,
}); });
message.success($t('AbpUi.SuccessfullyDeleted'));
query(); query();
emits('onDelete'); emits('onDelete');
} }

16
apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitTree.vue

@ -19,7 +19,15 @@ import {
PlusOutlined, PlusOutlined,
RedoOutlined, RedoOutlined,
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
import { Button, Card, Dropdown, Menu, Modal, Tree } from 'ant-design-vue'; import {
Button,
Card,
Dropdown,
Menu,
message,
Modal,
Tree,
} from 'ant-design-vue';
import { import {
deleteApi, deleteApi,
@ -130,8 +138,10 @@ function onDelete(id: string) {
centered: true, centered: true,
content: $t('AbpUi.ItemWillBeDeletedMessage'), content: $t('AbpUi.ItemWillBeDeletedMessage'),
maskClosable: false, maskClosable: false,
onOk: () => { onOk: async () => {
return deleteApi(id).then(() => onRefresh()); await deleteApi(id);
message.success($t('AbpUi.SuccessfullyDeleted'));
onRefresh();
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

8
apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue

@ -20,7 +20,7 @@ import {
EditOutlined, EditOutlined,
EllipsisOutlined, EllipsisOutlined,
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
import { Button, Dropdown, Menu, Modal, Tag } from 'ant-design-vue'; import { Button, Dropdown, Menu, message, Modal, Tag } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/roles'; import { deleteApi, getPagedListApi } from '../../api/roles';
import { IdentityRolePermissions } from '../../constants/permissions'; import { IdentityRolePermissions } from '../../constants/permissions';
@ -134,8 +134,10 @@ const handleDelete = (row: IdentityRoleDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: $t('AbpIdentity.RoleDeletionConfirmationMessage', [row.name]), content: $t('AbpIdentity.RoleDeletionConfirmationMessage', [row.name]),
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => query()); await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

8
apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue

@ -10,7 +10,7 @@ import { $t } from '@vben/locales';
import { formatToDateTime } from '@abp/core'; import { formatToDateTime } from '@abp/core';
import { useVbenVxeGrid } from '@abp/ui'; import { useVbenVxeGrid } from '@abp/ui';
import { DeleteOutlined } from '@ant-design/icons-vue'; import { DeleteOutlined } from '@ant-design/icons-vue';
import { Button, Modal } from 'ant-design-vue'; import { Button, message, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/security-logs'; import { deleteApi, getPagedListApi } from '../../api/security-logs';
import { SecurityLogPermissions } from '../../constants/permissions'; import { SecurityLogPermissions } from '../../constants/permissions';
@ -180,8 +180,10 @@ const handleDelete = (row: SecurityLogDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: $t('AbpUi.ItemWillBeDeletedMessage'), content: $t('AbpUi.ItemWillBeDeletedMessage'),
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => query()); await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

8
apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue

@ -23,7 +23,7 @@ import {
PlusOutlined, PlusOutlined,
UnlockOutlined, UnlockOutlined,
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
import { Button, Dropdown, Menu, Modal } from 'ant-design-vue'; import { Button, Dropdown, Menu, message, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi, unLockApi } from '../../api/users'; import { deleteApi, getPagedListApi, unLockApi } from '../../api/users';
import { IdentityUserPermissions } from '../../constants/permissions'; import { IdentityUserPermissions } from '../../constants/permissions';
@ -184,8 +184,10 @@ const handleDelete = (row: IdentityUserDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: $t('AbpIdentity.UserDeletionConfirmationMessage', [row.userName]), content: $t('AbpIdentity.UserDeletionConfirmationMessage', [row.userName]),
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => query()); await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

9
apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue

@ -167,11 +167,10 @@ const onDelete = (row: OpenIddictApplicationDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.clientId])}`, content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.clientId])}`,
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => { await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted')); message.success($t('AbpUi.SuccessfullyDeleted'));
query(); query();
});
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

9
apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue

@ -194,11 +194,10 @@ function onDelete(row: OpenIddictAuthorizationDto) {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`, content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`,
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => { await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted')); message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query(); gridApi.query();
});
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

9
apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue

@ -130,11 +130,10 @@ const onDelete = (row: OpenIddictScopeDto) => {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.name])}`, content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.name])}`,
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => { await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted')); message.success($t('AbpUi.SuccessfullyDeleted'));
query(); query();
});
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

9
apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue

@ -218,11 +218,10 @@ function onDelete(row: OpenIddictTokenDto) {
Modal.confirm({ Modal.confirm({
centered: true, centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`, content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`,
onOk: () => { onOk: async () => {
return deleteApi(row.id).then(() => { await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted')); message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query(); gridApi.query();
});
}, },
title: $t('AbpUi.AreYouSure'), title: $t('AbpUi.AreYouSure'),
}); });

Loading…
Cancel
Save