|
@@ -1,33 +1,23 @@
|
|
|
import React, { useCallback, useEffect, useState } from "react";
|
|
|
import styles from "./index.module.scss";
|
|
|
-import { Button, Modal, Popconfirm } from "antd";
|
|
|
+import { Button, Empty, Modal, Popconfirm } from "antd";
|
|
|
import classNames from "classnames";
|
|
|
import { MessageFu } from "@/utils/message";
|
|
|
import { useSelector } from "react-redux";
|
|
|
import { RootState } from "@/store";
|
|
|
import { A1OFileType } from "@/types";
|
|
|
+import { A1_APIOgetListMove, A2_APIOmove } from "@/store/action/A1Project";
|
|
|
|
|
|
type Props = {
|
|
|
mId: { id: number; name: string };
|
|
|
id1: { id: number; name: string };
|
|
|
id2: { id: number; name: string };
|
|
|
closeFu: () => void;
|
|
|
+ projectId: number;
|
|
|
+ moveSuFu: () => void;
|
|
|
};
|
|
|
|
|
|
-const towTableArr = [
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- name: "asdasd",
|
|
|
- type: 1,
|
|
|
- },
|
|
|
- {
|
|
|
- id: 22,
|
|
|
- name: "sadsssscxxxx",
|
|
|
- type: 0,
|
|
|
- },
|
|
|
-] as A1OFileType[];
|
|
|
-
|
|
|
-function A1OMove({ mId, id1, id2, closeFu }: Props) {
|
|
|
+function A1OMove({ mId, id1, id2, closeFu, projectId, moveSuFu }: Props) {
|
|
|
// 从仓库获取左侧写死列表
|
|
|
const A1OleftArr = useSelector(
|
|
|
(state: RootState) => state.A1Project.A1OleftArr
|
|
@@ -47,15 +37,20 @@ function A1OMove({ mId, id1, id2, closeFu }: Props) {
|
|
|
}, [A1OleftArr]);
|
|
|
|
|
|
// 封装发送请求的函数
|
|
|
- const getListFu = useCallback((id: number) => {
|
|
|
- console.log("文件移动发送请求", id);
|
|
|
+ const getListFu = useCallback(
|
|
|
+ async (id: number) => {
|
|
|
+ const res = await A1_APIOgetListMove(projectId, id);
|
|
|
|
|
|
- // setTableInfo();
|
|
|
- }, []);
|
|
|
+ if (res.code === 0) {
|
|
|
+ setTableInfo(res.data.records);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ [projectId]
|
|
|
+ );
|
|
|
|
|
|
// 选中文件夹
|
|
|
const cutFileFu = useCallback(
|
|
|
- (id: number, name: string, type?: 0|1) => {
|
|
|
+ (id: number, name: string, type?: 0 | 1) => {
|
|
|
if (type === 1) {
|
|
|
if (tab1.id) {
|
|
|
// 第二级
|
|
@@ -65,11 +60,6 @@ function A1OMove({ mId, id1, id2, closeFu }: Props) {
|
|
|
// 第一级
|
|
|
setTab1({ id, name });
|
|
|
setTab2({ id: 0, name: "" });
|
|
|
-
|
|
|
- // 后面调试接口的时候 删掉
|
|
|
- setTimeout(() => {
|
|
|
- setTableInfo(towTableArr);
|
|
|
- }, 200);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -100,15 +90,23 @@ function A1OMove({ mId, id1, id2, closeFu }: Props) {
|
|
|
}, [tab1.id, tab1.name, tab2.id]);
|
|
|
|
|
|
// 点击移动
|
|
|
- const btnOkFu = useCallback(() => {
|
|
|
+ const btnOkFu = useCallback(async () => {
|
|
|
if (tab2.id) {
|
|
|
// 进入到了二级
|
|
|
if (tab2.id === id2.id) return MessageFu.warning("不能和之前的位置一样!");
|
|
|
- } else if (tab1.id) {
|
|
|
+ } else if (tab1.id && !id2.id) {
|
|
|
// 一级
|
|
|
if (tab1.id === id1.id) return MessageFu.warning("不能和之前的位置一样!");
|
|
|
}
|
|
|
- }, [id1.id, id2.id, tab1.id, tab2.id]);
|
|
|
+
|
|
|
+ const res = await A2_APIOmove(mId.id, tab2.id ? tab2.id : tab1.id);
|
|
|
+
|
|
|
+ if (res.code === 0) {
|
|
|
+ MessageFu.success("移动成功!");
|
|
|
+ moveSuFu();
|
|
|
+ closeFu();
|
|
|
+ }
|
|
|
+ }, [closeFu, id1.id, id2.id, mId.id, moveSuFu, tab1.id, tab2.id]);
|
|
|
|
|
|
return (
|
|
|
<Modal
|
|
@@ -144,20 +142,24 @@ function A1OMove({ mId, id1, id2, closeFu }: Props) {
|
|
|
) : null}
|
|
|
</div>
|
|
|
|
|
|
- <div className="A1OMArr">
|
|
|
- {tableInfo.map((v) => (
|
|
|
- <div
|
|
|
- className={classNames(
|
|
|
- "A1OMArrRow",
|
|
|
- v.type === 1 ? "A1OMArrRowAc" : ""
|
|
|
- )}
|
|
|
- key={v.id}
|
|
|
- onClick={() => cutFileFu(v.id, v.name, v.type)}
|
|
|
- >
|
|
|
- {v.name}
|
|
|
- </div>
|
|
|
- ))}
|
|
|
- </div>
|
|
|
+ {tableInfo.length <= 0 ? (
|
|
|
+ <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
|
|
|
+ ) : (
|
|
|
+ <div className="A1OMArr">
|
|
|
+ {tableInfo.map((v) => (
|
|
|
+ <div
|
|
|
+ className={classNames(
|
|
|
+ "A1OMArrRow",
|
|
|
+ v.type === 1 ? "A1OMArrRowAc" : ""
|
|
|
+ )}
|
|
|
+ key={v.id}
|
|
|
+ onClick={() => cutFileFu(v.id, v.name, v.type)}
|
|
|
+ >
|
|
|
+ {v.name}
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
|
|
|
<div className="A1OMBtn">
|
|
|
<Popconfirm
|