口门静态页编写

master
yujia 2025-12-29 10:59:19 +08:00
parent e0dac3d2de
commit dd486905e5
152 changed files with 6846 additions and 20 deletions

View File

@ -9,7 +9,7 @@ module.exports = {
// 应用后端分支名称,部署上线需要
javaGitBranch: "<branch-name>",
// 接口服务地址
API_HOST: "http://192.168.10.37:80",
API_HOST: "http://192.168.20.100:30140",
},
production: {
// 应用后端分支名称,部署上线需要
@ -24,7 +24,7 @@ module.exports = {
contextInject: {
// 应用Key
appKey: "",
fileUrl: "附件地址",
fileUrl: "http://192.168.20.240:9787/mnt/",
},
// public/index.html注入全局变量
windowInject: {

View File

@ -25,12 +25,12 @@
"@cqsjjb/jjb-dva-runtime": "latest",
"@cqsjjb/jjb-react-admin-component": "latest",
"ahooks": "^3.9.5",
"antd": "latest",
"antd": "^5.27.6",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"zy-react-library": "^1.0.96"
"zy-react-library": "^1.0.178"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",

View File

@ -0,0 +1,21 @@
import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
export const mkmjAreaList = declareRequest(
"basicInformationLoading",
`Post > @/xgfManager/project/inCheckList`,
);
export const userListByDeptId = declareRequest(
"basicInformationLoading",
`Get > /xgfManager/qualifications/userListByDeptId/{id}`,
);
export const projectUserDelete = declareRequest(
"basicInformationLoading",
`Delete > @/xgfManager/projectUser/{id}`,
);
export const corpInfoList = declareRequest(
`Post > @/basicInfo/corpInfo/list`,
);
export const userList = declareRequest(
`Post > @/basicInfo/user/list`,
);

View File

@ -1,30 +1,31 @@
import {declareRequest} from '@cqsjjb/jjb-dva-runtime';
import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
export const mkmjAreaList = declareRequest(
'mkmjAreaLoading',
'Post > @/primeport/mkmjArea/list',
"mkmjAreaLoading",
`Post > @/primeport/mkmjArea/list`,
);
export const mkmjAreaAdd = declareRequest(
'mkmjAreaLoading',
'Post > @/primeport/mkmjArea/save'
"mkmjAreaLoading",
`Post > @/primeport/mkmjArea/save`,
);
export const mkmjAreaEdit = declareRequest(
'mkmjAreaLoading',
'Put > @/primeport/mkmjArea/edit'
"mkmjAreaLoading",
`Put > @/primeport/mkmjArea/edit`,
);
export const mkmjAreaDelete = declareRequest(
'mkmjAreaLoading',
'Delete > @/primeport/mkmjArea/{id}'
"mkmjAreaLoading",
`Delete > @/primeport/mkmjArea/{id}`,
);
export const mkmjAreaBatchDelete = declareRequest(
'mkmjAreaLoading',
'Delete > @/primeport/mkmjArea/ids/{ids}'
"mkmjAreaLoading",
`Delete > @/primeport/mkmjArea/ids/{ids}`,
);
export const mkmjAreaInfo = declareRequest('mkmjAreaLoading', 'Get > /primeport/mkmjArea/{id}');
export const mkmjAreaInfo = declareRequest("mkmjAreaLoading", `Get > /primeport/mkmjArea/{id}`);
export const getStatistics = declareRequest('mkmjAreaLoading', 'Post > @/primeport/mkmjArea/statistics');
export const getStatistics = declareRequest("mkmjAreaLoading", `Post > @/primeport/mkmjArea/statistics`);
export const getCorpInfoList = declareRequest(
'fireresourcesLoading',
'Get > /basicInfo/corpInfo/listAll?inType=0,1'
);
"fireresourcesLoading",
`Get > /basicInfo/corpInfo/listAll?inType=0,1`,
);

View File

@ -0,0 +1,69 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useEffect } from "react";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
const CameraList = (props) => {
const [form] = Form.useForm();
const tableProps = {};
const getData = async () => {};
useEffect(() => {
props.id && getData();
}, []);
const handleSubmit = async () => {
};
return (
<>
<Modal
title="添加摄像头"
open
onCancel={props.onCancel}
onOk={handleSubmit}
width={1200}
footer={null}
>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "视频名称" },
]}
form={form}
// onFinish={getData}
/>
<Table
columns={[
{ title: "视频名称", dataIndex: "" },
{ title: "区域", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 180,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
播放
</Button>
<Button
type="link"
onClick={() => {}}
>
选择
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Modal>
</>
);
};
export default Connect([NS_BASICINFORMATION], true)(CameraList);

View File

@ -3,3 +3,44 @@
*/
export {};
// 所属区域
export const PRIMARY_REGION = [
{ name: "东港区", bianma: "1" },
{ name: "西港区", bianma: "2" },
];
// 口门类型
export const PRIMARY_OPENING_TYPE = [
{ name: "人行口门", bianma: "1" },
{ name: "车行口门", bianma: "2" },
{ name: "综合口门", bianma: "3" },
];
// 口门状态
export const PRIMARY_OPENING_STATUS = [
{ name: "停用", bianma: "1" },
{ name: "正常", bianma: "0" },
{ name: "暂时关闭", bianma: "0" },
];
// 通道状态
export const PRIMARY_CHANNELIST_STATUS = [
{ name: "停用", bianma: "1" },
{ name: "正常", bianma: "0" },
{ name: "暂时关闭", bianma: "0" },
];
// 通道类型
export const PRIMARY_CHANNELIST_TYPE = [
{ name: "人行口门", bianma: "1" },
{ name: "车行口门", bianma: "2" },
{ name: "综合口门", bianma: "3" },
];
// 闸机状态
export const PRIMARY_EQUIPMENT_STATUS = [
{ name: "停用", bianma: "1" },
{ name: "正常", bianma: "0" },
{ name: "暂时关闭", bianma: "0" },
];
// 闸机类型
export const PRIMARY_EQUIPMENT_TYPE = [
{ name: "人行闸机", bianma: "1" },
{ name: "车行闸机", bianma: "2" },
{ name: "综合闸机", bianma: "3" },
];

View File

@ -11,3 +11,4 @@ export const NS_MKMJGATELOG = defineNamespace("mkmjGateLog");
export const NS_MKMJGATEVIDEO = defineNamespace("mkmjGateVideo");
export const NS_MKMJPASSAGE = defineNamespace("mkmjPassage");
export const NS_ENCLOSEDAREA = defineNamespace("enclosedArea");
export const NS_BASICINFORMATION = defineNamespace("basicInformation");

View File

@ -0,0 +1,8 @@
import AddView from "~/pages/Container/Supervision/PrimaryAccessControl/BasicInformation/AccessApprover/Add";
function Add(props) {
// 带入企业名称到下一级页面
return (<AddView {...props} />);
};
export default Add;

View File

@ -0,0 +1,8 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/BasicInformation/AccessApprover/List";
function List(props) {
// 带入企业名称到下一级页面
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function AccessApprover(props) {
return (<div>{props.children}</div>);
}
export default AccessApprover;

View File

@ -0,0 +1,5 @@
function BasicInformation(props) {
return (<div>{props.children}</div>);
}
export default BasicInformation;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Personnel/Arrival/Detail";
function Detail(props) {
return (<DetailView {...props} />);
};
export default Detail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Personnel/Arrival/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function Arrival(props) {
return (<div>{props.children}</div>);
}
export default Arrival;

View File

@ -0,0 +1,5 @@
function Personnel(props) {
return (<div>{props.children}</div>);
}
export default Personnel;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Vehicle/Share/Detail";
function Detail(props) {
return (<DetailView {...props} />);
};
export default Detail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Vehicle/Share/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function Share(props) {
return (<div>{props.children}</div>);
}
export default Share;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Vehicle/Stakeholder/Detail";
function Detail(props) {
return (<DetailView {...props} />);
};
export default Detail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/EntryApprova/Vehicle/Stakeholder/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function Stakeholder(props) {
return (<div>{props.children}</div>);
}
export default Stakeholder;

View File

@ -0,0 +1,5 @@
function Vehicle(props) {
return (<div>{props.children}</div>);
}
export default Vehicle;

View File

@ -0,0 +1,5 @@
function EntryApprova(props) {
return (<div>{props.children}</div>);
}
export default EntryApprova;

View File

@ -0,0 +1,8 @@
import AddView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/Add";
function Add(props) {
// 带入企业名称到下一级页面
return (<AddView {...props} />);
};
export default Add;

View File

@ -0,0 +1,7 @@
import ApprovalRecordView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecord";
function ApprovalRecord(props) {
return (<ApprovalRecordView {...props} />);
};
export default ApprovalRecord;

View File

@ -0,0 +1,7 @@
import ApprovalRecordDetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecordDetail";
function ApprovalRecordDetail(props) {
return (<ApprovalRecordDetailView {...props} />);
};
export default ApprovalRecordDetail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,7 @@
import RecordView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/Record";
function Record(props) {
return (<RecordView {...props} />);
};
export default Record;

View File

@ -0,0 +1,7 @@
import SwitchRecordView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/SwitchRecord";
function SwitchRecord(props) {
return (<SwitchRecordView {...props} />);
};
export default SwitchRecord;

View File

@ -0,0 +1,7 @@
import VehicleManagementView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/VehicleManagement";
function VehicleManagement(props) {
return (<VehicleManagementView pageName="Enterprise" {...props} />);
};
export default VehicleManagement;

View File

@ -0,0 +1,7 @@
import VehicleManagementDetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/VehicleManagementDetail";
function VehicleManagementDetail(props) {
return (<VehicleManagementDetailView {...props} />);
};
export default VehicleManagementDetail;

View File

@ -0,0 +1,7 @@
import VehicleRecordView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/StakeholderPersonnelVehicle/VehicleCarRecord";
function VehicleRecord(props) {
return (<VehicleRecordView {...props} />);
};
export default VehicleRecord;

View File

@ -0,0 +1,5 @@
function SupervisionPersonnelVehicle(props) {
return (<div>{props.children}</div>);
}
export default SupervisionPersonnelVehicle;

View File

@ -0,0 +1,7 @@
import AddView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionVehicle/Add";
function Add(props) {
return (<AddView {...props} />);
};
export default Add;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecord";
function ApprovalRecord(props) {
return (<ListView {...props} />);
};
export default ApprovalRecord;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecordDetail";
function ApprovalRecordDetail(props) {
return (<DetailView {...props} />);
};
export default ApprovalRecordDetail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionVehicle/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/SwitchRecord";
function SwitchRecord(props) {
return (<ListView {...props} />);
};
export default SwitchRecord;

View File

@ -0,0 +1,7 @@
import VehicleManagementDetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/VehicleManagementDetail";
function VehicleManagementDetail(props) {
return (<VehicleManagementDetailView {...props} />);
};
export default VehicleManagementDetail;

View File

@ -0,0 +1,7 @@
import VehicleRecordView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/StakeholderPersonnelVehicle/VehicleCarRecord";
function VehicleRecord(props) {
return (<VehicleRecordView {...props} />);
};
export default VehicleRecord;

View File

@ -0,0 +1,5 @@
function SupervisionVehicle(props) {
return (<div>{props.children}</div>);
}
export default SupervisionVehicle;

View File

@ -0,0 +1,5 @@
function ImportExportInformation(props) {
return (<div>{props.children}</div>);
}
export default ImportExportInformation;

View File

@ -0,0 +1,7 @@
import AddView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Personnel/Add";
function Add(props) {
return (<AddView {...props} />);
};
export default Add;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Personnel/Detail";
function Detail(props) {
return (<DetailView {...props} />);
};
export default Detail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Personnel/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function Personnel(props) {
return (<div>{props.children}</div>);
}
export default Personnel;

View File

@ -0,0 +1,7 @@
import AddView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Vehicle/Add";
function Add(props) {
return (<AddView {...props} />);
};
export default Add;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Vehicle/Detail";
function Detail(props) {
return (<DetailView {...props} />);
};
export default Detail;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/TemporaryVisitor/Vehicle/List";
function List(props) {
return (<ListView {...props} />);
};
export default List;

View File

@ -0,0 +1,5 @@
function Vehicle(props) {
return (<div>{props.children}</div>);
}
export default Vehicle;

View File

@ -0,0 +1,5 @@
function TemporaryVisitor(props) {
return (<div>{props.children}</div>);
}
export default TemporaryVisitor;

View File

@ -0,0 +1,5 @@
function PrimaryAccessControl(props) {
return (<div>{props.children}</div>);
}
export default PrimaryAccessControl;

View File

@ -0,0 +1,5 @@
function Enterprise(props) {
return (<div>{props.children}</div>);
}
export default Enterprise;

View File

@ -0,0 +1,66 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form, message } from "antd";
import { useEffect } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Add(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
onFinish={onSubmit}
options={[
{ name: "", label: "部门", span: 24, render: <DepartmentSelectTree /> },
{ name: "", label: "审批人", span: 24, render: (
<PersonnelSelect
isNeedDepartmentId={false}
onGetLabel={(label) => {
form.setFieldValue("userName", label);
}}
/>
) },
{ name: "userName", label: "审批人名称", onlyForLabel: true },
{ name: "", label: "审批权限", span: 24, render: FORM_ITEM_RENDER_ENUM.CHECKBOX, items: [{ bianma: 1, name: "人员" }, { bianma: 0, name: "车辆" }, { bianma: 2, name: "临时访客" }] },
]}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Add);

View File

@ -0,0 +1,87 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = [];
const onDelete = (record) => {
// Modal.confirm({
// title: "删除确认",
// content: "确定要删除吗?",
// onOk: async () => {
// const { success } = await props["projectUserDelete"]({ id: record.id });
// if (success) {
// message.success("删除成功");
// // getData();
// }
// },
// });
};
return (
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "a", label: "部门", render: (
<DepartmentSelectTree />
) },
{ name: "b", label: "姓名" },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./add");
}}
>
新增
</Button>
</Space>
)}
columns={[
{ title: "部门", dataIndex: "" },
{ title: "姓名", dataIndex: "" },
{ title: "岗位", dataIndex: "" },
{ title: "审批权限", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 350,
render: (_, record) => (
<Space>
<Button
type="link"
danger
onClick={() => onDelete(record)}
>
删除
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,5 @@
function AccessApprover(props) {
return (<div>{props.children}</div>);
}
export default AccessApprover;

View File

@ -0,0 +1,67 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form, message } from "antd";
import { useEffect } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Map from "zy-react-library/components/Map";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { PRIMARY_OPENING_STATUS, PRIMARY_OPENING_TYPE, PRIMARY_REGION } from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Add(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
onFinish={onSubmit}
options={[
{ name: "", label: "所属港区" },
{ name: "", label: "所属区域", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_REGION },
{ name: "", label: "口门名称", span: 24 },
{ name: "", label: "口门类型", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_OPENING_TYPE },
{ name: "", label: "口门位置", span: 24 },
{ name: "", label: "", labelCol: { span: 0 }, span: 24, render: (
<Map
required={false}
/>
) },
{ name: "", label: "口门状态", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_OPENING_STATUS },
]}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Add);

View File

@ -0,0 +1,74 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message } from "antd";
import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import CameraList from "~/components/CameraList";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function CameraAdd(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const [cameraListOpen, setcameraListOpen] = useState(false);
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
onFinish={onSubmit}
options={[
{ name: "", label: "视频监控信息", span: 24, render: (
<Button
type="primary"
onClick={() => {
setcameraListOpen(true);
}}
>
选择
</Button>
) },
{ name: "", label: "视频名称", span: 24, componentProps: {
disabled: true,
} },
{ name: "", label: "播放地址", span: 24, componentProps: {
disabled: true,
} },
{ name: "", label: "摄像头编号", span: 24, componentProps: {
disabled: true,
} },
]}
/>
{cameraListOpen && <CameraList onCancel={() => setcameraListOpen(false)} />}
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(CameraAdd);

View File

@ -0,0 +1,45 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function CameraDetail(props) {
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "视频名称", children: "" },
{ label: "播放地址", children: "" },
{ label: "摄像头编号", children: "" },
]}
/>
</div>
</Spin>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(CameraDetail);

View File

@ -0,0 +1,125 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd";
import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import {
PRIMARY_CHANNELIST_TYPE,
} from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function CameraList(props) {
const [form] = Form.useForm();
const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 存储选中的行键
const [selectedRows, setSelectedRows] = useState([]); // 存储选中行的完整数据
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const onDelete = (record) => {
Modal.confirm({
title: "删除确认",
content: "确定要删除吗?",
onOk: async () => {
const { success } = await props["projectUserDelete"]({ id: record.id });
if (success) {
message.success("删除成功");
// getData();
}
},
});
};
return (
<div>
<HeaderBack title="添加摄像头" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "视频名称" },
{ name: "", label: "通道类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_CHANNELIST_TYPE },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./CameraAdd");
}}
>
新增
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./CameraDetail");
}}
>
查看
</Button>
</Space>
)}
rowSelection={{
selectedRowKeys,
preserveSelectedRowKeys: true,
}}
columns={[
{ title: "视频名称", dataIndex: "" },
{ title: "播放地址", dataIndex: "" },
{ title: "视频定位状态", dataIndex: "" },
{ title: "是否在线", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
onClick={() => {}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => onDelete(record)}
>
删除
</Button>
<Button
type="link"
onClick={() => {}}
>
添加摄像头
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(CameraList);

View File

@ -0,0 +1,60 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form, message } from "antd";
import { useEffect } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import {
PRIMARY_CHANNELIST_TYPE,
PRIMARY_CHANNELLIST_STATUS,
} from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function ChanneAdd(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
onFinish={onSubmit}
options={[
{ name: "", label: "通道名称", span: 24 },
{ name: "", label: "通道类型", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_CHANNELIST_TYPE },
{ name: "", label: "通道状态", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_CHANNELLIST_STATUS },
]}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(ChanneAdd);

View File

@ -0,0 +1,46 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function ChanneDetail(props) {
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "通道名称", children: "" },
{ label: "通道类型", children: "" },
{ label: "通道状态", children: "" },
{ label: "地理位置", children: "" },
]}
/>
</div>
</Spin>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(ChanneDetail);

View File

@ -0,0 +1,125 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { PRIMARY_CHANNELIST_STATUS, PRIMARY_CHANNELLIST_TYPE } from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function ChannelList(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const onDelete = (record) => {
Modal.confirm({
title: "删除确认",
content: "确定要删除吗?",
onOk: async () => {
const { success } = await props["projectUserDelete"]({ id: record.id });
if (success) {
message.success("删除成功");
// getData();
}
},
});
};
return (
<div>
<HeaderBack title="通道" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "通道名称" },
{ name: "", label: "通道状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_CHANNELIST_STATUS },
{ name: "", label: "通道类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_CHANNELLIST_TYPE },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./ChanneAdd");
}}
>
新增
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./ChanneDetail");
}}
>
查看
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./EquipmentList");
}}
>
添加设备
</Button>
</Space>
)}
columns={[
{ title: "通道类型", dataIndex: "" },
{ title: "通道名称", dataIndex: "" },
{ title: "设备数", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
onClick={() => {}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => onDelete(record)}
>
删除
</Button>
<Button
type="link"
onClick={() => {}}
>
添加设备
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(ChannelList);

View File

@ -0,0 +1,48 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Detail(props) {
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "所属区域", children: "" },
{ label: "口门名称", children: "" },
{ label: "口门类型", children: "" },
{ label: "口门位置", children: "" },
{ label: "地理位置", children: "" },
{ label: "口门状态", children: "" },
]}
/>
</div>
</Spin>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Detail);

