From 23907ab4ee7d435fbf8cd18008083245492c1e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Wed, 8 Mar 2023 16:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E8=B5=84=E6=BA=90=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=88=9D=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/index.ts | 1 + src/pages/resource/images/index.module.less | 21 ++ src/pages/resource/images/index.tsx | 215 ++++++++++++++++++++ src/router/routes.tsx | 7 +- 4 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 src/pages/resource/images/index.module.less create mode 100644 src/pages/resource/images/index.tsx diff --git a/src/pages/index.ts b/src/pages/index.ts index d5393ae..4092049 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -18,3 +18,4 @@ export * from "./department"; export * from "./department/create"; export * from "./department/update"; export * from "./change-password"; +export * from "./resource/images"; diff --git a/src/pages/resource/images/index.module.less b/src/pages/resource/images/index.module.less new file mode 100644 index 0000000..1ace70d --- /dev/null +++ b/src/pages/resource/images/index.module.less @@ -0,0 +1,21 @@ +.categoryItem { + width: 100%; + height: 50px; + line-height: 50px; + float: left; + cursor: pointer; + display: flex; + align-items: center; + + &.active { + background-color: red; + color: white; + } +} + +.categoryTitle { + width: 100%; + height: 30px; + line-height: 30px; + display: flex; +} diff --git a/src/pages/resource/images/index.tsx b/src/pages/resource/images/index.tsx new file mode 100644 index 0000000..77f5d25 --- /dev/null +++ b/src/pages/resource/images/index.tsx @@ -0,0 +1,215 @@ +import { useEffect, useState } from "react"; +import { + Button, + Row, + Col, + Modal, + Image, + Empty, + message, + Pagination, +} from "antd"; +import { resource, resourceCategory } from "../../../api"; +import styles from "./index.module.less"; +import { CreateResourceCategory } from "../../../compenents/create-rs-category"; +import { CloseOutlined } from "@ant-design/icons"; +import { UploadImageSub } from "../../../compenents/upload-image-button/upload-image-sub"; + +interface CategoryItem { + id: number; + type: string; + name: string; + sort: number; +} + +interface ImageItem { + id: number; + category_id: number; + name: string; + extension: string; + size: number; + disk: string; + file_id: string; + path: string; + url: string; + created_at: string; +} + +export const ResourceImagesPage = () => { + const [categories, setCategories] = useState([ + { + id: 0, + type: "IMAGE", + name: "默认分类", + sort: 0, + }, + ]); + const [defaultCid, setDefaultCid] = useState(0); + const [refreshCategories, setRefreshCategories] = useState(1); + + const [imageList, setImageList] = useState([]); + const [refresh, setRefresh] = useState(false); + const [page, setPage] = useState(1); + const [size, setSize] = useState(12); + const [total, setTotal] = useState(0); + + // 获取图片资源的分类 + const getCategories = () => { + resourceCategory.resourceCategoryList("IMAGE").then((res: any) => { + let data = res.data.data; + if (data.length > 0) { + setCategories([...categories, ...res.data.data]); + } + }); + }; + // 删除资源分类 + const removeCategory = (id: number) => { + if (id === 0) { + return; + } + resourceCategory.destroyResourceCategory(id).then(() => { + message.success("删除成功"); + setRefreshCategories(refreshCategories + 1); + }); + }; + + // 获取图片列表 + const getImageList = () => { + resource + .resourceList(page, size, "", "", "", "IMAGE", defaultCid + "") + .then((res: any) => { + setTotal(res.data.result.total); + setImageList(res.data.result.data); + }) + .catch((err: any) => { + console.log("错误,", err); + }); + }; + // 重置列表 + const resetImageList = () => { + setPage(1); + setImageList([]); + setRefresh(!refresh); + }; + + // 初始化加载数据 + useEffect(() => { + getCategories(); + }, [refreshCategories]); + + // 加载图片列表 + useEffect(() => { + getImageList(); + }, [defaultCid, refresh, page, size]); + + return ( + <> +
+ + + <> +
+
图片分类
+
+ { + setRefreshCategories(refreshCategories + 1); + }} + > +
+
+ {categories.length === 0 && ( + + )} + + {categories.map((item) => ( +
{ + setDefaultCid(item.id); + }} + > +
{item.name}
+ {item.id !== 0 && ( +
+ ))} + + + + + + { + resetImageList(); + }} + > + + + + {imageList.length === 0 && ( + + + + )} + + {imageList.map((item) => ( + { + console.log(item.url); + }} + > + + + ))} + + {imageList.length > 0 && ( + + { + setPage(currentPage); + setSize(currentSize); + }} + defaultCurrent={page} + total={total} + /> + + )} + + +
+
+ + ); +}; diff --git a/src/router/routes.tsx b/src/router/routes.tsx index 7cb86d2..1efdd9c 100644 --- a/src/router/routes.tsx +++ b/src/router/routes.tsx @@ -19,7 +19,8 @@ import { DepartmentPage, DepartmentCreatePage, DepartmentUpdatePage, - ChangePasswordPage + ChangePasswordPage, + ResourceImagesPage, } from "../pages"; const routes: RouteObject[] = [ @@ -35,6 +36,10 @@ const routes: RouteObject[] = [ path: "/change-password", element: , }, + { + path: "/images", + element: , + }, { path: "/vod", element: ,