fix(amap):shouye

This commit is contained in:
wang_yp 2024-11-15 10:47:17 +08:00
parent 32c9bd2381
commit 77fc8ce739
8 changed files with 99 additions and 82 deletions

View File

@ -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 {

View File

@ -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}

View File

@ -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));

View File

@ -106,7 +106,7 @@ const Dep = (props: Store) => {
<div className="contentBox"> <div className="contentBox">
<Space direction="vertical" size="middle" style={{ display: "flex" }}> <Space direction="vertical" size="middle" style={{ display: "flex" }}>
<Space direction="horizontal" size={"middle"}> <Space direction="horizontal" size={"middle"}>
<Button <Button
type="default" type="default"
onClick={() => { onClick={() => {
setProjectConfig(defaultConfig); setProjectConfig(defaultConfig);
@ -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

View File

@ -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: "参与人员不能为空!" }],
}, },
]; ];

View File

@ -68,9 +68,9 @@ const Emergency = (props: Store) => {
edit(record); edit(record);
}} }}
> >
</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" }}>

View File

@ -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 ?? []);

View File

@ -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,