Browse Source

👕 调整前端命名规范

main-auditlogging 5.1.3.2
王军 5 years ago
parent
commit
0aeaa25b40
  1. 1
      .gitignore
  2. 8
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
  3. 17947
      vben271/package-lock.json
  4. 4
      vben271/src/layouts/default/header/components/user-dropdown/ChangePassword.vue
  5. 4
      vben271/src/views/admin/auditLog/AuditLog.ts
  6. 3
      vben271/src/views/admin/auditLog/AuditLog.vue
  7. 365
      vben271/src/views/admin/dictionary/AbpDictionary.ts
  8. 28
      vben271/src/views/admin/dictionary/AbpDictionary.vue
  9. 8
      vben271/src/views/admin/dictionary/CreateAbpDictionary.vue
  10. 8
      vben271/src/views/admin/dictionary/CreateAbpDictionaryType.vue
  11. 8
      vben271/src/views/admin/dictionary/EditAbpDictionary.vue
  12. 8
      vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue
  13. 6
      vben271/src/views/admin/elasticSearch/ElasticSearch.vue
  14. 7
      vben271/src/views/admin/files/File.vue
  15. 20
      vben271/src/views/admin/files/UploadOss.ts
  16. 23
      vben271/src/views/admin/roles/AbpRole.ts
  17. 4
      vben271/src/views/admin/roles/AbpRole.vue
  18. 96
      vben271/src/views/admin/roles/CreateAbpRole.vue
  19. 119
      vben271/src/views/admin/roles/EditAbpRole.vue
  20. 194
      vben271/src/views/admin/roles/PermissionAbpRole.vue
  21. 7
      vben271/src/views/admin/settings/Setting.vue
  22. 2
      vben271/src/views/admin/users/AbpUser.ts
  23. 215
      vben271/src/views/admin/users/AbpUser.vue
  24. 183
      vben271/src/views/admin/users/CreateAbpUser.vue
  25. 7
      vben271/src/views/admin/users/EditAbpUser.vue
  26. 2
      vben271/src/views/identityServers/apiResources/ApiResources.vue
  27. 4
      vben271/src/views/identityServers/apiResources/CreateApiResource.vue
  28. 140
      vben271/src/views/identityServers/apiResources/EditApiResources.vue
  29. 2
      vben271/src/views/identityServers/apiScopes/ApiScopes.vue
  30. 4
      vben271/src/views/identityServers/apiScopes/CreateApiScope.vue
  31. 4
      vben271/src/views/identityServers/apiScopes/EditApiScope.vue
  32. 2
      vben271/src/views/identityServers/clients/ClientUri.vue
  33. 8
      vben271/src/views/identityServers/clients/Clients.vue
  34. 2
      vben271/src/views/identityServers/clients/CreateClient.vue
  35. 14
      vben271/src/views/identityServers/clients/EditClientBasic.vue
  36. 4
      vben271/src/views/identityServers/clients/EditClientIdentityResource.vue
  37. 4
      vben271/src/views/identityServers/identityResources/CreateIdentityResource.vue
  38. 4
      vben271/src/views/identityServers/identityResources/EditIdentityResources.vue
  39. 2
      vben271/src/views/identityServers/identityResources/IdentityResources.vue
  40. 4
      vben271/src/views/tenants/CreateTenant.vue
  41. 108
      vben271/src/views/tenants/EditConnectionString.vue
  42. 96
      vben271/src/views/tenants/EditTenant.vue
  43. 1
      vben271/src/views/tenants/Tenant.ts
  44. 4
      vben271/src/views/tenants/Tenant.vue

1
.gitignore

@ -281,3 +281,4 @@ aspnet-core/services/host/Lion.AbpPro.Web.Blazor.Server/Logs/logs.txt
/nupkgs
/aspnet-core/Lion.AbpPro.sln.DotSettings
/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/logs
/vben271/package-lock.json

8
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs

@ -63,10 +63,18 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
PagingDataDictionaryDetailInput input)
{
var entity = await _dataDictionaryRepository.FindByIdAsync(input.DataDictionaryId);
if (entity == null)
{
return new PagedResultDto<PagingDataDictionaryDetailOutput>();
}
var details = entity.Details
.WhereIf(input.Filter.IsNotNullOrWhiteSpace(), e => (e.Code.Contains(input.Filter) || e.DisplayText.Contains(input.Filter)))
.OrderBy(e => e.Order)
.Take(input.PageSize).Skip(input.SkipCount).ToList();
if (details.Count == 0)
{
return new PagedResultDto<PagingDataDictionaryDetailOutput>();
}
return new PagedResultDto<PagingDataDictionaryDetailOutput>(
entity.Details.Count,
ObjectMapper.Map<List<DataDictionaryDetail>, List<PagingDataDictionaryDetailOutput>>(details));

17947
vben271/package-lock.json

File diff suppressed because it is too large

4
vben271/src/layouts/default/header/components/user-dropdown/ChangePassword.vue

@ -69,7 +69,7 @@
await validate();
const request = getFieldsValue();
if (request.newPassword != request.confirmPassword) {
message.error(t('editPasswordMessage'));
message.error(t('routes.admin.editPasswordMessage'));
changeOkLoading(false);
return;
}
@ -78,7 +78,7 @@
await _userServiceProxy.changePassword(request as ChangePasswordInput);
changeOkLoading(false);
closeModal();
resetFields();
await resetFields();
} catch (error) {
changeOkLoading(false);
}

4
vben271/src/views/admin/auditLog/AuditLog.ts

