From 28201296f1fac241d5f3cca37a5c296c11b26fb6 Mon Sep 17 00:00:00 2001 From: wang_yp <357754663@qq.com> Date: Wed, 9 Oct 2024 17:30:57 +0800 Subject: [PATCH] fix(amap):core --- src/components/ali_upload.tsx | 16 +-- src/components/layout/layout.tsx | 2 +- src/model/userModel.ts | 1 + src/pages/archives/archivesFolder.tsx | 30 ++--- src/pages/archives/file_list.tsx | 55 ++++++++ src/pages/archives/index.tsx | 28 +---- src/pages/archives/index_box.tsx | 32 +++++ src/pages/login/login.less | 10 +- src/pages/training/task_archives.tsx | 173 ++++++++++++++++++++++++++ src/pages/training/training.tsx | 63 +++++++--- src/pages/training/trainingCat.tsx | 9 -- src/pages/user/user_config.tsx | 26 ++-- src/pages/whseMgmt/index.tsx | 4 +- src/router/routers/home_router.tsx | 24 +++- src/static/jun.png | Bin 0 -> 184051 bytes src/store/archives.ts | 11 +- src/store/archives_category.ts | 3 - src/store/folder.ts | 4 + src/store/training.ts | 5 + src/util/config.ts | 12 +- 20 files changed, 396 insertions(+), 112 deletions(-) create mode 100644 src/pages/archives/file_list.tsx create mode 100644 src/pages/archives/index_box.tsx create mode 100644 src/pages/training/task_archives.tsx create mode 100644 src/static/jun.png diff --git a/src/components/ali_upload.tsx b/src/components/ali_upload.tsx index 94afabc..965143c 100644 --- a/src/components/ali_upload.tsx +++ b/src/components/ali_upload.tsx @@ -7,12 +7,14 @@ import Config from "@/util/config"; interface UploadFileProps { imgList: Array; onChnage: Function; + maxCount?: number; } interface UploadFileEx extends UploadFile { systemImageId?: number; bannerName?: string; file_name?: string; + file_url?: string; redictUrl?: string; id?: number; } @@ -47,12 +49,12 @@ const AliUpload = (props: UploadFileProps) => { }, [props.imgList]); const handleChange: UploadProps["onChange"] = ({ fileList: newFileList }) => { - newFileList.forEach((i)=>{ - i.url = `${Config.uploadUrl}uploads/`+i.name - i.fileName = i.name - }) + newFileList.forEach((i) => { + i.url = `${Config.uploadUrl}uploads/` + i.name; + i.fileName = i.name; + }); setFileList(newFileList); - props.onChnage(newFileList) + props.onChnage(newFileList); }; const uploadButton = (
@@ -68,10 +70,10 @@ const AliUpload = (props: UploadFileProps) => { fileList={files} action={`${Config.uploadUrl}v1/public/fts/upload`} onPreview={handlePreview} - maxCount={4} + maxCount={props.maxCount ?? 4} onChange={handleChange} > - {files.length >= 4 ? null : uploadButton} + {files.length >= (props.maxCount??4) ? null : uploadButton} { ], }, { - key: "/admin/archives", + key: "/admin/archives/box", label: `档案管理`, }, { diff --git a/src/model/userModel.ts b/src/model/userModel.ts index 6b89129..c2283d9 100644 --- a/src/model/userModel.ts +++ b/src/model/userModel.ts @@ -21,6 +21,7 @@ export interface UserDataType { endTime: any; status: any; identity: string; + archives_category_identity:string; } export interface TagDataType { diff --git a/src/pages/archives/archivesFolder.tsx b/src/pages/archives/archivesFolder.tsx index 9572f7a..9b1041c 100644 --- a/src/pages/archives/archivesFolder.tsx +++ b/src/pages/archives/archivesFolder.tsx @@ -9,13 +9,12 @@ import React from "react"; import FolderTwoTone from "@ant-design/icons/FolderOpenTwoTone"; import { folderConfig } from "./archives_conf"; import { Form, Select } from "antd"; -import Preview from "./preview"; +import { useNavigate } from "react-router"; const { Option } = Select; const ArchivesFolder = (props: Store) => { const { folderStore, acStore } = props; + const nav = useNavigate(); const [isModalOpen, setIsModalOpen] = useState(false); - const [isModalOpenArchives, setIsModalOpenArchives] = - useState(false); const [projectConfig, setProjectConfig] = useState([]); const formRef = React.useRef(null); @@ -49,16 +48,9 @@ const ArchivesFolder = (props: Store) => { setIsModalOpen(false); }; - const cancelHandlerArch = () => { - setIsModalOpenArchives(false); - }; + - // 文件夹点击 - const folderHandle = (e) => { - folderStore.getAlist(e.identity).then((res) => { - setIsModalOpenArchives(true); - }); - }; + const onFinishFailed = () => {}; return (
@@ -72,7 +64,10 @@ const ArchivesFolder = (props: Store) => { {Array.from({ length: folderStore.list?.length ?? 0 }, (_, i) => (
folderHandle(folderStore.list[i])} + onClick={() => + //folderHandle(folderStore.list[i]) + nav("/admin/archives/folder/" + folderStore.list[i].identity) + } style={{ cursor: "pointer", width: "120px" }} > @@ -82,15 +77,6 @@ const ArchivesFolder = (props: Store) => {
))} - - - { + const { folderStore,archivesStore } = props; + const { id } = useParams(); + const [fileList, setFileList] = useState([]); + useEffect(() => { + folderStore.getAlist(id).then((res) => { + setFileList(folderStore.alist) + }); + }, [folderStore,id]); + const saveHandler = ()=>{ + fileList.forEach((item)=>{ + item.file_url= item.url; + item.file_type= item.type; + }) + archivesStore.save(id,fileList); + } + return ( +
+ +
+
+ +
+ { + setFileList(v); + }} + maxCount={100} + /> +
+ ); +}; +//export default FileListPage; +export default inject("archivesStore","folderStore")(observer(FileListPage)); diff --git a/src/pages/archives/index.tsx b/src/pages/archives/index.tsx index 99a357e..6184d20 100644 --- a/src/pages/archives/index.tsx +++ b/src/pages/archives/index.tsx @@ -1,35 +1,13 @@ -import { Tabs, TabsProps } from "antd"; -import ArchivesCat from "./archivesCat"; -import ArchivesFolder from "./archivesFolder"; -import Archive from "./archive"; +import { Outlet } from "react-router"; const Archives = () => { - const onChange = (key: string) => { - console.log(key); - }; - const items: TabsProps["items"] = [ - { - key: "1", - label: "档案类别管理", - children: , - }, - { - key: "2", - label: "档案文件夹管理", - children: , - }, - { - key: "3", - label: "档案管理", - children: , - }, - ]; + return ( <> - + ); }; diff --git a/src/pages/archives/index_box.tsx b/src/pages/archives/index_box.tsx new file mode 100644 index 0000000..a674747 --- /dev/null +++ b/src/pages/archives/index_box.tsx @@ -0,0 +1,32 @@ + + +import { Tabs, TabsProps } from "antd"; +import ArchivesCat from "./archivesCat"; +import ArchivesFolder from "./archivesFolder"; +// import Archive from "./archive"; + + +const ArchiveBox = () => { + const onChange = (key: string) => { + console.log(key); + }; + const items: TabsProps["items"] = [ + { + key: "1", + label: "档案类别管理", + children: , + }, + { + key: "2", + label: "档案文件夹管理", + children: , + }, + ]; + return ( + <> + + + ); +}; + +export default ArchiveBox; \ No newline at end of file diff --git a/src/pages/login/login.less b/src/pages/login/login.less index 080590f..4ada38b 100644 --- a/src/pages/login/login.less +++ b/src/pages/login/login.less @@ -1,7 +1,9 @@ .login_model { width: 100%; height: 100%; - background-color: aqua; + background-image: url("../../static/jun.png"); + background-repeat: no-repeat; + background-size: 100% 100%; display: flex; align-items: center; justify-content: center; @@ -15,7 +17,6 @@ } .container { height: 100%; - background-image: linear-gradient(to right, #fbc2eb, #a6c1ee); } .login-wrapper { background-color: #fff; @@ -53,11 +54,12 @@ .btn { text-align: center; cursor: pointer; + background-color: red; + color: #fff; padding: 10px; + border-radius: 10px; width: 100%; margin-top: 40px; - background-image: linear-gradient(to right, #a6c1ee, #fbc2eb); - color: #fff; } .msg { diff --git a/src/pages/training/task_archives.tsx b/src/pages/training/task_archives.tsx new file mode 100644 index 0000000..3906190 --- /dev/null +++ b/src/pages/training/task_archives.tsx @@ -0,0 +1,173 @@ +import { + Button, + Col, + Divider, + Flex, + FormInstance, + message, + Modal, + Row, +} from "antd"; +import { Store } from "antd/es/form/interface"; +import { inject, observer } from "mobx-react"; +import { useState } from "react"; +import AliUpload from "@/components/ali_upload"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +import { folderConfig } from "../archives/archives_conf"; +interface TaskArchivesProps { + acStore?: Store; + folderStore?: Store; + trainingStore?: Store; + taskId: string; + category_identity: string; +} + +const TaskArchives = (props: TaskArchivesProps) => { + const { folderStore, trainingStore, taskId, category_identity } = props; + const [isModalOpenUser, setIsModalOpenUser] = useState(false); + const [folderModal, setfolderModal] = useState(false); + const [folderList, setfolderList] = useState([]); + const [projectConfig, setProjectConfig] = useState([]); + const [identity, setIdentity] = useState(""); + const [imageList, setImageList] = useState([]); + const formRef = React.useRef(null); + + const getFolderList = () => { + folderStore + ?.getFolderList(category_identity) + .then((res) => { + setfolderList(res?.data?.record ?? []); + }); + }; + const onFinish = async (values: any) => { + let data = values; + data.ac_identity = category_identity; + folderStore?.add(data).then(() => { + message.success("保存成功"); + getFolderList(); + setfolderModal(false); + }); + }; + + const save = async () => { + let imlist = imageList + imlist.forEach(element => { + element.file_url = element.url; + element.file_name = element.name; + }); + let data = { + task_identity: taskId, // 任务id + identity: identity, // 文件夹id + list: imlist, + category_identity: category_identity, + }; + let res = await trainingStore?.addAcieves(data); + message.success("档案已保存到当前文件夹"); + }; + const handleSelect = async (identity) => { + await folderStore?.getAlist(identity).then(() => { + folderStore.alist?.forEach(elem=>{ + elem.url = elem.file_url + elem.name = elem.file_name + }) + setImageList(folderStore.alist ?? []); + }); + setIdentity(identity); + }; + const onFinishFailed = () => {}; + + return ( + <> + + formRef.current?.submit()} + onCancel={() => setfolderModal(false)} + > + {}} + formName="card_basic" + colProps={12} + span={6} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + > + + setIsModalOpenUser(false)} + > + + +

文件夹列表

+ + + {folderList?.map((v: any) => { + return ( +

{ + handleSelect(v.identity); + }} + > + {v.folder_name} +

+ ); + })} + + + +

档案

+ +
+ + { + setImageList(v); + }} + /> + +
+
+ + ); +}; + +export default inject("folderStore", "trainingStore")(observer(TaskArchives)); diff --git a/src/pages/training/training.tsx b/src/pages/training/training.tsx index 7f00878..0b61b9d 100644 --- a/src/pages/training/training.tsx +++ b/src/pages/training/training.tsx @@ -22,6 +22,7 @@ import { traningConfig } from "./traning_config"; import { FormType } from "@/components/form/interface"; import TraningUser from "./traningUser"; import MinusCircleOutlined from "@ant-design/icons/lib/icons/MinusCircleOutlined"; +import TaskArchives from "./task_archives"; const { Option } = Select; @@ -44,22 +45,12 @@ const Trainings = (props: Store) => { { title: "任务开始时间", dataIndex: "start_time" }, { title: "任务结束时间", dataIndex: "end_time" }, { title: "任务积分设置", dataIndex: "score" }, - { title: "任务类别", dataIndex: "category_identity" }, + { title: "任务类别", dataIndex: "category_name" }, { title: "操作", dataIndex: "id", render: (any, record) => ( - + + + {/* */} + ), }, @@ -110,6 +132,7 @@ const Trainings = (props: Store) => { }; useEffect(() => { trainingStore.getlist(); + }, [trainingStore]); useEffect(() => { trainingCatStore.getlist().then(() => { @@ -229,7 +252,7 @@ const Trainings = (props: Store) => { {(fields, { add, remove }) => ( <> {fields.map(({ key, name, ...restField }) => ( - <> +
{ > - remove(name)} /> - + remove(name)} + /> +
))}
@@ -300,4 +330,7 @@ const Trainings = (props: Store) => { ); }; -export default inject("trainingStore", "trainingCatStore")(observer(Trainings)); +export default inject( + "trainingStore", + "trainingCatStore", +)(observer(Trainings)); diff --git a/src/pages/training/trainingCat.tsx b/src/pages/training/trainingCat.tsx index d11e2f6..8da1320 100644 --- a/src/pages/training/trainingCat.tsx +++ b/src/pages/training/trainingCat.tsx @@ -1,12 +1,3 @@ -// const TrainingCat = () => { -// return ( -// <> -//

训练分类管理

-// -// ); -// }; -// export default TrainingCat; - import { Button, Space, Modal, FormInstance } from "antd"; import { inject, observer } from "mobx-react"; import type { ColumnsType } from "antd/es/table"; diff --git a/src/pages/user/user_config.tsx b/src/pages/user/user_config.tsx index f351d5e..fff84ef 100644 --- a/src/pages/user/user_config.tsx +++ b/src/pages/user/user_config.tsx @@ -35,6 +35,13 @@ export const defaultConfig =(team,per)=> value: "", rules: [{ required: true, message: "请输入年龄" }], }, + { + type: FormType.input, + label: "身份证", + name: "id_card", + value: "", + rules: [{ required: true, message: "请输入身份证" }], + }, { type: FormType.input, label: "登录账号", @@ -46,7 +53,7 @@ export const defaultConfig =(team,per)=> type: FormType.input, label: "初始密码", name: "password", - value: "", + value: "123456", rules: [{ required: true, message: "请输入初始密码" }], }, { @@ -56,13 +63,7 @@ export const defaultConfig =(team,per)=> value: "", rules: [{ required: true, message: "请输入家庭住址" }], }, - { - type: FormType.input, - label: "身份证", - name: "id_card", - value: "", - rules: [{ required: true, message: "请输入身份证" }], - }, + { type: FormType.input, label: "担任职务", @@ -126,7 +127,7 @@ export const defaultConfig =(team,per)=> name: "team_link_user", checkboxData:team, value: "", - rules: [{ required: true, message: "请输入民族" }], + rules: [{ required: true, message: "请选择所属队伍" }], }, { type: FormType.cehckboxGroup, @@ -134,7 +135,7 @@ export const defaultConfig =(team,per)=> name: "pers_link_user", checkboxData:per, value: "", - rules: [{ required: true, message: "请输入民族" }], + rules: [{ required: true, message: "请选择个人身份属性" }], }, { type: FormType.radio, @@ -151,7 +152,7 @@ export const defaultConfig =(team,per)=> val: 2, }, ], - rules: [{ required: true, message: "请输入民族" }], + rules: [{ required: true, message: "是否党员不能为空" }], }, { type: FormType.radio, @@ -168,8 +169,9 @@ export const defaultConfig =(team,per)=> val: 2, }, ], - rules: [{ required: true, message: "请输入退役军人" }], + rules: [{ required: true, message: "是否退役军人不能为空" }], }, + { type: FormType.textarea, label: "描述", diff --git a/src/pages/whseMgmt/index.tsx b/src/pages/whseMgmt/index.tsx index c74d11d..ec60166 100644 --- a/src/pages/whseMgmt/index.tsx +++ b/src/pages/whseMgmt/index.tsx @@ -15,6 +15,8 @@ const WhseMgmt = (props: Store) => { const [projectConfig, setProjectConfig] = useState([]); const formRef = React.useRef(null); const [record, setRecord] = useState(null); + + useEffect(() => { stashStore.getlist(); setProjectConfig(defaultConfig); @@ -25,7 +27,7 @@ const WhseMgmt = (props: Store) => {