View File

@ -0,0 +1,63 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form, message } from "antd";
import { useEffect } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import {
PRIMARY_EQUIPMENT_STATUS,
PRIMARY_EQUIPMENT_TYPE,
} from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function EquipmentAdd(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
onFinish={onSubmit}
options={[
{ name: "", label: "闸机类型", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_EQUIPMENT_TYPE },
{ name: "", label: "闸机名称", span: 24 },
{ name: "", label: "闸机类别", span: 24 },
{ name: "", label: "闸机型号", span: 24 },
{ name: "", label: "闸机位置", span: 24 },
{ name: "", label: "闸机状态", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_EQUIPMENT_STATUS },
]}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(EquipmentAdd);

View File

@ -0,0 +1,48 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function EquipmentDetail(props) {
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "闸机类型", children: "" },
{ label: "闸机名称", children: "" },
{ label: "闸机类别", children: "" },
{ label: "闸机型号", children: "" },
{ label: "闸机位置", children: "" },
{ label: "闸机状态", children: "" },
]}
/>
</div>
</Spin>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(EquipmentDetail);

View File

@ -0,0 +1,132 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import {
PRIMARY_EQUIPMENT_STATUS,
PRIMARY_EQUIPMENT_TYPE,
} from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function EquipmentList(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const onDelete = (record) => {
Modal.confirm({
title: "删除确认",
content: "确定要删除吗?",
onOk: async () => {
const { success } = await props["projectUserDelete"]({ id: record.id });
if (success) {
message.success("删除成功");
// getData();
}
},
});
};
return (
<div>
<HeaderBack title="设备" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "闸机名称" },
{ name: "", label: "闸机状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_EQUIPMENT_STATUS },
{ name: "", label: "闸机类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_EQUIPMENT_TYPE },
{ name: "", label: "闸机类别", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_EQUIPMENT_TYPE },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./EquipmentAdd");
}}
>
新增
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./EquipmentDetail");
}}
>
查看
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./CameraList");
}}
>
添加摄像头
</Button>
</Space>
)}
columns={[
{ title: "闸机类型", dataIndex: "" },
{ title: "闸机名称", dataIndex: "" },
{ title: "闸机类别", dataIndex: "" },
{ title: "闸机位置", dataIndex: "" },
{ title: "摄像头个数", dataIndex: "" },
{ title: "闸机状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
onClick={() => {}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => onDelete(record)}
>
删除
</Button>
<Button
type="link"
onClick={() => {}}
>
添加摄像头
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(EquipmentList);

View File

@ -0,0 +1,128 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { PRIMARY_OPENING_STATUS, PRIMARY_OPENING_TYPE, PRIMARY_REGION } from "~/enumerate/constant";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const onDelete = (record) => {
Modal.confirm({
title: "删除确认",
content: "确定要删除吗?",
onOk: async () => {
const { success } = await props["projectUserDelete"]({ id: record.id });
if (success) {
message.success("删除成功");
// getData();
}
},
});
};
return (
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "口门名称" },
{ name: "", label: "口门状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_OPENING_STATUS },
{ name: "", label: "口门类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_OPENING_TYPE },
{ name: "", label: "所属区域", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PRIMARY_REGION },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./add");
}}
>
新增
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./PersonnelVehicleRecord");
}}
>
查看
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./ChannelList");
}}
>
添加通道
</Button>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./CameraList");
}}
>
添加摄像头
</Button>
</Space>
)}
columns={[
{ title: "所属区域", dataIndex: "" },
{ title: "口门类型", dataIndex: "" },
{ title: "口门名称", dataIndex: "" },
{ title: "口门位置", dataIndex: "" },
{ title: "摄像头个数", dataIndex: "" },
{ title: "口门状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
onClick={() => {}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => onDelete(record)}
>
删除
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,5 @@
function PrimaryAccessPoint(props) {
return (<div>{props.children}</div>);
}
export default PrimaryAccessPoint;

View File

@ -0,0 +1,5 @@
function BasicInformation(props) {
return (<div>{props.children}</div>);
}
export default BasicInformation;

View File

@ -0,0 +1,161 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, Form, Input, message, Modal, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Detail(props) {
const [form] = Form.useForm();
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const tableProps = {};
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
const auditSubmit = (result) => {
if (result === 1) {
Modal.confirm({
title: "审核确认",
content: "确定要通过审核吗?",
onOk: async () => {
const { success } = await props["projectAudit"]({
id: query.id,
result,
});
if (success) {
message.success("审核通过");
getData();
props.history.goBack();
}
},
});
}
else {
Modal.confirm({
title: "审核驳回",
content: (
<div>
<div style={{ marginBottom: 8 }}>确定要驳回审核吗</div>
<Form
form={form}
layout="vertical"
style={{ marginTop: 16 }}
>
<Form.Item
name="rejectReason"
label="驳回原因"
rules={[{ required: true, message: "请输入驳回原因" }]}
>
<Input.TextArea
placeholder="请输入驳回原因"
rows={3}
maxLength={200}
showCount
/>
</Form.Item>
</Form>
</div>
),
icon: null,
okText: "确认驳回",
cancelText: "取消",
width: 500,
onOk: async () => {
try {
const values = await form.validateFields();
const { success } = await props["projectAudit"]({
id: query.id,
result,
rejectCause: values.rejectReason, // 添加拒绝原因
});
if (success) {
message.success("审核驳回成功");
getData();
props.history.goBack();
}
}
catch (error) {
// 表单验证失败,不关闭弹窗
return Promise.reject(error);
}
},
});
}
};
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Divider orientation="left">申请信息</Divider>
<Descriptions
bordered
column={2}
styles={{ label: { width: 200 } }}
items={[
{ label: "相关方名称", children: "", span: 2 },
{ label: "项目名称", children: "" },
{ label: "区域范围", children: "" },
{ label: "访问期限", children: "", span: 2 },
{ label: "项目人员数", children: "" },
{ label: "申请时间", children: "" },
{ label: "申请状态", children: "", span: 2 },
]}
/>
</div>
</Spin>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div style={{ display: "flex", justifyContent: "flex-start", margin: "40px 0" }}>
<div style={{ margin: "0 20px" }}>申请人签字</div>
<div>
<img src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png?x-oss-process=image/auto-orient,1/resize,p_10/quality,q_10" />
</div>
</div>
</Spin>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Divider orientation="left">人员信息</Divider>
<Table
columns={[
{ title: "姓名", dataIndex: "" },
{ title: "部门", dataIndex: "" },
{ title: "是否培训", dataIndex: "" },
{ title: "现口门权限范围", dataIndex: "" },
]}
{...tableProps}
/>
</div>
</Spin>
<div style={{ textAlign: "center", marginTop: "20px" }}>
<Button
onClick={() => auditSubmit(0)}
>
驳回
</Button>
<Button
style={{ marginLeft: "20px" }}
type="primary"
onClick={() => auditSubmit(1)}
>
审核通过
</Button>
</div>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Detail);

View File

@ -0,0 +1,118 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [rejectReasonModalOpen, setRejectReasonModalOpen] = useState(false); // 驳回原因弹窗
const [rejectReason, setRejectReason] = useState(false); // 驳回原因
// 点击查看驳回原因
const onViewRejectReason = async (id) => {
const { data } = await props["projectApprovalFlow"]({ id });
setRejectReason(data);
setRejectReasonModalOpen(true);
};
return (
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "姓名" },
{ name: "", label: "项目名称" },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./Detail");
}}
>
查看
</Button>
</Space>
)}
columns={[
{ title: "相关方名称", dataIndex: "" },
{ title: "项目名称", dataIndex: "" },
{ title: "区域范围", dataIndex: "" },
{ title: "访问期限", dataIndex: "" },
{ title: "项目人员数", dataIndex: "" },
{ title: "申请时间", dataIndex: "" },
{ title: "审核状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
审核
</Button>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
danger
onClick={() => {
onViewRejectReason(record.id);
}}
>
查看驳回原因
</Button>
</Space>
),
},
]}
{...tableProps}
/>
{rejectReasonModalOpen && <RejectReason rejectReason={rejectReason} onCancel={() => setRejectReasonModalOpen(false)} />}
</div>
);
}
const RejectReason = (props) => {
return (
<Modal
title="查看驳回原因"
width={800}
open
maskClosable={false}
onCancel={props.onCancel}
footer={[
<Button key="cancel" onClick={props.onCancel}>取消</Button>,
]}
>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "驳回原因", children: props.rejectReason.rejectReason },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,5 @@
function Arrival(props) {
return (<div>{props.children}</div>);
}
export default Arrival;

View File

@ -0,0 +1,5 @@
function Personnel(props) {
return (<div>{props.children}</div>);
}
export default Personnel;

View File

@ -0,0 +1,157 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, Form, Input, message, Modal, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Detail(props) {
const [form] = Form.useForm();
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const tableProps = {};
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
const auditSubmit = (result) => {
if (result === 1) {
Modal.confirm({
title: "审核确认",
content: "确定要通过审核吗?",
onOk: async () => {
const { success } = await props["projectAudit"]({
id: query.id,
result,
});
if (success) {
message.success("审核通过");
getData();
props.history.goBack();
}
},
});
}
else {
Modal.confirm({
title: "审核驳回",
content: (
<div>
<div style={{ marginBottom: 8 }}>确定要驳回审核吗</div>
<Form
form={form}
layout="vertical"
style={{ marginTop: 16 }}
>
<Form.Item
name="rejectReason"
label="驳回原因"
rules={[{ required: true, message: "请输入驳回原因" }]}
>
<Input.TextArea
placeholder="请输入驳回原因"
rows={3}
maxLength={200}
showCount
/>
</Form.Item>
</Form>
</div>
),
icon: null,
okText: "确认驳回",
cancelText: "取消",
width: 500,
onOk: async () => {
try {
const values = await form.validateFields();
const { success } = await props["projectAudit"]({
id: query.id,
result,
rejectCause: values.rejectReason, // 添加拒绝原因
});
if (success) {
message.success("审核驳回成功");
getData();
props.history.goBack();
}
}
catch (error) {
// 表单验证失败,不关闭弹窗
return Promise.reject(error);
}
},
});
}
};
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Divider orientation="left">申请信息</Divider>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "车辆所属类型", children: "" },
{ label: "车辆所属部门", children: "" },
{ label: "车辆归属人", children: "" },
{ label: "车牌号", children: "" },
{ label: "车牌类型", children: "" },
{ label: "车辆类型", children: "" },
{ label: "访问港区范围", children: "" },
{ label: "访问起始时间", children: "" },
{ label: "访问结束时间", children: "" },
{ label: "行驶证照片", children: "" },
{ label: "车辆照片", children: "" },
{ label: "审批人", children: "" },
]}
/>
</div>
</Spin>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Divider orientation="left">审批信息</Divider>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "审批人", children: "" },
{ label: "审批时间", children: "" },
{ label: "审批状态", children: "" },
{ label: "打回意见", children: "" },
]}
/>
</div>
</Spin>
<div style={{ textAlign: "center", marginTop: "20px" }}>
<Button
onClick={() => auditSubmit(0)}
>
驳回
</Button>
<Button
style={{ marginLeft: "20px" }}
type="primary"
onClick={() => auditSubmit(1)}
>
审核通过
</Button>
</div>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Detail);