@ -31,10 +31,11 @@ export const tableColumns: BasicColumn[] = [
{
title: 'Url',
dataIndex: 'url',
width: 300,
width: 350,
slots: {
customRender: 'url',
},
align: 'left',
},
{
title: t('routes.admin.userManagement_userName'),
@ -57,7 +58,6 @@ export const tableColumns: BasicColumn[] = [
{
title: 'Exceptions',
dataIndex: 'exceptions',
},
];
/**

3
vben271/src/views/admin/auditLog/AuditLog.vue

@ -15,7 +15,7 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicTable, useTable } from '/@/components/Table';
import { tableColumns, searchFormSchema, getTableListAsync,httpStatusCodeColor,httpMethodColor } from './AuditLog';
import { tableColumns, searchFormSchema, getTableListAsync,httpStatusCodeColor,httpMethodColor } from "/@/views/admin/auditLog/AuditLog";
import { Tag } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -42,7 +42,6 @@
bordered: true,
canResize: true,
showIndexColumn: true,
bordered: true,
immediate: true,
scroll: { x: true },
});

365
vben271/src/views/admin/dictionary/AbpDictionary.ts

@ -1,138 +1,144 @@
import { FormSchema } from '/@/components/Table';
import { BasicColumn } from '/@/components/Table';
import { message } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';
import { FormSchema } from "/@/components/Table";
import { BasicColumn } from "/@/components/Table";
import { message } from "ant-design-vue";
import { useI18n } from "/@/hooks/web/useI18n";
import {
PagingDataDictionaryInput,
DataDictionaryServiceProxy,
SetDataDictinaryDetailInput,
DeleteDataDictionaryDetailInput,
IdInput,
} from '/@/services/ServiceProxies';
import { h } from 'vue';
import { Switch } from 'ant-design-vue';
IdInput
} from "/@/services/ServiceProxies";
import { h } from "vue";
import { Switch } from "ant-design-vue";
const { t } = useI18n();
export const tableColumns: BasicColumn[] = [
{
title: t('routes.admin.dictionaryCode'),
dataIndex: 'code',
title: t("routes.admin.dictionaryCode"),
dataIndex: "code"
},
{
title: t('routes.admin.dictionaryDisplayText'),
dataIndex: 'displayText',
title: t("routes.admin.dictionaryDisplayText"),
dataIndex: "displayText"
},
{
title: t('routes.admin.dictionaryOrder'),
dataIndex: 'order',
title: t("routes.admin.dictionaryOrder"),
dataIndex: "order"
},
{
title: t('common.status'),
dataIndex: 'isEnabled',
title: t("common.status"),
dataIndex: "isEnabled",
customRender: ({ record }) => {
return h(Switch, {
checked: record.isEnabled,
checkedChildren: '是',
unCheckedChildren: '否',
checkedChildren: "是",
unCheckedChildren: "否",
onChange(checked: boolean) {
const request = new SetDataDictinaryDetailInput();
request.dataDictionaryId = record.dataDictionaryId;
(request.dataDictionayDetailId = record.id), (request.isEnabled = checked);
request.dataDictionayDetailId = record.id;
request.isEnabled = checked;
enableDictionaryAsync(request)
.then(() => {
record.isEnabled = checked;
message.success(t('common.operationSuccess'));
message.success(t("common.operationSuccess"));
})
.catch(() => {
message.error(t('common.operationFail'));
message.error(t("common.operationFail"));
});
},
}
});
},
}
},
{
dataIndex: 'description',
title: t('routes.admin.dictionaryDescription'),
},
dataIndex: "description",
title: t("routes.admin.dictionaryDescription")
}
];
//字典类型表格
export const dictionaryTypeTableColumns: BasicColumn[] = [
{
title: t('routes.admin.dictionaryTypeName'),
dataIndex: 'displayText',
},
title: t("routes.admin.dictionaryCode") + "|" + t("routes.admin.dictionaryDisplayText"),
dataIndex: "text",
align: "left",
slots: {
customRender: "text"
}
}
];
//字典项查询
export const searchFormSchema: FormSchema[] = [
{
field: 'filter',
label: '',
component: 'Input',
field: "filter",
label: "",
component: "Input",
colProps: {
span: 6,
},
},
span: 6
}
}
];
//字典类型查询
export const searchDictionaryFormSchema: FormSchema[] = [
{
field: 'filter',
label: '',
component: 'Input',
field: "filter",
label: "",
component: "Input",
colProps: {
span: 18,
},
},
span: 18
}
}
];
//新增字典项
export const createFormSchema: FormSchema[] = [
{
field: 'id',
label: '',
field: "id",
label: "",
ifShow: false,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'typeDisplayText',
label: t('routes.admin.dictionaryTypeName'),
component: 'Input',
field: "typeDisplayText",
label: t("routes.admin.dictionaryTypeName"),
component: "Input",
colProps: {
span: 18,
span: 18
},
componentProps: {
disabled: true,
},
disabled: true
}
},
{
field: 'code',
label: t('routes.admin.dictionaryCode'),
field: "code",
label: t("routes.admin.dictionaryCode"),
required: true,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'displayText',
label: t('routes.admin.dictionaryDisplayText'),
component: 'Input',
field: "displayText",
label: t("routes.admin.dictionaryDisplayText"),
component: "Input",
required: true,
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'order',
label: t('routes.admin.dictionaryOrder'),
field: "order",
label: t("routes.admin.dictionaryOrder"),
required: true,
component: 'InputNumber',
component: "InputNumber",
colProps: {
span: 18,
span: 18
},
dynamicRules: () => {
return [
@ -143,69 +149,69 @@ export const createFormSchema: FormSchema[] = [
if (regNull.test(value)) {
return Promise.resolve();
}
return Promise.reject(t('routes.admin.nonZeroMessage'));
},
},
return Promise.reject(t("routes.admin.nonZeroMessage"));
}
}
];
},
}
},
{
field: 'description',
label: t('routes.admin.dictionaryDescription'),
component: 'InputTextArea',
field: "description",
label: t("routes.admin.dictionaryDescription"),
component: "InputTextArea",
colProps: {
span: 18,
},
},
span: 18
}
}
];
//编辑字典项
export const editFormSchema: FormSchema[] = [
{
field: 'dataDictionaryId',
label: '',
field: "dataDictionaryId",
label: "",
ifShow: false,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'id',
label: '',
field: "id",
label: "",
ifShow: false,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'code',
label: t('routes.admin.dictionaryCode'),
field: "code",
label: t("routes.admin.dictionaryCode"),
required: true,
component: 'Input',
component: "Input",
colProps: {
span: 18,
span: 18
},
componentProps: {
disabled: true,
},
disabled: true
}
},
{
field: 'displayText',
label: t('routes.admin.dictionaryDisplayText'),
component: 'Input',
field: "displayText",
label: t("routes.admin.dictionaryDisplayText"),
component: "Input",
required: true,
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'order',
label: t('routes.admin.dictionaryOrder'),
field: "order",
label: t("routes.admin.dictionaryOrder"),
required: true,
component: 'InputNumber',
component: "InputNumber",
colProps: {
span: 18,
span: 18
},
dynamicRules: () => {
return [
@ -216,100 +222,101 @@ export const editFormSchema: FormSchema[] = [
if (regNull.test(value)) {
return Promise.resolve();
}
return Promise.reject(t('routes.admin.nonZeroMessage'));
},
},
return Promise.reject(t("routes.admin.nonZeroMessage"));
}
}
];
},
}
},
{
field: 'description',
label: t('routes.admin.dictionaryDescription'),
component: 'InputTextArea',
field: "description",
label: t("routes.admin.dictionaryDescription"),
component: "InputTextArea",
colProps: {
span: 18,
},
},
span: 18
}
}
];
//新增字典类型
export const createDictionaryTypeFormSchema: FormSchema[] = [
{
field: 'code',
label: t('routes.admin.dictionaryCode'),
component: 'Input',
field: "code",
label: t("routes.admin.dictionaryCode"),
component: "Input",
required: true,
colProps: {
span: 22,
},
span: 22
}
},
{
field: 'displayText',
label: t('routes.admin.dictionaryDisplayText'),
component: 'Input',
field: "displayText",
label: t("routes.admin.dictionaryDisplayText"),
component: "Input",
required: true,
colProps: {
span: 22,
},
span: 22
}
},
{
field: 'description',
label: t('routes.admin.dictionaryDescription'),
component: 'InputTextArea',
field: "description",
label: t("routes.admin.dictionaryDescription"),
component: "InputTextArea",
colProps: {
span: 22,
},
},
span: 22
}
}
];
//编辑字典类型
export const editDictionaryTypeFormSchema: FormSchema[] = [
{
field: 'code',
label: t('routes.admin.dictionaryCode'),
component: 'Input',
field: "code",
label: t("routes.admin.dictionaryCode"),
component: "Input",
required: true,
colProps: {
span: 22,
span: 22
},
componentProps: {
disabled: true,
},
disabled: true
}
},
{
field: 'displayText',
label: t('routes.admin.dictionaryDisplayText'),
component: 'Input',
field: "displayText",
label: t("routes.admin.dictionaryDisplayText"),
component: "Input",
required: true,
colProps: {
span: 22,
},
span: 22
}
},
{
field: 'description',
label: t('routes.admin.dictionaryDescription'),
component: 'InputTextArea',
field: "description",
label: t("routes.admin.dictionaryDescription"),
component: "InputTextArea",
colProps: {
span: 22,
},
span: 22
}
},
{
field: 'key',
label: '',
field: "key",
label: "",
ifShow: false,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
span: 18
}
},
{
field: 'id',
label: '',
field: "id",
label: "",
ifShow: false,
component: 'Input',
component: "Input",
colProps: {
span: 18,
},
},
span: 18
}
}
];
/**
*
*
@ -323,31 +330,33 @@ export async function getDictionaryTypeAsync(params: PagingDataDictionaryInput)
//新建字典类型
export async function createDictionaryTypeAsync({
request,
changeOkLoading,
closeModal,
validate,
resetFields,
}) {
request,
changeOkLoading,
closeModal,
validate,
resetFields
}) {
changeOkLoading(true);
await validate();
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
await _dataDictionaryServiceProxy.create(request);
message.success(t('common.operationSuccess'));
message.success(t("common.operationSuccess"));
resetFields();
changeOkLoading(false);
closeModal();
}
//编辑数据字典类型
export async function editDictionaryTypeAsync({ request, changeOkLoading, validate, closeModal }) {
changeOkLoading(true);
await validate();
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
await _dataDictionaryServiceProxy.update(request);
message.success(t('common.operationSuccess'));
message.success(t("common.operationSuccess"));
changeOkLoading(false);
closeModal();
}
//启用|禁用详情字典
export async function enableDictionaryAsync(input: SetDataDictinaryDetailInput) {
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
@ -356,17 +365,17 @@ export async function enableDictionaryAsync(input: SetDataDictinaryDetailInput)
//创建数据详情字典
export async function createDetailsDictionaryAsync({
request,
changeOkLoading,
validate,
resetFields,
closeModal,
}) {
request,
changeOkLoading,
validate,
resetFields,
closeModal
}) {
changeOkLoading(true);
await validate();
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
await _dataDictionaryServiceProxy.createDetail(request);
message.success(t('common.operationSuccess'));
message.success(t("common.operationSuccess"));
resetFields();
changeOkLoading(false);
closeModal();
@ -381,30 +390,30 @@ export async function getDictionaryDetailsAsync({ params }) {
//编辑数据字典
export async function editDetailsDictionaryAsync({
request,
changeOkLoading,
validate,
closeModal,
}) {
request,
changeOkLoading,
validate,
closeModal
}) {
changeOkLoading(true);
await validate();
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
await _dataDictionaryServiceProxy.updateDetail(request);
message.success(t('common.operationSuccess'));
message.success(t("common.operationSuccess"));
changeOkLoading(false);
closeModal();
}
export async function deleleDetailAsync({ dataDictionaryId, dataDictionayDetailId, reload }) {
export async function deleteDetailAsync({ dataDictionaryId, dataDictionaryDetailId, reload }) {
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
const request = new DeleteDataDictionaryDetailInput();
request.dataDictionaryId = dataDictionaryId;
request.dataDictionayDetailId = dataDictionayDetailId;
request.dataDictionayDetailId = dataDictionaryDetailId;
await _dataDictionaryServiceProxy.delete(request);
reload();
}
export async function deleteDictinaryTypeAsync({ id, reloadType }) {
export async function deleteDictionaryTypeAsync({ id, reloadType }) {
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
const request = new IdInput();
request.id = id;

28
vben271/src/views/admin/dictionary/AbpDictionary.vue

@ -8,6 +8,10 @@
@selection-change="onSelectChange"
:clickToRowSelect="false"
>
<template #text="{ record }">
{{record.code}}|
{{record.displayText}}
</template>
<template #toolbar>
<a-button
v-auth="'System.DataDictionaryManagement.Create'"
@ -27,7 +31,7 @@
},
{
label: t('common.delText'),
onClick: handleDeleteDictinaryType.bind(null, record),
onClick: handleDeleteDictionaryType.bind(null, record),
},
]"
/>
@ -77,7 +81,7 @@
import { defineComponent, ref } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { PageWrapper } from '/@/components/Page';
import { BasicModal, useModal } from '/@/components/Modal';
import { useModal } from '/@/components/Modal';
import CreateAbpDictionary from './CreateAbpDictionary.vue';
import EditAbpDictionary from './EditAbpDictionary.vue';
import EditAbpDictionaryType from './EditAbpDictionaryType.vue';
@ -91,16 +95,15 @@
dictionaryTypeTableColumns,
searchDictionaryFormSchema,
getDictionaryDetailsAsync,
deleleDetailAsync,
deleteDictinaryTypeAsync,
} from './AbpDictionary';
deleteDetailAsync,
deleteDictionaryTypeAsync,
} from '/@/views/admin/dictionary/AbpDictionary';
import { useMessage } from '/@/hooks/web/useMessage';
import { Tag, message } from 'ant-design-vue';
export default defineComponent({
name: 'AbpDictionary',
components: {
BasicTable,
BasicModal,
PageWrapper,
TableAction,
Tag,
@ -144,7 +147,7 @@
});
//
const onSelectChange = async ({ rows }) => {
const onSelectChange = ({ rows }) => {
selectedDataDictionaryIdRef.value = rows[0].id;
selectedDataDictionaryDisplayTextRef.value = rows[0].displayText;
reload();
@ -167,17 +170,18 @@
record: record,
});
};
const handleDeleteDictinaryType = async (record: Recordable) => {
const handleDeleteDictionaryType = async (record: Recordable) => {
let msg = t('common.askDelete');
createConfirm({
iconType: 'warning',
title: t('common.tip'),
content: msg,
onOk: async () => {
await deleteDictinaryTypeAsync({
await deleteDictionaryTypeAsync({
id: record.id,
reloadType,
});
await reload()
},
});
};
@ -223,9 +227,9 @@
title: t('common.tip'),
content: msg,
onOk: async () => {
await deleleDetailAsync({
await deleteDetailAsync({
dataDictionaryId: record.dataDictionaryId,
dataDictionayDetailId: record.id,
dataDictionaryDetailId: record.id,
reload,
});
},
@ -248,7 +252,7 @@
clearSelectedRowKeys,
t,
handleDelete,
handleDeleteDictinaryType,
handleDeleteDictionaryType,
};
},
});

8
vben271/src/views/admin/dictionary/CreateAbpDictionary.vue

@ -9,7 +9,7 @@
:height="380"
:destroyOnClose="true"
>
<BasicForm @register="registeDictionaryForm" />
<BasicForm @register="registerDictionaryForm" />
</BasicModal>
</template>
@ -18,7 +18,7 @@
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { useI18n } from '/@/hooks/web/useI18n';
import { createFormSchema, createDetailsDictionaryAsync } from './AbpDictionary';
import { createFormSchema, createDetailsDictionaryAsync } from "/@/views/admin/dictionary/AbpDictionary";
export default defineComponent({
name: 'CreateDictionary',
@ -35,7 +35,7 @@
typeDisplayText: data.dictionaryCreate.displayText,
});
});
const [registeDictionaryForm, { resetFields, getFieldsValue, validate, setFieldsValue }] =
const [registerDictionaryForm, { resetFields, getFieldsValue, validate, setFieldsValue }] =
useForm({
labelWidth: 120,
schemas: createFormSchema,
@ -65,7 +65,7 @@
return {
registerModal,
registeDictionaryForm,
registerDictionaryForm,
submit,
t,
cancel,

8
vben271/src/views/admin/dictionary/CreateAbpDictionaryType.vue

@ -9,7 +9,7 @@
:maskClosable="false"
:minHeight="100"
>
<BasicForm @register="registeDictionaryTypeForm" />
<BasicForm @register="registerDictionaryTypeForm" />
</BasicModal>
</template>
@ -18,7 +18,7 @@
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createDictionaryTypeFormSchema, createDictionaryTypeAsync } from './AbpDictionary';
import { createDictionaryTypeFormSchema, createDictionaryTypeAsync } from "/@/views/admin/dictionary/AbpDictionary";
export default defineComponent({
name: 'CreateAbpDictionaryType',
components: {
@ -29,7 +29,7 @@
const { t } = useI18n();
const [registerModal, { closeModal, changeOkLoading }] = useModalInner();
const [registeDictionaryTypeForm, { resetFields, getFieldsValue, validate }] = useForm({
const [registerDictionaryTypeForm, { resetFields, getFieldsValue, validate }] = useForm({
labelWidth: 100,
schemas: createDictionaryTypeFormSchema,
showActionButtonGroup: false,
@ -57,7 +57,7 @@
return {
registerModal,
registeDictionaryTypeForm,
registerDictionaryTypeForm,
submit,
t,
cancel,

8
vben271/src/views/admin/dictionary/EditAbpDictionary.vue

@ -9,7 +9,7 @@
:destroyOnClose="true"
:maskClosable="false"
>
<BasicForm @register="registeDictionaryForm" />
<BasicForm @register="registerDictionaryForm" />
</BasicModal>
</template>
@ -18,7 +18,7 @@
import { BasicModal, useModalInner } from '/@/components/Modal';
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editFormSchema, editDetailsDictionaryAsync } from './AbpDictionary';
import { editFormSchema, editDetailsDictionaryAsync } from "/@/views/admin/dictionary/AbpDictionary";
export default defineComponent({
name: 'EditDictionary',
@ -39,7 +39,7 @@
order: data.record.order,
});
});
const [registeDictionaryForm, { setFieldsValue, getFieldsValue, validate, resetFields }] =
const [registerDictionaryForm, { setFieldsValue, getFieldsValue, validate, resetFields }] =
useForm({
labelWidth: 120,
schemas: editFormSchema,
@ -62,7 +62,7 @@
return {
registerModal,
registeDictionaryForm,
registerDictionaryForm,
submit,
cancel,
t,

8
vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue

@ -9,7 +9,7 @@
:maskClosable="false"
:minHeight="100"
>
<BasicForm @register="registeDictionaryTypeForm" />
<BasicForm @register="registerDictionaryTypeForm" />
</BasicModal>
</template>
@ -18,7 +18,7 @@
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editDictionaryTypeFormSchema, editDictionaryTypeAsync } from './AbpDictionary';
import { editDictionaryTypeFormSchema, editDictionaryTypeAsync } from "/@/views/admin/dictionary/AbpDictionary";
export default defineComponent({
name: 'EditDictionary',
components: {
@ -36,7 +36,7 @@
key: data.record.key,
});
});
const [registeDictionaryTypeForm, { setFieldsValue, getFieldsValue, validate, resetFields }] =
const [registerDictionaryTypeForm, { setFieldsValue, getFieldsValue, validate, resetFields }] =
useForm({
labelWidth: 100,
schemas: editDictionaryTypeFormSchema,
@ -60,7 +60,7 @@
return {
registerModal,
registeDictionaryTypeForm,
registerDictionaryTypeForm,
submit,
t,
cancel,

6
vben271/src/views/admin/elasticSearch/ElasticSearch.vue

@ -18,7 +18,11 @@
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicModal, useModal } from '/@/components/Modal';
import { BasicTable, useTable } from '/@/components/Table';
import { getElasticSearchLogAsync, tableColumns, searchFormSchema } from './ElasticSearch';
import {
getElasticSearchLogAsync,
tableColumns,
searchFormSchema,
} from '/@/views/admin/elasticSearch/ElasticSearch';
export default defineComponent({
name: 'ElasticSearch',
components: {

7
vben271/src/views/admin/files/File.vue

@ -35,7 +35,7 @@
import { defineComponent, ref } from 'vue';
import { UploadOutlined } from '@ant-design/icons-vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { tableColumns, searchFormSchema, getTableListAsync } from './File';
import { tableColumns, searchFormSchema, getTableListAsync } from "/@/views/admin/files/File";
import { Tag } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';
import { getOSSClient, importFileAsync, downLoadFile } from './UploadOss';
@ -83,7 +83,6 @@
let index = fileName.lastIndexOf('.');
let type = fileName.slice(index + 1);
let name = fileName.slice(0, index);
debugger;
const client = await getOSSClient();
let fileFullName = `host/${moment().format('YYYY-MM-DD')}/${name}_${moment().format(
'X'
@ -94,10 +93,10 @@
request.fileName = fileName;
request.filePath = fileFullName;
await importFileAsync({ request });
reload();
await reload();
}
const handleDownload = async (record: Recordable) => {
downLoadFile(record.filePath);
await downLoadFile(record.filePath);
};
return {
t,

20
vben271/src/views/admin/files/UploadOss.ts

@ -9,7 +9,7 @@ export async function importFileAsync({ request }) {
async function getFileTokenAsync() {
const _filesServiceProxy = new FilesServiceProxy();
var result = await _filesServiceProxy.getFileToken();
const result = await _filesServiceProxy.getFileToken();
sessionStorage.setItem('oss', JSON.stringify(result));
return result;
}
@ -29,7 +29,7 @@ export async function getOSSClient(): Promise<OSS> {
fileToken = await getFileTokenAsync();
}
}
let requet = {
let request = {
region: fileToken.region,
accessKeyId: fileToken.accessKeyId,
accessKeySecret: fileToken.accessKeySecret,
@ -37,7 +37,7 @@ export async function getOSSClient(): Promise<OSS> {
stsToken: fileToken.token as string,
};
return Promise.resolve<OSS>(new OSS(requet));
return Promise.resolve<OSS>(new OSS(request));
} catch (error) {
console.error('获取oss Client失败');
}
@ -58,12 +58,12 @@ export async function downLoadFile(fileName) {
}
function formatDate(dateTime) {
var date = new Date(dateTime);
var YY = date.getFullYear() + '-';
var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var hh = date.getHours() + ':';
var mm = date.getMinutes() + ':';
var ss = date.getSeconds();
const date = new Date(dateTime);
const YY = date.getFullYear() + '-';
const MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
const DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
const hh = date.getHours() + ':';
const mm = date.getMinutes() + ':';
const ss = date.getSeconds();
return YY + MM + DD + ' ' + hh + mm + ss;
}

23
vben271/src/views/admin/roles/AbpRole.ts

@ -115,7 +115,7 @@ export async function getTableListAsync(params: PagingRoleListInput): Promise<Id
*
* @param param0
*/
export async function deleleRoleAsync({ roleId, reload }) {
export async function deleteRoleAsync({ roleId, reload }) {
try {
const _roleServiceProxy = new RolesServiceProxy();
openFullLoading();
@ -186,24 +186,3 @@ export async function updateRoleAsync({ request, changeOkLoading, validate, clos
closeModal();
}
/**
*
* @param name
*/
export function excludePermission(name: string): boolean {
const excludes: string[] = [
'AbpIdentity.Users.ManagePermissions',
'FeatureManagement',
'FeatureManagement.ManageHostFeatures',
'AbpTenantManagement',
'AbpTenantManagement.Tenants',
'AbpTenantManagement.Tenants.Create',
'AbpTenantManagement.Tenants.Update',
'AbpTenantManagement.Tenants.Delete',
'AbpTenantManagement.Tenants.ManageFeatures',
'AbpTenantManagement.Tenants.ManageConnectionStrings',
'SettingManagement',
'SettingManagement.Emailing',
];
return excludes.includes(name);
}

4
vben271/src/views/admin/roles/AbpRole.vue

@ -67,7 +67,7 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { tableColumns, searchFormSchema, getTableListAsync, deleleRoleAsync } from './AbpRole';
import { tableColumns, searchFormSchema, getTableListAsync, deleteRoleAsync } from "/@/views/admin/roles/AbpRole";
import { useModal } from '/@/components/Modal';
import CreateAbpRole from './CreateAbpRole.vue';
import PermissionAbpRole from './PermissionAbpRole.vue';
@ -142,7 +142,7 @@
title: t('common.tip'),
content: msg,
onOk: async () => {
await deleleRoleAsync({ roleId: record.id, reload });
await deleteRoleAsync({ roleId: record.id, reload });
},
});
};

96
vben271/src/views/admin/roles/CreateAbpRole.vue

@ -11,58 +11,58 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createRoleAsync } from './AbpRole';
import { useI18n } from '/@/hooks/web/useI18n';
// import { IdentityUserCreateDto } from '/@/services/ServiceProxies';
export default defineComponent({
name: 'CreateAbpRole',
components: {
BasicModal,
BasicForm,
},
emits: ['reload'],
setup(_, { emit }) {
//
// defineEmit(['reload']);
// const ctx = useContext();
import { defineComponent } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { BasicForm, useForm } from "/@/components/Form/index";
import { createFormSchema, createRoleAsync } from "/@/views/admin/roles/AbpRole";
import { useI18n } from "/@/hooks/web/useI18n";
const { t } = useI18n();
const [registerUserForm, { getFieldsValue, validate, resetFields }] = useForm({
labelWidth: 120,
schemas: createFormSchema,
showActionButtonGroup: false,
});
export default defineComponent({
name: "CreateAbpRole",
components: {
BasicModal,
BasicForm
},
emits: ["reload"],
setup(_, { emit }) {
//
// defineEmit(['reload']);
// const ctx = useContext();
const [registerModal, { changeOkLoading, closeModal }] = useModalInner();
const { t } = useI18n();
const [registerUserForm, { getFieldsValue, validate, resetFields }] = useForm({
labelWidth: 120,
schemas: createFormSchema,
showActionButtonGroup: false
});
//
const submit = async () => {
try {
const request = getFieldsValue();
await createRoleAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);
}
};
const [registerModal, { changeOkLoading, closeModal }] = useModalInner();
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
registerModal,
registerUserForm,
submit,
cancel,
};
},
});
//
const submit = async () => {
try {
const request = getFieldsValue();
await createRoleAsync({ request, changeOkLoading, validate, closeModal });
await resetFields();
emit("reload");
} catch (error) {
changeOkLoading(false);
}
};
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
registerModal,
registerUserForm,
submit,
cancel
};
}
});
</script>
<style lang="less" scoped></style>

