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