View File

@ -0,0 +1,129 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [rejectReasonModalOpen, setRejectReasonModalOpen] = useState(false); // 驳回原因弹窗
const [rejectReason, setRejectReason] = useState(false); // 驳回原因
// 点击查看驳回原因
const onViewRejectReason = async (id) => {
const { data } = await props["projectApprovalFlow"]({ id });
setRejectReason(data);
setRejectReasonModalOpen(true);
};
return (
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "车辆所属人" },
{ name: "", label: "车牌号" },
{ name: "", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATE },
{ name: "", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATE },
{ name: "", label: "车辆所属部门", render: (
<DepartmentSelectTree />
) },
{ name: "", label: "访问港区范围", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: 1, name: "全部" }, { bianma: 0, name: "东港区" }, { bianma: 0, name: "西港区" }] },
{ name: "", label: "车辆所属类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: 1, name: "单位车辆" }, { bianma: 0, name: "员工车辆" }] },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./Detail");
}}
>
查看
</Button>
</Space>
)}
columns={[
{ title: "车辆所属类型", dataIndex: "" },
{ title: "车辆所属部门", dataIndex: "" },
{ title: "车辆归属人", dataIndex: "" },
{ title: "车牌号", dataIndex: "" },
{ title: "车牌类型", dataIndex: "" },
{ title: "车辆类型", dataIndex: "" },
{ title: "访问港区范围", dataIndex: "" },
{ title: "访问起始时间", dataIndex: "" },
{ title: "访问结束时间", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
审核
</Button>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
danger
onClick={() => {
onViewRejectReason(record.id);
}}
>
查看驳回原因
</Button>
</Space>
),
},
]}
{...tableProps}
/>
{rejectReasonModalOpen && <RejectReason rejectReason={rejectReason} onCancel={() => setRejectReasonModalOpen(false)} />}
</div>
);
}
const RejectReason = (props) => {
return (
<Modal
title="查看驳回原因"
width={800}
open
maskClosable={false}
onCancel={props.onCancel}
footer={[
<Button key="cancel" onClick={props.onCancel}>取消</Button>,
]}
>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "驳回原因", children: props.rejectReason.rejectReason },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,5 @@
function Share(props) {
return (<div>{props.children}</div>);
}
export default Share;

View File

@ -0,0 +1,151 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, Form, Input, message, Modal, Spin } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Detail(props) {
const [form] = Form.useForm();
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const tableProps = {};
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
const auditSubmit = (result) => {
if (result === 1) {
Modal.confirm({
title: "审核确认",
content: "确定要通过审核吗?",
onOk: async () => {
const { success } = await props["projectAudit"]({
id: query.id,
result,
});
if (success) {
message.success("审核通过");
getData();
props.history.goBack();
}
},
});
}
else {
Modal.confirm({
title: "审核驳回",
content: (
<div>
<div style={{ marginBottom: 8 }}>确定要驳回审核吗</div>
<Form
form={form}
layout="vertical"
style={{ marginTop: 16 }}
>
<Form.Item
name="rejectReason"
label="驳回原因"
rules={[{ required: true, message: "请输入驳回原因" }]}
>
<Input.TextArea
placeholder="请输入驳回原因"
rows={3}
maxLength={200}
showCount
/>
</Form.Item>
</Form>
</div>
),
icon: null,
okText: "确认驳回",
cancelText: "取消",
width: 500,
onOk: async () => {
try {
const values = await form.validateFields();
const { success } = await props["projectAudit"]({
id: query.id,
result,
rejectCause: values.rejectReason, // 添加拒绝原因
});
if (success) {
message.success("审核驳回成功");
getData();
props.history.goBack();
}
}
catch (error) {
// 表单验证失败,不关闭弹窗
return Promise.reject(error);
}
},
});
}
};
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Spin
spinning={props.basicInformation.basicInformationLoading}
>
<div>
<Divider orientation="left">申请信息</Divider>
<Descriptions
bordered
column={2}
styles={{ label: { width: 200 } }}
items={[
{ label: "相关方名称", children: "", span: 2 },
{ label: "项目名称", children: "" },
{ label: "审核人员", children: "" },
{ label: "时间范围", children: "", span: 2 },
{ label: "地域范围", children: "", span: 2 },
{ label: "驾驶人员", children: "" },
{ label: "车辆类型", children: "" },
{ label: "车牌类型", children: "" },
{ label: "车牌号", children: "" },
{ label: "审核状态", children: "" },
]}
/>
</div>
</Spin>
<div style={{ marginTop: "20px", display: "flex", justifyContent: "space-between" }}>
<div>
<p>车辆照片</p>
<img src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" alt="example" style={{ width: "200px", height: "200px" }} />
</div>
<div>
<p>车辆行驶证照片</p>
<img src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" alt="example" style={{ width: "200px", height: "200px" }} />
</div>
<div>
<p>申请人签字</p>
<img src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" alt="example" style={{ width: "200px", height: "200px" }} />
</div>
</div>
<div style={{ textAlign: "center", marginTop: "20px" }}>
<Button
onClick={() => auditSubmit(0)}
>
驳回
</Button>
<Button
style={{ marginLeft: "20px" }}
type="primary"
onClick={() => auditSubmit(1)}
>
审核通过
</Button>
</div>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Detail);