119
vben271/src/views/admin/roles/EditAbpRole.vue

@ -10,69 +10,70 @@
</template>
<script lang="ts">
import { defineComponent, useContext, defineEmit } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editFormSchema, updateRoleAsync } from './AbpRole';
import { useI18n } from '/@/hooks/web/useI18n';
import {
IdentityRoleDto,
UpdateRoleInput,
IdentityRoleUpdateDto,
} from '/@/services/ServiceProxies';
export default defineComponent({
name: 'EditAbpRole',
components: {
BasicModal,
BasicForm,
},
emits: ['reload'],
setup(_, { emit }) {
//
// defineEmit(['reload']);
// const ctx = useContext();
import { defineComponent } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { BasicForm, useForm } from "/@/components/Form/index";
import { editFormSchema, updateRoleAsync } from "/@/views/admin/roles/AbpRole";
import { useI18n } from "/@/hooks/web/useI18n";
import {
IdentityRoleDto,
UpdateRoleInput,
IdentityRoleUpdateDto
} from "/@/services/ServiceProxies";
const { t } = useI18n();
const [registerUserForm, { getFieldsValue, validate, setFieldsValue }] = useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false,
});
let currentRoleInfo = new IdentityRoleDto();
const [registerModal, { changeOkLoading, closeModal }] = useModalInner((data) => {
currentRoleInfo = data.record;
setFieldsValue({
name: data.record.name,
isDefault: data.record.isDefault ? '1' : '0',
});
export default defineComponent({
name: "EditAbpRole",
components: {
BasicModal,
BasicForm
},
emits: ["reload"],
setup(_, { emit }) {
//
// defineEmit(['reload']);
// const ctx = useContext();
const { t } = useI18n();
const [registerUserForm, { getFieldsValue, validate, setFieldsValue }] = useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false
});
let currentRoleInfo = new IdentityRoleDto();
const [registerModal, { changeOkLoading, closeModal }] = useModalInner((data) => {
currentRoleInfo = data.record;
setFieldsValue({
name: data.record.name,
isDefault: data.record.isDefault ? "1" : "0"
});
});
//
const submit = async () => {
try {
const request = getFieldsValue();
let role = new UpdateRoleInput();
role.roleId = currentRoleInfo.id;
role.roleInfo = new IdentityRoleUpdateDto();
role.roleInfo.name = request.name;
role.roleInfo.isDefault = request.isDefault == 1 ? true : false;
role.roleInfo.isPublic = currentRoleInfo.isPublic;
role.roleInfo.concurrencyStamp = currentRoleInfo.concurrencyStamp;
await updateRoleAsync({ request: role, changeOkLoading, validate, closeModal });
emit('reload');
} catch (error) {
changeOkLoading(false);
}
};
//
const submit = async () => {
try {
const request = getFieldsValue();
let role = new UpdateRoleInput();
role.roleId = currentRoleInfo.id;
role.roleInfo = new IdentityRoleUpdateDto();
role.roleInfo.name = request.name;
role.roleInfo.isDefault = request.isDefault == 1;
role.roleInfo.isPublic = currentRoleInfo.isPublic;
role.roleInfo.concurrencyStamp = currentRoleInfo.concurrencyStamp;
await updateRoleAsync({ request: role, changeOkLoading, validate, closeModal });
emit("reload");
} catch (error) {
changeOkLoading(false);
}
};
return {
t,
registerModal,
registerUserForm,
submit,
};
},
});
return {
t,
registerModal,
registerUserForm,
submit
};
}
});
</script>
<style lang="less" scoped></style>

