From bf8c2f5597ffb8b6b3243bdfd48cd2b62c9a85dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=9D=E5=8D=81?= <392706283@qq.com>
Date: Thu, 27 Jan 2022 15:34:19 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE=E5=AD=97?=
=?UTF-8?q?=E5=85=B8=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9=E5=8F=8A=E7=BC=96?=
=?UTF-8?q?=E8=BE=91=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E3=80=81=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dtos/UpdateDataDictinaryInput.cs | 20 ++++
.../IDataDictionaryAppService.cs | 16 +++
.../DataDictionaryAppService.cs | 13 +++
.../Aggregates/DataDictionary.cs | 6 ++
.../DataDictionaries/DataDictionaryManager.cs | 29 +++++
.../DataDictionaryController.cs | 18 +++-
.../DataDictionaryControllerTests.cs | 20 ++++
...taDictionaryManagement.HttpApiTests.csproj | 20 ++++
.../host/Lion.AbpPro.HttpApi.Host/Program.cs | 1 +
vben271/src/services/ServiceProxies.ts | 100 ++++++++++++++++++
.../views/admin/dictionary/AbpDictionary.ts | 70 +++++++++++-
.../views/admin/dictionary/AbpDictionary.vue | 54 ++++++++--
.../dictionary/EditAbpDictionaryType.vue | 72 +++++++++++++
13 files changed, 430 insertions(+), 9 deletions(-)
create mode 100644 aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/UpdateDataDictinaryInput.cs
create mode 100644 aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/DataDictionaries/DataDictionaryControllerTests.cs
create mode 100644 aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/Lion.AbpPro.DataDictionaryManagement.HttpApiTests.csproj
create mode 100644 vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/UpdateDataDictinaryInput.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/UpdateDataDictinaryInput.cs
new file mode 100644
index 00000000..2f5771ec
--- /dev/null
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/UpdateDataDictinaryInput.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos
+{
+ public class UpdateDataDictinaryInput
+ {
+ [Required]
+ public Guid Id { get; set; }
+ [Required]
+ public string Code { get; set; }
+ [Required]
+ public string DisplayText { get; set; }
+ public string Description { get; set; }
+ }
+}
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/IDataDictionaryAppService.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/IDataDictionaryAppService.cs
index 49d1bc1f..27803a0b 100644
--- a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/IDataDictionaryAppService.cs
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/DataDictionaries/IDataDictionaryAppService.cs
@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos;
+using Lion.AbpPro.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
@@ -48,5 +49,20 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
///
///
Task DeleteAsync(DeleteDataDictionaryDetailInput input);
+
+ ///
+ /// 删除字典类型
+ ///
+ ///
+ ///
+ Task DeleteDictinaryTypeAsync(IdInput input);
+
+ ///
+ /// 修改数据字典
+ ///
+ ///
+ ///
+ Task UpdateAsync(UpdateDataDictinaryInput input);
+
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
index e2d26abb..13dd8619 100644
--- a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates;
using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos;
using Lion.AbpPro.DataDictionaryManagement.Permissions;
+using Lion.AbpPro.Extension.Customs.Dtos;
using Lion.AbpPro.Extension.System;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos;
@@ -112,5 +113,17 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{
return _dataDictionaryManager.DeleteAsync(input.DataDictionaryId, input.DataDictionayDetailId);
}
+
+
+ [Authorize(DataDictionaryManagementPermissions.DataDictionaryManagement.Delete)]
+ public Task DeleteDictinaryTypeAsync(IdInput input)
+ {
+ return _dataDictionaryManager.DeleteDictinaryTypeAsync(input.Id);
+ }
+ [Authorize(DataDictionaryManagementPermissions.DataDictionaryManagement.Update)]
+ public Task UpdateAsync(UpdateDataDictinaryInput input)
+ {
+ return _dataDictionaryManager.UpdateAsync( input.Id, input.DisplayText, input.Description);
+ }
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs
index 4c43325a..63485e38 100644
--- a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs
@@ -114,5 +114,11 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates
Details.Remove(detail);
}
+
+ public void Update(Guid dataDictionayDetailId,string displayText,string description)
+ {
+ SetDescription(description);
+ SetDisplayText(displayText);
+ }
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs
index 71e36252..f4734c4e 100644
--- a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs
@@ -147,5 +147,34 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
entity.Details.Remove(detail);
await _dataDictionaryRepository.UpdateAsync(entity);
}
+ public async Task UpdateAsync(Guid dataDictionaryId,
+ string displayText,
+ string description)
+ {
+ var entity = await _dataDictionaryRepository.FindByIdAsync(dataDictionaryId);
+ if (entity == null)
+ throw new DataDictionaryDomainException(message: "数据字典不存在");
+ entity.Update(dataDictionaryId,displayText,description);
+ return await _dataDictionaryRepository.UpdateAsync(entity);
+
+ }
+ ///
+ /// 删除字典类型
+ ///
+ ///
+ ///
+ public async Task DeleteDictinaryTypeAsync(Guid id)
+ {
+ var entity = await _dataDictionaryRepository.FindByIdAsync(id);
+ if (entity == null)
+ throw new DataDictionaryDomainException(message: "数据字典不存在");
+ var detail = entity.Details.FirstOrDefault(e => e.DataDictionaryId == id);
+ if (detail !=null )
+ {
+ entity.Details.Remove(detail);
+ await _dataDictionaryRepository.UpdateAsync(entity);
+ }
+ await _dataDictionaryRepository.DeleteAsync(id);
+ }
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs
index ecc33061..39847e41 100644
--- a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs
@@ -1,9 +1,9 @@
using System.Threading.Tasks;
using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos;
+using Lion.AbpPro.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{
@@ -67,5 +67,21 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{
return _dataDictionaryAppService.DeleteAsync(input);
}
+
+ [HttpPost("deleteDictinaryType")]
+ [SwaggerOperation(summary: "删除字典类型", Tags = new[] { "DataDictionary" })]
+ public Task DeleteDictinaryTypeAsync(IdInput input)
+ {
+ return _dataDictionaryAppService.DeleteDictinaryTypeAsync(input);
+ }
+
+
+ [HttpPost("update")]
+ [SwaggerOperation(summary: "修改字典类型", Tags = new[] { "DataDictionary" })]
+ public Task UpdateAsync(UpdateDataDictinaryInput input)
+ {
+ return _dataDictionaryAppService.UpdateAsync(input);
+ }
+
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/DataDictionaries/DataDictionaryControllerTests.cs b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/DataDictionaries/DataDictionaryControllerTests.cs
new file mode 100644
index 00000000..ad95358d
--- /dev/null
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/DataDictionaries/DataDictionaryControllerTests.cs
@@ -0,0 +1,20 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Lion.AbpPro.DataDictionaryManagement.DataDictionaries;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Tests
+{
+ [TestClass()]
+ public class DataDictionaryControllerTests
+ {
+ [TestMethod()]
+ public void CreateAsyncTest()
+ {
+ Assert.Fail();
+ }
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/Lion.AbpPro.DataDictionaryManagement.HttpApiTests.csproj b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/Lion.AbpPro.DataDictionaryManagement.HttpApiTests.csproj
new file mode 100644
index 00000000..8a3aeacf
--- /dev/null
+++ b/aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApiTests/Lion.AbpPro.DataDictionaryManagement.HttpApiTests.csproj
@@ -0,0 +1,20 @@
+
+
+
+ .NETCoreApp,Version=v6.0
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs
index 053d760b..7d5fc248 100644
--- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs
+++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs
@@ -23,6 +23,7 @@ namespace Lion.AbpPro
{
webBuilder.ConfigureKestrel((context, options) => { options.Limits.MaxRequestBodySize = 1024 * 50; });
webBuilder.UseStartup();
+ webBuilder.UseUrls("http://localhost:44315");
})
.UseSerilog((context, loggerConfiguration) =>
{
diff --git a/vben271/src/services/ServiceProxies.ts b/vben271/src/services/ServiceProxies.ts
index 134043f3..247fa8b8 100644
--- a/vben271/src/services/ServiceProxies.ts
+++ b/vben271/src/services/ServiceProxies.ts
@@ -3031,7 +3031,39 @@ export class DataDictionaryServiceProxy extends ServiceProxyBase {
}
return Promise.resolve(null);
}
+ /**
+ * 更新字典类型
+ * @param body (optional)
+ * @return Success
+ */
+ update(body: UpdateDetailInput | undefined , cancelToken?: CancelToken | undefined): Promise {
+ let url_ = this.baseUrl + "/DataDictionary/update";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(body);
+
+ let options_ = {
+ data: content_,
+ method: "POST",
+ url: url_,
+ headers: {
+ "Content-Type": "application/json",
+ },
+ cancelToken
+ };
+ return this.transformOptions(options_).then(transformedOptions_ => {
+ return this.instance.request(transformedOptions_);
+ }).catch((_error: any) => {
+ if (isAxiosError(_error) && _error.response) {
+ return _error.response;
+ } else {
+ throw _error;
+ }
+ }).then((_response: AxiosResponse) => {
+ return this.transformResult(url_, _response, (_response: AxiosResponse) => this.processUpdateDetail(_response));
+ });
+ }
/**
* 更新字典明细
* @param body (optional)
@@ -3121,7 +3153,39 @@ export class DataDictionaryServiceProxy extends ServiceProxyBase {
}
return Promise.resolve(null);
}
+ /**
+ * 删除字典类型
+ * @param body (optional)
+ * @return Success
+ */
+ deleteDictinaryType(body: DeleteDataDictionaryInput | undefined , cancelToken?: CancelToken | undefined): Promise {
+ let url_ = this.baseUrl + "/DataDictionary/deleteDictinaryType";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(body);
+ let options_ = {
+ data: content_,
+ method: "POST",
+ url: url_,
+ headers: {
+ "Content-Type": "application/json",
+ },
+ cancelToken
+ };
+
+ return this.transformOptions(options_).then(transformedOptions_ => {
+ return this.instance.request(transformedOptions_);
+ }).catch((_error: any) => {
+ if (isAxiosError(_error) && _error.response) {
+ return _error.response;
+ } else {
+ throw _error;
+ }
+ }).then((_response: AxiosResponse) => {
+ return this.transformResult(url_, _response, (_response: AxiosResponse) => this.processDelete(_response));
+ });
+ }
/**
* 删除字典明细
* @param body (optional)
@@ -8981,6 +9045,42 @@ export interface IDeleteDataDictionaryDetailInput {
dataDictionayDetailId: string;
}
+export class DeleteDataDictionaryInput implements IDeleteDataDictionaryInput {
+ Id!: string;
+
+ constructor(data?: IDeleteDataDictionaryInput) {
+ if (data) {
+ for (var property in data) {
+ if (data.hasOwnProperty(property))
+ (this)[property] = (data)[property];
+ }
+ }
+ }
+
+ init(_data?: any) {
+ if (_data) {
+ this.Id = _data["Id"];
+ }
+ }
+
+ static fromJS(data: any): DeleteDataDictionaryInput {
+ data = typeof data === 'object' ? data : {};
+ let result = new DeleteDataDictionaryInput();
+ result.init(data);
+ return result;
+ }
+
+ toJSON(data?: any) {
+ data = typeof data === 'object' ? data : {};
+ data["Id"] = this.Id;
+ return data;
+ }
+}
+
+export interface IDeleteDataDictionaryInput {
+ Id: string;
+}
+
export class EmailSettingsDto implements IEmailSettingsDto {
smtpHost!: string | undefined;
smtpPort!: number;
diff --git a/vben271/src/views/admin/dictionary/AbpDictionary.ts b/vben271/src/views/admin/dictionary/AbpDictionary.ts
index bcc5e06d..5152625a 100644
--- a/vben271/src/views/admin/dictionary/AbpDictionary.ts
+++ b/vben271/src/views/admin/dictionary/AbpDictionary.ts
@@ -7,9 +7,11 @@ import {
DataDictionaryServiceProxy,
SetDataDictinaryDetailInput,
DeleteDataDictionaryDetailInput,
+ DeleteDataDictionaryInput,
} from '/@/services/ServiceProxies';
import { h } from 'vue';
import { Switch } from 'ant-design-vue';
+import { debug } from 'console';
const { t } = useI18n();
export const tableColumns: BasicColumn[] = [
{
@@ -258,7 +260,53 @@ export const createDictionaryTypeFormSchema: FormSchema[] = [
},
},
];
-
+//编辑字典类型
+export const editDictionaryTypeFormSchema: FormSchema[] = [
+ {
+ field: 'code',
+ label: t('routes.admin.dictionaryCode'),
+ component: 'Input',
+ required: true,
+ colProps: {
+ span: 22,
+ },
+ },
+ {
+ field: 'displayText',
+ label: t('routes.admin.dictionaryDisplayText'),
+ component: 'Input',
+ required: true,
+ colProps: {
+ span: 22,
+ },
+ },
+ {
+ field: 'description',
+ label: t('routes.admin.dictionaryDescription'),
+ component: 'InputTextArea',
+ colProps: {
+ span: 22,
+ },
+ },
+ {
+ field: 'key',
+ label: '',
+ ifShow: false,
+ component: 'Input',
+ colProps: {
+ span: 18,
+ },
+ },
+ {
+ field: 'id',
+ label: '',
+ ifShow: false,
+ component: 'Input',
+ colProps: {
+ span: 18,
+ },
+ },
+];
/**
*获取字典类型表格
*
@@ -287,7 +335,16 @@ export async function createDictionaryTypeAsync({
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'));
+ changeOkLoading(false);
+ closeModal();
+}
//启用|禁用详情字典
export async function enableDictionaryAsync(input: SetDataDictinaryDetailInput) {
const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
@@ -343,3 +400,12 @@ export async function deleleDetailAsync({ dataDictionaryId, dataDictionayDetailI
await _dataDictionaryServiceProxy.delete(request);
reload();
}
+
+export async function deleteDictinaryTypeAsync({ Id, reloadType }) {
+ const _dataDictionaryServiceProxy = new DataDictionaryServiceProxy();
+ const request = new DeleteDataDictionaryInput();
+ request.Id = Id;
+ await _dataDictionaryServiceProxy.deleteDictinaryType(request);
+ reloadType();
+}
+
diff --git a/vben271/src/views/admin/dictionary/AbpDictionary.vue b/vben271/src/views/admin/dictionary/AbpDictionary.vue
index d51f77f2..80c0ae48 100644
--- a/vben271/src/views/admin/dictionary/AbpDictionary.vue
+++ b/vben271/src/views/admin/dictionary/AbpDictionary.vue
@@ -18,6 +18,20 @@
{{ t('common.createText') }}
+
+
+
@@ -51,12 +65,10 @@
/>
-
+
+
@@ -68,6 +80,7 @@
import { BasicModal, useModal } from '/@/components/Modal';
import CreateAbpDictionary from './CreateAbpDictionary.vue';
import EditAbpDictionary from './EditAbpDictionary.vue';
+ import EditAbpDictionaryType from './EditAbpDictionaryType.vue';
import CreateAbpDictionaryType from './CreateAbpDictionaryType.vue';
import { useI18n } from '/@/hooks/web/useI18n';
@@ -79,6 +92,7 @@
searchDictionaryFormSchema,
getDictionaryDetailsAsync,
deleleDetailAsync,
+ deleteDictinaryTypeAsync,
} from './AbpDictionary';
import { useMessage } from '/@/hooks/web/useMessage';
import { Tag, message } from 'ant-design-vue';
@@ -93,12 +107,14 @@
CreateAbpDictionaryType,
CreateAbpDictionary,
EditAbpDictionary,
+ EditAbpDictionaryType,
},
setup() {
const { t } = useI18n();
const [registerCreateModal, { openModal: createModal }] = useModal();
const [registerEditModal, { openModal: editModal }] = useModal();
+ const [registerEditTypeModal, { openModal: editTypeModal }] = useModal();
const [registerCreateType, { openModal: createTypeModal }] = useModal();
const selectedDataDictionaryIdRef = ref('');
const selectedDataDictionaryDisplayTextRef = ref('');
@@ -119,6 +135,12 @@
canResize: true,
rowSelection: { type: 'radio' },
pagination: false,
+ actionColumn: {
+ width: 50,
+ title: t('common.action'),
+ dataIndex: 'action',
+ slots: { customRender: 'action' },
+ },
});
//勾选事件
@@ -140,7 +162,25 @@
createModal(true, { dictionaryCreate: dictionaryCreate });
}
};
-
+ const handleEditType = (record: Recordable) => {
+ editTypeModal(true, {
+ record: record,
+ });
+ };
+ const handleDeleteDictinaryType = async (record: Recordable) => {
+ let msg = t('common.askDelete');
+ createConfirm({
+ iconType: 'warning',
+ title: t('common.tip'),
+ content: msg,
+ onOk: async () => {
+ await deleteDictinaryTypeAsync({
+ Id: record.id,
+ reloadType,
+ });
+ },
+ });
+ };
const [registerTable, { reload }] = useTable({
columns: tableColumns,
formConfig: {
@@ -172,7 +212,6 @@
record: record,
});
};
-
const handleCreateType = () => {
createTypeModal(true);
};
@@ -196,8 +235,10 @@
registerTable,
registerCreateModal,
registerEditModal,
+ registerEditTypeModal,
handleCreate,
handleEdit,
+ handleEditType,
reload,
registerTypeTable,
registerCreateType,
@@ -207,6 +248,7 @@
clearSelectedRowKeys,
t,
handleDelete,
+ handleDeleteDictinaryType,
};
},
});
diff --git a/vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue b/vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue
new file mode 100644
index 00000000..f5da95b0
--- /dev/null
+++ b/vben271/src/views/admin/dictionary/EditAbpDictionaryType.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+