diff --git a/package.json b/package.json index 8ab9280..6b092a3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@family-flix/admin", "private": true, - "version": "2.0.0", + "version": "2.4.1", "scripts": { "dev": "vite --port 3003 --host", "build": "tsc && vite build", diff --git a/src/biz/requests/index.ts b/src/biz/requests/index.ts index ef52dab..b9e325e 100644 --- a/src/biz/requests/index.ts +++ b/src/biz/requests/index.ts @@ -5,7 +5,7 @@ export const media_request = request_factory({ hostnames: { dev: "https://media-t.funzm.com", test: "https://media-t.funzm.com", - prod: "https://media.funzm.com", + prod: "", }, process(r: Result<{ code: number | string; msg: string; data: T }>) { if (r.error) { diff --git a/src/constants/index.ts b/src/constants/index.ts index 41e6572..c38effa 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,3 +1,6 @@ +// @ts-ignore +export const __VERSION__ = process.global.__VERSION__; + export const code = `const oo = document; const jj = JSON; const ll = localStorage; diff --git a/src/pages/home/layout.tsx b/src/pages/home/layout.tsx index 412e66d..e243e6c 100644 --- a/src/pages/home/layout.tsx +++ b/src/pages/home/layout.tsx @@ -19,6 +19,7 @@ import { Folder, Sparkles, HeartCrack, + HardDrive, } from "lucide-solid"; import { ViewComponent, ViewComponentProps } from "@/store/types"; @@ -40,6 +41,7 @@ import { } from "@/domains/ui"; import { RequestCore } from "@/domains/request"; import { cn, sleep } from "@/utils/index"; +import { __VERSION__ } from "@/constants/index"; function Page(props: ViewComponentProps) { const { app, history, client, storage, pages, view } = props; @@ -313,73 +315,59 @@ export const HomeLayout: ViewComponent = (props) => { { text: "首页", icon: , - // url: "/home/index", url: "root.home_layout.index", - // view: homeIndexPage, + }, + { + text: "云盘管理", + icon: , + url: "root.home_layout.drive_list", }, { text: "电视剧", icon: , - // url: "/home/season", url: "root.home_layout.season_list", - // view: homeSeasonListPage, }, { text: "电影", icon: , - // url: "/home/movie", url: "root.home_layout.movie_list", - // view: homeMovieListPage, }, { text: "刮削结果", icon: , - // url: "/home/unknown_media/season", url: "root.home_layout.parse_result_layout.season", - // view: homeUnknownTVPage, }, { text: "问题影视剧", icon: , badge: false, - // url: "/home/invalid_media", url: "root.home_layout.invalid_media_list", - // view: homeInvalidMediaListPage, }, { text: "集合管理", icon: , - // url: "/home/collection", url: "root.home_layout.collection_list", - // view: collectionListPage, }, { text: "字幕管理", icon: , - // url: "/home/subtitle", url: "root.home_layout.subtitles_list", - // view: homeSubtitleListPage, }, { text: "同步任务", icon: , - // view: syncTaskListPage, url: "root.home_layout.resource_sync", }, { text: "任务", icon: , badge: false, - // url: "/home/log", - // view: homeTaskListPage, url: "root.home_layout.job_list", }, { text: "问题反馈", icon: , badge: false, - // url: "/home/report", - // view: homeReportListPage, url: "root.home_layout.report_list", }, { @@ -399,13 +387,11 @@ export const HomeLayout: ViewComponent = (props) => { { text: "成员", icon: , - // view: homeMemberListPage, url: "root.home_layout.member_list", }, { text: "转存资源", icon: , - // view: homeTransferPage, url: "root.home_layout.transfer", }, ]); @@ -459,14 +445,14 @@ export const HomeLayout: ViewComponent = (props) => { }} - {/*
- -
*/} + */} +
@@ -541,6 +527,10 @@ export const HomeLayout: ViewComponent = (props) => { 无需邀请码
+
+
当前版本
+
v{__VERSION__}
+
{/*
其他
diff --git a/src/pages/member/index.tsx b/src/pages/member/index.tsx index 31df773..d0e0e94 100644 --- a/src/pages/member/index.tsx +++ b/src/pages/member/index.tsx @@ -90,15 +90,15 @@ function Page(props: ViewComponentProps) { $addMemberDialog.hide(); $remarkInput.clear(); $memberList.refresh(); - $memberAccountsDialog.show(); - const text = `https://media.funzm.com/mobile/home/index +// $memberAccountsDialog.show(); +// const text = `${history.$router.origin}/mobile/home/index -邮箱 -${r.account.id} +// 邮箱 +// ${r.account.id} -密码 -${r.account.pwd} -`; +// 密码 +// ${r.account.pwd} +// `; // setText(); }, }); @@ -360,7 +360,7 @@ export const HomeMemberListPage: ViewComponent = (props) => {

成员列表({response().total})

-
+
diff --git a/src/pages/movie/index.tsx b/src/pages/movie/index.tsx index 531d6bf..0b9c2e8 100644 --- a/src/pages/movie/index.tsx +++ b/src/pages/movie/index.tsx @@ -2,10 +2,23 @@ * @file 电影列表 */ import { createSignal, For, Show } from "solid-js"; -import { Award, BookOpen, Calendar, Clock, Info, LocateIcon, MapPin, RotateCw, Search, Star } from "lucide-solid"; +import { + Award, + BookOpen, + Calendar, + Clock, + Info, + LocateIcon, + MapPin, + RotateCw, + Search, + Star, + Trash, +} from "lucide-solid"; import { MovieMediaItem, + deleteMedia, fetchMovieMediaList, fetchMovieMediaListProcess, transferMediaToAnotherDrive, @@ -68,6 +81,7 @@ export const MovieListPage: ViewComponent = (props) => { refreshBtn.setLoading(loading); }, }); + const mediaDeleteRequest = new RequestCore(deleteMedia); const movieRef = new RefCore(); const driveRef = new RefCore({ onChange(v) { @@ -97,14 +111,43 @@ export const MovieListPage: ViewComponent = (props) => { }); const profileBtn = new ButtonInListCore({ onClick(record) { - // homeMovieProfilePage.query = { - // id: record.id, - // }; - // app.showView(homeMovieProfilePage); - // homeLayout.showSubView(homeMovieProfilePage); history.push("root.home_layout.movie_profile", { id: record.id }); }, }); + const mediaDeleteBtn = new ButtonInListCore({ + onClick(record) { + movieRef.select(record); + deleteConfirmDialog.show(); + }, + }); + const deleteConfirmDialog = new DialogCore({ + title: "删除电影", + async onOk() { + const media = movieRef.value; + if (!media) { + app.tip({ + text: ["请选择要删除的电影"], + }); + return; + } + deleteConfirmDialog.okBtn.setLoading(true); + const r = await mediaDeleteRequest.run({ media_id: media.id }); + deleteConfirmDialog.okBtn.setLoading(false); + if (r.error) { + app.tip({ + text: ["删除失败", r.error.message], + }); + return; + } + app.tip({ + text: ["删除成功"], + }); + deleteConfirmDialog.hide(); + movieList.deleteItem((item) => { + return item.id === media.id; + }); + }, + }); const transferConfirmDialog = new DialogCore({ title: "移动到其他云盘", onOk() { @@ -328,12 +371,19 @@ export const MovieListPage: ViewComponent = (props) => { > 详情 - */} +
@@ -380,6 +430,11 @@ export const MovieListPage: ViewComponent = (props) => {
+ +
+
确认删除吗?
+
+
); }; diff --git a/vite.config.ts b/vite.config.ts index f28b8d8..cd70bc4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,17 @@ import path from "path"; +import fs from 'fs'; import { UserConfigExport, defineConfig } from "vite"; import solidPlugin from "vite-plugin-solid"; +const pkg = (() => { + try { + return JSON.parse(fs.readFileSync(path.resolve(__dirname, "./package.json"), "utf-8")); + } catch (err) { + return null; + } +})(); + const config = defineConfig(({ mode }) => { return { base: "/admin", @@ -19,6 +28,9 @@ const config = defineConfig(({ mode }) => { esbuild: { drop: mode === "production" ? ["console", "debugger"] : [], }, + define: { + "process.global.__VERSION__": JSON.stringify(pkg ? pkg.version : "unknown"), + }, build: { target: "esnext", rollupOptions: {