194
vben271/src/views/admin/roles/PermissionAbpRole.vue

@ -25,116 +25,116 @@
}"
>
<a-button :style="{ marginRight: '8px' }" @click="closeDrawer"
>{{ t('common.cancelText') }}
>{{ t("common.cancelText") }}
</a-button>
<a-button type="primary" @click="submitRolePermisstionAsync">
{{ t('common.saveText') }}
<a-button type="primary" @click="submitRolePermissionAsync">
{{ t("common.saveText") }}
</a-button>
</div>
</BasicDrawer>
</template>
<script lang="ts">
import { defineComponent, reactive, ref, unref, toRaw } from 'vue';
import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
import { getRolePermissionAsync, updateRolePermissionAsync } from './AbpRole';
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicTree, TreeActionType } from '/@/components/Tree/index';
import { useUserStoreWithOut } from '/@/store/modules/user';
import {
UpdateRolePermissionsInput,
UpdatePermissionDto,
UpdatePermissionsDto,
} from '/@/services/ServiceProxies';
import { message } from 'ant-design-vue';
export default defineComponent({
name: 'PermissionAbpRole',
components: { BasicDrawer, BasicTree },
setup() {
let roleName: string = '';
const { t } = useI18n();
const [registerDrawer, { closeDrawer, setDrawerProps }] = useDrawerInner(async (data) => {
roleName = data.record.name;
await getRolePermissions(data.record.name);
//loading.value = false;
});
const treeRef = ref<Nullable<TreeActionType>>(null);
import { defineComponent, reactive, ref, unref, toRaw } from "vue";
import { BasicDrawer, useDrawerInner } from "/@/components/Drawer";
import { getRolePermissionAsync, updateRolePermissionAsync } from "/@/views/admin/roles/AbpRole";
import { useI18n } from "/@/hooks/web/useI18n";
import { BasicTree, TreeActionType } from "/@/components/Tree/index";
import { useUserStoreWithOut } from "/@/store/modules/user";
import {
UpdateRolePermissionsInput,
UpdatePermissionDto,
UpdatePermissionsDto
} from "/@/services/ServiceProxies";
import { message } from "ant-design-vue";
const totalRolePermissionsRef = reactive([]);
let allPermissionsRef = reactive([]);
const getTree = () => {
const tree = unref(treeRef);
if (!tree) {
throw new Error('tree is null!');
}
return tree;
};
export default defineComponent({
name: "PermissionAbpRole",
components: { BasicDrawer, BasicTree },
setup: function() {
let roleName: string = "";
const { t } = useI18n();
const [registerDrawer, { closeDrawer, setDrawerProps }] = useDrawerInner(async (data) => {
roleName = data.record.name;
await getRolePermissions(data.record.name);
});
const treeRef = ref<Nullable<TreeActionType>>(null);
/**
* 获取权限信息并且构造权限树
*/
const getRolePermissions = async (roleName: string) => {
setDrawerProps({ loading: true });
totalRolePermissionsRef.splice(0, totalRolePermissionsRef.length);
allPermissionsRef.splice(0, allPermissionsRef.length);
const permissions = await getRolePermissionAsync(roleName);
totalRolePermissionsRef.push(...(permissions.allGrants as []));
allPermissionsRef.push(...(permissions.permissions as []));
getTree().setCheckedKeys(permissions.grants as []);
setDrawerProps({ loading: false });
};
const totalRolePermissionsRef = reactive([]);
let allPermissionsRef = reactive([]);
const getTree = () => {
const tree = unref(treeRef);
if (!tree) {
throw new Error("tree is null!");
}
return tree;
};
const submitRolePermisstionAsync = async () => {
let request: UpdateRolePermissionsInput = new UpdateRolePermissionsInput();
request.updatePermissionsDto = new UpdatePermissionsDto();
/**
* 获取权限信息并且构造权限树
*/
const getRolePermissions = async (roleName: string) => {
setDrawerProps({ loading: true });
totalRolePermissionsRef.splice(0, totalRolePermissionsRef.length);
allPermissionsRef.splice(0, allPermissionsRef.length);
const permissions = await getRolePermissionAsync(roleName);
totalRolePermissionsRef.push(...(permissions.allGrants as []));
allPermissionsRef.push(...(permissions.permissions as []));
getTree().setCheckedKeys(permissions.grants as []);
setDrawerProps({ loading: false });
};
let permisstions: UpdatePermissionDto[] = [];
request.providerName = 'R';
request.providerKey = roleName;
const { checked } = toRaw(getTree().getCheckedKeys()) as [];
if (checked == undefined) {
return;
const submitRolePermissionAsync = async () => {
let request: UpdateRolePermissionsInput = new UpdateRolePermissionsInput();
request.updatePermissionsDto = new UpdatePermissionsDto();
let permissions: UpdatePermissionDto[] = [];
request.providerName = "R";
request.providerKey = roleName;
const { checked } = toRaw(getTree().getCheckedKeys()) as [];
if (checked == undefined) {
return;
}
const noSelectedPermissions = totalRolePermissionsRef.filter((e) => {
return !(checked.indexOf(e) > -1);
});
noSelectedPermissions.forEach((item: string) => {
if (item.includes(".")) {
let permission = new UpdatePermissionDto();
permission.name = item;
permission.isGranted = false;
permissions.push(permission);
}
const noSelectedPermissions = totalRolePermissionsRef.filter((e) => {
return !(checked.indexOf(e) > -1);
});
noSelectedPermissions.forEach((item: string) => {
if (item.includes('.')) {
let permisstion = new UpdatePermissionDto();
permisstion.name = item;
permisstion.isGranted = false;
permisstions.push(permisstion);
}
});
checked.forEach((item: string) => {
if (item.includes('.')) {
let permisstion = new UpdatePermissionDto();
permisstion.name = item;
permisstion.isGranted = true;
permisstions.push(permisstion);
}
});
});
checked.forEach((item: string) => {
if (item.includes(".")) {
let permission = new UpdatePermissionDto();
permission.name = item;
permission.isGranted = true;
permissions.push(permission);
}
});
request.updatePermissionsDto.permissions = permisstions;
request.updatePermissionsDto.permissions = permissions;
await updateRolePermissionAsync({ request, closeDrawer, setDrawerProps });
const userStore = useUserStoreWithOut();
if (userStore.getUserInfo.roles.includes(roleName)) {
message.success(t('routes.admin.grantedMessage'));
userStore.logout(true);
} else {
message.success(t('common.operationSuccess'));
}
};
return {
t,
registerDrawer,
allPermissionsRef,
submitRolePermisstionAsync,
closeDrawer,
treeRef,
};
},
});
await updateRolePermissionAsync({ request, closeDrawer, setDrawerProps });
const userStore = useUserStoreWithOut();
if (userStore.getUserInfo.roles.includes(roleName)) {
message.success(t("routes.admin.grantedMessage"));
await userStore.logout(true);
} else {
message.success(t("common.operationSuccess"));
}
};
return {
t,
registerDrawer,
allPermissionsRef,
submitRolePermissionAsync,
closeDrawer,
treeRef
};
}
});
</script>
<style lang="less" scoped></style>

7
vben271/src/views/admin/settings/Setting.vue

@ -41,10 +41,9 @@
<script lang="ts">
import { defineComponent, reactive, toRefs, onMounted } from 'vue';
import { Tabs } from 'ant-design-vue';
import { CollapseContainer } from '/@/components/Container/index';
import { ScrollContainer } from '/@/components/Container/index';
import { CollapseContainer,ScrollContainer } from '/@/components/Container/index';
import { SettingOutput, UpdateSettingInput } from '/@/services/ServiceProxies';
import { getAllSettingsAsync, updateSettingsAsync } from './Setting';
import { getAllSettingsAsync, updateSettingsAsync } from "/@/views/admin/settings/Setting";
import { useI18n } from '/@/hooks/web/useI18n';
import { PageWrapper } from '/@/components/Page';
import { message } from 'ant-design-vue';
@ -74,7 +73,7 @@
try {
debugger;
const prefix = 'setting_';
var request = new UpdateSettingInput();
const request = new UpdateSettingInput();
request.values as {};
let items: { [key: string]: string } = {};
item.forEach((e) => {

2
vben271/src/views/admin/users/AbpUser.ts

@ -320,7 +320,7 @@ export async function updateUserAsync({
/**
*
* @param isLock
* @param request
* @returns
*/
export async function lockUserAsync(request: LockUserInput): Promise<void> {

215
vben271/src/views/admin/users/AbpUser.vue

@ -8,7 +8,7 @@
@click="openCreateAbpUserModal"
v-auth="'AbpIdentity.Users.Create'"
>
{{ t('common.createText') }}
{{ t("common.createText") }}
</a-button>
<a-button
preIcon="ant-design:cloud-download-outlined"
@ -16,12 +16,12 @@
@click="handleExport"
v-auth="'System.Users.Export'"
>
{{ t('common.export') }}
{{ t("common.export") }}
</a-button>
</template>
<template #isActive="{ record }">
<Tag :color="record.isActive ? 'green' : 'red'">
{{ record.isActive ? t('common.enabled') : t('common.disEnabled') }}
{{ record.isActive ? t("common.enabled") : t("common.disEnabled") }}
</Tag>
</template>
<template #action="{ record }">
@ -63,115 +63,116 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { useMessage } from '/@/hooks/web/useMessage';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import {
tableColumns,
searchFormSchema,
getTableListAsync,
deleteUserAsync,
lockUserAsync,
exportAsync,
} from './AbpUser';
import { useModal } from '/@/components/Modal';
import CreateAbpUser from './CreateAbpUser.vue';
import EditAbpUser from './EditAbpUser.vue';
import { message } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';
import { LockUserInput } from '/@/services/ServiceProxies';
import { Tag } from 'ant-design-vue';
export default defineComponent({
name: 'AbpUser',
components: {
BasicTable,
TableAction,
CreateAbpUser,
EditAbpUser,
Tag,
},
setup() {
const { createConfirm } = useMessage();
const { t } = useI18n();
const [registerCreateAbpUserModal, { openModal: openCreateAbpUserModal }] = useModal();
import { defineComponent } from "vue";
import { useMessage } from "/@/hooks/web/useMessage";
import { BasicTable, useTable, TableAction } from "/@/components/Table";
import {
tableColumns,
searchFormSchema,
getTableListAsync,
deleteUserAsync,
lockUserAsync,
exportAsync
} from "/@/views/admin/users/AbpUser";
import { useModal } from "/@/components/Modal";
import CreateAbpUser from "./CreateAbpUser.vue";
import EditAbpUser from "./EditAbpUser.vue";
import { message } from "ant-design-vue";
import { useI18n } from "/@/hooks/web/useI18n";
import { LockUserInput } from "/@/services/ServiceProxies";
import { Tag } from "ant-design-vue";
const [registerEditAbpUserModal, { openModal: openEditAbpUserModal }] = useModal();
export default defineComponent({
name: "AbpUser",
components: {
BasicTable,
TableAction,
CreateAbpUser,
EditAbpUser,
Tag
},
setup() {
const { createConfirm } = useMessage();
const { t } = useI18n();
const [registerCreateAbpUserModal, { openModal: openCreateAbpUserModal }] = useModal();
// table
const [registerTable, { reload, getForm }] = useTable({
columns: tableColumns,
formConfig: {
labelWidth: 70,
schemas: searchFormSchema,
},
api: getTableListAsync,
showTableSetting: true,
useSearchForm: true,
bordered: true,
canResize: true,
showIndexColumn: true,
actionColumn: {
width: 120,
title: t('common.action'),
dataIndex: 'action',
slots: {
customRender: 'action',
},
fixed: 'right',
const [registerEditAbpUserModal, { openModal: openEditAbpUserModal }] = useModal();
// table
const [registerTable, { reload, getForm }] = useTable({
columns: tableColumns,
formConfig: {
labelWidth: 70,
schemas: searchFormSchema
},
api: getTableListAsync,
showTableSetting: true,
useSearchForm: true,
bordered: true,
canResize: true,
showIndexColumn: true,
actionColumn: {
width: 120,
title: t("common.action"),
dataIndex: "action",
slots: {
customRender: "action"
},
fixed: "right"
}
});
//
const handleEdit = (record: Recordable) => {
openEditAbpUserModal(true, {
record: record
});
};
//
const handleEdit = (record: Recordable) => {
openEditAbpUserModal(true, {
record: record,
//
const handleDelete = async (record: Recordable) => {
if (record.name == "admin") {
message.error("admin not delete");
return;
} else {
let msg = t("common.askDelete");
createConfirm({
iconType: "warning",
title: t("common.tip"),
content: msg,
onOk: async () => {
await deleteUserAsync({ userId: record.id, reload });
}
});
};
//
const handleDelete = async (record: Recordable) => {
if (record.name == 'admin') {
message.error('admin not delete');
return;
} else {
let msg = t('common.askDelete');
createConfirm({
iconType: 'warning',
title: t('common.tip'),
content: msg,
onOk: async () => {
await deleteUserAsync({ userId: record.id, reload });
},
});
}
};
}
};
const handleLock = async (record: Recordable) => {
let request = new LockUserInput();
request.userId = record.id;
request.locked = !record.isActive;
await lockUserAsync(request);
message.success(t('common.operationSuccess'));
reload();
};
const handleExport = () => {
const { getFieldsValue } = getForm();
let request = getFieldsValue();
exportAsync({ request });
};
return {
registerTable,
handleEdit,
handleDelete,
getTableListAsync,
registerCreateAbpUserModal,
openCreateAbpUserModal,
registerEditAbpUserModal,
t,
reload,
handleLock,
handleExport,
};
},
});
const handleLock = async (record: Recordable) => {
let request = new LockUserInput();
request.userId = record.id;
request.locked = !record.isActive;
await lockUserAsync(request);
message.success(t("common.operationSuccess"));
await reload();
};
const handleExport = () => {
const { getFieldsValue } = getForm();
let request = getFieldsValue();
exportAsync({ request });
};
return {
registerTable,
handleEdit,
handleDelete,
getTableListAsync,
registerCreateAbpUserModal,
openCreateAbpUserModal,
registerEditAbpUserModal,
t,
reload,
handleLock,
handleExport
};
}
});
</script>

183
vben271/src/views/admin/users/CreateAbpUser.vue

@ -17,16 +17,12 @@
<BasicForm @register="registerUserForm" />
</TabPane>
<TabPane :tab="t('routes.admin.userManagement_role')" key="2">
<!-- <a-checkbox-group @change="onRoleSelectedChange" v-model:value="defaultRolesRef">
<a-checkbox v-for="(item, index) in defaultRolesRef" :key="index" :value="item.name">
{{ item.name }}
</a-checkbox>
</a-checkbox-group> -->
<a-checkbox-group v-model:value="defaultRolesRef">
<a-row justify="center">
<a-col :span="24">
<a-checkbox style="width: 150px" v-for="(item, index) in itemRolesRef" :key="index" :value="item.name">{{ item.name }}</a-checkbox>
<a-checkbox style="width: 150px" v-for="(item, index) in itemRolesRef" :key="index"
:value="item.name">{{ item.name }}
</a-checkbox>
</a-col>
</a-row>
</a-checkbox-group>
@ -37,101 +33,88 @@
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { Tabs } from 'ant-design-vue';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, getAllRoleAsync, createUserAsync } from './AbpUser';
import { IdentityRoleDto, IdentityUserCreateDto } from '/@/services/ServiceProxies';
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
name: 'CreateAbpUser',
components: {
BasicModal,
Tabs,
TabPane: Tabs.TabPane,
BasicForm,
},
emits: ['reload'],
setup(_, { emit }) {
//
// defineEmits(['reload']);
// const ctx = useContexts();
const { t } = useI18n();
const [registerModal, { changeOkLoading, closeModal }] = useModalInner();
const [registerUserForm, { getFieldsValue, validate, resetFields }] = useForm({
labelWidth: 120,
schemas: createFormSchema,
showActionButtonGroup: false,
});
let itemRoles: IdentityRoleDto[] = [];
let defaultRoles: string[] = [];
//
let defaultRolesRef = ref(defaultRoles);
let itemRolesRef = ref(itemRoles);
const visibleChange = async (visible: boolean) => {
if (visible) {
itemRolesRef.value.length = 0;
defaultRolesRef.value.splice(0, defaultRolesRef.value.length);
let roles = await getAllRoleAsync();
roles.items?.forEach((e) => {
itemRolesRef.value.push(e);
});
} else {
resetFields();
itemRolesRef.value.length = 0;
defaultRolesRef.value.length = 0;
}
};
import { defineComponent, ref } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { Tabs } from "ant-design-vue";
import { BasicForm, useForm } from "/@/components/Form/index";
import { createFormSchema, getAllRoleAsync, createUserAsync } from "/@/views/admin/users/AbpUser";
import { IdentityRoleDto, IdentityUserCreateDto } from "/@/services/ServiceProxies";
import { useI18n } from "/@/hooks/web/useI18n";
// //
// const onRoleSelectedChange = (value: string[]) => {
// ;
// // defaultRolesRef.defaultRoles.splice(0, defaultRolesRef.defaultRoles.length);
// value.forEach((e) => {
// defaultRolesRef.defaultRoles.push(e);
// });
// };
export default defineComponent({
name: "CreateAbpUser",
components: {
BasicModal,
Tabs,
TabPane: Tabs.TabPane,
BasicForm
},
emits: ["reload"],
setup(_, { emit }) {
const { t } = useI18n();
const [registerModal, { changeOkLoading, closeModal }] = useModalInner();
const [registerUserForm, { getFieldsValue, validate, resetFields }] = useForm({
labelWidth: 120,
schemas: createFormSchema,
showActionButtonGroup: false
});
//
const submit = async () => {
try {
let request = getFieldsValue() as IdentityUserCreateDto;
request.roleNames = defaultRolesRef.value;
await createUserAsync({
request,
changeOkLoading,
validate,
closeModal,
resetFields,
});
defaultRolesRef.value.length = 0;
emit('reload');
} catch (error) {
changeOkLoading(false);
}
};
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
cancel,
registerModal,
registerUserForm,
submit,
visibleChange,
defaultRolesRef,
itemRolesRef,
};
},
});
let itemRoles: IdentityRoleDto[] = [];
let defaultRoles: string[] = [];
//
let defaultRolesRef = ref(defaultRoles);
let itemRolesRef = ref(itemRoles);
const visibleChange = async (visible: boolean) => {
if (visible) {
itemRolesRef.value.length = 0;
defaultRolesRef.value.splice(0, defaultRolesRef.value.length);
let roles = await getAllRoleAsync();
roles.items?.forEach((e) => {
itemRolesRef.value.push(e);
});
} else {
await resetFields();
itemRolesRef.value.length = 0;
defaultRolesRef.value.length = 0;
}
};
//
const submit = async () => {
try {
let request = getFieldsValue() as IdentityUserCreateDto;
request.roleNames = defaultRolesRef.value;
await createUserAsync({
request,
changeOkLoading,
validate,
closeModal,
resetFields
});
defaultRolesRef.value.length = 0;
emit("reload");
} catch (error) {
changeOkLoading(false);
}
};
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
cancel,
registerModal,
registerUserForm,
submit,
visibleChange,
defaultRolesRef,
itemRolesRef
};
}
});
</script>
<style lang="less" scoped>
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0px;
}
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0;
}
</style>

7
vben271/src/views/admin/users/EditAbpUser.vue

@ -46,7 +46,7 @@
getAllRoleAsync,
updateUserAsync,
getRolesByUserIdAsync,
} from './AbpUser';
} from "/@/views/admin/users/AbpUser";
import {
IdentityRoleDto,
IdentityUserDto,
@ -110,8 +110,7 @@
let request = getFieldsValue();
if (request.password != request.confirmPassword) {
message.error('两次密码输入不一致');
throw new Error('两次密码输入不一致');
message.error(t('routes.admin.editPasswordMessage'));
}
let updateUserInput = new UpdateUserInput();
let userInfo = new IdentityUserUpdateDto();
@ -160,6 +159,6 @@
</script>
<style lang="less" scoped>
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0px;
margin-left: 0;
}
</style>

2
vben271/src/views/identityServers/apiResources/ApiResources.vue

@ -59,7 +59,7 @@
searchFormSchema,
getTableListAsync,
deleteApiResourceAsync,
} from './ApiResources';
} from "/@/views/identityServers/apiResources/ApiResources";
import { useI18n } from '/@/hooks/web/useI18n';
import { Tag } from 'ant-design-vue';
import CreateApiResource from './CreateApiResource.vue';

4
vben271/src/views/identityServers/apiResources/CreateApiResource.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createApiResourceAsync } from './ApiResources';
import { createFormSchema, createApiResourceAsync } from "/@/views/identityServers/apiResources/ApiResources";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -39,7 +39,7 @@
try {
const request = getFieldsValue();
await createApiResourceAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
await resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);

