mirror of
https://github.com/PlayEdu/backend
synced 2025-06-23 07:22:42 +08:00
多选删除图片资源
This commit is contained in:
parent
28d192b590
commit
d9f002da0a
@ -55,3 +55,9 @@ export function storeResource(
|
|||||||
export function destroyResource(id: number) {
|
export function destroyResource(id: number) {
|
||||||
return client.destroy(`/backend/v1/resource/${id}`);
|
return client.destroy(`/backend/v1/resource/${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function destroyResourceMulti(ids: number[]) {
|
||||||
|
return client.post(`/backend/v1/resource/destroy-multi`, {
|
||||||
|
ids: ids,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
left: 10px;
|
left: 10px;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checked {
|
.checked {
|
||||||
@ -52,6 +53,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: #ff4d4f;
|
color: #ff4d4f;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.imageItem {
|
.imageItem {
|
||||||
|
@ -11,7 +11,6 @@ import {
|
|||||||
} from "antd";
|
} from "antd";
|
||||||
import { resource } from "../../../api";
|
import { resource } from "../../../api";
|
||||||
import styles from "./index.module.less";
|
import styles from "./index.module.less";
|
||||||
import { CloseOutlined } from "@ant-design/icons";
|
|
||||||
import { UploadImageSub } from "../../../compenents/upload-image-button/upload-image-sub";
|
import { UploadImageSub } from "../../../compenents/upload-image-button/upload-image-sub";
|
||||||
import { TreeCategory, PerButton } from "../../../compenents";
|
import { TreeCategory, PerButton } from "../../../compenents";
|
||||||
import { ExclamationCircleFilled, CheckOutlined } from "@ant-design/icons";
|
import { ExclamationCircleFilled, CheckOutlined } from "@ant-design/icons";
|
||||||
@ -38,21 +37,22 @@ export const ResourceImagesPage = () => {
|
|||||||
const [size, setSize] = useState(32);
|
const [size, setSize] = useState(32);
|
||||||
const [total, setTotal] = useState(0);
|
const [total, setTotal] = useState(0);
|
||||||
const [category_ids, setCategoryIds] = useState<any>([]);
|
const [category_ids, setCategoryIds] = useState<any>([]);
|
||||||
|
const [selectKey, setSelectKey] = useState<any>([]);
|
||||||
|
|
||||||
// 删除图片
|
// 删除图片
|
||||||
const removeResource = (id: number) => {
|
const removeResource = () => {
|
||||||
if (id === 0) {
|
if (selectKey.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
confirm({
|
confirm({
|
||||||
title: "操作确认",
|
title: "操作确认",
|
||||||
icon: <ExclamationCircleFilled />,
|
icon: <ExclamationCircleFilled />,
|
||||||
content: "确认删除此图片?",
|
content: "确认删除选中图片?",
|
||||||
okText: "确认",
|
okText: "确认",
|
||||||
okType: "danger",
|
okType: "danger",
|
||||||
cancelText: "取消",
|
cancelText: "取消",
|
||||||
onOk() {
|
onOk() {
|
||||||
resource.destroyResource(id).then(() => {
|
resource.destroyResourceMulti(selectKey).then(() => {
|
||||||
message.success("删除成功");
|
message.success("删除成功");
|
||||||
resetImageList();
|
resetImageList();
|
||||||
});
|
});
|
||||||
@ -69,15 +69,8 @@ export const ResourceImagesPage = () => {
|
|||||||
resource
|
resource
|
||||||
.resourceList(page, size, "", "", "", "IMAGE", categoryIds)
|
.resourceList(page, size, "", "", "", "IMAGE", categoryIds)
|
||||||
.then((res: any) => {
|
.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);
|
setTotal(res.data.result.total);
|
||||||
setImageList(imageData);
|
setImageList(res.data.result.data);
|
||||||
console.log(imageData);
|
|
||||||
})
|
})
|
||||||
.catch((err: any) => {
|
.catch((err: any) => {
|
||||||
console.log("错误,", err);
|
console.log("错误,", err);
|
||||||
@ -95,8 +88,16 @@ export const ResourceImagesPage = () => {
|
|||||||
getImageList();
|
getImageList();
|
||||||
}, [category_ids, refresh, page, size]);
|
}, [category_ids, refresh, page, size]);
|
||||||
|
|
||||||
const onChange = () => {
|
const onChange = (item: any, index: number) => {
|
||||||
console.log(111);
|
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 (
|
return (
|
||||||
@ -124,13 +125,13 @@ export const ResourceImagesPage = () => {
|
|||||||
<div className="d-flex">
|
<div className="d-flex">
|
||||||
<Button className="mr-16">全选</Button>
|
<Button className="mr-16">全选</Button>
|
||||||
<PerButton
|
<PerButton
|
||||||
disabled={null}
|
disabled={selectKey.length === 0}
|
||||||
type="primary"
|
type="primary"
|
||||||
text="删除"
|
text="删除"
|
||||||
class=""
|
class=""
|
||||||
icon={null}
|
icon={null}
|
||||||
p="resource-destroy"
|
p="resource-destroy"
|
||||||
onClick={() => null}
|
onClick={() => removeResource()}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -143,15 +144,18 @@ export const ResourceImagesPage = () => {
|
|||||||
</Col>
|
</Col>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{imageList.map((item: any) => (
|
{imageList.map((item: any, index: number) => (
|
||||||
<Col key={item.id} span={3}>
|
<Col key={item.id} span={3}>
|
||||||
<div className={styles.imageItem}>
|
<div className={styles.imageItem}>
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
item.isChecked ? styles.checked : styles.checkbox
|
selectKey.indexOf(item.id) === -1
|
||||||
|
? styles.checkbox
|
||||||
|
: styles.checked
|
||||||
}
|
}
|
||||||
|
onClick={() => onChange(item, index)}
|
||||||
>
|
>
|
||||||
{item.isChecked && <CheckOutlined />}
|
{selectKey.indexOf(item.id) !== -1 && <CheckOutlined />}
|
||||||
</div>
|
</div>
|
||||||
<Image
|
<Image
|
||||||
preview={true}
|
preview={true}
|
||||||
@ -159,13 +163,13 @@ export const ResourceImagesPage = () => {
|
|||||||
height={150}
|
height={150}
|
||||||
src={item.url}
|
src={item.url}
|
||||||
/>
|
/>
|
||||||
<Button
|
{/* <Button
|
||||||
className={styles.closeButton}
|
className={styles.closeButton}
|
||||||
danger
|
danger
|
||||||
shape="circle"
|
shape="circle"
|
||||||
icon={<CloseOutlined />}
|
icon={<CloseOutlined />}
|
||||||
onClick={() => removeResource(item.id)}
|
onClick={() => removeResource(item.id)}
|
||||||
/>
|
/> */}
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</Col>
|
||||||
))}
|
))}
|
||||||
|
@ -21,6 +21,7 @@ interface DataType {
|
|||||||
export const ResourceVideosPage = () => {
|
export const ResourceVideosPage = () => {
|
||||||
const [videoList, setVideoList] = useState<any>([]);
|
const [videoList, setVideoList] = useState<any>([]);
|
||||||
const [videosExtra, setVideoExtra] = useState<any>([]);
|
const [videosExtra, setVideoExtra] = useState<any>([]);
|
||||||
|
const [adminUsers, setAdminUsers] = useState<any>({});
|
||||||
const [refresh, setRefresh] = useState(false);
|
const [refresh, setRefresh] = useState(false);
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
const [size, setSize] = useState(10);
|
const [size, setSize] = useState(10);
|
||||||
@ -60,7 +61,9 @@ export const ResourceVideosPage = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "创建人",
|
title: "创建人",
|
||||||
dataIndex: "disk",
|
dataIndex: "id",
|
||||||
|
render: (id: string) =>
|
||||||
|
JSON.stringify(adminUsers) !== "{}" && <span>{adminUsers.id}</span>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "视频时长",
|
title: "视频时长",
|
||||||
@ -125,6 +128,7 @@ export const ResourceVideosPage = () => {
|
|||||||
setTotal(res.data.result.total);
|
setTotal(res.data.result.total);
|
||||||
setVideoList(res.data.result.data);
|
setVideoList(res.data.result.data);
|
||||||
setVideoExtra(res.data.videos_extra);
|
setVideoExtra(res.data.videos_extra);
|
||||||
|
setAdminUsers(res.data.admin_users);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
})
|
})
|
||||||
.catch((err: any) => {
|
.catch((err: any) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user