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

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

@ -1,2 +1,2 @@
export * from './token';
export * from './user';
export * as tokenApi from './token';
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 { defineAsyncComponent, h, nextTick } from 'vue';
import { defineAsyncComponent, h } from 'vue';
import { useVbenDrawer } from '@vben/common-ui';
import { $t } from '@vben/locales';
@ -12,7 +12,7 @@ import { $t } from '@vben/locales';
import { formatToDateTime } from '@abp/core';
import { useVbenVxeGrid } from '@abp/ui';
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 { AuditLogPermissions } from '../../constants/permissions';
@ -235,7 +235,7 @@ const gridOptions: VxeGridProps<AuditLogDto> = {
const gridEvents: VxeGridListeners<AuditLogDto> = {
sortChange: onSort,
};
const [Grid, { formApi, query }] = useVbenVxeGrid({
const [Grid, gridApi] = useVbenVxeGrid({
formOptions,
gridEvents,
gridOptions,
@ -253,19 +253,26 @@ function onUpdate(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 }) {
const sorting = params.order ? `${params.field} ${params.order}` : undefined;
query({ sorting });
gridApi.query({ sorting });
}
function onFilter(field: string, value: any) {
nextTick(() => {
formApi.setFieldValue(field, value);
formApi.validateAndSubmitForm();
});
gridApi.formApi.setFieldValue(field, value);
gridApi.formApi.validateAndSubmitForm();
}
</script>
@ -274,13 +281,14 @@ function onFilter(field: string, value: any) {
<template #url="{ row }">
<Tag
:color="getHttpStatusCodeColor(row.httpStatusCode)"
class="cursor-pointer"
@click="onFilter('httpStatusCode', row.httpStatusCode)"
>
{{ row.httpStatusCode }}
</Tag>
<Tag
:color="getHttpMethodColor(row.httpMethod)"
style="margin-left: 5px"
class="ml-px cursor-pointer"
@click="onFilter('httpMethod', row.httpMethod)"
>
{{ row.httpMethod }}
@ -303,20 +311,16 @@ function onFilter(field: string, value: any) {
>
{{ $t('AbpAuditLogging.ShowLogDialog') }}
</Button>
<Popconfirm
:title="$t('AbpUi.ItemWillBeDeletedMessage')"
@confirm="onDelete(row)"
<Button
:icon="h(DeleteOutlined)"
block
danger
type="link"
v-access:code="[AuditLogPermissions.Delete]"
@click="onDelete(row)"
>
<Button
:icon="h(DeleteOutlined)"
block
danger
type="link"
v-access:code="[AuditLogPermissions.Delete]"
>
{{ $t('AbpUi.Delete') }}
</Button>
</Popconfirm>
{{ $t('AbpUi.Delete') }}
</Button>
</div>
</template>
</Grid>

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

@ -1,3 +1,4 @@
export * from './api';
export * from './components';
export * from './constants';
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';

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 { 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 { IdentityClaimTypePermissions } from '../../constants/permissions';
@ -165,8 +165,10 @@ const handleDelete = (row: IdentityClaimTypeDto) => {
Modal.confirm({
centered: true,
content: $t('AbpIdentity.WillDeleteClaim', [row.name]),
onOk: () => {
return deleteApi(row.id).then(() => query());
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
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 { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue';
import { Button, Popconfirm } from 'ant-design-vue';
import { Button, message, Popconfirm } from 'ant-design-vue';
defineOptions({
name: 'ClaimTable',
@ -91,6 +91,7 @@ async function onDelete(row: IdentityClaimDto) {
claimType: row.claimType,
claimValue: row.claimValue,
});
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
emits('onDelete');
}

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

@ -19,7 +19,15 @@ import {
PlusOutlined,
RedoOutlined,
} 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 {
deleteApi,
@ -130,8 +138,10 @@ function onDelete(id: string) {
centered: true,
content: $t('AbpUi.ItemWillBeDeletedMessage'),
maskClosable: false,
onOk: () => {
return deleteApi(id).then(() => onRefresh());
onOk: async () => {
await deleteApi(id);
message.success($t('AbpUi.SuccessfullyDeleted'));
onRefresh();
},
title: $t('AbpUi.AreYouSure'),
});

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

@ -20,7 +20,7 @@ import {
EditOutlined,
EllipsisOutlined,
} 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 { IdentityRolePermissions } from '../../constants/permissions';
@ -134,8 +134,10 @@ const handleDelete = (row: IdentityRoleDto) => {
Modal.confirm({
centered: true,
content: $t('AbpIdentity.RoleDeletionConfirmationMessage', [row.name]),
onOk: () => {
return deleteApi(row.id).then(() => query());
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
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 { useVbenVxeGrid } from '@abp/ui';
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 { SecurityLogPermissions } from '../../constants/permissions';
@ -180,8 +180,10 @@ const handleDelete = (row: SecurityLogDto) => {
Modal.confirm({
centered: true,
content: $t('AbpUi.ItemWillBeDeletedMessage'),
onOk: () => {
return deleteApi(row.id).then(() => query());
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
title: $t('AbpUi.AreYouSure'),
});

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

@ -23,7 +23,7 @@ import {
PlusOutlined,
UnlockOutlined,
} 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 { IdentityUserPermissions } from '../../constants/permissions';
@ -184,8 +184,10 @@ const handleDelete = (row: IdentityUserDto) => {
Modal.confirm({
centered: true,
content: $t('AbpIdentity.UserDeletionConfirmationMessage', [row.userName]),
onOk: () => {
return deleteApi(row.id).then(() => query());
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
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({
centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.clientId])}`,
onOk: () => {
return deleteApi(row.id).then(() => {
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
});
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
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({
centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`,
onOk: () => {
return deleteApi(row.id).then(() => {
message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query();
});
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query();
},
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({
centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessageWithFormat', [row.name])}`,
onOk: () => {
return deleteApi(row.id).then(() => {
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
});
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
query();
},
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({
centered: true,
content: `${$t('AbpUi.ItemWillBeDeletedMessage')}`,
onOk: () => {
return deleteApi(row.id).then(() => {
message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query();
});
onOk: async () => {
await deleteApi(row.id);
message.success($t('AbpUi.SuccessfullyDeleted'));
gridApi.query();
},
title: $t('AbpUi.AreYouSure'),
});

Loading…
Cancel
Save