140
vben271/src/views/identityServers/apiResources/EditApiResources.vue

@ -22,7 +22,8 @@
v-for="(item, index) in apiScopes"
:key="index"
:value="item.value"
>{{ item.label }}</a-checkbox
>{{ item.label }}
</a-checkbox
>
</a-col>
</a-row>
@ -34,76 +35,81 @@
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { Tabs } from 'ant-design-vue';
import { editFormSchema, getAllApiScopeAsync, updateApiResourceAsync } from './ApiResources';
import { StringStringFromSelector } from '/@/services/ServiceProxies';
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
name: 'EditApiResources',
components: {
BasicModal,
BasicForm,
Tabs,
TabPane: Tabs.TabPane,
},
emits: ['reload'],
setup(_, { emit }) {
const { t } = useI18n();
const [
registerBasicInfoForm,
{
getFieldsValue: getFieldsBasicInfoValue,
validate: basicInfoValidate,
setFieldsValue: setBasicInfoFieldsValue,
},
] = useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false,
});
import { defineComponent, reactive, toRefs } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { BasicForm, useForm } from "/@/components/Form/index";
import { Tabs } from "ant-design-vue";
import {
editFormSchema,
getAllApiScopeAsync,
updateApiResourceAsync
} from "/@/views/identityServers/apiResources/ApiResources";
import { StringStringFromSelector } from "/@/services/ServiceProxies";
import { useI18n } from "/@/hooks/web/useI18n";
let apiScopes: StringStringFromSelector[] = [];
const state = reactive({
defaultApiScope: [],
apiScopes,
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner(async (data) => {
setBasicInfoFieldsValue({
name: data.record.name,
displayName: data.record.displayName,
secret: data.record.secrets.length > 0 ? data.record.secrets[0].value : '',
description: data.record.description,
enabled: data.record.enabled,
showInDiscoveryDocument: data.record.showInDiscoveryDocument,
});
export default defineComponent({
name: "EditApiResources",
components: {
BasicModal,
BasicForm,
Tabs,
TabPane: Tabs.TabPane
},
emits: ["reload"],
setup(_, { emit }) {
const { t } = useI18n();
const [
registerBasicInfoForm,
{
getFieldsValue: getFieldsBasicInfoValue,
validate: basicInfoValidate,
setFieldsValue: setBasicInfoFieldsValue
}
] = useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false
});
state.apiScopes = await getAllApiScopeAsync();
state.defaultApiScope = data.record.scopes.map((e) => e.scope);
let apiScopes: StringStringFromSelector[] = [];
const state = reactive({
defaultApiScope: [],
apiScopes
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner(async (data) => {
await setBasicInfoFieldsValue({
name: data.record.name,
displayName: data.record.displayName,
secret: data.record.secrets.length > 0 ? data.record.secrets[0].value : "",
description: data.record.description,
enabled: data.record.enabled,
showInDiscoveryDocument: data.record.showInDiscoveryDocument
});
const submit = async () => {
await basicInfoValidate();
var basicInfo = getFieldsBasicInfoValue();
let requestScope = { apiScopes: state.defaultApiScope };
var request = Object.assign(basicInfo, requestScope);
await updateApiResourceAsync({ request, changeOkLoading, closeModal });
emit('reload');
};
return {
registerModal,
registerBasicInfoForm,
submit,
t,
...toRefs(state),
};
},
});
state.apiScopes = await getAllApiScopeAsync();
state.defaultApiScope = data.record.scopes.map((e) => e.scope);
});
const submit = async () => {
await basicInfoValidate();
const basicInfo = getFieldsBasicInfoValue();
const requestScope = { apiScopes: state.defaultApiScope };
const request = Object.assign(basicInfo, requestScope);
await updateApiResourceAsync({ request, changeOkLoading, closeModal });
emit("reload");
};
return {
registerModal,
registerBasicInfoForm,
submit,
t,
...toRefs(state)
};
}
});
</script>
<style lang="less" scoped>
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0px;
}
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0;
}
</style>

