diff --git a/apps/vue/src/api/localization/languages.ts b/apps/vue/src/api/localization/languages.ts index e5ada0d1f..87ac273ae 100644 --- a/apps/vue/src/api/localization/languages.ts +++ b/apps/vue/src/api/localization/languages.ts @@ -1,5 +1,5 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { LanguageListResult, LanguageCreate, LanguageUpdate, Language } from './model/languagesModel'; +import { LanguageListResult, LanguageCreate, LanguageUpdate, Language, GetLanguageWithFilter } from './model/languagesModel'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Language'; @@ -8,9 +8,10 @@ enum Api { GetList = '/api/abp/localization/languages', } -export const getList = () => { +export const getList = (input: GetLanguageWithFilter) => { return defAbpHttp.get({ url: Api.GetList, + params: input, }); }; diff --git a/apps/vue/src/api/localization/model/languagesModel.ts b/apps/vue/src/api/localization/model/languagesModel.ts index 546054993..d31cbafe0 100644 --- a/apps/vue/src/api/localization/model/languagesModel.ts +++ b/apps/vue/src/api/localization/model/languagesModel.ts @@ -26,3 +26,7 @@ export interface LanguagePagedResult extends PagedResultDto {} export interface GetLanguagePagedRequest extends PagedAndSortedResultRequestDto { filter?: string; } + +export interface GetLanguageWithFilter { + filter?: string; +} diff --git a/apps/vue/src/api/localization/model/resourcesModel.ts b/apps/vue/src/api/localization/model/resourcesModel.ts index 5bb59d973..b2ae0c283 100644 --- a/apps/vue/src/api/localization/model/resourcesModel.ts +++ b/apps/vue/src/api/localization/model/resourcesModel.ts @@ -27,6 +27,6 @@ export interface GetResourcePagedRequest extends PagedAndSortedResultRequestDto filter?: string; } -export interface GetWithFilter { +export interface GetResourceWithFilter { filter?: string; } \ No newline at end of file diff --git a/apps/vue/src/api/localization/resources.ts b/apps/vue/src/api/localization/resources.ts index b4651aa58..9c87ef2fd 100644 --- a/apps/vue/src/api/localization/resources.ts +++ b/apps/vue/src/api/localization/resources.ts @@ -1,17 +1,17 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetWithFilter } from './model/resourcesModel'; -import { format } from '/@/utils/strings'; +import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetResourceWithFilter } from './model/resourcesModel'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Resource'; enum Api { - GetList = '/api/abp/localization/resources?filter={filter}', + GetList = '/api/abp/localization/resources', } -export const getList = (input: GetWithFilter) => { +export const getList = (input: GetResourceWithFilter) => { return defAbpHttp.get({ - url: format(Api.GetList, input), + url: Api.GetList, + params: input, }); }; diff --git a/apps/vue/src/views/localization/languages/components/LanguageTable.vue b/apps/vue/src/views/localization/languages/components/LanguageTable.vue index 272cec89a..7a2682155 100644 --- a/apps/vue/src/views/localization/languages/components/LanguageTable.vue +++ b/apps/vue/src/views/localization/languages/components/LanguageTable.vue @@ -89,8 +89,8 @@ function fetchLanguages() { const form = getForm(); - return form.validate().then(() => { - return getList().then((res) => { + return form.validate().then((input) => { + return getList(input).then((res) => { setTableData(res.items); }); }); diff --git a/apps/vue/src/views/localization/resources/components/ResourceTable.vue b/apps/vue/src/views/localization/resources/components/ResourceTable.vue index 4dafe1e6a..b4ef0dc49 100644 --- a/apps/vue/src/views/localization/resources/components/ResourceTable.vue +++ b/apps/vue/src/views/localization/resources/components/ResourceTable.vue @@ -49,10 +49,7 @@ import { getDataColumns } from './TableData'; import { reactive } from 'vue'; import ResourceModal from './ResourceModal.vue'; - - const state = reactive({ - filter: 'noti' - }); + const { createConfirm, createMessage } = useMessage(); const { L } = useLocalization(['LocalizationManagement', 'AbpLocalization', 'AbpUi']); @@ -77,7 +74,7 @@ component: 'Input', label: L('Search'), colProps: { span: 24 }, - defaultValue: '', + defaultValue: '' }, ], submitFunc: fetchResources, @@ -92,8 +89,8 @@ function fetchResources() { const form = getForm(); - return form.validate().then(() => { - return getList({filter: state.filter}).then((res) => { + return form.validate().then((input) => { + return getList(input).then((res) => { setTableData(res.items); }); }); diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs similarity index 73% rename from aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs rename to aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs index e7c3dd4ef..8f9ba08c5 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs @@ -1,6 +1,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { - public class GetWithFilter + public class GetLanguageWithFilterDto { public string Filter { get; set; } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs new file mode 100644 index 000000000..5bf1fdf17 --- /dev/null +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.AspNetCore.Mvc.Localization +{ + public class GetResourceWithFilterDto + { + public string Filter { get; set; } + } +} diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs index e120cc3ac..de63709fb 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs @@ -6,6 +6,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { public interface ILanguageAppService : IApplicationService { - Task> GetListAsync(); + Task> GetListAsync(GetLanguageWithFilterDto input); } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs index 906d3922a..307a1bcd4 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs @@ -6,6 +6,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { public interface IResourceAppService : IApplicationService { - Task> GetListAsync(GetWithFilter filter); + Task> GetListAsync(GetResourceWithFilterDto input); } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs index fe8a277ef..e55e923fe 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs @@ -1,9 +1,17 @@ using Microsoft.AspNetCore.Authorization; -using System.Linq; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Localization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; +using System.Threading.Tasks; +using Volo.Abp; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Localization; +using Volo.Abp.Localization.External; namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { @@ -16,9 +24,12 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization _languageProvider = languageProvider; } - public async virtual Task> GetListAsync() + public async virtual Task> GetListAsync(GetLanguageWithFilterDto input) { - var languages = await _languageProvider.GetLanguagesAsync(); + var languages = (await _languageProvider.GetLanguagesAsync()) + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.CultureName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0 + || x.UiCultureName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0 + || x.DisplayName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0); return new ListResultDto( languages.Select(l => new LanguageDto diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs index 6d02e8577..b6acc0d0f 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs @@ -19,9 +19,9 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization } [HttpGet] - public virtual Task> GetListAsync() + public virtual Task> GetListAsync(GetLanguageWithFilterDto input) { - return _service.GetListAsync(); + return _service.GetListAsync(input); } } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs index 30bdc333d..79e11da13 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs @@ -29,14 +29,14 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization _externalLocalizationStore = externalLocalizationStore; } - public virtual async Task> GetListAsync(GetWithFilter input) + public virtual async Task> GetListAsync(GetResourceWithFilterDto input) { var externalResources = (await _externalLocalizationStore.GetResourcesAsync()) - .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.ResourceName.Contains(input.Filter)); + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.ResourceName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0); var resources = _localizationOptions .Resources - .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.Contains(input.Filter)) + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0) .Select(x => new ResourceDto { Name = x.Value.ResourceName, diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs index 58dcc54f1..1c2d951b5 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs @@ -19,9 +19,9 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization } [HttpGet] - public virtual Task> GetListAsync(GetWithFilter filter) + public virtual Task> GetListAsync(GetResourceWithFilterDto input) { - return _service.GetListAsync(filter); + return _service.GetListAsync(input); } } }