From f21e0bb29aa5d257819f4e9450653520e733699d Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 29 Jul 2024 04:14:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9=E6=80=A7?= =?UTF-8?q?=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-client/src/components.d.ts | 4 + .../characters/types-characters.vue | 146 ++++++++++++++++++ .../src/core/components/huanmeng/hm-image.vue | 72 ++++----- .../src/core/utils/AppDictionaryCache.ts | 7 +- .../utils/cache/AppDictionaryTypesCache.ts | 41 +++++ .../Apps/T_Characters/T_CharacterService.ts | 14 +- .../T_Image_Configs/TImageConfigService.ts | 17 +- ...T_Character_Personality_RelationService.ts | 19 ++- .../src/views/Apps/T_Characters/Index.vue | 14 +- .../src/views/Apps/T_Characters/Info.vue | 22 ++- .../Apps/MiaoYuChat/T_CharacterService.cs | 31 +++- ...T_Character_Personality_RelationService.cs | 70 +++++++-- .../T_Character_Type_IntimacyService.cs | 7 +- .../Apps/MiaoYuChat/T_CharacterController.cs | 19 ++- ...haracter_Personality_RelationController.cs | 35 ++++- .../MiaoYu.Api.Admin/MiaoYu.Api.Admin.xml | 45 ++++++ 16 files changed, 480 insertions(+), 83 deletions(-) create mode 100644 admin-client/src/core/components/characters/types-characters.vue create mode 100644 admin-client/src/core/utils/cache/AppDictionaryTypesCache.ts diff --git a/admin-client/src/components.d.ts b/admin-client/src/components.d.ts index f60d1f6..e8398b1 100644 --- a/admin-client/src/components.d.ts +++ b/admin-client/src/components.d.ts @@ -22,6 +22,8 @@ declare module 'vue' { ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] ACol: typeof import('ant-design-vue/es')['Col'] + ACollapse: typeof import('ant-design-vue/es')['Collapse'] + ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel'] ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] @@ -70,6 +72,7 @@ declare module 'vue' { ATimeline: typeof import('ant-design-vue/es')['Timeline'] ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] + ATransfer: typeof import('ant-design-vue/es')['Transfer'] ATree: typeof import('ant-design-vue/es')['Tree'] ATreeSelect: typeof import('ant-design-vue/es')['TreeSelect'] ATypographyLink: typeof import('ant-design-vue/es')['TypographyLink'] @@ -108,6 +111,7 @@ declare module 'vue' { TableCurd: typeof import('./core/components/curd/TableCurd.vue')['default'] TagCharacters: typeof import('./core/components/characters/tag-characters.vue')['default'] TenantSelect: typeof import('./core/components/curd/select-components/TenantSelect.vue')['default'] + TypesCharacters: typeof import('./core/components/characters/types-characters.vue')['default'] WangEditor: typeof import('./core/components/WangEditor.vue')['default'] } } diff --git a/admin-client/src/core/components/characters/types-characters.vue b/admin-client/src/core/components/characters/types-characters.vue new file mode 100644 index 0000000..1f91dca --- /dev/null +++ b/admin-client/src/core/components/characters/types-characters.vue @@ -0,0 +1,146 @@ + + + diff --git a/admin-client/src/core/components/huanmeng/hm-image.vue b/admin-client/src/core/components/huanmeng/hm-image.vue index 665af26..cf70168 100644 --- a/admin-client/src/core/components/huanmeng/hm-image.vue +++ b/admin-client/src/core/components/huanmeng/hm-image.vue @@ -1,19 +1,17 @@ @@ -35,9 +43,7 @@ import type { SelectProps } from "ant-design-vue"; import AppDictionaryCache from "@/core/utils/AppDictionaryCache"; import type { SelectValue } from "ant-design-vue/lib/select"; import TImageConfigService from "@/services/apps/T_Image_Configs/TImageConfigService"; -// 定义 options -const options = ref([]); - +import Tools from "@/core/utils/Tools"; // 使用 withDefaults 添加默认值 const props = defineProps<{ modelValue: number; @@ -57,10 +63,24 @@ const emits = defineEmits(["update:modelValue"]); // }); // 定义方法以触发 update:modelValue 事件 -function updateValue(value: number) { - emits("update:modelValue", value); +function updateValue(event: any) { + console.log(event); + + emits("update:modelValue", event.target.value); } +function updateValueNumber(event: number) { + + + emits("update:modelValue", event); +} + +async function fileupload() { + const response = await Tools.imageFileUpload(0, 1); + console.log(response); + updateValueNumber(response.imageId); + +} let timeout: any; let currentValue = ""; @@ -72,11 +92,6 @@ function fetch(value: string, callback: any) { currentValue = value; function fake() { - // const params = new URLSearchParams({ - // code: "utf-8", - // q: value, - // }); - TImageConfigService.getImageList(value).then((res) => { if (res.data != null) { const data: any[] = []; @@ -90,22 +105,6 @@ function fetch(value: string, callback: any) { callback(data); } }); - - // fetch(`https://suggest.taobao.com/sug?${params}`) - // .then((response) => response.json()) - // .then((d) => { - // if (currentValue === value) { - // const result = d.result; - // const data: any[] = []; - // result.forEach((r: any) => { - // data.push({ - // value: r[0], - // label: r[0], - // }); - // }); - // callback(data); - // } - // }); } timeout = setTimeout(fake, 300); @@ -119,9 +118,10 @@ const handleSearch = (val: string) => { }; const handleChange = (val: number) => { console.log(val); - // updateValue(val); -// props.modelValue = 1; -// value.value = ""; + updateValueNumber(val); +// emits("update:modelValue", val); + // props.modelValue = 1; + // value.value = ""; // fetch(val, (d: any[]) => (data.value = d)); }; diff --git a/admin-client/src/core/utils/AppDictionaryCache.ts b/admin-client/src/core/utils/AppDictionaryCache.ts index 9dfeaf5..7b6973a 100644 --- a/admin-client/src/core/utils/AppDictionaryCache.ts +++ b/admin-client/src/core/utils/AppDictionaryCache.ts @@ -2,7 +2,7 @@ import AppDictionaryImageCache from "./cache/AppDictionaryImageCache"; import { AbstractDictionaryCache } from "./cache/AbstractDictionaryCache"; import AppDictionaryTenantCache from "./cache/AppDictionaryTenantCache"; - +import AppDictionaryTypesCache from "./cache/AppDictionaryTypesCache"; /** * 基础数据缓存类 */ @@ -16,6 +16,11 @@ class AppDictionaryCache { * 多租户配置 */ static appDictionaryTenantCache: AbstractDictionaryCache = new AppDictionaryTenantCache(); + + /** + * 类型配置 + */ + static appDictionaryTypesCache: AbstractDictionaryCache = new AppDictionaryTypesCache(); } export default AppDictionaryCache; diff --git a/admin-client/src/core/utils/cache/AppDictionaryTypesCache.ts b/admin-client/src/core/utils/cache/AppDictionaryTypesCache.ts new file mode 100644 index 0000000..d76bc70 --- /dev/null +++ b/admin-client/src/core/utils/cache/AppDictionaryTypesCache.ts @@ -0,0 +1,41 @@ +import { AbstractDictionaryCache } from './AbstractDictionaryCache' +import { DefaultOptionType } from "ant-design-vue/es/select"; +import T_Character_PersonalityService from "@/services/apps/T_Character_Personalitys/T_Character_PersonalityService"; +/** + * 多租户配置 + */ +class AppDictionaryTypesCache extends AbstractDictionaryCache { + protected code: string = "types"; + public static _lock: Promise | null = null; + constructor() { + super(AppDictionaryTypesCache._lock); + } + /** + * 获取字典服务 + * @returns Promise + */ + protected override async getSysDictionaryService(): Promise { + const response = await T_Character_PersonalityService.findList(1, 9999, {}, []); + // console.log(response); + const _data = response.data.dataSource.map(item => { + return { + name: item.name, + value: item.id, + code: item.value + // name: item.name, value, code: item.code + }; + }); + return _data; + } + + + public async getDataListSelect(): Promise { + const _data = await this.getDataList(); + return _data.map((item) => { + return { label: item.name, value: item.value, name: item.code, } as DefaultOptionType; + }); + } + +} + +export default AppDictionaryTypesCache; \ No newline at end of file diff --git a/admin-client/src/services/Apps/T_Characters/T_CharacterService.ts b/admin-client/src/services/Apps/T_Characters/T_CharacterService.ts index 2b6d151..d44a699 100644 --- a/admin-client/src/services/Apps/T_Characters/T_CharacterService.ts +++ b/admin-client/src/services/Apps/T_Characters/T_CharacterService.ts @@ -6,7 +6,7 @@ export default class T_CharacterService { static urlPrefix = "/api/v1/admin/T_Character"; - static url:string = Http.baseURL + "/api/v1/admin/TImageConfig/image/"; + static url: string = Http.baseURL + "/api/v1/admin/TImageConfig/image/"; /** * 获取数据列表 * @param current @@ -55,6 +55,18 @@ export default class T_CharacterService { return Http.post(`${this.urlPrefix}/${id ? 'update' : 'create'}`, formData) } + +/** + * 修改状态 + * @param id + * @param v + * @returns + */ + static async setVisibility(id: number | undefined, v: boolean | undefined) { + return await Http.post(`${this.urlPrefix}/updateState/${id}/${(v == true ? "1" : "0")}`) + } + + /** * 导出 excel * diff --git a/admin-client/src/services/Apps/T_Image_Configs/TImageConfigService.ts b/admin-client/src/services/Apps/T_Image_Configs/TImageConfigService.ts index 1180b1f..a193c5c 100644 --- a/admin-client/src/services/Apps/T_Image_Configs/TImageConfigService.ts +++ b/admin-client/src/services/Apps/T_Image_Configs/TImageConfigService.ts @@ -5,7 +5,7 @@ */ export default class TImageConfigService { static urlPrefix = "/api/v1/admin/TImageConfig"; - + static baseUrl = Http.baseURL + this.urlPrefix + "/image/"; /** * 获取数据列表 * @param current @@ -109,6 +109,19 @@ export default class TImageConfigService { * @returns */ static getImageList(name?: string | undefined) { - return Http.get(`${this.urlPrefix}/getImageList?name=${escape(name??"")}`); + return Http.get(`${this.urlPrefix}/getImageList?name=${name}`); + } + + /** +* 查询图片数据源 +* +* @param id +* @returns +*/ + static getImageUrl(imageId?: number | undefined) { + if (imageId == null) { + return ""; + } + return this.baseUrl + imageId; } } diff --git a/admin-client/src/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService.ts b/admin-client/src/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService.ts index b2e31e6..0bedd04 100644 --- a/admin-client/src/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService.ts +++ b/admin-client/src/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService.ts @@ -34,6 +34,15 @@ export default class T_Character_Personality_RelationService { return Http.post(`${this.urlPrefix}/deleteList`, ids) } + /** + * 删除集合数据 + * + * @param ids + * @returns + */ + static delete(id: number,ids: string[]) { + return Http.post(`${this.urlPrefix}/deleteCIdList/${id}`, ids) + } /** * 查询表单 * @@ -70,5 +79,13 @@ export default class T_Character_Personality_RelationService { searchSort }); } - + /** + * 批量配置角色性格 + * @param id 角色id + * @param ids 性格类型 + * @returns + */ + static async setCharacterPersonality(id: number, ids: any[]) { + return Http.post(`${this.urlPrefix}/setCharacterPersonality/${id}`, ids) + } } \ No newline at end of file diff --git a/admin-client/src/views/Apps/T_Characters/Index.vue b/admin-client/src/views/Apps/T_Characters/Index.vue index 299e7c7..9a9858a 100644 --- a/admin-client/src/views/Apps/T_Characters/Index.vue +++ b/admin-client/src/views/Apps/T_Characters/Index.vue @@ -14,6 +14,7 @@ import T_Character_Personality_RelationService from "@/services/apps/T_Character import T_Character_Type_IntimacyService from "@/services/apps/T_Character_Type_Intimacys/T_Character_Type_IntimacyService"; //标签 import T_Character_Label_RelationService from "@/services/apps/T_Character_Label_Relations/T_Character_Label_RelationService"; + defineOptions({ name: "T_CharacterIndex" }); @@ -287,7 +288,7 @@ async function lablesDel(e: any, record: any) { * 删除关联的性格数据 */ async function personasDel(e: any, record: any) { - const _request = await T_Character_Personality_RelationService.deleteList([ + const _request = await T_Character_Personality_RelationService.delete(record.id,[ e.value, ]); if (_request.data) { @@ -298,6 +299,13 @@ async function personasDel(e: any, record: any) { Tools.message.error("删除失败!"); } //#endregion + +async function visibilityChange(id:number,visibility:boolean,record:any){ +var response= await T_CharacterService.setVisibility(id,visibility); +console.log(visibility,response); +// record.visibility=visibility; + +} - 添加 + @@ -548,6 +556,7 @@ async function personasDel(e: any, record: any) { v-model:checked="record.visibility" checked-children="上线" un-checked-children="下线" + @change="visibilityChange(record.id,record.visibility,record)" /> @@ -575,6 +584,7 @@ async function personasDel(e: any, record: any) { > 删除 + diff --git a/admin-client/src/views/Apps/T_Characters/Info.vue b/admin-client/src/views/Apps/T_Characters/Info.vue index d1c6f5d..5a6e8ef 100644 --- a/admin-client/src/views/Apps/T_Characters/Info.vue +++ b/admin-client/src/views/Apps/T_Characters/Info.vue @@ -140,9 +140,7 @@ function save() { name="bgImg" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]" > - - + @@ -151,18 +149,12 @@ function save() { name="iconImg" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]" > - + - + @@ -207,7 +200,10 @@ function save() { - + new { Name = l.LabelName, - Code = l.LabelValue?? l.LabelName, + Code = l.LabelValue ?? l.LabelName, Value = l.Id }).ToList(), //分类 - Types = + Types = T_Character_Type.Select.Where(t => T_Character_Type_Intimacy.Select.Any(tt => tt.CharacterId == w.Id && tt.TypeId == t.Id) ) .Select(t => new { Name = t.Name, - Code = t.Name , + Code = t.Name, Value = t.Id }).ToList(), //性格 @@ -87,7 +87,7 @@ public class T_CharacterService( .Select(p => new { Name = p.Name, - Code =p.Value??p.Name, + Code = p.Value ?? p.Name, Value = p.Id }).ToList(), @@ -97,7 +97,7 @@ public class T_CharacterService( var result = await _defaultRepository.AsPagingViewAsync(query, pagingSearchInput); var imageIds = new List(); var characteIds = new List(); - + result.DataSource.ForEach(it => { characteIds.Add(int.Parse(it["Id"]?.ToString() ?? "0")); @@ -118,7 +118,7 @@ public class T_CharacterService( }); var imageList = imageRepository.GetAllList(it => imageIds.Contains(it.ImageId)); - + result.DataSource.ForEach(it => { @@ -199,6 +199,25 @@ public class T_CharacterService( return ExcelUtil.ExportExcelByPagingView(tableViewModel, null, "Id"); } + /// + /// 修改状态 + /// + /// + /// + /// + + public async Task UpdateState(bool state, int id) + { + var form = await this._defaultRepository.FindByIdAsync(id); + if (form == null) + { + return false; + } + form.Visibility = state; + await SaveFormAsync(form); + return true; + } + } \ No newline at end of file diff --git a/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Personality_RelationService.cs b/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Personality_RelationService.cs index 8e34f2e..05a1d5d 100644 --- a/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Personality_RelationService.cs +++ b/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Personality_RelationService.cs @@ -1,4 +1,8 @@ -using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; +using IdGen; + +using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; + +using NPOI.HSSF.Record.Chart; namespace MiaoYu.Api.Admin.ApplicationServices.Apps; /// @@ -20,20 +24,24 @@ public class T_Character_Personality_RelationService : ApplicationService FindListAsync(PagingSearchInput pagingSearchInput) { var query = this._defaultRepository.Select - - //项目 - .WhereIf(pagingSearchInput.Search?.TenantId!=null, - w => w.TenantId==pagingSearchInput.Search.TenantId) - - + //项目 + .WhereIf(pagingSearchInput.Search?.TenantId != null, + w => w.TenantId == pagingSearchInput.Search.TenantId) + .WhereIf(pagingSearchInput.Search?.CharacterId != 0, + w => w.CharacterId == pagingSearchInput.Search.CharacterId) + + .OrderByDescending(w => w.Id) .Select(w => new { w.Id, - w.TenantId,w.PersonalityId,w.CharacterId,w.CreateTime, - // w.LastModificationTime, - // w.CreationTime + w.TenantId, + w.PersonalityId, + w.CharacterId, + w.CreateTime, + // w.LastModificationTime, + // w.CreationTime }) ; @@ -59,12 +67,24 @@ public class T_Character_Personality_RelationService : ApplicationService + /// 根据id数组删除 + /// + /// ids + /// + public async Task DeleteListAsync(int id,List ids) + { + var list = await this._defaultRepository.Select.Where(it=>it.CharacterId==id&& ids.Contains(it.PersonalityId)).ToListAsync(); + await this._defaultRepository.DeleteAsync(list); + } + /// /// 查询表单数据 /// /// id /// - public async Task> FindFormAsync(int id) + public async Task> FindFormAsync(int id) { var res = new Dictionary(); var form = await this._defaultRepository.FindByIdAsync(id); @@ -92,6 +112,34 @@ public class T_Character_Personality_RelationService : ApplicationService + /// 保存数据 + /// + /// form + /// + public async Task SaveFormAsync(int characterId, List ids) + { + var list = await this._defaultRepository.Select.Where(it => it.CharacterId == characterId).ToListAsync(); + await this._defaultRepository.DeleteAsync(list); + List newList = new List(); + foreach (var personalityId in ids) + { + var t_Character_Personality_Relation = new T_Character_Personality_Relation + { + CharacterId = characterId, + CreateTime = DateTime.Now, + PersonalityId = personalityId, + TenantId = Guid.Empty, + }; + //this._defaultRepository.Insert(t_Character_Personality_Relation); + newList.Add(t_Character_Personality_Relation); + } + //var delList = list.Where(it => newList.Any(item => item.CharacterId != it.PersonalityId)).ToList(); + //await this._defaultRepository.DeleteAsync(delList); + + return await this._defaultRepository.InsertRangeAsync(newList); + } + /// /// 导出Excel /// diff --git a/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Type_IntimacyService.cs b/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Type_IntimacyService.cs index 71946d1..d755382 100644 --- a/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Type_IntimacyService.cs +++ b/admin-server/MiaoYu.Api.Admin/ApplicationServices/Apps/MiaoYuChat/T_Character_Type_IntimacyService.cs @@ -1,4 +1,4 @@ -using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; +using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; namespace MiaoYu.Api.Admin.ApplicationServices.Apps; /// @@ -24,9 +24,10 @@ public class T_Character_Type_IntimacyService : ApplicationService w.TenantId==pagingSearchInput.Search.TenantId) - + .WhereIf(pagingSearchInput.Search?.CharacterId != 0, + w => w.CharacterId == pagingSearchInput.Search.CharacterId) + - .OrderByDescending(w => w.Id) .Select(w => new { diff --git a/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_CharacterController.cs b/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_CharacterController.cs index 7e57d58..43d0fea 100644 --- a/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_CharacterController.cs +++ b/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_CharacterController.cs @@ -1,4 +1,4 @@ -using MiaoYu.Api.Admin.ApplicationServices.Apps; +using MiaoYu.Api.Admin.ApplicationServices.Apps; using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; namespace MiaoYu.Api.Admin.Controllers.Apps; @@ -8,12 +8,12 @@ namespace MiaoYu.Api.Admin.Controllers.Apps; [ControllerDescriptor(MenuId = "请设置菜单Id 系统菜单表中查找,如果不设置不受权限保护!", DisplayName = "人物表")] public class T_CharacterController : AdminControllerBase { - public T_CharacterController(T_CharacterService defaultService) + public T_CharacterController(T_CharacterService defaultService) : base(defaultService) { } - + /// /// 获取列表 /// @@ -94,7 +94,18 @@ public class T_CharacterController : AdminControllerBase base.HttpContext.DownLoadFile(data, Tools.GetFileContentType[".xls"].ToStr(), name); } - + /// + /// 修改角色状态 + /// + /// + /// + /// + [ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "修改角色状态")] + [HttpPost("{id?}/{v?}")] + public async Task UpdateState([FromRoute] int id, [FromRoute] int v) + { + return await this._defaultService.UpdateState(v == 0 ? false : true, id); + } } \ No newline at end of file diff --git a/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_Character_Personality_RelationController.cs b/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_Character_Personality_RelationController.cs index 78b6163..8402424 100644 --- a/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_Character_Personality_RelationController.cs +++ b/admin-server/MiaoYu.Api.Admin/Controllers/Apps/MiaoYuChat/T_Character_Personality_RelationController.cs @@ -1,4 +1,4 @@ -using MiaoYu.Api.Admin.ApplicationServices.Apps; +using MiaoYu.Api.Admin.ApplicationServices.Apps; using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; namespace MiaoYu.Api.Admin.Controllers.Apps; @@ -8,12 +8,12 @@ namespace MiaoYu.Api.Admin.Controllers.Apps; [ControllerDescriptor(MenuId = "请设置菜单Id 系统菜单表中查找,如果不设置不受权限保护!", DisplayName = "角色和性格关联表")] public class T_Character_Personality_RelationController : AdminControllerBase { - public T_Character_Personality_RelationController(T_Character_Personality_RelationService defaultService) + public T_Character_Personality_RelationController(T_Character_Personality_RelationService defaultService) : base(defaultService) { } - + /// /// 获取列表 /// @@ -39,6 +39,19 @@ public class T_Character_Personality_RelationController : AdminControllerBase + /// 根据id数组删除 + /// + /// ids + /// + [ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")] + [HttpPost("{id?}")] + public async Task DeleteCIdListAsync([FromRoute] int id,[FromBody] List ids) + { + await this._defaultService.DeleteListAsync(id,ids); + return true; + } + /// /// 查询表单数据 /// @@ -79,6 +92,22 @@ public class T_Character_Personality_RelationController : AdminControllerBase + /// 批量配置性格 + /// + /// + /// + /// + [RequestLimitFilter(Duration = 1, LimitCount = 1)] + [ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "批量配置性格")] + [HttpPost(("{id?}"))] + [ApiCheckModel] + public Task SetCharacterPersonality([FromRoute] int id, [FromBody] List ids) + { + return this._defaultService.SaveFormAsync(id, ids); + } + + /// /// 导出Excel /// diff --git a/admin-server/MiaoYu.Api.Admin/MiaoYu.Api.Admin.xml b/admin-server/MiaoYu.Api.Admin/MiaoYu.Api.Admin.xml index c5b7593..9d9344b 100644 --- a/admin-server/MiaoYu.Api.Admin/MiaoYu.Api.Admin.xml +++ b/admin-server/MiaoYu.Api.Admin/MiaoYu.Api.Admin.xml @@ -240,6 +240,14 @@ + + + 修改状态 + + + + + 角色标签表 服务 T_Character_LabelService @@ -379,6 +387,13 @@ ids + + + 根据id数组删除 + + ids + + 查询表单数据 @@ -393,6 +408,13 @@ form + + + 保存数据 + + form + + 导出Excel @@ -2015,6 +2037,14 @@ + + + 修改角色状态 + + + + + 角色标签表 控制器 @@ -2175,6 +2205,13 @@ ids + + + 根据id数组删除 + + ids + + 查询表单数据 @@ -2196,6 +2233,14 @@ + + + 批量配置性格 + + + + + 导出Excel