2
vben271/src/views/identityServers/apiScopes/ApiScopes.vue

@ -69,7 +69,7 @@
searchFormSchema,
getTableListAsync,
deleteApiScopeAsync,
} from './ApiScopes';
} from "/@/views/identityServers/apiScopes/ApiScopes";
import { useI18n } from '/@/hooks/web/useI18n';
import { Tag } from 'ant-design-vue';
import CreateApiScope from './CreateApiScope.vue';

4
vben271/src/views/identityServers/apiScopes/CreateApiScope.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createApiScopeAsync } from './ApiScopes';
import { createFormSchema, createApiScopeAsync } from "/@/views/identityServers/apiScopes/ApiScopes";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -38,7 +38,7 @@
try {
const request = getFieldsValue();
await createApiScopeAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
await resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);

4
vben271/src/views/identityServers/apiScopes/EditApiScope.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editFormSchema, editApiScopeAsync } from './ApiScopes';
import { editFormSchema, editApiScopeAsync } from "/@/views/identityServers/apiScopes/ApiScopes";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -51,7 +51,7 @@
try {
const request = getFieldsValue();
await editApiScopeAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
await resetFields();
emit('reload');
} finally {
changeOkLoading(false);

2
vben271/src/views/identityServers/clients/ClientUri.vue

@ -69,7 +69,7 @@
removeLogoutRedirectUriAsync,
addCorsAsync,
removeCorsAsync,
} from './Clients';
} from "/@/views/identityServers/clients/Clients";
import { PagingClientListOutput } from '/@/services/ServiceProxies';
export default defineComponent({
name: 'ClientUri',

8
vben271/src/views/identityServers/clients/Clients.vue

@ -42,7 +42,7 @@
{
auth: 'IdentityServerManagement.Client.Update',
label: 'Scopes',
onClick: handleIdenityResource.bind(null, record),
onClick: handleIdentityResource.bind(null, record),
},
{
auth: 'IdentityServerManagement.Client.Delete',
@ -81,7 +81,7 @@
getTableListAsync,
deleteClientAsync,
enabledClientAsync,
} from './Clients';
} from "/@/views/identityServers/clients/Clients";
import { useI18n } from '/@/hooks/web/useI18n';
import { Tag } from 'ant-design-vue';
import CreateClient from './CreateClient.vue';
@ -158,7 +158,7 @@
openUriDrawer(true, { record: record });
};
const handleIdenityResource = async (record: Recordable) => {
const handleIdentityResource = async (record: Recordable) => {
openIdentityResourceDrawer(true, { record: record });
};
return {
@ -175,7 +175,7 @@
handleUri,
registerUriDrawer,
registerIdentityResourceDrawer,
handleIdenityResource,
handleIdentityResource,
};
},
});

