fix(amap):shouye
This commit is contained in:
parent
32c9bd2381
commit
77fc8ce739
|
@ -23,6 +23,7 @@ export interface UserDataType {
|
||||||
identity: string;
|
identity: string;
|
||||||
archives_category_identity:string;
|
archives_category_identity:string;
|
||||||
supplies_status:number
|
supplies_status:number
|
||||||
|
accomplish:any
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TagDataType {
|
export interface TagDataType {
|
||||||
|
|
|
@ -1,26 +1,34 @@
|
||||||
// 档案管理
|
// 档案管理
|
||||||
|
|
||||||
import { Button, Space, Modal, FormInstance, Flex } from "antd";
|
import {
|
||||||
|
Button,
|
||||||
|
Space,
|
||||||
|
Modal,
|
||||||
|
FormInstance,
|
||||||
|
GetProps,
|
||||||
|
Tree,
|
||||||
|
Row,
|
||||||
|
Col,
|
||||||
|
} from "antd";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Store } from "antd/lib/form/interface";
|
import { Store } from "antd/lib/form/interface";
|
||||||
import SimpleForm from "@/components/form/simple_form";
|
import SimpleForm from "@/components/form/simple_form";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import MinusCircleOutlined from "@ant-design/icons/lib/icons/MinusCircleOutlined";
|
|
||||||
import FolderTwoTone from "@ant-design/icons/FolderOpenTwoTone";
|
|
||||||
import { folderConfig } from "./archives_conf";
|
import { folderConfig } from "./archives_conf";
|
||||||
import { Form, Select } from "antd";
|
import { Form, Select } from "antd";
|
||||||
import { useNavigate } from "react-router";
|
|
||||||
import "./preview.less";
|
import "./preview.less";
|
||||||
|
import DirectoryTree from "antd/lib/tree/DirectoryTree";
|
||||||
|
import FileListPage from "@/pages/archives/file_list";
|
||||||
const { Option } = Select;
|
const { Option } = Select;
|
||||||
const ArchivesFolder = (props: Store) => {
|
const ArchivesFolder = (props: Store) => {
|
||||||
const { folderStore, acStore } = props;
|
const { folderStore, acStore } = props;
|
||||||
const nav = useNavigate();
|
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
|
||||||
const [projectConfig, setProjectConfig] = useState<any>([]);
|
const [projectConfig, setProjectConfig] = useState<any>([]);
|
||||||
const formRef = React.useRef<FormInstance>(null);
|
const formRef = React.useRef<FormInstance>(null);
|
||||||
|
|
||||||
const [tagId, setId] = useState<Number | null>(null);
|
const [tagId, setId] = useState<Number | null>(null);
|
||||||
|
const [folderId, setFolderId] = useState<String | null>(null);
|
||||||
const [catList, setCatList] = useState<any>(null); // 仓库列表
|
const [catList, setCatList] = useState<any>(null); // 仓库列表
|
||||||
const onFinish = (values: any) => {
|
const onFinish = (values: any) => {
|
||||||
let data = values;
|
let data = values;
|
||||||
|
@ -55,6 +63,14 @@ const ArchivesFolder = (props: Store) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const onFinishFailed = () => {};
|
const onFinishFailed = () => {};
|
||||||
|
type DirectoryTreeProps = GetProps<typeof Tree.DirectoryTree>;
|
||||||
|
const onSelect: DirectoryTreeProps["onSelect"] = (keys, info:any) => {
|
||||||
|
setFolderId(info.node.identity);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onExpand: DirectoryTreeProps["onExpand"] = (keys, info) => {
|
||||||
|
// console.log("Trigger Expand", keys, info);
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<div className="contentBox">
|
<div className="contentBox">
|
||||||
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||||
|
@ -63,36 +79,45 @@ const ArchivesFolder = (props: Store) => {
|
||||||
创建文件夹
|
创建文件夹
|
||||||
</Button>
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
<Flex wrap gap="25px" justify="start">
|
<Row>
|
||||||
{Array.from({ length: folderStore.list?.length ?? 0 }, (_, i) => (
|
<Col span={16} push={8} style={{ border:"1px solid #ccc" }}>
|
||||||
<div
|
<FileListPage id={folderId} />
|
||||||
className="folder_box"
|
</Col>
|
||||||
key={i}
|
<Col span={8} pull={16} style={{ border:"1px solid #ccc" }}>
|
||||||
style={{
|
<DirectoryTree
|
||||||
cursor: "pointer",
|
defaultExpandAll
|
||||||
width: "120px",
|
onSelect={onSelect}
|
||||||
position: "relative",
|
onExpand={onExpand}
|
||||||
|
treeData={folderStore.list}
|
||||||
|
titleRender={(nodeData: any) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{nodeData.folder_name}
|
||||||
|
<span
|
||||||
|
style={{ marginLeft: "10px", color: "blue" }}
|
||||||
|
onClick={(e) => {
|
||||||
|
e?.stopPropagation();
|
||||||
|
console.log("new")
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
新建
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
style={{ marginLeft: "10px", color: "red" }}
|
||||||
|
onClick={(e) => {
|
||||||
|
e?.stopPropagation();
|
||||||
|
remove(nodeData.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</span>
|
||||||
|
</>
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
>
|
/>
|
||||||
<MinusCircleOutlined
|
</Col>
|
||||||
onClick={() => {
|
</Row>
|
||||||
remove(folderStore.list[i].id);
|
|
||||||
}}
|
|
||||||
className="close_icon"
|
|
||||||
/>
|
|
||||||
<FolderTwoTone
|
|
||||||
rotate={-270}
|
|
||||||
style={{ fontSize: "70px" }}
|
|
||||||
onClick={() =>
|
|
||||||
nav("/admin/archives/folder/" + folderStore.list[i].identity)
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
<p style={{ fontSize: "14px" }}>
|
|
||||||
{folderStore.list[i].folder_name}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</Flex>
|
|
||||||
<Modal
|
<Modal
|
||||||
title={!tagId ? "添加文件夹" : "编辑文件夹"}
|
title={!tagId ? "添加文件夹" : "编辑文件夹"}
|
||||||
width={600}
|
width={600}
|
||||||
|
|
|
@ -1,48 +1,36 @@
|
||||||
import { Breadcrumb, Button, UploadFile } from "antd";
|
import { Button, UploadFile } from "antd";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Store } from "antd/es/form/interface";
|
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import { useParams } from "react-router";
|
|
||||||
import AliUpload from "@/components/ali_upload";
|
import AliUpload from "@/components/ali_upload";
|
||||||
interface ArchiveUploadFile extends UploadFile{
|
interface ArchiveUploadFile extends UploadFile {
|
||||||
file_type:string | undefined;
|
file_type: string | undefined;
|
||||||
file_url:string | undefined;
|
file_url: string | undefined;
|
||||||
}
|
}
|
||||||
const FileListPage = (props: Store) => {
|
const FileListPage = (props: any) => {
|
||||||
const { folderStore,archivesStore } = props;
|
const { folderStore, archivesStore, id } = props;
|
||||||
const { id } = useParams();
|
|
||||||
const [fileList, setFileList] = useState<ArchiveUploadFile[]>([]);
|
const [fileList, setFileList] = useState<ArchiveUploadFile[]>([]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
folderStore.getAlist(id).then((res) => {
|
folderStore.getAlist(id).then((res) => {
|
||||||
setFileList(folderStore.alist)
|
setFileList(folderStore.alist);
|
||||||
});
|
});
|
||||||
}, [folderStore,id]);
|
}, [folderStore, id]);
|
||||||
const saveHandler = ()=>{
|
const saveHandler = () => {
|
||||||
fileList.forEach((item)=>{
|
fileList.forEach((item) => {
|
||||||
item.file_url= item.url;
|
item.file_url = item.url;
|
||||||
item.file_type= item.type;
|
item.file_type = item.type;
|
||||||
})
|
});
|
||||||
archivesStore.save(id,fileList);
|
archivesStore.save(id, fileList);
|
||||||
}
|
};
|
||||||
return (
|
return (
|
||||||
<div style={{ margin: "10px" }}>
|
<div style={{ margin: "10px" }}>
|
||||||
<Breadcrumb
|
|
||||||
items={[
|
|
||||||
{
|
|
||||||
title: "文件夹",
|
|
||||||
path: "/admin/archives/box",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "档案列表",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
<div style={{ margin: "10px" }}></div>
|
<div style={{ margin: "10px" }}></div>
|
||||||
<div style={{ margin: "10px" }}>
|
<div style={{ margin: "10px" }}>
|
||||||
<Button type="primary" onClick={saveHandler}>保存</Button>
|
<Button type="primary" onClick={saveHandler}>
|
||||||
|
保存
|
||||||
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<AliUpload
|
<AliUpload
|
||||||
imgList={fileList??[]}
|
imgList={fileList ?? []}
|
||||||
onChnage={(v) => {
|
onChnage={(v) => {
|
||||||
setFileList(v);
|
setFileList(v);
|
||||||
}}
|
}}
|
||||||
|
@ -51,5 +39,4 @@ const FileListPage = (props: Store) => {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
//export default FileListPage;
|
export default inject("archivesStore", "folderStore")(observer(FileListPage));
|
||||||
export default inject("archivesStore","folderStore")(observer(FileListPage));
|
|
||||||
|
|
|
@ -117,8 +117,6 @@ const Dep = (props: Store) => {
|
||||||
添加
|
添加
|
||||||
</Button>
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
|
|
||||||
{/* <BTable store={depStore} columns={columns} dataSource={depStore.list} /> */}
|
|
||||||
<DirectoryTree
|
<DirectoryTree
|
||||||
multiple
|
multiple
|
||||||
defaultExpandAll
|
defaultExpandAll
|
||||||
|
|
|
@ -13,21 +13,20 @@ export const EmConfig = (userList) => [
|
||||||
label: "任务描述",
|
label: "任务描述",
|
||||||
name: "desc",
|
name: "desc",
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请输入任务描述!" }],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
label: "目标位置",
|
label: "目标位置",
|
||||||
name: "target_location",
|
name: "target_location",
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请输入任务描述!" }],
|
rules: [{ required: true, message: "请输入目标位置!" }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FormType.map,
|
type: FormType.map,
|
||||||
label: "坐标信息",
|
label: "坐标信息",
|
||||||
name: "marker",
|
name: "marker",
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请输入任务描述!" }],
|
rules: [{ required: true, message: "坐标信息不能为空!" }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FormType.cehckboxGroup,
|
type: FormType.cehckboxGroup,
|
||||||
|
@ -35,6 +34,6 @@ export const EmConfig = (userList) => [
|
||||||
name: "user_id",
|
name: "user_id",
|
||||||
value: [],
|
value: [],
|
||||||
checkboxData: userList,
|
checkboxData: userList,
|
||||||
rules: [{ required: true, message: "请选择参与人员!" }],
|
rules: [{ required: true, message: "参与人员不能为空!" }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -70,7 +70,7 @@ const Emergency = (props: Store) => {
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</Button>
|
</Button>
|
||||||
{record.status === 0 ? (
|
{record.accomplish === 1 ? (
|
||||||
<Button
|
<Button
|
||||||
type="dashed"
|
type="dashed"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -111,6 +111,7 @@ const Emergency = (props: Store) => {
|
||||||
size="small"
|
size="small"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
trainingStore.back(record?.identity, 1);
|
trainingStore.back(record?.identity, 1);
|
||||||
|
emergencyStore.getlist();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
物资归还
|
物资归还
|
||||||
|
@ -236,7 +237,7 @@ const Emergency = (props: Store) => {
|
||||||
{(fields, { add, remove }) => (
|
{(fields, { add, remove }) => (
|
||||||
<>
|
<>
|
||||||
{fields.map(({ key, name, ...restField }) => (
|
{fields.map(({ key, name, ...restField }) => (
|
||||||
<>
|
<div key={key} style={{position:"relative"}}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
{...restField}
|
{...restField}
|
||||||
label={"物资"}
|
label={"物资"}
|
||||||
|
@ -267,8 +268,15 @@ const Emergency = (props: Store) => {
|
||||||
>
|
>
|
||||||
<InputNumber placeholder="请输入物资数量" />
|
<InputNumber placeholder="请输入物资数量" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<MinusCircleOutlined onClick={() => remove(name)} />
|
<MinusCircleOutlined
|
||||||
</>
|
style={{
|
||||||
|
position: "absolute",
|
||||||
|
bottom: "10px",
|
||||||
|
left: "300px",
|
||||||
|
}}
|
||||||
|
onClick={() => remove(name)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
))}
|
))}
|
||||||
<Form.Item>
|
<Form.Item>
|
||||||
<div style={{ textAlign: "center" }}>
|
<div style={{ textAlign: "center" }}>
|
||||||
|
|
|
@ -152,7 +152,7 @@ const Trainings = (props: Store) => {
|
||||||
baseHttp.get("/user/list", null).then((res) => {
|
baseHttp.get("/user/list", null).then((res) => {
|
||||||
let data = res.data?.record ?? [];
|
let data = res.data?.record ?? [];
|
||||||
data.forEach((item) => {
|
data.forEach((item) => {
|
||||||
item.label = item.account;
|
item.label = item.user_name;
|
||||||
item.value = item.identity;
|
item.value = item.identity;
|
||||||
});
|
});
|
||||||
setUserList(data ?? []);
|
setUserList(data ?? []);
|
||||||
|
|
|
@ -80,7 +80,6 @@ class BaseStore<B> implements BaseStoreInterface<B> {
|
||||||
// 获取列表
|
// 获取列表
|
||||||
async getlist(params?: any) {
|
async getlist(params?: any) {
|
||||||
this.listStatus = true;
|
this.listStatus = true;
|
||||||
console.log("123")
|
|
||||||
try {
|
try {
|
||||||
let res = await baseHttp.get(this.urlConfig.LIST, {
|
let res = await baseHttp.get(this.urlConfig.LIST, {
|
||||||
size: this.page?.Size ?? 20,
|
size: this.page?.Size ?? 20,
|
||||||
|
|
Loading…
Reference in New Issue