View File

@ -0,0 +1,118 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [rejectReasonModalOpen, setRejectReasonModalOpen] = useState(false); // 驳回原因弹窗
const [rejectReason, setRejectReason] = useState(false); // 驳回原因
// 点击查看驳回原因
const onViewRejectReason = async (id) => {
const { data } = await props["projectApprovalFlow"]({ id });
setRejectReason(data);
setRejectReasonModalOpen(true);
};
return (
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "车牌号" },
{ name: "", label: "项目名称" },
]}
form={form}
// onFinish={getData}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./Detail");
}}
>
查看
</Button>
</Space>
)}
columns={[
{ title: "项目名称", dataIndex: "" },
{ title: "区域范围", dataIndex: "" },
{ title: "访问期限", dataIndex: "" },
{ title: "车辆类型", dataIndex: "" },
{ title: "车牌类型", dataIndex: "" },
{ title: "车牌号", dataIndex: "" },
{ title: "审核状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
审核
</Button>
<Button
type="link"
onClick={() => {}}
>
查看
</Button>
<Button
type="link"
danger
onClick={() => {
onViewRejectReason(record.id);
}}
>
查看驳回原因
</Button>
</Space>
),
},
]}
{...tableProps}
/>
{rejectReasonModalOpen && <RejectReason rejectReason={rejectReason} onCancel={() => setRejectReasonModalOpen(false)} />}
</div>
);
}
const RejectReason = (props) => {
return (
<Modal
title="查看驳回原因"
width={800}
open
maskClosable={false}
onCancel={props.onCancel}
footer={[
<Button key="cancel" onClick={props.onCancel}>取消</Button>,
]}
>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "驳回原因", children: props.rejectReason.rejectReason },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,5 @@
function Stakeholder(props) {
return (<div>{props.children}</div>);
}
export default Stakeholder;

View File

@ -0,0 +1,5 @@
function Vehicle(props) {
return (<div>{props.children}</div>);
}
export default Vehicle;

View File

@ -0,0 +1,5 @@
function EntryApprova(props) {
return (<div>{props.children}</div>);
}
export default EntryApprova;

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecord";
function ApprovalRecord(props) {
return (<ListView {...props} />);
};
export default ApprovalRecord;

View File

@ -0,0 +1,7 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/ApprovalRecordDetail";
function ApprovalRecordDetail(props) {
return (<DetailView {...props} />);
};
export default ApprovalRecordDetail;

View File

@ -0,0 +1,83 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
return (
<div style={{ padding: 20 }}>
<div style={{ flex: 1 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "企业名称" },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./PersonnelVehicle");
}}
>
人员及车辆详情
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./Vehicle");
}}
>
单位车辆详情
</Button>
</Space>
)}
columns={[
{ title: "企业名称", dataIndex: "" },
{ title: "人员数", dataIndex: "" },
{ title: "人员车辆数", dataIndex: "" },
{ title: "单位车辆数", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
人员及车辆详情
</Button>
<Button
type="link"
onClick={() => {}}
>
单位车辆详情
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,142 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import DepartmentLeftTree from "zy-react-library/components/LeftTree/Department/Gwj";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [inDepartmentId, setInDepartmentId] = useState([]); // 存储已选择的部门id
const [authorizationModalOpen, setAuthorizationModalOpen] = useState(false);
const [authorizationData, setAuthorizationData] = useState({});
return (
<div>
<HeaderBack title="人员及车辆详情" />
<div style={{ padding: 20 }}>
<div style={{ display: "flex", gap: 20 }}>
<div style={{ width: 300 }}>
<DepartmentLeftTree
checkable
onCheck={(checkedKeys) => {
setInDepartmentId(checkedKeys);
getData();
}}
/>
</div>
<div style={{ flex: 1 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeName", label: "姓名" },
{ name: "likeName", label: "进出港时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./PersonnelVehicleRecord");
}}
>
人员进出记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./PersonnelVehicleManagement");
}}
>
车辆管理
</Button>
</Space>
)}
columns={[
{ title: "部门", dataIndex: "departmentName" },
{ title: "姓名", dataIndex: "name" },
{ title: "岗位", dataIndex: "postName" },
{ title: "手机号", dataIndex: "phone" },
{ title: "证件号码", dataIndex: "" },
{ title: "人员编号", dataIndex: "" },
{ title: "车辆数", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
人员进出记录
</Button>
<Button
type="link"
onClick={() => {}}
>
车辆管理
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
{authorizationModalOpen && <AuthorizationScope authorizationData={authorizationData} onCancel={() => setAuthorizationModalOpen(false)} />}
</div>
</div>
);
}
const AuthorizationScope = (props) => {
const [form] = Form.useForm();
const onSubmit = async (values) => {
// const { success } = await props.onOk();
// if (success) {
// message.success("操作成功");
// props.onCancel();
// }
};
return (
<Modal
title="授权"
width={1200}
open
onCancel={props.onCancel}
maskClosable={false}
onOk={form.submit}
>
<FormBuilder
form={form}
onFinish={onSubmit}
showActionButtons={false}
options={[
{ name: "", label: "是否授权", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }] },
{ name: "", label: "授权港区", span: 12 },
{ name: "", label: "选择区域", span: 12 },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,116 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function VehicleManagement(props) {
const [form] = Form.useForm();
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const tableProps = {};
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="车辆管理" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "", label: "车牌号" },
{ name: "", label: "当前在港状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "港内" }, { bianma: "2", name: "港外" }] },
{ name: "", label: "访问港区范围", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "全部" }, { bianma: "2", name: "东港区" }, { bianma: "2", name: "西港区" }] },
{ name: "", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATE },
{ name: "", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATE },
]}
/>
<Table
headerTitle="企业名称:回显企业名称"
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleRecord");
}}
>
车辆进出记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./ApprovalRecord");
}}
>
审批记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleManagementDetail");
}}
>
查看
</Button>
</Space>
)}
columns={[
{ title: "车辆归属人", dataIndex: "" },
{ title: "车牌号", dataIndex: "" },
{ title: "车牌类型", dataIndex: "" },
{ title: "车辆类型", dataIndex: "" },
{ title: "访问港区范围", dataIndex: "" },
{ title: "访问起始时间", dataIndex: "" },
{ title: "访问结束时间", dataIndex: "" },
{ title: "当前在港状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
车辆进出记录
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
审批记录
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
查看
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(VehicleManagement);

View File

@ -0,0 +1,8 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/Record";
function PersonnelVehicleRecord(props) {
// 带入企业名称到下一级页面
return (<ListView {...props} />);
};
export default PersonnelVehicleRecord;

View File

@ -0,0 +1,8 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/SwitchRecord";
function SwitchRecord(props) {
// 带入企业名称到下一级页面
return (<ListView {...props} />);
};
export default SwitchRecord;

View File

@ -0,0 +1,135 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import { useEffect, useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function VehicleManagement(props) {
const [form] = Form.useForm();
const query = useGetUrlQuery();
const [info, setInfo] = useState([]);
const tableProps = {};
const getData = async () => {
// const { data } = await props[""]({ id: query.id });
// setInfo(data);
};
useEffect(() => {
getData();
}, []);
return (
<div>
<HeaderBack title="单位车辆详情" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeName", label: "车牌号" },
{ name: "likeName", label: "当前在港状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "港内" }, { bianma: "0", name: "港外" }] },
{ name: "likeName", label: "访问港区范围", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "全部" }, { bianma: "0", name: "东港区" }, { bianma: "0", name: "西港区" }] },
{ name: "likeName", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATE },
{ name: "likeName", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATE },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<Table
headerTitle="企业名称:回显企业名称"
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleRecord");
}}
>
车辆进出记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./ApprovalRecord");
}}
>
审批记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./SwitchRecord");
}}
>
开关记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleManagementDetail");
}}
>
查看
</Button>
</Space>
)}
columns={[
{ title: "车牌号", dataIndex: "" },
{ title: "车牌类型", dataIndex: "" },
{ title: "车辆类型", dataIndex: "" },
{ title: "访问港区范围", dataIndex: "" },
{ title: "访问起始时间", dataIndex: "" },
{ title: "访问结束时间", dataIndex: "" },
{ title: "当前在港状态", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
车辆进出记录
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
审批记录
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
查看
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
停用 & 启用
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(VehicleManagement);

View File

@ -0,0 +1,8 @@
import DetailView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/VehicleManagementDetail";
function VehicleManagementDetail(props) {
// 传企业名称到下一级页面
return (<DetailView {...props} />);
};
export default VehicleManagementDetail;

View File

@ -0,0 +1,8 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionVehicle/VehicleRecord";
function VehicleRecord(props) {
// 带入企业名称到下一级页面
return (<ListView {...props} />);
};
export default VehicleRecord;

View File

@ -0,0 +1,5 @@
function BranchCompanyPersonnelVehicle(props) {
return (<div>{props.children}</div>);
}
export default BranchCompanyPersonnelVehicle;

View File

@ -0,0 +1,82 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form, message } from "antd";
import { useEffect } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function Add(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const getData = async () => {
if (query.id) {
const { data } = await props["busPromiseTemplateView"]({ id: query.id });
const values = {
...data,
};
form.setFieldsValue({
...values,
});
}
};
useEffect(() => {
getData();
}, []);
const onSubmit = async (values) => {
const { success } = await props[!query.id ? "busPromiseTemplateAdd" : "busPromiseTemplateEdit"]({
...values,
id: query.id,
promiseId: query.promiseId,
isRegulatory: 0,
});
if (success) {
message.success("操作成功");
props.history.goBack();
}
};
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
form={form}
values={{ details: [{}] }}
onFinish={onSubmit}
options={[
{ name: "", label: "名称", span: 24 },
{ label: "车辆信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{
name: "details",
span: 24,
render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
formListUniqueProps: {
options: field => (
[
{
label: "车牌类型",
name: [field.name, "dataType1"],
span: 8,
},
{
label: "车牌号",
name: [field.name, "dataType2"],
span: 8,
},
{
label: "车辆类型",
name: [field.name, "dataType3"],
span: 8,
},
]
),
},
},
]}
/>
</div>
</div>
);
}
export default Connect([NS_BASICINFORMATION], true)(Add);

View File

@ -0,0 +1,125 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [inDepartmentId, setInDepartmentId] = useState([]); // 存储已选择的部门id
const [authorizationModalOpen, setAuthorizationModalOpen] = useState(false);
const [authorizationData, setAuthorizationData] = useState({});
return (
<div style={{ padding: 20 }}>
<div style={{ flex: 1 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeName", label: "名称" },
{ name: "likeName", label: "车牌号" },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<AddIcon />}
onClick={() => {
props.history.push("./Add");
}}
>
新增
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleRecord");
}}
>
车辆进出记录
</Button>
</Space>
)}
columns={[
{ title: "名称", dataIndex: "" },
{ title: "车牌号", dataIndex: "" },
{ title: "车牌类型", dataIndex: "" },
{ title: "车辆类型", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
const AuthorizationScope = (props) => {
const [form] = Form.useForm();
const onSubmit = async (values) => {
// const { success } = await props.onOk();
// if (success) {
// message.success("操作成功");
// props.onCancel();
// }
};
return (
<Modal
title="授权"
width={1200}
open
onCancel={props.onCancel}
maskClosable={false}
onOk={form.submit}
>
<FormBuilder
form={form}
onFinish={onSubmit}
showActionButtons={false}
options={[
{ name: "", label: "是否授权", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }] },
{ name: "", label: "授权港区", span: 12 },
{ name: "", label: "选择区域", span: 12 },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,8 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionVehicle/VehicleRecord";
function VehicleRecord(props) {
// 带入企业名称到下一级页面
return (<ListView {...props} />);
};
export default VehicleRecord;

View File

@ -0,0 +1,5 @@
function InspectionDepartmentVehicle(props) {
return (<div>{props.children}</div>);
}
export default InspectionDepartmentVehicle;

View File

@ -0,0 +1,123 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [inDepartmentId, setInDepartmentId] = useState([]); // 存储已选择的部门id
const [authorizationModalOpen, setAuthorizationModalOpen] = useState(false);
const [authorizationData, setAuthorizationData] = useState({});
return (
<div style={{ padding: 20 }}>
<div style={{ flex: 1 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeName", label: "姓名" },
{ name: "likeName", label: "项目名称" },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./PersonnelVehicleRecord");
}}
>
人员进出记录
</Button>
<Button
type="primary"
onClick={() => {
props.history.push("./VehicleRecord");
}}
>
车辆进出记录
</Button>
</Space>
)}
columns={[
{ title: "相关方名称", dataIndex: "" },
{ title: "项目数", dataIndex: "" },
{ title: "人员数", dataIndex: "" },
{ title: "车辆数", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
人员进出记录
</Button>
<Button
type="link"
danger
onClick={() => {
}}
>
车辆进出记录
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
);
}
const AuthorizationScope = (props) => {
const [form] = Form.useForm();
const onSubmit = async (values) => {
// const { success } = await props.onOk();
// if (success) {
// message.success("操作成功");
// props.onCancel();
// }
};
return (
<Modal
title="授权"
width={1200}
open
onCancel={props.onCancel}
maskClosable={false}
onOk={form.submit}
>
<FormBuilder
form={form}
onFinish={onSubmit}
showActionButtons={false}
options={[
{ name: "", label: "是否授权", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }] },
{ name: "", label: "授权港区", span: 12 },
{ name: "", label: "选择区域", span: 12 },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(List);

View File

@ -0,0 +1,7 @@
import ListView from "~/pages/Container/Supervision/PrimaryAccessControl/ImportExportInformation/SupervisionPersonnelVehicle/Record";
function PersonnelRecord(props) {
return (<ListView {...props} />);
};
export default PersonnelRecord;

View File

@ -0,0 +1,133 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import DepartmentLeftTree from "zy-react-library/components/LeftTree/Department/Gwj";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_BASICINFORMATION } from "~/enumerate/namespace";
function PersonnelVehicleRecord(props) {
const [form] = Form.useForm();
// const { tableProps, getData } = useTable(props["mkmjAreaList"], {
// form,
// params: {
//
// },
// });
const tableProps = {};
const [inDepartmentId, setInDepartmentId] = useState([]); // 存储已选择的部门id
const [authorizationModalOpen, setAuthorizationModalOpen] = useState(false);
const [authorizationData, setAuthorizationData] = useState({});
return (
<div>
<HeaderBack title="人员进出记录" />
<div style={{ padding: 20 }}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeName", label: "姓名" },
{ name: "likeName", label: "项目名称" },
]}
form={form}
onFinish={(values) => {
getData(values);
}}
/>
<div style={{ display: "flex", gap: 20 }}>
<div style={{ width: 300 }}>
<DepartmentLeftTree
checkable
onCheck={(checkedKeys) => {
setInDepartmentId(checkedKeys);
getData();
}}
/>
</div>
<div style={{ flex: 1 }}>
<Table
toolBarRender={() => (
<Space>
<Button
type="primary"
onClick={() => {
props.history.push("./PersonnelRecord");
}}
>
人员进出记录
</Button>
</Space>
)}
columns={[
{ title: "姓名", dataIndex: "name" },
{ title: "部门", dataIndex: "departmentName" },
{ title: "项目数", dataIndex: "" },
{ title: "手机号", dataIndex: "phone" },
{ title: "时间范围(时间最长)", dataIndex: "" },
{ title: "口门权限", dataIndex: "" },
{
title: "操作",
fixed: "right",
width: 200,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {}}
>
开启口门权限&关闭口门权限
</Button>
<Button
type="link"
onClick={() => {}}
>
人员进出记录
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
{authorizationModalOpen && <AuthorizationScope authorizationData={authorizationData} onCancel={() => setAuthorizationModalOpen(false)} />}
</div>
</div>
);
}
const AuthorizationScope = (props) => {
const [form] = Form.useForm();
const onSubmit = async (values) => {
// const { success } = await props.onOk();
// if (success) {
// message.success("操作成功");
// props.onCancel();
// }
};
return (
<Modal
title="授权"
width={1200}
open
onCancel={props.onCancel}
maskClosable={false}
onOk={form.submit}
>
<FormBuilder
form={form}
onFinish={onSubmit}
showActionButtons={false}
options={[
{ name: "", label: "是否授权", span: 24, render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }] },
{ name: "", label: "授权港区", span: 12 },
{ name: "", label: "选择区域", span: 12 },
]}
/>
</Modal>
);
};
export default Connect([NS_BASICINFORMATION], true)(PersonnelVehicleRecord);

Some files were not shown because too many files have changed in this diff Show More