2
vben271/src/views/identityServers/clients/CreateClient.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createClientAsync } from './Clients';
import { createFormSchema, createClientAsync } from "/@/views/identityServers/clients/Clients";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({

14
vben271/src/views/identityServers/clients/EditClientBasic.vue

@ -39,7 +39,7 @@
editBasicTokenSchema,
editBasicSecretSchema,
updateClientAsync,
} from './Clients';
} from "/@/views/identityServers/clients/Clients";
export default defineComponent({
name: 'EditAbpUser',
@ -149,11 +149,11 @@
await optionValidate();
await tokenValidate();
await secretValidate();
var detailRequest = getFieldsDetailValue();
var optionRequest = getFieldsOptionValue();
var tokenRequest = getFieldsTokenValue();
var secretRequest = getFieldsSecretValue();
var request = Object.assign(detailRequest, optionRequest, tokenRequest, secretRequest);
const detailRequest = getFieldsDetailValue();
const optionRequest = getFieldsOptionValue();
const tokenRequest = getFieldsTokenValue();
const secretRequest = getFieldsSecretValue();
const request = Object.assign(detailRequest, optionRequest, tokenRequest, secretRequest);
await updateClientAsync({ request, changeOkLoading, closeModal });
emit('reload');
};
@ -171,6 +171,6 @@
</script>
<style lang="less" scoped>
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0px;
margin-left: 0;
}
</style>

