| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- // 动态数据接口定义
- import CommonContent, { GetContentListParams } from "@/api/CommonContent";
- import CalendarContent from "@/api/fusion/CalendarContent";
- import ScenicSpotContent from "@/api/fusion/ScenicSpotContent";
- import ActivityContent from "@/api/inheritor/ActivityContent";
- import InheritorContent from "@/api/inheritor/InheritorContent";
- import MoveableContent from "@/api/inheritor/MoveableContent";
- import ProductsContent from "@/api/inheritor/ProductsContent";
- import ProjectsContent from "@/api/inheritor/ProjectsContent";
- import SeminarContent from "@/api/inheritor/SeminarContent";
- import UnitContent from "@/api/inheritor/UnitContent";
- import UnmoveableContent from "@/api/inheritor/UnmoveableContent";
- import BulidingContent from "@/api/introduction/BulidingContent";
- import CharacterContent from "@/api/introduction/CharacterContent";
- import CustomContent from "@/api/introduction/CustomContent";
- import FeatureContent from "@/api/introduction/FeatureContent";
- import HistoryContent from "@/api/introduction/HistoryContent";
- import IndexContent from "@/api/introduction/IndexContent";
- import LanguageContent from "@/api/introduction/LanguageContent";
- import PolicyContent from "@/api/introduction/PolicyContent";
- import SeaContent from "@/api/introduction/SeaContent";
- import VictualsContent from "@/api/introduction/VictualsContent";
- import TeamsContent from "@/api/research/TeamsContent";
- import type { IHomeCommonCategoryListTabListDropdownDefine } from "./CommonCategoryDefine";
- import DiscussContent from "@/api/research/DiscussContent";
- import ResultContent from "@/api/research/ResultContent";
- import { CommonCategorDynamicDropDownValuesToParams } from "./data-defines/Dropdown";
- export * from './data-defines/Category';
- export * from './data-defines/Dropdown';
- //默认动态数据接口定义
- /**
- * 默认列表动态数据接口定义 - 通用内容
- */
- export interface IHomeCommonCategoryDynamicDataCommonContent {
- type: 'commonContent',
- params: {
- /**
- * 模型ID
- */
- modelId: number,
- /**
- * 栏目ID
- */
- mainBodyColumnId?: string|number|number[],
- /**
- * 分类类型id
- */
- typeId?: number,
- },
- /**
- * 其他参数
- */
- otherParams?: Record<string, any>,
- }
- /**
- * 默认列表动态数据接口定义 - 已序列化的预制接口
- */
- export interface IHomeCommonCategoryDynamicDataSerializedApi {
- type: 'serializedApi',
- /**
- * 序列化接口名称
- */
- name: string,
- params?: {
- /**
- * 栏目ID
- */
- mainBodyColumnId?: string|number|number[],
- },
- /**
- * 其他参数
- */
- otherParams?: Record<string, any>,
- }
- /**
- * 默认列表动态数据接口定义 - 请求内容
- */
- export interface IHomeCommonCategoryDynamicDataRequest {
- type: 'request',
- method: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE",
- url: string,
- querys?: Record<string, any>,
- params?: Record<string, any>,
- }
- export type IHomeCommonCategoryDynamicData = IHomeCommonCategoryDynamicDataCommonContent
- | IHomeCommonCategoryDynamicDataSerializedApi
- | IHomeCommonCategoryDynamicDataRequest;
- /**
- * 动态数据序列化接口
- */
- export function CommonCategoryDynamicDataSerializedApi(item: IHomeCommonCategoryDynamicDataSerializedApi) {
- switch (item.name) {
- case 'BulidingContent': return BulidingContent;
- case 'ActivityContent': return ActivityContent;
- case 'InheritorContent': return InheritorContent;
- case 'MoveableContent': return MoveableContent;
- case 'ProductsContent': return ProductsContent;
- case 'ProjectsContent': return ProjectsContent;
- case 'SeminarContent': return SeminarContent;
- case 'UnitContent': return UnitContent;
- case 'UnmoveableContent': return UnmoveableContent;
- case 'CalendarContent': return CalendarContent;
- case 'ScenicSpotContent': return ScenicSpotContent;
- case 'CharacterContent': return CharacterContent;
- case 'FeatureContent': return FeatureContent;
- case 'HistoryContent': return HistoryContent;
- case 'IndexContent': return IndexContent;
- case 'LanguageContent': return LanguageContent;
- case 'PolicyContent': return PolicyContent;
- case 'SeaContent': return SeaContent;
- case 'VictualsContent': return VictualsContent;
- case 'CustomContent': return CustomContent;
- case 'TeamsContent': return TeamsContent;
- case 'DiscussContent': return DiscussContent;
- case 'ResultContent': return ResultContent;
- default:
- throw new Error(`未实现的序列化接口 ${item.name}`);
- }
- }
- //加载接口
- export async function doLoadDynamicListData(
- item: IHomeCommonCategoryDynamicData,
- page: number,
- pageSize: number,
- keywords: string,
- dropdownDefines: IHomeCommonCategoryListTabListDropdownDefine[],
- dropDownValues: (number|string|boolean)[],
- ) {
- switch (item.type) {
- default:
- throw new Error(`未实现的动态数据接口`);
- case 'commonContent':
- return await CommonContent.getContentList(new GetContentListParams()
- .setModelId(item.params.modelId)
- .setMainBodyColumnId(item.params.mainBodyColumnId)
- .setKeywords(keywords)
- .setSelfValues({
- ...item.otherParams,
- ...CommonCategorDynamicDropDownValuesToParams(dropDownValues, dropdownDefines || []),
- })
- , page, pageSize);
- case 'serializedApi': {
- const params = new GetContentListParams();
- if (item.params?.mainBodyColumnId)
- params.setMainBodyColumnId(item.params.mainBodyColumnId);
- return (await CommonCategoryDynamicDataSerializedApi(item).getContentList(
- params
- .setKeywords(keywords)
- .setSelfValues({
- ...item.otherParams,
- ...CommonCategorDynamicDropDownValuesToParams(dropDownValues, dropdownDefines || []),
- })
- , page, pageSize));
- }
- case 'request':
- return (await CommonContent.request(
- item.url,
- { ...item.querys, page, pageSize },
- {
- method: item.method,
- data: {
- ...item.params,
- ...CommonCategorDynamicDropDownValuesToParams(dropDownValues, dropdownDefines || [])
- },
- },
- '',
- undefined,
- )).data;
- }
- }
|