This commit is contained in:
zpc 2024-07-29 14:49:19 +08:00
parent 67cc311bdc
commit a4a700f4ff
19 changed files with 569 additions and 111 deletions

View File

@ -80,6 +80,7 @@ declare module 'vue' {
AUploadDragger: typeof import('ant-design-vue/es')['UploadDragger']
BarChartTransverse: typeof import('./core/components/charts/BarChartTransverse.vue')['default']
ColumnSetting: typeof import('./core/components/curd/components/ColumnSetting.vue')['default']
copy: typeof import('./core/components/characters/personality-characters copy.vue')['default']
ExternalJump: typeof import('./core/components/ExternalJump.vue')['default']
FindBack: typeof import('./core/components/FindBack.vue')['default']
GenerateCron: typeof import('./core/components/GenerateCron.vue')['default']
@ -87,6 +88,7 @@ declare module 'vue' {
HmImageTypeSelect: typeof import('./core/components/curd/select-components/hm-image-type-select.vue')['default']
HmTenantSelect: typeof import('./core/components/curd/select-components/hm-tenant-select.vue')['default']
Index: typeof import('./core/components/vue3-cron-core/Index.vue')['default']
LablesCharacters: typeof import('./core/components/characters/lables-characters.vue')['default']
Layout: typeof import('./core/components/layouts/Layout.vue')['default']
LayoutHeader: typeof import('./core/components/layouts/LayoutHeader.vue')['default']
LayoutIframe: typeof import('./core/components/layouts/LayoutIframe.vue')['default']

View File

@ -0,0 +1,137 @@
<script setup lang="ts">
import AppDictionaryCache from "@/core/utils/AppDictionaryCache";
import T_Character_Label_RelationService from "@/services/apps/T_Character_Label_Relations/T_Character_Label_RelationService";
//
const props = withDefaults(
defineProps<{
record: any;
color: string;
}>(),
{
color: "blue",
}
);
const emits = defineEmits<{
(e: "del"): void;
}>();
const open = ref<boolean>(false);
const showModal = async () => {
const _data = await AppDictionaryCache.appDictionaryLablesCache.getDataList();
const mData = [];
const keys = [];
_data.forEach((item, index) => {
const data = {
key: item.value,
title: item.name,
description: item.code,
};
// console.log(props.record.personas.filter(it=> it.value == item.value));
if (
props.record.lables.filter((it) => it.value == item.value).length > 0
) {
console.log("添加", data);
keys.push(data.key);
}
// if()
mData.push(data);
});
console.log(props.record);
mockData.value = mData;
targetKeys.value = keys;
console.log(mockData.value, targetKeys.value);
open.value = true;
};
const handleOk = async (e: MouseEvent) => {
console.log(e);
console.log(targetKeys.value);
await T_Character_Label_RelationService.setCharacterPersonality(
props.record.id,
targetKeys.value
);
props.record.lables = mockData.value
.filter((it) => targetKeys.value.includes(it.key))
.map((item) => {
return {
name: item.title,
code: item.description,
value: item.key,
};
});
// setCharacterPersonality
open.value = false;
};
interface MockData {
key: number;
title: string;
description: string;
chosen: boolean;
}
// {
// "page": 1,
// "size": 50,
// "search": {},
// "searchSort": []
// }
// T_Character_Personality_RelationService.findList(1,999,{},{});
const mockData = ref<MockData[]>([]);
const targetKeys = ref<number[]>([]);
const handleChange = (
keys: number[],
direction: string,
moveKeys: string[]
) => {
console.log(keys, direction, moveKeys);
};
const filterOption = (inputValue: string, option: MockData) => {
return option.title.indexOf(inputValue) > -1||option.description.indexOf(inputValue) > -1;
};
</script>
<template>
<a-button
type="primary"
size="small"
style="width: 60px; height: 22px; font-size: 12px"
@click="showModal"
>标签管理</a-button
>
<a-modal
v-model:open="open"
title="标签管理"
@ok="handleOk"
width="800px"
:maskClosable="false"
>
<a-transfer
v-model:target-keys="targetKeys"
:data-source="mockData"
:filter-option="filterOption"
show-search
:list-style="{
width: '300px',
height: '300px',
}"
@change="handleChange"
>
<template #footer="{ direction }">
</template>
<template #render="item">
<span class="custom-item"
>{{ item.title }} - {{ item.description }}</span
>
</template>
</a-transfer>
</a-modal>
</template>
<style lang="less" scoped></style>

View File

@ -17,7 +17,7 @@ const emits = defineEmits<{
const open = ref<boolean>(false);
const showModal = async () => {
const _data = await AppDictionaryCache.appDictionaryTypesCache.getDataList();
const _data = await AppDictionaryCache.appDictionaryPersonalitysCache.getDataList();
const mData = [];
const keys = [];
_data.forEach((item, index) => {
@ -52,8 +52,8 @@ const handleOk = async (e: MouseEvent) => {
props.record.id,
targetKeys.value
);
props.personas = mockData.value
.filter((it) => targetKeys.value.includes(it.value))
props.record.personas = mockData.value
.filter((it) => targetKeys.value.includes(it.key))
.map((item) => {
return {
name: item.title,
@ -124,14 +124,7 @@ const filterOption = (inputValue: string, option: MockData) => {
@change="handleChange"
>
<template #footer="{ direction }">
<a-button
v-if="direction === 'left'"
size="small"
style="float: left; margin: 5px"
type="primary"
>
添加性格
</a-button>
</template>
<template #render="item">
<span class="custom-item"

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import AppDictionaryCache from "@/core/utils/AppDictionaryCache";
import T_Character_Personality_RelationService from "@/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService";
import T_Character_Type_IntimacyService from "@/services/apps/T_Character_Type_Intimacys/T_Character_Type_IntimacyService";
//
const props = withDefaults(
defineProps<{
@ -28,9 +28,7 @@ const showModal = async () => {
};
// console.log(props.record.personas.filter(it=> it.value == item.value));
if (
props.record.personas.filter((it) => it.value == item.value).length > 0
) {
if (props.record.types.filter((it) => it.value == item.value).length > 0) {
console.log("添加", data);
keys.push(data.key);
@ -48,12 +46,14 @@ const showModal = async () => {
const handleOk = async (e: MouseEvent) => {
console.log(e);
console.log(targetKeys.value);
await T_Character_Personality_RelationService.setCharacterPersonality(
await T_Character_Type_IntimacyService.setCharacterPersonality(
props.record.id,
targetKeys.value
);
props.personas = mockData.value
.filter((it) => targetKeys.value.includes(it.value))
// props.record.personas = mockData.value
props.record.types = mockData.value
.filter((it) => targetKeys.value.includes(it.key))
.map((item) => {
return {
name: item.title,
@ -61,6 +61,7 @@ const handleOk = async (e: MouseEvent) => {
value: item.key,
};
});
console.log( props.record.types );
// setCharacterPersonality
open.value = false;
@ -93,9 +94,11 @@ const handleChange = (
};
const filterOption = (inputValue: string, option: MockData) => {
return option.title.indexOf(inputValue) > -1||option.description.indexOf(inputValue) > -1;
return (
option.title.indexOf(inputValue) > -1 ||
option.description.indexOf(inputValue) > -1
);
};
</script>
<template>
<a-button
@ -123,16 +126,7 @@ const filterOption = (inputValue: string, option: MockData) => {
}"
@change="handleChange"
>
<template #footer="{ direction }">
<a-button
v-if="direction === 'left'"
size="small"
style="float: left; margin: 5px"
type="primary"
>
添加性格
</a-button>
</template>
<template #footer="{ direction }"> </template>
<template #render="item">
<span class="custom-item"
>{{ item.title }} - {{ item.description }}</span

View File

@ -3,6 +3,8 @@ import AppDictionaryImageCache from "./cache/AppDictionaryImageCache";
import { AbstractDictionaryCache } from "./cache/AbstractDictionaryCache";
import AppDictionaryTenantCache from "./cache/AppDictionaryTenantCache";
import AppDictionaryTypesCache from "./cache/AppDictionaryTypesCache";
import AppDictionaryPersonalitysCache from "./cache/AppDictionaryPersonalitysCache";
import AppDictionaryLablesCache from "./cache/AppDictionaryLablesCache";
/**
*
*/
@ -17,10 +19,20 @@ class AppDictionaryCache {
*/
static appDictionaryTenantCache: AbstractDictionaryCache = new AppDictionaryTenantCache();
/**
*
*/
static appDictionaryPersonalitysCache: AbstractDictionaryCache = new AppDictionaryPersonalitysCache();
/**
*
*/
static appDictionaryTypesCache: AbstractDictionaryCache = new AppDictionaryTypesCache();
/**
*
*/
static appDictionaryLablesCache: AbstractDictionaryCache = new AppDictionaryLablesCache();
}
export default AppDictionaryCache;

View File

@ -0,0 +1,41 @@
import { AbstractDictionaryCache } from './AbstractDictionaryCache'
import { DefaultOptionType } from "ant-design-vue/es/select";
import T_Character_LabelService from "@/services/apps/T_Character_Labels/T_Character_LabelService";
/**
*
*/
class AppDictionaryLablesCache extends AbstractDictionaryCache {
protected code: string = "personality";
public static _lock: Promise<void> | null = null;
constructor() {
super(AppDictionaryLablesCache._lock);
}
/**
*
* @returns Promise<any>
*/
protected override async getSysDictionaryService(): Promise<any> {
const response = await T_Character_LabelService.findList(1, 9999, {}, []);
// console.log(response);
const _data = response.data.dataSource.map(item => {
return {
name: item.labelName,
value: item.id,
code: item.labelValue
// name: item.name, value, code: item.code
};
});
return _data;
}
public async getDataListSelect(): Promise<DefaultOptionType[]> {
const _data = await this.getDataList();
return _data.map((item) => {
return { label: item.name, value: item.value, name: item.code, } as DefaultOptionType;
});
}
}
export default AppDictionaryLablesCache;

View File

@ -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 AppDictionaryPersonalitysCache extends AbstractDictionaryCache {
protected code: string = "personality";
public static _lock: Promise<void> | null = null;
constructor() {
super(AppDictionaryPersonalitysCache._lock);
}
/**
*
* @returns Promise<any>
*/
protected override async getSysDictionaryService(): Promise<any> {
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<DefaultOptionType[]> {
const _data = await this.getDataList();
return _data.map((item) => {
return { label: item.name, value: item.value, name: item.code, } as DefaultOptionType;
});
}
}
export default AppDictionaryPersonalitysCache;

View File

@ -1,6 +1,7 @@
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";
import T_Character_TypeService from "@/services/apps/T_Character_Types/T_Character_TypeService";
/**
*
*/
@ -15,13 +16,13 @@ class AppDictionaryTypesCache extends AbstractDictionaryCache {
* @returns Promise<any>
*/
protected override async getSysDictionaryService(): Promise<any> {
const response = await T_Character_PersonalityService.findList(1, 9999, {}, []);
const response = await T_Character_TypeService.findList(1, 9999, {}, []);
// console.log(response);
const _data = response.data.dataSource.map(item => {
return {
name: item.name,
value: item.id,
code: item.value
code: ''
// name: item.name, value, code: item.code
};
});

View File

@ -71,4 +71,23 @@ export default class T_Character_Label_RelationService {
});
}
/**
*
*
* @param ids
* @returns
*/
static delete(id: number, ids: string[]) {
return Http.post(`${this.urlPrefix}/deleteCIdList/${id}`, ids)
}
/**
*
* @param id id
* @param ids
* @returns
*/
static async setCharacterPersonality(id: number, ids: any[]) {
return Http.post(`${this.urlPrefix}/setCharacterLabel/${id}`, ids)
}
}

View File

@ -34,15 +34,7 @@ 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)
}
/**
*
*
@ -79,6 +71,16 @@ export default class T_Character_Personality_RelationService {
searchSort
});
}
/**
*
*
* @param ids
* @returns
*/
static delete(id: number, ids: string[]) {
return Http.post(`${this.urlPrefix}/deleteCIdList/${id}`, ids)
}
/**
*
* @param id id

View File

@ -70,5 +70,22 @@ export default class T_Character_Type_IntimacyService {
searchSort
});
}
/**
*
*
* @param ids
* @returns
*/
static delete(id: number, ids: string[]) {
return Http.post(`${this.urlPrefix}/deleteCIdList/${id}`, ids)
}
/**
*
* @param id id
* @param ids
* @returns
*/
static async setCharacterPersonality(id: number, ids: any[]) {
return Http.post(`${this.urlPrefix}/setCharacterTypes/${id}`, ids)
}
}

View File

@ -14,7 +14,6 @@ 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" });
@ -288,9 +287,10 @@ async function lablesDel(e: any, record: any) {
* 删除关联的性格数据
*/
async function personasDel(e: any, record: any) {
const _request = await T_Character_Personality_RelationService.delete(record.id,[
e.value,
]);
const _request = await T_Character_Personality_RelationService.delete(
record.id,
[e.value]
);
if (_request.data) {
record.personas = record.personas.filter((item) => item.value != e.value);
Tools.message.error("删除成功!");
@ -300,11 +300,10 @@ async function personasDel(e: any, record: any) {
}
//#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;
async function visibilityChange(id: number, visibility: boolean, record: any) {
var response = await T_CharacterService.setVisibility(id, visibility);
console.log(visibility, response);
// record.visibility=visibility;
}
</script>
@ -556,7 +555,7 @@ console.log(visibility,response);
v-model:checked="record.visibility"
checked-children="上线"
un-checked-children="下线"
@change="visibilityChange(record.id,record.visibility,record)"
@change="visibilityChange(record.id, record.visibility, record)"
/>
</template>
</a-table-column>
@ -568,24 +567,27 @@ console.log(visibility,response);
fixed="right"
>
<template #default="{ record }">
<a-tag
style="cursor: pointer"
@click="() => refInfo?.open(record.id)"
color="#2db7f5"
v-if="power.update"
>编辑</a-tag
>
<a-popconfirm
title="您确定要删除?"
@confirm="deleteList(record.id)"
okText="确定"
cancelText="取消"
v-if="power.delete"
>
<a-tag style="cursor: pointer" color="#f50">删除</a-tag>
</a-popconfirm>
<personality-characters v-if="power.update" :record="record" />
<types-characters v-if="power.update" :record="record" />
<a-space :size="[1, 10]" wrap>
<a-tag
style="cursor: pointer"
@click="() => refInfo?.open(record.id)"
color="#2db7f5"
v-if="power.update"
>编辑</a-tag
>
<a-popconfirm
title="您确定要删除?"
@confirm="deleteList(record.id)"
okText="确定"
cancelText="取消"
v-if="power.delete"
>
<a-tag style="cursor: pointer" color="#f50">删除</a-tag>
</a-popconfirm>
<personality-characters v-if="power.update" :record="record" />
<types-characters v-if="power.update" :record="record" />
<lables-characters v-if="power.update" :record="record" />
</a-space>
</template>
</a-table-column>
</template>

View File

@ -1,4 +1,4 @@
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
namespace MiaoYu.Api.Admin.ApplicationServices.Apps;
/// <summary>
@ -114,6 +114,44 @@ public class T_Character_Label_RelationService : ApplicationService<IRepository<
return ExcelUtil.ExportExcelByPagingView(tableViewModel, null, "Id");
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
public async Task DeleteListAsync(int id, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == id && ids.Contains(it.CharacterLabelId)).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="form">form</param>
/// <returns></returns>
public async Task<int> SaveFormAsync(int characterId, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == characterId).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
List<T_Character_Label_Relation> newList = new List<T_Character_Label_Relation>();
foreach (var personalityId in ids)
{
var t_Character_Label_Relation = new T_Character_Label_Relation
{
CharacterId = characterId,
CreateTime = DateTime.Now,
CharacterLabelId = personalityId,
UpdateTime = DateTime.Now,
TenantId = Guid.Empty,
};
//this._defaultRepository.Insert(t_Character_Label_Relation);
newList.Add(t_Character_Label_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);
}
}

View File

@ -68,16 +68,7 @@ public class T_Character_Personality_RelationService : ApplicationService<IRepos
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
public async Task DeleteListAsync(int id,List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it=>it.CharacterId==id&& ids.Contains(it.PersonalityId)).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
}
/// <summary>
/// 查询表单数据
@ -112,6 +103,16 @@ public class T_Character_Personality_RelationService : ApplicationService<IRepos
return this._defaultRepository.InsertOrUpdateAsync(form);
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
public async Task DeleteListAsync(int id, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == id && ids.Contains(it.PersonalityId)).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
}
/// <summary>
/// 保存数据
/// </summary>

View File

@ -106,5 +106,46 @@ public class T_Character_Type_IntimacyService : ApplicationService<IRepository<T
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
public async Task DeleteListAsync(int id, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == id && ids.Contains(it.TypeId)).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="form">form</param>
/// <returns></returns>
public async Task<int> SaveFormAsync(int characterId, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == characterId).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
List<T_Character_Type_Intimacy> newList = new List<T_Character_Type_Intimacy>();
foreach (var personalityId in ids)
{
var t_Character_Type_Intimacy = new T_Character_Type_Intimacy
{
CharacterId = characterId,
CreateTime = DateTime.Now,
TypeId = personalityId,
OrderBy=1,
UpdateTIme=DateTime.Now,
TenantId = Guid.Empty,
};
//this._defaultRepository.Insert(t_Character_Type_Intimacy);
newList.Add(t_Character_Type_Intimacy);
}
//var delList = list.Where(it => newList.Any(item => item.CharacterId != it.PersonalityId)).ToList();
//await this._defaultRepository.DeleteAsync(delList);
return await this._defaultRepository.InsertRangeAsync(newList);
}
}

View File

@ -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;
@ -95,6 +95,36 @@ public class T_Character_Label_RelationController : AdminControllerBase<T_Charac
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")]
[HttpPost("{id?}")]
public async Task<bool> DeleteCIdListAsync([FromRoute] int id, [FromBody] List<int> ids)
{
await this._defaultService.DeleteListAsync(id, ids);
return true;
}
/// <summary>
/// 批量配置标签
/// </summary>
/// <param name="id"></param>
/// <param name="ids"></param>
/// <returns></returns>
[RequestLimitFilter(Duration = 1, LimitCount = 1)]
[ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "批量配置标签")]
[HttpPost(("{id?}"))]
[ApiCheckModel]
public Task SetCharacterLabel([FromRoute] int id, [FromBody] List<int> ids)
{
return this._defaultService.SaveFormAsync(id, ids);
}
}

View File

@ -39,19 +39,6 @@ public class T_Character_Personality_RelationController : AdminControllerBase<T_
return true;
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")]
[HttpPost("{id?}")]
public async Task<bool> DeleteCIdListAsync([FromRoute] int id,[FromBody] List<int> ids)
{
await this._defaultService.DeleteListAsync(id,ids);
return true;
}
/// <summary>
/// 查询表单数据
/// </summary>
@ -92,6 +79,21 @@ public class T_Character_Personality_RelationController : AdminControllerBase<T_
return this._defaultService.SaveFormAsync(form);
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")]
[HttpPost("{id?}")]
public async Task<bool> DeleteCIdListAsync([FromRoute] int id, [FromBody] List<int> ids)
{
await this._defaultService.DeleteListAsync(id, ids);
return true;
}
/// <summary>
/// 批量配置性格
/// </summary>

View File

@ -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;
@ -95,6 +95,33 @@ public class T_Character_Type_IntimacyController : AdminControllerBase<T_Charact
}
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")]
[HttpPost("{id?}")]
public async Task<bool> DeleteCIdListAsync([FromRoute] int id, [FromBody] List<int> ids)
{
await this._defaultService.DeleteListAsync(id, ids);
return true;
}
/// <summary>
/// 批量配置类型
/// </summary>
/// <param name="id"></param>
/// <param name="ids"></param>
/// <returns></returns>
[RequestLimitFilter(Duration = 1, LimitCount = 1)]
[ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "批量配置类型")]
[HttpPost(("{id?}"))]
[ApiCheckModel]
public Task SetCharacterTypes([FromRoute] int id, [FromBody] List<int> ids)
{
return this._defaultService.SaveFormAsync(id, ids);
}
}

View File

@ -328,6 +328,20 @@
<param name="pagingSearchInput"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Label_RelationService.DeleteListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Label_RelationService.SaveFormAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
保存数据
</summary>
<param name="form">form</param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_PersonalityService">
<summary>
角色性格表 服务 T_Character_PersonalityService
@ -387,13 +401,6 @@
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.DeleteListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.FindFormAsync(System.Int32)">
<summary>
查询表单数据
@ -408,6 +415,13 @@
<param name="form">form</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.DeleteListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.SaveFormAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
保存数据
@ -502,6 +516,20 @@
<param name="pagingSearchInput"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Type_IntimacyService.DeleteListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Type_IntimacyService.SaveFormAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
保存数据
</summary>
<param name="form">form</param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.ApplicationServices.Apps.T_ChatService">
<summary>
聊天记录表 服务 T_ChatService
@ -2139,6 +2167,21 @@
<param name="pagingSearchInput"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Label_RelationController.DeleteCIdListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Label_RelationController.SetCharacterLabel(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
批量配置标签
</summary>
<param name="id"></param>
<param name="ids"></param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.Controllers.Apps.T_Character_PersonalityController">
<summary>
角色性格表 控制器
@ -2205,13 +2248,6 @@
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.DeleteCIdListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.FindFormAsync(System.Int32)">
<summary>
查询表单数据
@ -2233,6 +2269,13 @@
<param name="form"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.DeleteCIdListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.SetCharacterPersonality(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
批量配置性格
@ -2342,6 +2385,21 @@
<param name="pagingSearchInput"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Type_IntimacyController.DeleteCIdListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Type_IntimacyController.SetCharacterTypes(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
批量配置类型
</summary>
<param name="id"></param>
<param name="ids"></param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.Controllers.Apps.T_ChatController">
<summary>
聊天记录表 控制器