diff --git a/router.md b/router.md index c486c5b..63082a3 100644 --- a/router.md +++ b/router.md @@ -51,7 +51,10 @@ - `/primeport/container/enterprise/enclosedArea/apply/vehicleRecords/list` 封闭区域申请/车辆封闭区域申请记录 - `/primeport/container/enterprise/enclosedArea/personnelAndVehicleStatistics/list` 区域人员及车辆统计 - `/primeport/container/enterprise/enclosedArea/enterprisePersonnelPermissions/list` 企业人员权限 -- `/primeport/container/enterprise/enclosedArea/personnelReview/personnelReview/list` 人员审核 +- `/primeport/container/enterprise/enclosedArea/personnelReview/longTermPersonnelReview/list` 长期人员审核 +- `/primeport/container/enterprise/enclosedArea/personnelReview/temporaryPersonnelReview/list` 临时人员审核 +- `/primeport/container/enterprise/enclosedArea/personnelReview/longTermPersonnelReviewRecords/list` 长期人员审核记录 +- `/primeport/container/enterprise/enclosedArea/personnelReview/temporaryPersonnelReviewRecords/list` 临时访客人员记录 ### 相关方端 diff --git a/src/api/enclosedLongTermPersonnelReview/index.js b/src/api/enclosedLongTermPersonnelReview/index.js new file mode 100644 index 0000000..b1e5961 --- /dev/null +++ b/src/api/enclosedLongTermPersonnelReview/index.js @@ -0,0 +1,18 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const enclosedLongTermPersonnelReviewList = declareRequest( + "enclosedLongTermPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedLongTermPersonnelReviewSubmit = declareRequest( + "enclosedLongTermPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedLongTermPersonnelReviewRecordsList = declareRequest( + "enclosedLongTermPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedLongTermPersonnelReviewRecordsRejectReason = declareRequest( + "enclosedLongTermPersonnelReviewLoading", + `Post > @/primeport/`, +); diff --git a/src/api/enclosedTemporaryPersonnelReview/index.js b/src/api/enclosedTemporaryPersonnelReview/index.js new file mode 100644 index 0000000..264cee4 --- /dev/null +++ b/src/api/enclosedTemporaryPersonnelReview/index.js @@ -0,0 +1,22 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const enclosedTemporaryPersonnelReviewList = declareRequest( + "enclosedTemporaryPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedTemporaryPersonnelReviewInfo = declareRequest( + "enclosedTemporaryPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedTemporaryPersonnelReviewSubmit = declareRequest( + "enclosedTemporaryPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedTemporaryPersonnelReviewRecordsList = declareRequest( + "enclosedTemporaryPersonnelReviewLoading", + `Post > @/primeport/`, +); +export const enclosedTemporaryPersonnelReviewRecordsRejectReason = declareRequest( + "enclosedTemporaryPersonnelReviewLoading", + `Post > @/primeport/`, +); diff --git a/src/enumerate/namespace/index.js b/src/enumerate/namespace/index.js index 693526f..f385e8e 100644 --- a/src/enumerate/namespace/index.js +++ b/src/enumerate/namespace/index.js @@ -29,3 +29,5 @@ export const NS_ENCLOSED_AREA_PERSONNEL_APPLY = defineNamespace("enclosedAreaPer export const NS_ENCLOSED_AREA_VEHICLE_APPLY = defineNamespace("enclosedAreaVehicleApply"); export const NS_ENCLOSED_PERSONNEL_AND_VEHICLE_STATISTICS = defineNamespace("enclosedPersonnelAndVehicleStatistics"); export const NS_ENCLOSED_ENTERPRISE_PERSONNEL_PERMISSIONS = defineNamespace("enclosedEnterprisePersonnelPermissions"); +export const NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW = defineNamespace("enclosedLongTermPersonnelReview"); +export const NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW = defineNamespace("enclosedTemporaryPersonnelReview"); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/List/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/List/index.js new file mode 100644 index 0000000..714b051 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/List/index.js @@ -0,0 +1,70 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Form } from "antd"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import Table from "zy-react-library/components/Table"; +import useTable from "zy-react-library/hooks/useTable"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW } from "~/enumerate/namespace"; + +const BELONGING_END_ENUM = [ + { bianma: "stakeholder", name: "相关方端" }, + { bianma: "supervision", name: "监管端" }, + { bianma: "enterprise", name: "企业端" }, +]; + +function List(props) { + const [form] = Form.useForm(); + + const { tableProps, getData } = useTable(props["enclosedLongTermPersonnelReviewList"], { + form, + }); + + return ( + + + getLabelName({ list: BELONGING_END_ENUM, status: record.todo1 }), + }, + { title: "公司名称", dataIndex: "todo2" }, + { title: "姓名", dataIndex: "todo3" }, + { title: "部门", dataIndex: "todo4" }, + { title: "手机号", dataIndex: "todo5" }, + { title: "申请区域", dataIndex: "todo6" }, + { title: "申请时间范围", dataIndex: "todo7", render: (_, record) => `${record.todo7}-${record.todo8}` }, + { title: "申请人数", dataIndex: "todo9" }, + { title: "审核状态", dataIndex: "todo10" }, + { + title: "操作", + width: 100, + fixed: "right", + render: (_, record) => ( + + ), + }, + ]} + {...tableProps} + /> + + ); +} + +export default Connect([NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW], true)(List); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/Review/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/Review/index.js new file mode 100644 index 0000000..4ab310f --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/Review/index.js @@ -0,0 +1,60 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Form, message } from "antd"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW } from "~/enumerate/namespace"; +import ViewPage from "~/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View"; + +function Review(props) { + const query = useGetUrlQuery(); + const [form] = Form.useForm(); + + const onSubmit = async (values) => { + const { success } = await props["enclosedLongTermPersonnelReviewSubmit"]({ + ...values, + id: query.id, + }); + if (success) { + message.success("提交成功"); + props.history.goBack(); + } + }; + + return ( + + !(formValues.todo1 === "0"), + }, + ]} + form={form} + /> + + ); +} + +export default Connect([NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW], true)(Review); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/index.js new file mode 100644 index 0000000..05624fc --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReview/index.js @@ -0,0 +1,5 @@ +function LongTermPersonnelReview(props) { + return props.children; +} + +export default LongTermPersonnelReview; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/List/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/List/index.js new file mode 100644 index 0000000..7ba1fce --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/List/index.js @@ -0,0 +1,133 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Descriptions, Form, Modal, Space } from "antd"; +import { useEffect, useState } from "react"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import Table from "zy-react-library/components/Table"; +import useTable from "zy-react-library/hooks/useTable"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW } from "~/enumerate/namespace"; + +const BELONGING_END_ENUM = [ + { bianma: "stakeholder", name: "相关方端" }, + { bianma: "supervision", name: "监管端" }, + { bianma: "enterprise", name: "企业端" }, +]; + +function List(props) { + const [viewRejectReasonModalVisible, setViewRejectReasonModalVisible] = useState(false); + const [currentId, setCurrentId] = useState(""); + + const [form] = Form.useForm(); + + const { tableProps, getData } = useTable(props["enclosedLongTermPersonnelReviewRecordsList"], { + form, + }); + + return ( + + +
getLabelName({ list: BELONGING_END_ENUM, status: record.todo1 }), + }, + { title: "公司名称", dataIndex: "todo2" }, + { title: "姓名", dataIndex: "todo3" }, + { title: "部门", dataIndex: "todo4" }, + { title: "手机号", dataIndex: "todo5" }, + { title: "申请区域", dataIndex: "todo6" }, + { title: "申请时间范围", dataIndex: "todo7", render: (_, record) => `${record.todo7}-${record.todo8}` }, + { title: "申请人数", dataIndex: "todo9" }, + { title: "审核状态", dataIndex: "todo10" }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + /> + { + viewRejectReasonModalVisible && ( + { + setViewRejectReasonModalVisible(false); + setCurrentId(""); + }} + /> + ) + } + + ); +} + +const ViewRejectReasonModalComponent = (props) => { + const [info, setInfo] = useState({}); + const getData = async () => { + const { data } = await props["enclosedLongTermPersonnelReviewRecordsRejectReason"]({ id: props.id }); + setInfo(data); + }; + + useEffect(() => { + getData(); + }, []); + + return ( + 取消, + ]} + loading={props.enclosedLongTermPersonnelReview.enclosedLongTermPersonnelReviewLoading} + > + + + ); +}; + +const ViewRejectReasonModal = Connect([NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW], true)(ViewRejectReasonModalComponent); + +export default Connect([NS_ENCLOSED_LONG_TERM_PERSONNEL_REVIEW], true)(List); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/View/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/View/index.js new file mode 100644 index 0000000..9002952 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/View/index.js @@ -0,0 +1,10 @@ +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import ViewPage from "~/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View"; + +function View(props) { + const query = useGetUrlQuery(); + + return (); +} + +export default View; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/index.js new file mode 100644 index 0000000..ca3c7e5 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/LongTermPersonnelReviewRecords/index.js @@ -0,0 +1,5 @@ +function LongTermPersonnelReviewRecords(props) { + return props.children; +} + +export default LongTermPersonnelReviewRecords; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/List/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/List/index.js new file mode 100644 index 0000000..ca2c3d5 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/List/index.js @@ -0,0 +1,56 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Form } from "antd"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import Table from "zy-react-library/components/Table"; +import useTable from "zy-react-library/hooks/useTable"; +import { NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW } from "~/enumerate/namespace"; + +function List(props) { + const [form] = Form.useForm(); + + const { tableProps, getData } = useTable(props["enclosedTemporaryPersonnelReviewList"], { + form, + }); + + return ( + + +
`${record.todo6}-${record.todo7}` }, + { title: "审核状态", dataIndex: "todo8" }, + { + title: "操作", + width: 100, + fixed: "right", + render: (_, record) => ( + + ), + }, + ]} + {...tableProps} + /> + + ); +} + +export default Connect([NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW], true)(List); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/Review/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/Review/index.js new file mode 100644 index 0000000..976e9d1 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/Review/index.js @@ -0,0 +1,87 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Descriptions, Divider, Form, message, Spin } from "antd"; +import { useEffect, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import Page from "zy-react-library/components/Page"; +import PreviewImg from "zy-react-library/components/PreviewImg"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW } from "~/enumerate/namespace"; + +function Review(props) { + const [info, setInfo] = useState({}); + + const query = useGetUrlQuery(); + const [form] = Form.useForm(); + + const getData = async () => { + const { data } = await props["enclosedTemporaryPersonnelReviewInfo"]({ id: query.id }); + setInfo(data); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async (values) => { + const { success } = await props["enclosedTemporaryPersonnelReviewSubmit"]({ + ...values, + id: query.id, + }); + if (success) { + message.success("提交成功"); + props.history.goBack(); + } + }; + + return ( + + + 人员信息 + ) }, + { label: "申请原因", children: info.todo9 }, + { label: "申请人员签字", children: () }, + ]} + /> + {!props.headerTitle && ( + !(formValues.todo1 === "0"), + }, + ]} + form={form} + /> + )} + + + ); +} + +export default Connect([NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW], true)(Review); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/index.js new file mode 100644 index 0000000..87821f2 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReview/index.js @@ -0,0 +1,5 @@ +function TemporaryPersonnelReview(props) { + return props.children; +} + +export default TemporaryPersonnelReview; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/List/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/List/index.js new file mode 100644 index 0000000..931ef6e --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/List/index.js @@ -0,0 +1,119 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Descriptions, Form, Modal, Space } from "antd"; +import { useEffect, useState } from "react"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import Table from "zy-react-library/components/Table"; +import useTable from "zy-react-library/hooks/useTable"; +import { NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW } from "~/enumerate/namespace"; + +function List(props) { + const [viewRejectReasonModalVisible, setViewRejectReasonModalVisible] = useState(false); + const [currentId, setCurrentId] = useState(""); + + const [form] = Form.useForm(); + + const { tableProps, getData } = useTable(props["enclosedTemporaryPersonnelReviewRecordsList"], { + form, + }); + + return ( + + +
`${record.todo6}-${record.todo7}` }, + { title: "审核状态", dataIndex: "todo8" }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + /> + { + viewRejectReasonModalVisible && ( + { + setViewRejectReasonModalVisible(false); + setCurrentId(""); + }} + /> + ) + } + + ); +} + +const ViewRejectReasonModalComponent = (props) => { + const [info, setInfo] = useState({}); + const getData = async () => { + const { data } = await props["enclosedTemporaryPersonnelReviewRecordsRejectReason"]({ id: props.id }); + setInfo(data); + }; + + useEffect(() => { + getData(); + }, []); + + return ( + 取消, + ]} + loading={props.enclosedTemporaryPersonnelReview.enclosedTemporaryPersonnelReviewLoading} + > + + + ); +}; + +const ViewRejectReasonModal = Connect([NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW], true)(ViewRejectReasonModalComponent); + +export default Connect([NS_ENCLOSED_TEMPORARY_PERSONNEL_REVIEW], true)(List); diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/View/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/View/index.js new file mode 100644 index 0000000..d9fd5c3 --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/View/index.js @@ -0,0 +1,7 @@ +import ViewPage from "../../TemporaryPersonnelReview/Review"; + +function View(props) { + return (); +} + +export default View; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/index.js new file mode 100644 index 0000000..2bc08db --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/TemporaryPersonnelReviewRecords/index.js @@ -0,0 +1,5 @@ +function TemporaryPersonnelReviewRecords(props) { + return props.children; +} + +export default TemporaryPersonnelReviewRecords; diff --git a/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/index.js b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/index.js new file mode 100644 index 0000000..eded80b --- /dev/null +++ b/src/pages/Container/Enterprise/EnclosedArea/PersonnelReview/index.js @@ -0,0 +1,5 @@ +function PersonnelReview(props) { + return props.children; +} + +export default PersonnelReview; diff --git a/src/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View/index.js b/src/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View/index.js index 5222713..adae1bd 100644 --- a/src/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View/index.js +++ b/src/pages/Container/Supervision/EnclosedArea/Apply/Personnel/View/index.js @@ -22,7 +22,7 @@ function View(props) { }, []); return ( - + 人员信息 { - info.todo11.length > 0 + info.todo11?.length > 0 && ( <> 更多人员信息