diff --git a/src/components/form/interface.ts b/src/components/form/interface.ts index 816783f..98102c8 100644 --- a/src/components/form/interface.ts +++ b/src/components/form/interface.ts @@ -5,10 +5,12 @@ export enum FormType { select = "select", editor = "editor", date = "date", + map = "map", textarea = "textarea", radio = "radio", upload = "upload", cehckbox = "checkbox", + cehckboxGroup = "checkboxGroup", password = "password", } @@ -19,6 +21,7 @@ export interface FormDatas { value: any, selectUrl?: string, selectList?: Array + checkboxData?: Array, rules: Array } diff --git a/src/components/form/simple_form.tsx b/src/components/form/simple_form.tsx index 56086ae..0d5556d 100644 --- a/src/components/form/simple_form.tsx +++ b/src/components/form/simple_form.tsx @@ -4,6 +4,7 @@ import { FormType, SimpleFormData } from "./interface"; import { FormSelect } from "./select"; import AliUpload from "../ali_upload"; import MyEditor from "../edittor"; +import MapFrom from "../map/MapFrom"; const { TextArea } = Input; const SimpleForm = (props: SimpleFormData) => { const [form] = Form.useForm(); @@ -28,9 +29,7 @@ const SimpleForm = (props: SimpleFormData) => { onFinish={onFinish} autoComplete="on" > - { - props.children??props.children - } + {props.children ?? props.children} {props.formDatas.map((v) => { switch (v.type) { case FormType.input: @@ -66,6 +65,23 @@ const SimpleForm = (props: SimpleFormData) => { Remember me ); + case FormType.cehckboxGroup: + return ( + + { + form.setFieldValue(v.name, res); + }} + /> + + ); case FormType.select: return FormSelect(v); case FormType.upload: @@ -149,6 +165,19 @@ const SimpleForm = (props: SimpleFormData) => { ); + case FormType.map: + return ( + + { + form.setFieldValue(v.name, m); + }}/> + + ); default: return ( { ); } })} - - ); }; diff --git a/src/components/map/MapFrom.tsx b/src/components/map/MapFrom.tsx new file mode 100644 index 0000000..21c7196 --- /dev/null +++ b/src/components/map/MapFrom.tsx @@ -0,0 +1,65 @@ +import { useEffect, useState } from "react"; +import AMapLoader from "@amap/amap-jsapi-loader"; + +export default function MapFrom(props:any) { + let [amap, setmaps] = useState(null); + useEffect(() => { + loadMaps(); + return () => { + amap?.destroy(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const loadMaps = async () => { + const Amap = await AMapLoader.load({ + key: "d58999d072ed7e5897d3900a769cfda0", // 申请好的Web端开发者Key,首次调用 load 时必填 + version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 + plugins: ["AMap.Scale", "AMap.AutoComplete", "AMap.PlaceSearch"], + }); + amap = new Amap.Map("mapFrom", { + viewMode: "2D", // 是否为3D地图模式 + zoom: 11, // 初始化地图级别 + center: [103.55, 30.34], // 初始化地图中心点位置 + }); + + Amap.plugin(["AMap.PlaceSearch", "AMap.AutoComplete"], function () { + var auto = new Amap.AutoComplete({ input: "tipinput" }); + var placeSearch = new Amap.PlaceSearch({ map: amap }); //构造地点查询类 + auto.on("select", (e) => { + placeSearch.setCity(e.poi.adcode); + placeSearch.search(e.poi.name); //关键字查询查询 + }); //注册监听,当选中某条记录时会触发 + }); + var markers = [] + Amap.plugin(["AMap.MouseTool"], function () { + var mouseTool = new Amap.MouseTool(amap); + // 开启坐标选择功能 + mouseTool.on("draw", function (event) { + var lnglat = event.obj.getBounds().getCenter(); // 获取图形的中心点坐标 + console.log("选择的坐标是:", lnglat.lng, lnglat.lat); + markers = mouseTool.overlays.marker + props.onChange({lng:lnglat.lng,lat:lnglat.lat}) + var mk = [] + for (let index = 0; index < markers.length-1; index++) { + mk.push(markers[index]) + } + amap.remove(mk); + }); + mouseTool.marker(); + }); + setmaps(Amap); + }; + + return ( +
+
+
+ +
+
+ ); +} diff --git a/src/pages/dep/index.tsx b/src/pages/dep/index.tsx index c84a018..b169019 100644 --- a/src/pages/dep/index.tsx +++ b/src/pages/dep/index.tsx @@ -140,7 +140,7 @@ const Dep = (props: Store) => { formRef.current?.setFieldsValue(record); }} formName="card_basic" - colProps={4} + colProps={25} subBtnName="提交" formDatas={projectConfig} onFinish={onFinish} diff --git a/src/pages/emergency/index.tsx b/src/pages/emergency/index.tsx new file mode 100644 index 0000000..3ede07c --- /dev/null +++ b/src/pages/emergency/index.tsx @@ -0,0 +1,200 @@ +import { Button, Space, Modal, FormInstance } from "antd"; +import { inject, observer } from "mobx-react"; +import type { ColumnsType } from "antd/es/table"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +import { FormType } from "@/components/form/interface"; +import baseHttp from "@/service/base"; + +const Emergency = (props: Store) => { + const { emergencyStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const [userList, setUserList] = useState>([]); + const columns: ColumnsType = [ + { title: "应急处突名称", dataIndex: "emergency_name" }, + { title: "目标位置", dataIndex: "target_location" }, + { title: "目标精度", dataIndex: "long" }, + { title: "目标纬度", dataIndex: "lat" }, + { title: "任务描述", dataIndex: "desc" }, + { + title: "完成状态", + dataIndex: "status", + render: (accomplish) => + accomplish.status === 0 ? ( + 进行中 + ) : ( + 已完成 + ), + }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( + + + + + + ), + }, + ]; + const dele = (record)=>{ + emergencyStore.deleteItem(record.identity); + } + const edit = (record) => { + setProjectConfig(defaultConfig); + + setIsModalOpen(true); + formRef.current?.setFieldsValue(record); + setRecord(record); + setId(record.id); + }; + const onFinish = (values: any) => { + let data = { + ...values, + long: values.marker["lng"], + lat: values.marker["lat"], + }; + if (!tagId) { + emergencyStore.add(data); + } else { + emergencyStore.putItem(tagId, data); + } + setIsModalOpen(false); + }; + useEffect(() => { + emergencyStore.getlist(); + baseHttp.get("/user/list", null).then((res) => { + let data = res.data?.record ?? []; + data.forEach((item) => { + item.label = item.account; + item.value = item.identity; + }); + setUserList(data ?? []); + }); + }, [emergencyStore]); + const defaultConfig = [ + { + type: FormType.input, + label: "处突名称", + name: "emergency_name", + value: "", + rules: [{ required: true, message: "请输入处突名称!" }], + }, + { + type: FormType.input, + label: "任务描述", + name: "desc", + value: "", + rules: [{ required: true, message: "请输入任务描述!" }], + }, + { + type: FormType.input, + label: "目标位置", + name: "target_location", + value: "", + rules: [{ required: true, message: "请输入任务描述!" }], + }, + { + type: FormType.map, + label: "坐标信息", + name: "marker", + value: "", + rules: [{ required: true, message: "请输入任务描述!" }], + }, + { + type: FormType.cehckboxGroup, + label: "参与人员选择", + name: "user_id", + value: [], + checkboxData: userList, + rules: [{ required: true, message: "请选择参与人员!" }], + }, + ]; + const onFinishFailed = () => {}; + // 用户选择回调 + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={25} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + /> + + +
+ ); +}; + +export default inject("emergencyStore")(observer(Emergency)); diff --git a/src/pages/patrol/index.tsx b/src/pages/patrol/index.tsx new file mode 100644 index 0000000..5cbd40f --- /dev/null +++ b/src/pages/patrol/index.tsx @@ -0,0 +1,224 @@ +// const Patrol = ()=>{ +// return <> +//

巡逻

+// +// } + +// export default Patrol + +import { Button, Space, Modal, FormInstance } from "antd"; +import { inject, observer } from "mobx-react"; +import type { ColumnsType } from "antd/es/table"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +import { FormType } from "@/components/form/interface"; +import baseHttp from "@/service/base"; +import dayjs from "dayjs"; + +const Patrol = (props: Store) => { + const { patrolStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const [userList, setUserList] = useState>([]); + const columns: ColumnsType = [ + { title: "任务标题", dataIndex: "title" }, + { title: "任务描述", dataIndex: "patrol_desc" }, + { title: "任务地点", dataIndex: "address" }, + { title: "任务开始时间", dataIndex: "start_time" }, + { title: "任务结束时间", dataIndex: "end_time" }, + { title: "任务积分", dataIndex: "score" }, + { + title: "完成状态", + dataIndex: "status", + render: (status) => + status === 0 ? ( + 进行中 + ) : ( + 已完成 + ), + }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( + + + + + + ), + }, + ]; + const edit = (record) => { + let data = { + ...record, + start_time: dayjs(record.start_time), + end_time: dayjs(record.end_time), + }; + setProjectConfig(defaultConfig); + setIsModalOpen(true); + formRef.current?.setFieldsValue(data); + setRecord(data); + setId(record.id); + }; + const onFinish = (values: any) => { + let data = { + ...values, + score: Number(values.score ?? 0), + }; + if (!tagId) { + patrolStore.add(data); + } else { + patrolStore.putItem(tagId, data); + } + setIsModalOpen(false); + }; + useEffect(() => { + patrolStore.getlist(); + baseHttp.get("/user/list", null).then((res) => { + let data = res.data?.record ?? []; + data.forEach((item) => { + item.label = item.account; + item.value = item.identity; + }); + setUserList(data ?? []); + }); + }, [patrolStore]); + const defaultConfig = [ + { + type: FormType.input, + label: "任务标题", + name: "title", + value: "", + rules: [{ required: true, message: "请输入任务标题!" }], + }, + { + type: FormType.input, + label: "任务描述", + name: "patrol_desc", + value: "", + rules: [{ required: true, message: "请输入任务描述!" }], + }, + { + type: FormType.input, + label: "巡逻地点", + name: "address", + value: "", + rules: [{ required: true, message: "请输入巡逻地点!" }], + }, + { + type: FormType.date, + label: "开始时间", + name: "start_time", + value: "", + rules: [{ required: true, message: "请输入任务开始时间!" }], + }, + { + type: FormType.date, + label: "任务结束时间", + name: "end_time", + value: "", + rules: [{ required: true, message: "请选择任务结束时间!" }], + }, + { + type: FormType.input, + label: "任务积分设置", + name: "score", + value: "", + rules: [{ required: true, message: "请输入任务积分!" }], + }, + { + type: FormType.cehckboxGroup, + label: "任务参与人", + name: "user_identity", + value: [], + checkboxData: userList, + rules: [{ required: true, message: "请选择参与人!" }], + }, + ]; + const onFinishFailed = () => {}; + // 用户选择回调 + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={12} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + /> + + +
+ ); +}; + +export default inject("patrolStore")(observer(Patrol)); diff --git a/src/pages/training/index.tsx b/src/pages/training/index.tsx new file mode 100644 index 0000000..1a4178d --- /dev/null +++ b/src/pages/training/index.tsx @@ -0,0 +1,28 @@ +import { Tabs, TabsProps } from "antd"; +import Trainings from "./training"; +import TrainingCat from "./trainingCat"; + +const Training = ()=>{ + const onChange = (key: string) => { + console.log(key); + }; + const items: TabsProps['items'] = [ + { + key: '1', + label: '训练分类管理', + children: , + }, + { + key: '2', + label: '训练任务管理', + children: + }, + ]; + return ( + <> + + + ); +} + +export default Training \ No newline at end of file diff --git a/src/pages/training/training.tsx b/src/pages/training/training.tsx new file mode 100644 index 0000000..0de3f93 --- /dev/null +++ b/src/pages/training/training.tsx @@ -0,0 +1,230 @@ +import { Button, Space, Modal, FormInstance, Form, Select } from "antd"; +import { inject, observer } from "mobx-react"; +import type { ColumnsType } from "antd/es/table"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +import { FormType } from "@/components/form/interface"; +import baseHttp from "@/service/base"; +import dayjs from "dayjs"; +const { Option } = Select; + + + +const Trainings = (props: Store) => { + const { trainingStore, trainingCatStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const [stashList, setStash] = useState(null); // 仓库列表 + const [userList, setUserList] = useState>([]); + const columns: ColumnsType = [ + { title: "任务标题", dataIndex: "title" }, + { title: "任务描述", dataIndex: "desc" }, + { title: "任务地点", dataIndex: "address" }, + { title: "任务开始时间", dataIndex: "start_time" }, + { title: "任务结束时间", dataIndex: "end_time" }, + { title: "任务积分设置", dataIndex: "score" }, + { title: "任务类别", dataIndex: "category_identity" }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( + + + + + ), + }, + ]; + const dele = (record) => { + trainingStore.deleteItem(record.identity); + }; + const edit = (record) => { + let data = { + ...record, + start_time: dayjs(record.start_time), + end_time: dayjs(record.end_time), + }; + setProjectConfig(defaultConfig); + setIsModalOpen(true); + formRef.current?.setFieldsValue(data); + setRecord(data); + setId(record.id); + }; + useEffect(() => { + trainingCatStore.getlist().then(() => { + setStash(trainingCatStore.list); + }); + baseHttp.get("/user/list", null).then((res) => { + let data = res.data?.record ?? []; + data.forEach((item) => { + item.label = item.account; + item.value = item.identity; + }); + setUserList(data ?? []); + }); + }, [trainingCatStore]); + + const onFinish = (values: any) => { + let data = { + ...values, + score: Number(values.score), + }; + if (!tagId) { + trainingStore.add(data); + } else { + trainingStore.putItem(tagId, data); + } + setIsModalOpen(false); + }; + useEffect(() => { + trainingStore.getlist(); + }, [trainingStore]); + const defaultConfig = [ + { + type: FormType.input, + label: "任务标题", + name: "title", + value: "", + rules: [{ required: true, message: "请输入任务标题!" }], + }, + { + type: FormType.input, + label: "任务描述", + name: "desc", + value: "", + rules: [{ required: true, message: "请输入任务描述!" }], + }, + { + type: FormType.input, + label: "任务地点", + name: "address", + value: "", + rules: [{ required: true, message: "请输入任务地点!" }], + }, + { + type: FormType.date, + label: "任务开始时间", + name: "start_time", + value: "", + rules: [{ required: true, message: "请输入任务开始时间!" }], + }, + { + type: FormType.date, + label: "任务结束时间", + name: "end_time", + value: "", + rules: [{ required: true, message: "请输入任务结束时间!" }], + }, + { + type: FormType.input, + label: "任务积分设置", + name: "score", + value: "", + rules: [{ required: true, message: "请输入任务积分设置!" }], + }, + { + type: FormType.cehckboxGroup, + label: "参与人员选择", + name: "user_id", + value: [], + checkboxData: userList, + rules: [{ required: true, message: "请选择参与人员!" }], + }, + ]; + const onFinishFailed = () => {}; + // 用户选择回调 + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={25} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + > + <> + + + + + + + +
+ ); +}; + +export default inject("trainingStore", "trainingCatStore")(observer(Trainings)); diff --git a/src/pages/training/trainingCat.tsx b/src/pages/training/trainingCat.tsx new file mode 100644 index 0000000..b02e2bd --- /dev/null +++ b/src/pages/training/trainingCat.tsx @@ -0,0 +1,154 @@ +// 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"; +import BTable from "@/components/b_table"; +import { useEffect, useState } from "react"; +import { UserDataType } from "@/model/userModel"; +import { Store } from "antd/lib/form/interface"; +import SimpleForm from "@/components/form/simple_form"; +import React from "react"; +import { FormType } from "@/components/form/interface"; + +const TrainingCat = (props: Store) => { + const { trainingCatStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const [projectConfig, setProjectConfig] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [tagId, setId] = useState(null); + const columns: ColumnsType = [ + { title: "名称", dataIndex: "name" }, + { title: "任务描述", dataIndex: "desc" }, + { + title: "操作", + dataIndex: "id", + render: (any, record) => ( + + + + + ), + }, + ]; + const dele = (record)=>{ + trainingCatStore.deleteItem(record.identity); + } + const edit = (record) => { + setProjectConfig(defaultConfig); + + setIsModalOpen(true); + formRef.current?.setFieldsValue(record); + setRecord(record); + setId(record.id); + }; + const onFinish = (values: any) => { + let data = { + ...values, + }; + if (!tagId) { + trainingCatStore.add(data); + } else { + trainingCatStore.putItem(tagId, data); + } + setIsModalOpen(false); + }; + useEffect(() => { + trainingCatStore.getlist(); + }, [trainingCatStore]); + const defaultConfig = [ + { + type: FormType.input, + label: "分类名称", + name: "name", + value: "", + rules: [{ required: true, message: "请输入名称!" }], + }, + { + type: FormType.input, + label: "描述", + name: "desc", + value: "", + rules: [{ required: true, message: "请输入描述!" }], + }, + ]; + const onFinishFailed = () => {}; + // 用户选择回调 + return ( +
+ + + + + + + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + onCancel={() => { + setId(null); + setIsModalOpen(false); + }} + > + { + formRef.current?.setFieldsValue(record); + }} + formName="card_basic" + colProps={12} + subBtnName="提交" + formDatas={projectConfig} + onFinish={onFinish} + initialValues={true} + onFinishFailed={onFinishFailed} + /> + + +
+ ); +}; + +export default inject("trainingCatStore")(observer(TrainingCat)); diff --git a/src/pages/user/user.tsx b/src/pages/user/user.tsx index a44e68b..3583e37 100644 --- a/src/pages/user/user.tsx +++ b/src/pages/user/user.tsx @@ -8,6 +8,7 @@ import { Store } from "antd/lib/form/interface"; import "./user.less"; import SimpleForm from "@/components/form/simple_form"; import React from "react"; +import { FormType } from "@/components/form/interface"; const User = (props: Store) => { const { usrStore } = props; @@ -106,46 +107,40 @@ const User = (props: Store) => { }, [usrStore]); const defaultConfig = [ { - type: "input", + type: FormType.input, label: "用户名", name: "acount", value: "", rules: [{ required: true, message: "请输入人物名称!" }], }, { - type: "input", + type: FormType.input, label: "年龄", name: "age", value: "", rules: [{ required: true, message: "请输入卡片内容" }], }, { - type: "input", + type: FormType.input, label: "居住地", name: "address", value: "", rules: [{ required: true, message: "请输入卡片内容" }], }, { - type: "Radio", + type: FormType.radio, label: "性别", name: "sex", value: 0, rules: [{ required: true, message: "请输入卡片内容" }], }, { - type: "upload", + type: FormType.upload, label: "头像", name: "headImg", value: [], rules: [{ required: true, message: "请上传头像" }], }, - { - type: "input", - label: "角色", - name: "role", - value: "", - }, ]; const onFinishFailed = () => {}; return ( @@ -162,7 +157,6 @@ const User = (props: Store) => { > 添加用户 - @@ -183,7 +177,7 @@ const User = (props: Store) => { formRef.current?.setFieldsValue(record); }} formName="card_basic" - colProps={4} + colProps={25} subBtnName="提交" formDatas={projectConfig} onFinish={onFinish} diff --git a/src/router/routers/home_router.tsx b/src/router/routers/home_router.tsx index 675358a..714aa43 100644 --- a/src/router/routers/home_router.tsx +++ b/src/router/routers/home_router.tsx @@ -13,6 +13,9 @@ import User from "@/pages/user/user"; import WhseMgmt from "@/pages/whseMgmt"; import Storage from "@/pages/storage"; import WhseMgmtRoute from "@/pages/whseMgmt/whseMgmt_route"; +import Emergency from "@/pages/emergency"; +import Patrol from "@/pages/patrol"; +import Training from "@/pages/training"; export const homeRouter = [ { path: "/", @@ -78,6 +81,21 @@ export const homeRouter = [ index: true, element: , }, + { + path: "/admin/emergency", + index: true, + element: , + }, + { + path: "/admin/patrol", + index: true, + element: , + }, + { + path: "/admin/training", + index: true, + element: , + }, { path: "/admin/whse", element: , diff --git a/src/store/emergency.ts b/src/store/emergency.ts new file mode 100644 index 0000000..7c9f22a --- /dev/null +++ b/src/store/emergency.ts @@ -0,0 +1,28 @@ +import { action, makeObservable } from "mobx"; +// 档案分类 +import BaseStore from "./baseStore"; +import { TagDataType } from "@/model/userModel"; +import baseHttp from "@/service/base"; + + +class EmergencyConfig { + static LIST: string = "emerg/list" + static ADD: string = "emerg" + static DELETE: string = "emerg" + static EDIT: string = "emerg" + static ACCESS: string = "emerg/accept" +} +class EmergencyStore extends BaseStore { + constructor() { + super(EmergencyConfig) + makeObservable(this, { + access: action + }) + } + async access(id: number, param: any) { + await baseHttp.put(EmergencyConfig.ACCESS + "/" + id, param) + this.getlist() + } +} +export const emergencyStore = new EmergencyStore() + diff --git a/src/store/index.ts b/src/store/index.ts index 0a1c2e0..db97d7d 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -15,6 +15,10 @@ import { regulationsCatStore } from './regulationsCat'; import { regulationsStore } from './regulations'; import { leaveCategoryStore } from './leave_cat'; import { leaveStore } from './leave'; +import { emergencyStore } from './emergency'; +import { patrolStore } from './patrol'; +import { trainingStore } from './training'; +import { trainingCatStore } from './trainingCat'; const store = { usrStore, @@ -33,7 +37,11 @@ const store = { regulationsCatStore, regulationsStore, leaveCategoryStore, - leaveStore + leaveStore, + emergencyStore, + patrolStore, + trainingStore, + trainingCatStore }; export default store; \ No newline at end of file diff --git a/src/store/patrol.ts b/src/store/patrol.ts new file mode 100644 index 0000000..68c6c61 --- /dev/null +++ b/src/store/patrol.ts @@ -0,0 +1,28 @@ +import { action, makeObservable } from "mobx"; +// 档案分类 +import BaseStore from "./baseStore"; +import { TagDataType } from "@/model/userModel"; +import baseHttp from "@/service/base"; + + +class PatrolConfig { + static LIST: string = "patrol/list" + static ADD: string = "patrol" + static DELETE: string = "patrol" + static EDIT: string = "patrol" + static ACCESS: string = "patrol/accept" +} +class PatrolStore extends BaseStore { + constructor() { + super(PatrolConfig) + makeObservable(this, { + access: action + }) + } + async access(id: number, param: any) { + await baseHttp.put(PatrolConfig.ACCESS + "/" + id, param) + this.getlist() + } +} +export const patrolStore = new PatrolStore() + diff --git a/src/store/training.ts b/src/store/training.ts new file mode 100644 index 0000000..590e523 --- /dev/null +++ b/src/store/training.ts @@ -0,0 +1,28 @@ +import { action, makeObservable } from "mobx"; +// 档案分类 +import BaseStore from "./baseStore"; +import { TagDataType } from "@/model/userModel"; +import baseHttp from "@/service/base"; + + +class TrainingConfig { + static LIST: string = "training/list" + static ADD: string = "training" + static DELETE: string = "training" + static EDIT: string = "training" + static ACCESS: string = "training/accept" +} +class TrainingStore extends BaseStore { + constructor() { + super(TrainingConfig) + makeObservable(this, { + access: action + }) + } + async access(id: number, param: any) { + await baseHttp.put(TrainingConfig.ACCESS + "/" + id, param) + this.getlist() + } +} +export const trainingStore = new TrainingStore() + diff --git a/src/store/trainingCat.ts b/src/store/trainingCat.ts new file mode 100644 index 0000000..446f0f2 --- /dev/null +++ b/src/store/trainingCat.ts @@ -0,0 +1,21 @@ +import { makeObservable } from "mobx"; +// 分类 +import BaseStore from "./baseStore"; +import { TagDataType } from "@/model/userModel"; + + +class TrainingCatConfig { + static LIST: string = "training/category/list" + static ADD: string = "training/category" + static DELETE: string = "training/category" + static EDIT: string = "training/category" +} +class TrainingCatStore extends BaseStore { + constructor() { + super(TrainingCatConfig) + makeObservable(this, { + }) + } +} +export const trainingCatStore = new TrainingCatStore() + diff --git a/src/store/user.ts b/src/store/user.ts index 3589517..181fb3a 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -5,7 +5,7 @@ import BaseStore from "./baseStore"; import { UserDataType, UserInfos } from "@/model/userModel"; class UserConfig { static LOGINURI: string = "anth/login" - static LIST: string = "userMgmt/user/list" + static LIST: string = "user/list" static ADD: string = "user" static DELETE: string = "user" static EDIT: string = "user"