From d9f002da0a6223853a233287274c4f80b3084206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Mon, 13 Mar 2023 11:33:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E9=80=89=E5=88=A0=E9=99=A4=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/resource.ts | 6 +++ src/pages/resource/images/index.module.less | 2 + src/pages/resource/images/index.tsx | 48 +++++++++++---------- src/pages/resource/videos/index.tsx | 6 ++- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/src/api/resource.ts b/src/api/resource.ts index 34a29df..0867008 100644 --- a/src/api/resource.ts +++ b/src/api/resource.ts @@ -55,3 +55,9 @@ export function storeResource( export function destroyResource(id: number) { return client.destroy(`/backend/v1/resource/${id}`); } + +export function destroyResourceMulti(ids: number[]) { + return client.post(`/backend/v1/resource/destroy-multi`, { + ids: ids, + }); +} diff --git a/src/pages/resource/images/index.module.less b/src/pages/resource/images/index.module.less index eb81957..473e793 100644 --- a/src/pages/resource/images/index.module.less +++ b/src/pages/resource/images/index.module.less @@ -36,6 +36,7 @@ left: 10px; top: 10px; z-index: 100; + cursor: pointer; } .checked { @@ -52,6 +53,7 @@ align-items: center; justify-content: center; color: #ff4d4f; + cursor: pointer; } .imageItem { diff --git a/src/pages/resource/images/index.tsx b/src/pages/resource/images/index.tsx index 3f88567..e730c52 100644 --- a/src/pages/resource/images/index.tsx +++ b/src/pages/resource/images/index.tsx @@ -11,7 +11,6 @@ import { } from "antd"; import { resource } from "../../../api"; import styles from "./index.module.less"; -import { CloseOutlined } from "@ant-design/icons"; import { UploadImageSub } from "../../../compenents/upload-image-button/upload-image-sub"; import { TreeCategory, PerButton } from "../../../compenents"; import { ExclamationCircleFilled, CheckOutlined } from "@ant-design/icons"; @@ -38,21 +37,22 @@ export const ResourceImagesPage = () => { const [size, setSize] = useState(32); const [total, setTotal] = useState(0); const [category_ids, setCategoryIds] = useState([]); + const [selectKey, setSelectKey] = useState([]); // 删除图片 - const removeResource = (id: number) => { - if (id === 0) { + const removeResource = () => { + if (selectKey.length === 0) { return; } confirm({ title: "操作确认", icon: , - content: "确认删除此图片?", + content: "确认删除选中图片?", okText: "确认", okType: "danger", cancelText: "取消", onOk() { - resource.destroyResource(id).then(() => { + resource.destroyResourceMulti(selectKey).then(() => { message.success("删除成功"); resetImageList(); }); @@ -69,15 +69,8 @@ export const ResourceImagesPage = () => { resource .resourceList(page, size, "", "", "", "IMAGE", categoryIds) .then((res: any) => { - let imageData = res.data.result.data; - if (imageData.length > 0) { - for (let i = 0; i < imageData.length; i++) { - imageData[i].isChecked = false; - } - } setTotal(res.data.result.total); - setImageList(imageData); - console.log(imageData); + setImageList(res.data.result.data); }) .catch((err: any) => { console.log("错误,", err); @@ -95,8 +88,16 @@ export const ResourceImagesPage = () => { getImageList(); }, [category_ids, refresh, page, size]); - const onChange = () => { - console.log(111); + const onChange = (item: any, index: number) => { + let arr = selectKey; + if (arr.indexOf(item.id) === -1) { + arr.push(item.id); + setSelectKey(arr); + } else { + arr.splice(arr.indexOf(item.id), 1); + setSelectKey(arr); + } + setRefresh(!refresh); }; return ( @@ -124,13 +125,13 @@ export const ResourceImagesPage = () => {
null} + onClick={() => removeResource()} />
@@ -143,15 +144,18 @@ export const ResourceImagesPage = () => { )} - {imageList.map((item: any) => ( + {imageList.map((item: any, index: number) => (
onChange(item, index)} > - {item.isChecked && } + {selectKey.indexOf(item.id) !== -1 && }
{ height={150} src={item.url} /> -
))} diff --git a/src/pages/resource/videos/index.tsx b/src/pages/resource/videos/index.tsx index ed3372f..913eb40 100644 --- a/src/pages/resource/videos/index.tsx +++ b/src/pages/resource/videos/index.tsx @@ -21,6 +21,7 @@ interface DataType { export const ResourceVideosPage = () => { const [videoList, setVideoList] = useState([]); const [videosExtra, setVideoExtra] = useState([]); + const [adminUsers, setAdminUsers] = useState({}); const [refresh, setRefresh] = useState(false); const [page, setPage] = useState(1); const [size, setSize] = useState(10); @@ -60,7 +61,9 @@ export const ResourceVideosPage = () => { }, { title: "创建人", - dataIndex: "disk", + dataIndex: "id", + render: (id: string) => + JSON.stringify(adminUsers) !== "{}" && {adminUsers.id}, }, { title: "视频时长", @@ -125,6 +128,7 @@ export const ResourceVideosPage = () => { setTotal(res.data.result.total); setVideoList(res.data.result.data); setVideoExtra(res.data.videos_extra); + setAdminUsers(res.data.admin_users); setLoading(false); }) .catch((err: any) => {