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;
archives_category_identity:string;
supplies_status:number
accomplish:any
}
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 { 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")
}}
>
</span>
<span
style={{ marginLeft: "10px", color: "red" }}
onClick={(e) => {
e?.stopPropagation();
remove(nodeData.id);
}}
>
</span>
</>
);
}}
>
<MinusCircleOutlined
onClick={() => {
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>
/>
</Col>
</Row>
<Modal
title={!tagId ? "添加文件夹" : "编辑文件夹"}
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 { 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));

View File

@ -117,8 +117,6 @@ const Dep = (props: Store) => {
</Button>
</Space>
{/* <BTable store={depStore} columns={columns} dataSource={depStore.list} /> */}
<DirectoryTree
multiple
defaultExpandAll

View File

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

View File

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

View File

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

View File

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