4
vben271/src/views/identityServers/clients/EditClientIdentityResource.vue

@ -38,7 +38,7 @@
<script lang="ts">
import { defineComponent, reactive, toRefs } from 'vue';
import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
import { getAllScopeAsync, updateScopesAsync } from './Clients';
import { getAllScopeAsync, updateScopesAsync } from "/@/views/identityServers/clients/Clients";
import { StringStringFromSelector } from '/@/services/ServiceProxies';
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -77,6 +77,6 @@
</script>
<style lang="less" scoped>
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0px;
margin-left: 0;
}
</style>

4
vben271/src/views/identityServers/identityResources/CreateIdentityResource.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createIdentityResourcesAsync } from './IdentityResources';
import { createFormSchema, createIdentityResourcesAsync } from "/@/views/identityServers/identityResources/IdentityResources";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -42,7 +42,7 @@
try {
const request = getFieldsValue();
await createIdentityResourcesAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
await resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);

4
vben271/src/views/identityServers/identityResources/EditIdentityResources.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editFormSchema, editIdentityResourceAsync } from './IdentityResources';
import { editFormSchema, editIdentityResourceAsync } from "/@/views/identityServers/identityResources/IdentityResources";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -53,7 +53,7 @@
const request = getFieldsValue();
await validate();
await editIdentityResourceAsync({ request, changeOkLoading, closeModal });
resetFields();
await resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);

2
vben271/src/views/identityServers/identityResources/IdentityResources.vue

@ -69,7 +69,7 @@
searchFormSchema,
getTableListAsync,
deleteIdentityResourcesAsync,
} from './IdentityResources';
} from "/@/views/identityServers/identityResources/IdentityResources";
import { useI18n } from '/@/hooks/web/useI18n';
import { Tag } from 'ant-design-vue';
import CreateIdentityResource from './CreateIdentityResource.vue';

4
vben271/src/views/tenants/CreateTenant.vue

@ -14,7 +14,7 @@
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { createFormSchema, createTenantAsync } from './Tenant';
import { createFormSchema, createTenantAsync } from "/@/views/tenants/Tenant";
import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({
@ -38,7 +38,7 @@
try {
const request = getFieldsValue();
await createTenantAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
await resetFields();
emit('reload');
} catch (error) {
changeOkLoading(false);

108
vben271/src/views/tenants/EditConnectionString.vue

@ -12,65 +12,65 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import {
updateConnectionStringFormSchema,
updateConnectionStringAsync,
getConnectionStringAsync,
} from './Tenant';
import { useI18n } from '/@/hooks/web/useI18n';
import { defineComponent } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { BasicForm, useForm } from "/@/components/Form/index";
import {
updateConnectionStringFormSchema,
updateConnectionStringAsync,
getConnectionStringAsync
} from "/@/views/tenants/Tenant";
import { useI18n } from "/@/hooks/web/useI18n";
export default defineComponent({
name: 'EditConnectionString',
components: {
BasicModal,
BasicForm,
},
emits: ['reload'],
setup(_, { emit }) {
const { t } = useI18n();
const [registerApiScopeForm, { getFieldsValue, resetFields, setFieldsValue }] = useForm({
labelWidth: 120,
schemas: updateConnectionStringFormSchema,
showActionButtonGroup: false,
});
export default defineComponent({
name: "EditConnectionString",
components: {
BasicModal,
BasicForm
},
emits: ["reload"],
setup(_, { emit }) {
const { t } = useI18n();
const [registerApiScopeForm, { getFieldsValue, resetFields, setFieldsValue }] = useForm({
labelWidth: 120,
schemas: updateConnectionStringFormSchema,
showActionButtonGroup: false
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner(async (data) => {
const connectionString = await getConnectionStringAsync({ id: data.record.id });
setFieldsValue({
id: data.record.id,
connectionString: connectionString,
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner(async (data) => {
const connectionString = await getConnectionStringAsync({ id: data.record.id });
await setFieldsValue({
id: data.record.id,
connectionString: connectionString
});
});
const submit = async () => {
try {
const request = getFieldsValue();
changeOkLoading(true);
await updateConnectionStringAsync({ request });
resetFields();
emit('reload');
} finally {
changeOkLoading(false);
closeModal();
}
};
const cancel = () => {
resetFields();
const submit = async () => {
try {
const request = getFieldsValue();
changeOkLoading(true);
await updateConnectionStringAsync({ request });
await resetFields();
emit("reload");
} finally {
changeOkLoading(false);
closeModal();
};
return {
t,
registerModal,
registerApiScopeForm,
submit,
cancel,
};
},
});
}
};
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
registerModal,
registerApiScopeForm,
submit,
cancel
};
}
});
</script>
<style lang="less" scoped></style>

96
vben271/src/views/tenants/EditTenant.vue

@ -12,59 +12,59 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { editFormSchema, updateTenantAsync } from './Tenant';
import { useI18n } from '/@/hooks/web/useI18n';
import { defineComponent } from "vue";
import { BasicModal, useModalInner } from "/@/components/Modal";
import { BasicForm, useForm } from "/@/components/Form/index";
import { editFormSchema, updateTenantAsync } from "/@/views/tenants/Tenant";
import { useI18n } from "/@/hooks/web/useI18n";
export default defineComponent({
name: 'EditTenant',
components: {
BasicModal,
BasicForm,
},
emits: ['reload'],
setup(_, { emit }) {
const { t } = useI18n();
const [registerApiScopeForm, { getFieldsValue, validate, resetFields, setFieldsValue }] =
useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false,
});
export default defineComponent({
name: "EditTenant",
components: {
BasicModal,
BasicForm
},
emits: ["reload"],
setup(_, { emit }) {
const { t } = useI18n();
const [registerApiScopeForm, { getFieldsValue, validate, resetFields, setFieldsValue }] =
useForm({
labelWidth: 120,
schemas: editFormSchema,
showActionButtonGroup: false
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner((data) => {
setFieldsValue({
name: data.record.name,
id: data.record.id,
});
const [registerModal, { changeOkLoading, closeModal }] = useModalInner((data) => {
setFieldsValue({
name: data.record.name,
id: data.record.id
});
});
const submit = async () => {
try {
const request = getFieldsValue();
await updateTenantAsync({ request, changeOkLoading, validate, closeModal });
resetFields();
emit('reload');
} finally {
changeOkLoading(false);
}
};
const submit = async () => {
try {
const request = getFieldsValue();
await updateTenantAsync({ request, changeOkLoading, validate, closeModal });
await resetFields();
emit("reload");
} finally {
changeOkLoading(false);
}
};
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
registerModal,
registerApiScopeForm,
submit,
cancel,
};
},
});
const cancel = () => {
resetFields();
closeModal();
};
return {
t,
registerModal,
registerApiScopeForm,
submit,
cancel
};
}
});
</script>
<style lang="less" scoped></style>

1
vben271/src/views/tenants/Tenant.ts

@ -1,4 +1,3 @@
import _ from 'lodash';
import { FormSchema } from '/@/components/Table';
import { BasicColumn } from '/@/components/Table';
import { useI18n } from '/@/hooks/web/useI18n';

4
vben271/src/views/tenants/Tenant.vue

@ -61,7 +61,7 @@
import { useModal } from '/@/components/Modal';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { getTenantListAsync, tableColumns, searchFormSchema, deleteTenantAsync } from './Tenant';
import { getTenantListAsync, tableColumns, searchFormSchema, deleteTenantAsync } from "/@/views/tenants/Tenant";
import CreateTenant from './CreateTenant.vue';
import EditConnectionString from './EditConnectionString.vue';
@ -120,7 +120,7 @@
content: msg,
onOk: async () => {
await deleteTenantAsync({ id: record.id });
reload();
await reload();
},
});
};

Loading…
Cancel
Save