基于Java spring + vue3 + nuxt构建的内容管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

133 lines
2.7 KiB

export {};
declare global {
interface ResOptions<T> {
code: number;
msg: string;
data: T;
rows: T;
total: number;
}
type ResPage<T> = Omit<ResOptions<T>, 'data'>;
type ResData<T> = Omit<ResOptions<T>, 'rows' | 'total'>;
interface ResBase {
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
remark: string;
}
interface ColumnItem extends ResBase {
id: number;
name: string;
type: string;
value: string;
order: number;
status: string;
}
interface Item {
id: number;
name: string;
}
interface MoviePv {
pv: number;
}
interface Actor {
name: string;
}
interface CastItem {
id: number;
actor: Actor;
}
interface MovieRate extends ResBase {
id: number;
movieId: number;
rate: number;
rateUserCount: number;
}
interface MovieVideoItem extends ResBase {
id: number;
movieId: number;
typeId: number;
title: string;
videoId: number;
cover: string;
sort: number;
status: string;
}
interface MovieItem extends ResBase {
id: number;
status: number;
releaseStatus: number;
releaseDate: string;
title: string;
poster: string;
bgColor: string;
titleEn: string;
titleOriginal: string;
akas: string;
columnValue: string;
genres: string;
year: string;
pubdate: string;
duration: string;
durations: string;
versions: string;
eggHunt: string;
color: string;
seasonCount: number;
currentSeason: number;
episodeCount: number;
currentEpisode: number;
theEnd: number;
countryIds: string;
languages: string;
tags: string;
summary: string;
isPay: number;
paymentAmount: number;
freeDuration: number;
country: Item[];
casts: CastItem[];
moviePv: MoviePv;
movieRate: MovieRate | null;
movieVideosCount: number;
userCollectsCount: number;
movieVideos?: MovieVideoItem[];
}
interface RankMovieItem
extends Pick<MovieItem, 'updateTime' | 'id' | 'title' | 'columnValue' | 'currentEpisode' | 'theEnd' | 'moviePv'> {}
interface LeaderboardItem {
weekRank: RankMovieItem[];
mouthRank: RankMovieItem[];
}
interface CastListItem {
id: number;
role: string;
actorId: number;
actorAvatar: string;
actorName: string;
actorGender: string;
actorBirthday: string;
countryName: string;
professionId: number;
professionName: string;
professionMpath: string;
}
interface ColumnMovieItem extends Pick<ColumnItem, 'name' | 'type' | 'value'> {
genres: Item[];
ranks: RankMovieItem[];
rows: Pick<MovieItem, 'id' | 'title' | 'poster' | 'columnValue' | 'casts' | 'movieRate'>[];
}
}