From 766d22f3ab1dc9a225fdd8f7746bdf4889cb4912 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Tue, 17 Mar 2026 17:57:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E7=A6=81=E5=AE=A1=E6=89=B9=E4=BA=BA?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E3=80=81=E4=B8=80=E7=BA=A7=E5=8F=A3=E9=97=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86=E3=80=81=E8=82=A1=E4=BB=BD?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=AE=A1=E6=89=B9=E3=80=81=E8=82=A1=E4=BB=BD?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=AE=A1=E6=89=B9=E8=AE=B0=E5=BD=95=E3=80=81?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=BD=A6=E8=BE=86=E7=AE=A1=E7=90=86=E3=80=81?= =?UTF-8?q?=E8=82=A1=E4=BB=BD=E5=8D=95=E4=BD=8D=E8=BD=A6=E8=BE=86=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E3=80=81=E8=BD=A6=E8=BE=86=E8=BF=9D=E8=A7=84=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E3=80=81=E8=BD=A6=E8=BE=86=E9=BB=91=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router.md | 16 +- src/api/firstLevelDoorInfo/index.js | 4 + src/api/stockPersonnelAndVehicles/index.js | 8 - src/api/vehicleApply/index.js | 4 - src/enumerate/constant/index.js | 1 + .../PersonnelApplication/Add/index.js | 64 +++- .../VehicleApplication/Add/index.js | 69 +++- .../Channel/FareGate/index.js | 4 +- .../PersonalVehicle/Add/index.js | 52 ++- .../PersonalVehicle/List/index.js | 19 +- .../PersonalVehicle/View/index.js | 4 +- .../VehicleManagement/Add/index.js | 22 +- .../ApprovalRecords/index.js | 297 +++++++++------- .../VehicleManagement/List/index.js | 6 +- .../StockVehicles/List/index.js | 38 +- .../VehicleBlacklist/List/index.js | 43 +-- .../VehiclesViolation/List/index.js | 33 +- .../RelatedVehicles/index.js | 52 +-- .../ShareVehicles/index.js | 326 ++++++++++-------- .../RelatedPersonnel/index.js | 44 +-- .../TemporaryPersonnel/Add/index.js | 54 ++- .../TemporaryPersonnel/List/index.js | 26 +- .../TemporaryPersonnel/View/index.js | 2 +- .../TemporaryVehicle/Add/index.js | 58 +++- .../TemporaryVehicle/List/index.js | 34 +- .../TemporaryVehicle/View/index.js | 2 +- 26 files changed, 781 insertions(+), 501 deletions(-) diff --git a/router.md b/router.md index 2085e7d..7e295cd 100644 --- a/router.md +++ b/router.md @@ -1,16 +1,16 @@ ### 监管端 #### 一级口门管理 -- 门禁审批人管理 # +- 门禁审批人管理 ## `/primeport/container/supervision/firstLevelDoor/approverUser` -- 基本信息管理/一级口门信息管理 # +- 基本信息管理/一级口门信息管理 ## `/primeport/container/supervision/firstLevelDoor/basicInfo/firstLevelDoorInfo/list` -- 进港审批管理/人员审批管理/相关方人员进港审批 # +- 进港审批管理/人员审批管理/相关方人员进港审批 `/primeport/container/supervision/firstLevelDoor/portEntryApproval/personnelApproval/relatedPersonnel` - 进港审批管理/人员审批管理/相关方人员进港审批记录 `/primeport/container/supervision/firstLevelDoor/portEntryApproval/personnelApproval/relatedPersonnelRecords` -- 进港审批管理/长期车辆审批管理/股份车辆审批 # +- 进港审批管理/长期车辆审批管理/股份车辆审批 ## `/primeport/container/supervision/firstLevelDoor/portEntryApproval/longTermVehicleApproval/shareVehicles` -- 进港审批管理/长期车辆审批管理/股份车辆审批记录 # +- 进港审批管理/长期车辆审批管理/股份车辆审批记录 ## `/primeport/container/supervision/firstLevelDoor/portEntryApproval/longTermVehicleApproval/shareVehiclesRecords` - 进港审批管理/长期车辆审批管理/相关方车辆审批 # `/primeport/container/supervision/firstLevelDoor/portEntryApproval/longTermVehicleApproval/relatedVehicles` @@ -26,9 +26,9 @@ `/primeport/container/supervision/firstLevelDoor/portEntryApproval/temporaryVisitor/temporaryVehicleRecords/list` - 进出港信息管理/股份人员及车辆管理 `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/stockPersonnelAndVehicles/list` -- 进出港信息管理/个人车辆管理 # +- 进出港信息管理/个人车辆管理 ## `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/personalVehicle/list` -- 进出港信息管理/股份单位车辆管理 # +- 进出港信息管理/股份单位车辆管理 ## `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/stockVehicles/list` - 进出港信息管理/分公司人员及车辆管理 `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/branchPersonnelAndVehicles/list` @@ -38,7 +38,7 @@ `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/portBasedUnitsPersonnelAndVehicles/list` - 进出港信息管理/检查部门车辆管理 `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/inspectDepartmentVehicles/list` -- 进出港信息管理/车辆违规管理/车辆违规管理 # +- 进出港信息管理/车辆违规管理/车辆违规管理 ## `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/vehiclesViolation/vehiclesViolation/list` - 进出港信息管理/车辆违规管理/车辆黑名单管理 # `/primeport/container/supervision/firstLevelDoor/importAndExportPortInfo/vehiclesViolation/vehicleBlacklist/list` diff --git a/src/api/firstLevelDoorInfo/index.js b/src/api/firstLevelDoorInfo/index.js index e92f70a..7d516d9 100644 --- a/src/api/firstLevelDoorInfo/index.js +++ b/src/api/firstLevelDoorInfo/index.js @@ -4,6 +4,10 @@ export const firstLevelDoorInfoList = declareRequest( "firstLevelDoorInfoLoading", `Post > @/primeport/mkmj/list`, ); +export const firstLevelDoorInfoListAll = declareRequest( + "firstLevelDoorInfoLoading", + `Get > /primeport/mkmj/listAll`, +); export const firstLevelDoorInfoAdd = declareRequest( "firstLevelDoorInfoLoading", `Post > @/primeport/mkmj/save`, diff --git a/src/api/stockPersonnelAndVehicles/index.js b/src/api/stockPersonnelAndVehicles/index.js index 20175a8..afaf013 100644 --- a/src/api/stockPersonnelAndVehicles/index.js +++ b/src/api/stockPersonnelAndVehicles/index.js @@ -40,11 +40,3 @@ export const stockPersonnelAndVehiclesVehicleManagementVehicleRecordsList = decl "stockPersonnelAndVehiclesLoading", `Post > @/primeport/`, ); -export const stockPersonnelAndVehiclesVehicleManagementVehicleApprovalRecordsList = declareRequest( - "stockPersonnelAndVehiclesLoading", - `Post > @/primeport/`, -); -export const stockPersonnelAndVehiclesVehicleManagementVehicleApprovalRecordsInfo = declareRequest( - "stockPersonnelAndVehiclesLoading", - `Post > @/primeport/`, -); diff --git a/src/api/vehicleApply/index.js b/src/api/vehicleApply/index.js index 938e1b3..df79ff3 100644 --- a/src/api/vehicleApply/index.js +++ b/src/api/vehicleApply/index.js @@ -24,10 +24,6 @@ export const vehicleApplyCheckLicenceNo = declareRequest( "vehicleApplyLoading", `Get > /primeport/vehicleApply/check-licence-no`, ); -export const vehicleApplyUpdateStatus = declareRequest( - "vehicleApplyLoading", - `Post > @/primeport/`, -); export const vehicleApplyRecordsList = declareRequest( "vehicleApplyLoading", `Post > @/primeport/`, diff --git a/src/enumerate/constant/index.js b/src/enumerate/constant/index.js index 16c41c2..f927895 100644 --- a/src/enumerate/constant/index.js +++ b/src/enumerate/constant/index.js @@ -45,6 +45,7 @@ export const VEHICLE_TYPE_ENUM = [ // 车辆审核状态 export const VEHICLE_AUDIT_STATUS_ENUM = [ + { bianma: "1", name: "正在审核" }, { bianma: "2", name: "通过" }, { bianma: "3", name: "不通过" }, ]; diff --git a/src/pages/Container/Stakeholder/FirstLevelDoor/PersonnelApplication/Add/index.js b/src/pages/Container/Stakeholder/FirstLevelDoor/PersonnelApplication/Add/index.js index 6516eee..621b349 100644 --- a/src/pages/Container/Stakeholder/FirstLevelDoor/PersonnelApplication/Add/index.js +++ b/src/pages/Container/Stakeholder/FirstLevelDoor/PersonnelApplication/Add/index.js @@ -1,29 +1,46 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Button, Form, message, Modal } from "antd"; -import { useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import FormBuilder from "zy-react-library/components/FormBuilder"; import Page from "zy-react-library/components/Page"; import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import Table from "zy-react-library/components/Table"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { getLabelName } from "zy-react-library/utils"; import NeedToKnowModal from "~/components/NeedToKnowModal"; -import { NS_PERSONNEL_APPLICATION } from "~/enumerate/namespace"; +import { NS_FIRST_LEVEL_DOOR_INFO, NS_PERSONNEL_APPLICATION } from "~/enumerate/namespace"; function Add(props) { + const [form] = Form.useForm(); + const gateLevelAuthArea = FormBuilder.useWatch("gateLevelAuthArea", form); + const [personnelList, setPersonnelList] = useState([]); const [addPersonnelModalVisible, setAddPersonnelModalVisible] = useState(false); const [needToKnowModalVisible, setNeedToKnowModalVisible] = useState(false); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); const signatureUrl = useRef(""); - const [form] = Form.useForm(); + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"]({ hgAuthArea: gateLevelAuthArea }); + setFirstLevelDoorInfoListAll(data); + }; + + useEffect(() => { + if (gateLevelAuthArea) { + getFirstLevelDoorInfoListAll(); + } + }, [gateLevelAuthArea]); const onSubmit = async (values) => { if (!values.todo8) { message.warning("请勾选《安全进港须知》并签字"); return; } - const { success } = await props["personnelApplicationAdd"]({ ...values }); + const { success } = await props["personnelApplicationAdd"]({ + ...values, + gateLevelAuthArea: JSON.stringify({ area: values.area }), + }); if (success) { message.success("操作成功"); props.history.goBack(); @@ -41,8 +58,41 @@ function Add(props) { { name: "todo2", label: "审核部门", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, { name: "todo3", label: "审核人员", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, { name: "todo4", label: "时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, - { name: "todo5", label: "访问港区", render: () }, - { name: "todo6", label: "访问口门名称", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, + { + name: "gateLevelAuthArea", + label: "访问港区", + render: ( + { + const area = { value: option.dictLabel, bianma: option.dictValue }; + form.setFieldValue("area", area); + }} + onChange={() => { + form.setFieldValue("mkmjId", ""); + form.setFieldValue("mkmjName", ""); + }} + /> + ), + }, + { name: "area", label: "访问港区", onlyForLabel: true }, + { + name: "mkmjId", + label: "访问口门名称", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: firstLevelDoorInfoListAll, + itemsField: { labelKey: "mkmjName", valueKey: "id" }, + componentProps: { + onChange: event => + form.setFieldValue("mkmjName", getLabelName({ + list: firstLevelDoorInfoListAll, + status: event, + idKey: "id", + nameKey: "mkmjName", + })), + }, + }, + { name: "mkmjName", label: "访问口门名称", onlyForLabel: true }, { customizeRender: true, span: 24, @@ -202,4 +252,4 @@ const AddPersonnelModalComponent = (props) => { const AddPersonnelModal = Connect([NS_PERSONNEL_APPLICATION], true)(AddPersonnelModalComponent); -export default Connect([NS_PERSONNEL_APPLICATION], true)(Add); +export default Connect([NS_PERSONNEL_APPLICATION, NS_FIRST_LEVEL_DOOR_INFO], true)(Add); diff --git a/src/pages/Container/Stakeholder/FirstLevelDoor/VehicleApplication/Add/index.js b/src/pages/Container/Stakeholder/FirstLevelDoor/VehicleApplication/Add/index.js index ee4bfbf..1b2996e 100644 --- a/src/pages/Container/Stakeholder/FirstLevelDoor/VehicleApplication/Add/index.js +++ b/src/pages/Container/Stakeholder/FirstLevelDoor/VehicleApplication/Add/index.js @@ -1,6 +1,6 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Button, Form, message } from "antd"; -import { useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import FormBuilder from "zy-react-library/components/FormBuilder"; import Page from "zy-react-library/components/Page"; import DictionarySelect from "zy-react-library/components/Select/Dictionary"; @@ -9,22 +9,40 @@ import DepartmentSelectTree from "zy-react-library/components/SelectTree/Departm import Upload from "zy-react-library/components/Upload"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { LICENSE_PLATE_NUMBER } from "zy-react-library/regular"; +import { getLabelName } from "zy-react-library/utils"; import NeedToKnowModal from "~/components/NeedToKnowModal"; -import { NS_VEHICLE_APPLICATION } from "~/enumerate/namespace"; +import { NS_FIRST_LEVEL_DOOR_INFO, NS_VEHICLE_APPLICATION } from "~/enumerate/namespace"; function Add(props) { - const [needToKnowModalVisible, setNeedToKnowModalVisible] = useState(false); - const signatureUrl = useRef(""); - const [form] = Form.useForm(); const todo7 = Form.useWatch("todo7", form); + const gateLevelAuthArea = FormBuilder.useWatch("gateLevelAuthArea", form); + + const [needToKnowModalVisible, setNeedToKnowModalVisible] = useState(false); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); + + const signatureUrl = useRef(""); + + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"]({ hgAuthArea: gateLevelAuthArea }); + setFirstLevelDoorInfoListAll(data); + }; + + useEffect(() => { + if (gateLevelAuthArea) { + getFirstLevelDoorInfoListAll(); + } + }, [gateLevelAuthArea]); const onSubmit = async (values) => { if (!values.todo15) { message.warning("请勾选《安全进港须知》并签字"); return; } - const { success } = await props["vehicleApplicationAdd"]({ ...values }); + const { success } = await props["vehicleApplicationAdd"]({ + ...values, + gateLevelAuthArea: JSON.stringify({ area: values.area }), + }); if (success) { message.success("操作成功"); props.history.goBack(); @@ -42,8 +60,41 @@ function Add(props) { { name: "todo2", label: "审核部门", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, { name: "todo3", label: "审核人员", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, { name: "todo4", label: "时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, - { name: "todo5", label: "访问港区", render: () }, - { name: "todo6", label: "访问口门名称", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, + { + name: "gateLevelAuthArea", + label: "访问港区", + render: ( + { + const area = { value: option.dictLabel, bianma: option.dictValue }; + form.setFieldValue("area", area); + }} + onChange={() => { + form.setFieldValue("mkmjId", ""); + form.setFieldValue("mkmjName", ""); + }} + /> + ), + }, + { name: "area", label: "访问港区", onlyForLabel: true }, + { + name: "mkmjId", + label: "访问口门名称", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: firstLevelDoorInfoListAll, + itemsField: { labelKey: "mkmjName", valueKey: "id" }, + componentProps: { + onChange: event => + form.setFieldValue("mkmjName", getLabelName({ + list: firstLevelDoorInfoListAll, + status: event, + idKey: "id", + nameKey: "mkmjName", + })), + }, + }, + { name: "mkmjName", label: "访问口门名称", onlyForLabel: true }, { name: "todo7", label: "驾驶人员部门", render: () }, { name: "todo8", label: "驾驶人员", render: () }, { name: "todo9", label: "车牌类型", render: () }, @@ -99,4 +150,4 @@ function Add(props) { ); } -export default Connect([NS_VEHICLE_APPLICATION], true)(Add); +export default Connect([NS_VEHICLE_APPLICATION, NS_FIRST_LEVEL_DOOR_INFO], true)(Add); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/BasicInfo/FirstLevelDoorInfo/Channel/FareGate/index.js b/src/pages/Container/Supervision/FirstLevelDoor/BasicInfo/FirstLevelDoorInfo/Channel/FareGate/index.js index bc81bce..255e4e1 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/BasicInfo/FirstLevelDoorInfo/Channel/FareGate/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/BasicInfo/FirstLevelDoorInfo/Channel/FareGate/index.js @@ -52,7 +52,7 @@ function List(props) { { name: "gateName", label: "闸机名称" }, { name: "gateStatus", label: "闸机状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: FARE_GATE_STATUS_ENUM }, { name: "gateType", label: "闸机类型", render: () }, - { name: "todo", label: "闸机类别", render: () }, + { name: "gateCategory", label: "闸机类别", render: () }, ]} /> `${record.longitude || ""}--${record.latitude || ""}`, }, - { dataIndex: "todo4", title: "摄像头个数", width: 100 }, + { dataIndex: "videoCount", title: "摄像头个数", width: 100 }, { dataIndex: "gateStatus", title: "闸机状态", diff --git a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/Add/index.js b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/Add/index.js index 51fb0f4..0474a8c 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/Add/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/Add/index.js @@ -29,7 +29,7 @@ function Add(props) { const info = useRef([]); const getApprovalUserListAll = async () => { - const { data } = await props["approvalUserListAll"](); + const { data } = await props["approvalUserListAll"]({ vehiclePermissionFlag: 1 }); setApprovalUserListAll(data); }; @@ -45,17 +45,27 @@ function Add(props) { ...data, drivingLicenseFile, attachmentFile, + area: JSON.parse(data.gateLevelAuthArea).area, + gateLevelAuthArea: JSON.parse(data.gateLevelAuthArea).area.map(item => item.bianma), + auditUserId: data.currentAuditUserId, + auditUserName: data.currentAuditUserName, + auditCorpId: data.currentAuditCorpId, + auditCorpName: data.currentAuditCorpName, + auditDeptId: data.currentAuditDeptId, + auditDeptName: data.currentAuditDeptName, }); info.current = data; } else { - if (props.vehicleBelongType === 2) { - const userInfo = await getUserInfo(); - form.setFieldsValue({ - vehicleDepartmentName: userInfo.departmentName, - vehicleDepartmentId: userInfo.departmentId, - }); - } + const userInfo = await getUserInfo(); + form.setFieldsValue({ + employeeVehicleUserId: userInfo.id, + employeeVehicleUserName: userInfo.name, + vehicleDepartmentName: userInfo.departmentName, + vehicleDepartmentId: userInfo.departmentId, + vehicleCorpId: userInfo.corpinfoId, + vehicleCorpName: userInfo.corpinfoName, + }); } }; @@ -82,6 +92,7 @@ function Add(props) { id: query.id, drivingLicenseId, attachmentId, + gateLevelAuthArea: JSON.stringify({ area: values.area }), }); if (success) { message.success("操作成功"); @@ -93,11 +104,12 @@ function Add(props) { if (!props.vehicleBelongType) { return [ { name: "vehicleBelongType", label: "车辆所属类型", onlyForLabel: true }, - // TODO 应该是选择的 - { name: "employeeVehicleUserId", label: "车辆归属人", span: 24, componentProps: { disabled: !!query.id } }, - { name: "employeeVehicleUserName", label: "车辆归属人名称", onlyForLabel: true }, + { name: "employeeVehicleUserName", label: "车辆归属人", span: 24, componentProps: { disabled: true } }, + { name: "employeeVehicleUserId", label: "车辆归属人ID", onlyForLabel: true }, { name: "vehicleDepartmentName", label: "车辆所属部门", onlyForLabel: true }, { name: "vehicleDepartmentId", label: "车辆所属部门ID", onlyForLabel: true }, + { name: "vehicleCorpId", label: "车辆所属企业ID", onlyForLabel: true }, + { name: "vehicleCorpName", label: "车辆所属企业名称", onlyForLabel: true }, ]; } else if (props.vehicleBelongType === 2) { @@ -111,6 +123,8 @@ function Add(props) { }, { name: "vehicleDepartmentName", label: "车辆所属部门", componentProps: { disabled: true } }, { name: "vehicleDepartmentId", label: "车辆所属部门ID", onlyForLabel: true }, + { name: "vehicleCorpId", label: "车辆所属企业ID", onlyForLabel: true }, + { name: "vehicleCorpName", label: "车辆所属企业名称", onlyForLabel: true }, ]; } }; @@ -174,7 +188,21 @@ function Add(props) { ), }, { name: "vehicleTypeName", label: "车辆类型名称", onlyForLabel: true }, - { name: "gateLevelAuthArea", label: "访问港区", render: () }, + { + name: "gateLevelAuthArea", + label: "访问港区", + render: ( + { + const area = option.map(item => ({ value: item.dictLabel, bianma: item.dictValue })); + form.setFieldValue("area", area); + }} + /> + ), + }, + { name: "area", label: "访问港区", onlyForLabel: true }, { name: "visitStartTime", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATETIME }, { name: "visitEndTime", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATETIME }, { diff --git a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/List/index.js b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/List/index.js index 21b265e..44a83f2 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/List/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/PersonalVehicle/List/index.js @@ -8,9 +8,9 @@ import { getLabelName } from "zy-react-library/utils"; import { NS_VEHICLE_APPLY } from "~/enumerate/namespace"; const VEHICLE_APPROVAL_STATUS_ENUM = [ - { value: "1", label: "审批中" }, - { value: "2", label: "通过" }, - { value: "3", label: "已驳回" }, + { bianma: "1", name: "审批中" }, + { bianma: "2", name: "通过" }, + { bianma: "3", name: "已驳回" }, ]; function List(props) { @@ -18,12 +18,12 @@ function List(props) { params: { vehicleBelongType: 1 }, }); - const onDelete = (record) => { + const onDelete = (id) => { Modal.confirm({ title: "删除确认", content: "确定要删除吗?", onOk: async () => { - const { success } = await props["vehicleApplyDelete"]({ id: record.id }); + const { success } = await props["vehicleApplyDelete"]({ id }); if (success) { message.success("删除成功"); getData(); @@ -55,7 +55,7 @@ function List(props) { { title: "访问港区范围", dataIndex: "gateLevelAuthArea", - render: (_, record) => JSON.parse(record.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、"), + render: (_, record) => record.gateLevelAuthArea && JSON.parse(record.gateLevelAuthArea).area.map(item => item.value).join("、"), }, { title: "访问开始时间", dataIndex: "visitStartTime" }, { title: "访问结束时间", dataIndex: "visitEndTime" }, @@ -65,9 +65,9 @@ function List(props) { render: (_, record) => getLabelName({ list: VEHICLE_APPROVAL_STATUS_ENUM, status: record.auditFlag }), }, { - title: "启用状态", + title: "车辆状态", dataIndex: "statusFlag", - render: (_, record) => record.statusFlag === 2 ? "启用" : "停用", + render: (_, record) => record.statusFlag === 2 ? "正常" : "已拉黑", }, { title: "操作", @@ -87,8 +87,7 @@ function List(props) {
getLabelName({ list: VEHICLE_AUDIT_STATUS_ENUM, status: record.auditStatus }), + }, + { title: "打回原因", dataIndex: "remarks" }, + { title: "类型", dataIndex: "batchState", render: (_, record) => record.batchState === 1 ? "申请" : "更新" }, { title: "操作", fixed: "right", @@ -65,11 +71,39 @@ function ApprovalRecords(props) { } const InfoModalComponent = (props) => { - const [info, setInfo] = useState({}); + const { getFile } = useGetFile(); + + const [changeAfter, setChangeAfter] = useState({}); + const [changeBefore, setChangeBefore] = useState({}); + const [batchState, setBatchState] = useState(1); const getData = async () => { - const { data } = await props["stockPersonnelAndVehiclesVehicleManagementVehicleApprovalRecordsInfo"]({ id: props.id }); - setInfo(data); + const { data } = await props["vehicleAuditInfo"]({ id: props.id }); + const changeAfter = data.changeAfter ? JSON.parse(data.changeAfter) : {}; + const changeBefore = data.changeBefore ? JSON.parse(data.changeBefore) : {}; + const changeAfterDrivingLicenseFile = await getFile({ + eqType: UPLOAD_FILE_TYPE_ENUM[601], + eqForeignKey: changeAfter.drivingLicenseId, + }); + const changeAfterAttachmentFile = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[602], eqForeignKey: changeAfter.attachmentId }); + setChangeAfter({ + ...changeAfter, + drivingLicenseFile: changeAfterDrivingLicenseFile, + attachmentFile: changeAfterAttachmentFile, + }); + if (changeBefore && Object.keys(changeBefore).length > 0) { + const changeBeforeDrivingLicenseFile = await getFile({ + eqType: UPLOAD_FILE_TYPE_ENUM[601], + eqForeignKey: changeBefore.drivingLicenseId, + }); + const changeBeforeAttachmentFile = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[602], eqForeignKey: changeBefore.attachmentId }); + setChangeBefore({ + ...changeBefore, + drivingLicenseFile: changeBeforeDrivingLicenseFile, + attachmentFile: changeBeforeAttachmentFile, + }); + } + setBatchState(data.batchState); }; useEffect(() => { @@ -86,113 +120,138 @@ const InfoModalComponent = (props) => { footer={[ , ]} - loading={props.stockPersonnelAndVehicles.stockPersonnelAndVehiclesLoading} > -
- -
- - - - - - - - - - - - - - - - - - - {info.todo1 !== 1 && ( - - - - - - )} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
名称变更前变更后
车辆所属类型{getLabelName({ list: VEHICLE_TYPE_ENUM, status: info.todo1 })}{getLabelName({ list: VEHICLE_TYPE_ENUM, status: info.newTodo1 })}
车辆所属部门{info.todo2}{info.newTodo2}
车辆归属人{info.todo3}{info.newTodo3}
车牌号{info.todo4}{info.newTodo4}
车牌类型{info.todo5}{info.newTodo5}
车辆类型{info.todo6}{info.newTodo6}
访问港区范围{info.todo7}{info.newTodo7}
访问开始时间{info.todo8}{info.newTodo8}
访问结束时间{info.todo9}{info.newTodo9}
行驶证照片
车辆照片
审批人{info.todo12}{info.newTodo12}
- + { + batchState === 1 + ? ( + item.value).join("、") }, + { label: "访问开始时间", children: changeAfter.visitStartTime }, + { label: "访问结束时间", children: changeAfter.visitEndTime }, + { label: "行驶证照片", children: () }, + { label: "车辆照片", children: () }, + { label: "审批人", children: changeAfter.auditUserName }, + ]} + /> + ) + : ( +
+ + + + + + + + + + + + + + + + + + + + + {changeBefore.vehicleBelongType === 1 && ( + + + + + + )} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称变更前变更后
车辆所属类型{getLabelName({ list: VEHICLE_TYPE_ENUM, status: changeBefore.vehicleBelongType })}{getLabelName({ list: VEHICLE_TYPE_ENUM, status: changeAfter.vehicleBelongType })}
车辆所属部门{changeBefore.vehicleDepartmentName}{changeAfter.vehicleDepartmentName}
车辆归属人{changeBefore.employeeVehicleUserName}{changeAfter.employeeVehicleUserName}
车牌号{changeBefore.licenceNo}{changeAfter.licenceNo}
车牌类型{changeBefore.licenceTypeName}{changeAfter.licenceTypeName}
车辆类型{changeBefore.vehicleTypeName}{changeAfter.vehicleTypeName}
访问港区范围{changeBefore.gateLevelAuthArea && JSON.parse(changeBefore.gateLevelAuthArea).area.map(item => item.value).join("、")}{changeAfter.gateLevelAuthArea && JSON.parse(changeAfter.gateLevelAuthArea).area.map(item => item.value).join("、")}
访问开始时间{changeBefore.visitStartTime}{changeAfter.visitStartTime}
访问结束时间{changeBefore.visitEndTime}{changeAfter.visitEndTime}
行驶证照片
车辆照片
审批人{changeBefore.auditUserName}{changeAfter.auditUserName}
+
+ ) + } ); }; -const InfoModal = Connect([NS_STOCK_PERSONNEL_AND_VEHICLES], true)(InfoModalComponent); +const InfoModal = Connect([NS_VEHICLE_AUDIT], true)(InfoModalComponent); -export default Connect([NS_STOCK_PERSONNEL_AND_VEHICLES], true)(ApprovalRecords); +export default Connect([NS_VEHICLE_AUDIT], true)(ApprovalRecords); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockPersonnelAndVehicles/VehicleManagement/List/index.js b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockPersonnelAndVehicles/VehicleManagement/List/index.js index f315919..7f08a94 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockPersonnelAndVehicles/VehicleManagement/List/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockPersonnelAndVehicles/VehicleManagement/List/index.js @@ -12,9 +12,9 @@ import { getLabelName } from "zy-react-library/utils"; import { NS_STOCK_PERSONNEL_AND_VEHICLES } from "~/enumerate/namespace"; const VEHICLE_APPROVAL_STATUS_ENUM = [ - { value: "1", label: "审批中" }, - { value: "2", label: "通过" }, - { value: "3", label: "已驳回" }, + { bianma: "1", name: "审批中" }, + { bianma: "2", name: "通过" }, + { bianma: "3", name: "已驳回" }, ]; function List(props) { diff --git a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockVehicles/List/index.js b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockVehicles/List/index.js index bbfaa43..c779508 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockVehicles/List/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/ImportAndExportPortInfo/StockVehicles/List/index.js @@ -1,6 +1,6 @@ import useUrlState from "@ahooksjs/use-url-state"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Modal, Space } from "antd"; +import { Button, Space } from "antd"; import { useEffect } from "react"; import AddIcon from "zy-react-library/components/Icon/AddIcon"; import BackIcon from "zy-react-library/components/Icon/BackIcon"; @@ -12,7 +12,6 @@ import Table from "zy-react-library/components/Table"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import useTable from "zy-react-library/hooks/useTable"; import { getLabelName } from "zy-react-library/utils"; -import { CURRENT_IN_PORT_STATUS_ENUM } from "~/enumerate/constant"; import { NS_VEHICLE_APPLY } from "~/enumerate/namespace"; const APPROVAL_STATUS_ENUM = [ @@ -46,22 +45,6 @@ function List(props) { getData(); }, [urlState.departmentId]); - const onUpdateStatus = (record) => { - const message = record.statusFlag === 2 ? "关闭" : "开启"; - Modal.confirm({ - title: `${message}确认`, - content: `确定要${message}吗?`, - onOk: async () => { - // TODO - const { success } = await props["vehicleApplyUpdateStatus"]({ id: record.id }); - if (success) { - message.success(`${message}成功`); - getData(); - } - }, - }); - }; - return (
@@ -90,12 +73,6 @@ function List(props) { labelCol={{ span: 8 }} options={[ { name: "licenceNo", label: "车牌号" }, - { - name: "todo2", - label: "当前在港状态", - render: FORM_ITEM_RENDER_ENUM.SELECT, - items: CURRENT_IN_PORT_STATUS_ENUM, - }, { name: "auditFlag", label: "审批状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: APPROVAL_STATUS_ENUM }, { name: "gateLevelAuthAreaId", @@ -144,7 +121,7 @@ function List(props) { { title: "访问港区范围", dataIndex: "gateLevelAuthArea", - render: (_, record) => JSON.parse(record.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、"), + render: (_, record) => record.gateLevelAuthArea && JSON.parse(record.gateLevelAuthArea).area.map(item => item.value).join("、"), }, { title: "访问起始时间", dataIndex: "visitStartTime" }, { title: "访问结束时间", dataIndex: "visitEndTime" }, @@ -156,7 +133,7 @@ function List(props) { { title: "车辆开启状态", dataIndex: "statusFlag", - render: (_, record) => record.statusFlag === 2 ? "启用" : "停用", + render: (_, record) => record.statusFlag === 2 ? "正常" : "已拉黑", }, { title: "操作", @@ -175,19 +152,12 @@ function List(props) { - {record.auditFlag === 3 && (
- ) - } - 审批信息 - {recordsList.map((record, index) => ( - - ))} + + + + 车辆所属类型 + {getLabelName({ list: VEHICLE_TYPE_ENUM, status: changeBefore.vehicleBelongType })} + {getLabelName({ list: VEHICLE_TYPE_ENUM, status: changeAfter.vehicleBelongType })} + + + 车辆所属部门 + {changeBefore.vehicleDepartmentName} + {changeAfter.vehicleDepartmentName} + + {changeBefore.vehicleBelongType === 1 && ( + + 车辆归属人 + {changeBefore.employeeVehicleUserName} + {changeAfter.employeeVehicleUserName} + + )} + + 车牌号 + {changeBefore.licenceNo} + {changeAfter.licenceNo} + + + 车牌类型 + {changeBefore.licenceTypeName} + {changeAfter.licenceTypeName} + + + 车辆类型 + {changeBefore.vehicleTypeName} + {changeAfter.vehicleTypeName} + + + 访问港区范围 + {changeBefore.gateLevelAuthArea && JSON.parse(changeBefore.gateLevelAuthArea).area.map(item => item.value).join("、")} + {changeAfter.gateLevelAuthArea && JSON.parse(changeAfter.gateLevelAuthArea).area.map(item => item.value).join("、")} + + + 访问开始时间 + {changeBefore.visitStartTime} + {changeAfter.visitStartTime} + + + 访问结束时间 + {changeBefore.visitEndTime} + {changeAfter.visitEndTime} + + + 行驶证照片 + + + + + 车辆照片 + + + + + 审批人 + {changeBefore.auditUserName} + {changeAfter.auditUserName} + + + + + ) + } + {!props.isRecords + && ( + <> + 审批信息 + {recordsList.map((record, index) => ( +
+ +
+ ), + )} + + )} + ); } +function InfoModal(props) { + return ( + 取消, + ]} + > + + + ); +} + const ReviewModal = Connect([NS_VEHICLE_AUDIT], true)(ReviewModalComponent); -const InfoModal = Connect([NS_VEHICLE_AUDIT], true)(InfoModalComponent); +const PublicInfoModal = Connect([NS_VEHICLE_AUDIT], true)(InfoModalComponent); export default Connect([NS_VEHICLE_AUDIT], true)(ShareVehicles); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/PersonnelApproval/RelatedPersonnel/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/PersonnelApproval/RelatedPersonnel/index.js index 5a72350..fcc8a10 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/PersonnelApproval/RelatedPersonnel/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/PersonnelApproval/RelatedPersonnel/index.js @@ -94,28 +94,13 @@ function RelatedPersonnel(props) { } { infoModalVisible && ( - { setInfoModalVisible(false); + setCurrentId(""); }} - width={600} - footer={[ - , - ]} - loading={props.relatedPersonnel.relatedPersonnelLoading} - > - - + /> ) } { @@ -158,7 +143,7 @@ const ReviewModalComponent = (props) => { width={800} confirmLoading={props.relatedPersonnel.relatedPersonnelLoading} > - + { ); }; +function InfoModal(props) { + return ( + 取消, + ]} + > + + + ); +} + const ReviewModal = Connect([NS_RELATED_PERSONNEL], true)(ReviewModalComponent); -const InfoModal = Connect([NS_RELATED_PERSONNEL], true)(InfoModalComponent); +const PublicInfoModal = Connect([NS_RELATED_PERSONNEL], true)(InfoModalComponent); const ViewRejectReasonModal = Connect([NS_RELATED_PERSONNEL], true)(ViewRejectReasonModalComponent); export default Connect([NS_RELATED_PERSONNEL], true)(RelatedPersonnel); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/Add/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/Add/index.js index a12f1eb..8cdb57c 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/Add/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/Add/index.js @@ -9,23 +9,36 @@ import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import useUploadFile from "zy-react-library/hooks/useUploadFile"; import { ID_NUMBER, PHONE } from "zy-react-library/regular"; -import { NS_APPROVER_USER, NS_TEMPORARY_PERSONNEL } from "~/enumerate/namespace"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_APPROVER_USER, NS_FIRST_LEVEL_DOOR_INFO, NS_TEMPORARY_PERSONNEL } from "~/enumerate/namespace"; function Add(props) { const [form] = FormBuilder.useForm(); + const gateLevelAuthArea = FormBuilder.useWatch("gateLevelAuthArea", form); const { loading: uploadFileLoading, uploadFile } = useUploadFile(); const [approvalUserListAll, setApprovalUserListAll] = useState([]); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); const getApprovalUserListAll = async () => { const { data } = await props["approvalUserListAll"](); setApprovalUserListAll(data); }; + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"]({ hgAuthArea: gateLevelAuthArea }); + setFirstLevelDoorInfoListAll(data); + }; useEffect(() => { getApprovalUserListAll(); }, []); + useEffect(() => { + if (gateLevelAuthArea) { + getFirstLevelDoorInfoListAll(); + } + }, [gateLevelAuthArea]); + const onSubmit = async (values) => { const { filePath: userFaceUrl } = await uploadFile({ files: values.userFace, @@ -40,6 +53,7 @@ function Add(props) { { userPhone: values.userPhone }, { userCard: values.userCard }, ], + gateLevelAuthArea: JSON.stringify({ area: values.area }), }); if (success) { message.success("新增成功"); @@ -60,8 +74,40 @@ function Add(props) { { name: "userCard", label: "身份证号", rules: [{ pattern: ID_NUMBER, message: "请输入正确的身份证号" }] }, { name: "visitStartTime", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATE }, { name: "visitEndTime", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATE }, - { name: "gateLevelAuthArea", label: "访问港区", render: }, - { name: "mkmjId", label: "访问口门名称", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, // todo + { + name: "gateLevelAuthArea", + label: "访问港区", + render: ( + { + const area = { value: option.dictLabel, bianma: option.dictValue }; + form.setFieldValue("area", area); + }} + onChange={() => { + form.setFieldValue("mkmjId", ""); + form.setFieldValue("mkmjName", ""); + }} + /> + ), + }, + { name: "area", label: "访问港区", onlyForLabel: true }, + { + name: "mkmjId", + label: "访问口门名称", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: firstLevelDoorInfoListAll, + itemsField: { labelKey: "mkmjName", valueKey: "id" }, + componentProps: { + onChange: event => + form.setFieldValue("mkmjName", getLabelName({ + list: firstLevelDoorInfoListAll, + status: event, + idKey: "id", + nameKey: "mkmjName", + })), + }, + }, { name: "mkmjName", label: "访问口门名称", onlyForLabel: true }, { name: "reasonVisit", label: "来访事由", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, { @@ -138,4 +184,4 @@ function Add(props) { ); } -export default Connect([NS_TEMPORARY_PERSONNEL, NS_APPROVER_USER], true)(Add); +export default Connect([NS_TEMPORARY_PERSONNEL, NS_APPROVER_USER, NS_FIRST_LEVEL_DOOR_INFO], true)(Add); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/List/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/List/index.js index b2376ee..fa3f265 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/List/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/List/index.js @@ -13,7 +13,7 @@ import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import useGetFile from "zy-react-library/hooks/useGetFile"; import useTable from "zy-react-library/hooks/useTable"; import { getLabelName } from "zy-react-library/utils"; -import { NS_TEMPORARY_PERSONNEL } from "~/enumerate/namespace"; +import { NS_FIRST_LEVEL_DOOR_INFO, NS_TEMPORARY_PERSONNEL } from "~/enumerate/namespace"; const STATUS_ENUM = [ { bianma: "1", name: "审核中" }, @@ -26,6 +26,7 @@ function List(props) { const [reviewModalVisible, setReviewModalVisible] = useState(false); const [approvalDetailsModalVisible, setApprovalDetailsModalVisible] = useState(false); const [currentId, setCurrentId] = useState(""); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); const [form] = Search.useForm(); const { tableProps, getData } = useTable(props["temporaryPersonnelList"], { @@ -33,6 +34,14 @@ function List(props) { params: { processOrRecord: !props.isRecords ? 1 : 2 }, }); + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"](); + setFirstLevelDoorInfoListAll(data); + }; + useEffect(() => { + getFirstLevelDoorInfoListAll(); + }, []); + return ( { { label: "身份证号", children: info.personApplyList[0].userCard }, { label: "访问开始时间", children: info.visitStartTime }, { label: "访问结束时间", children: info.visitEndTime }, - { label: "访问港区", children: JSON.parse(info.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、") }, + { + label: "访问港区", + children: info.gateLevelAuthArea && JSON.parse(info.gateLevelAuthArea).area.map(item => item.value).join("、"), + }, { label: "访问口门名称", children: info.mkmjName }, { label: "来访事由", children: info.reasonVisit }, { label: "人脸照片", children: () }, @@ -356,4 +374,4 @@ const ApprovalDetailsModalComponent = (props) => { const ReviewModal = Connect([NS_TEMPORARY_PERSONNEL], true)(ReviewModalComponent); const ApprovalDetailsModal = Connect([NS_TEMPORARY_PERSONNEL], true)(ApprovalDetailsModalComponent); -export default Connect([NS_TEMPORARY_PERSONNEL], true)(List); +export default Connect([NS_TEMPORARY_PERSONNEL, NS_FIRST_LEVEL_DOOR_INFO], true)(List); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/View/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/View/index.js index c976878..0fce505 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/View/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryPersonnel/View/index.js @@ -41,7 +41,7 @@ function View(props) { { label: "身份证号", children: info.personApplyList[0].userCard }, { label: "访问开始时间", children: info.visitStartTime }, { label: "访问结束时间", children: info.visitEndTime }, - { label: "访问港区", children: JSON.parse(info.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、") }, + { label: "访问港区", children: info.gateLevelAuthArea && JSON.parse(info.gateLevelAuthArea).area.map(item => item.value).join("、") }, { label: "访问口门名称", children: info.mkmjName }, { label: "来访事由", children: info.reasonVisit, span: 2 }, { label: "人脸照片", children: (), span: 2 }, diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/Add/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/Add/index.js index 27e5c80..97f871d 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/Add/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/Add/index.js @@ -9,23 +9,36 @@ import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import useUploadFile from "zy-react-library/hooks/useUploadFile"; import { ID_NUMBER, LICENSE_PLATE_NUMBER, PHONE } from "zy-react-library/regular"; -import { NS_APPROVER_USER, NS_TEMPORARY_VEHICLE } from "~/enumerate/namespace"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_APPROVER_USER, NS_FIRST_LEVEL_DOOR_INFO, NS_TEMPORARY_VEHICLE } from "~/enumerate/namespace"; function Add(props) { const [form] = FormBuilder.useForm(); + const gateLevelAuthArea = FormBuilder.useWatch("gateLevelAuthArea", form); const { loading: uploadFileLoading, uploadFile } = useUploadFile(); const [approvalUserListAll, setApprovalUserListAll] = useState([]); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); const getApprovalUserListAll = async () => { const { data } = await props["approvalUserListAll"](); setApprovalUserListAll(data); }; + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"]({ hgAuthArea: gateLevelAuthArea }); + setFirstLevelDoorInfoListAll(data); + }; useEffect(() => { getApprovalUserListAll(); }, []); + useEffect(() => { + if (gateLevelAuthArea) { + getFirstLevelDoorInfoListAll(); + } + }, [gateLevelAuthArea]); + const onSubmit = async (values) => { const { id: drivingLicenseId } = await uploadFile({ single: false, @@ -41,6 +54,7 @@ function Add(props) { ...values, drivingLicenseId, attachmentId, + gateLevelAuthArea: JSON.stringify({ area: values.area }), }); if (success) { message.success("新增成功"); @@ -57,8 +71,8 @@ function Add(props) { options={[ { label: "申请信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { name: "employeeVehicleUserName", label: "访问人姓名" }, - { name: "todo2", label: "手机号", rules: [{ pattern: PHONE, message: "请输入正确的手机号" }] }, - { name: "todo3", label: "身份证号", rules: [{ pattern: ID_NUMBER, message: "请输入正确的身份证号" }] }, + { name: "lsUserPhone", label: "手机号", rules: [{ pattern: PHONE, message: "请输入正确的手机号" }] }, + { name: "lsUserIdcard", label: "身份证号", rules: [{ pattern: ID_NUMBER, message: "请输入正确的身份证号" }] }, { name: "licenceNo", label: "车牌号", rules: [{ pattern: LICENSE_PLATE_NUMBER, message: "请输入正确的车牌号" }] }, { name: "licenceType", @@ -84,8 +98,40 @@ function Add(props) { { name: "vehicleTypeName", label: "车辆类型", onlyForLabel: true }, { name: "visitStartTime", label: "访问开始时间", render: FORM_ITEM_RENDER_ENUM.DATE }, { name: "visitEndTime", label: "访问结束时间", render: FORM_ITEM_RENDER_ENUM.DATE }, - { name: "gateLevelAuthArea", label: "访问港区", render: }, - { name: "mkmjId", label: "访问口门名称", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [] }, // todo + { + name: "gateLevelAuthArea", + label: "访问港区", + render: ( + { + const area = { value: option.dictLabel, bianma: option.dictValue }; + form.setFieldValue("area", area); + }} + onChange={() => { + form.setFieldValue("mkmjId", ""); + form.setFieldValue("mkmjName", ""); + }} + /> + ), + }, + { name: "area", label: "访问港区", onlyForLabel: true }, + { + name: "mkmjId", + label: "访问口门名称", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: firstLevelDoorInfoListAll, + itemsField: { labelKey: "mkmjName", valueKey: "id" }, + componentProps: { + onChange: event => + form.setFieldValue("mkmjName", getLabelName({ + list: firstLevelDoorInfoListAll, + status: event, + idKey: "id", + nameKey: "mkmjName", + })), + }, + }, { name: "mkmjName", label: "访问口门名称", onlyForLabel: true }, { name: "reasonVisit", label: "来访事由", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, { @@ -173,4 +219,4 @@ function Add(props) { ); } -export default Connect([NS_TEMPORARY_VEHICLE, NS_APPROVER_USER], true)(Add); +export default Connect([NS_TEMPORARY_VEHICLE, NS_APPROVER_USER, NS_FIRST_LEVEL_DOOR_INFO], true)(Add); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/List/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/List/index.js index 30532c8..fdf616e 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/List/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/List/index.js @@ -13,7 +13,7 @@ import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import useGetFile from "zy-react-library/hooks/useGetFile"; import useTable from "zy-react-library/hooks/useTable"; import { getLabelName } from "zy-react-library/utils"; -import { NS_TEMPORARY_VEHICLE, NS_VEHICLE_AUDIT } from "~/enumerate/namespace"; +import { NS_FIRST_LEVEL_DOOR_INFO, NS_TEMPORARY_VEHICLE, NS_VEHICLE_AUDIT } from "~/enumerate/namespace"; const STATUS_ENUM = [ { bianma: "1", name: "审核中" }, @@ -26,6 +26,7 @@ function List(props) { const [reviewModalVisible, setReviewModalVisible] = useState(false); const [approvalDetailsModalVisible, setApprovalDetailsModalVisible] = useState(false); const [currentId, setCurrentId] = useState(""); + const [firstLevelDoorInfoListAll, setFirstLevelDoorInfoListAll] = useState([]); const [form] = Search.useForm(); const { tableProps, getData } = useTable(props["vehicleAuditList"], { @@ -33,6 +34,14 @@ function List(props) { params: { vehicleBelongTypeArr: "6", processOrRecord: !props.isRecords ? 1 : 2 }, }); + const getFirstLevelDoorInfoListAll = async () => { + const { data } = await props["firstLevelDoorInfoListAll"](); + setFirstLevelDoorInfoListAll(data); + }; + useEffect(() => { + getFirstLevelDoorInfoListAll(); + }, []); + return (
{ { label: "车辆类型", children: info.vehicleTypeName }, { label: "访问开始时间", children: info.visitStartTime }, { label: "访问结束时间", children: info.visitEndTime }, - { label: "访问港区", children: JSON.parse(info.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、") }, + { + label: "访问港区", + children: info.gateLevelAuthArea && JSON.parse(info.gateLevelAuthArea).area.map(item => item.value).join("、"), + }, { label: "访问口门名称", children: info.mkmjName }, { label: "来访事由", children: info.reasonVisit }, { label: "行驶证照片", children: () }, @@ -371,4 +389,4 @@ const ApprovalDetailsModalComponent = (props) => { const ReviewModal = Connect([NS_VEHICLE_AUDIT], true)(ReviewModalComponent); const ApprovalDetailsModal = Connect([NS_TEMPORARY_VEHICLE], true)(ApprovalDetailsModalComponent); -export default Connect([NS_VEHICLE_AUDIT], true)(List); +export default Connect([NS_VEHICLE_AUDIT, NS_FIRST_LEVEL_DOOR_INFO], true)(List); diff --git a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/View/index.js b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/View/index.js index a9adf5e..61950d6 100644 --- a/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/View/index.js +++ b/src/pages/Container/Supervision/FirstLevelDoor/PortEntryApproval/TemporaryVisitor/TemporaryVehicle/View/index.js @@ -51,7 +51,7 @@ function View(props) { { label: "车辆类型", children: info.vehicleTypeName }, { label: "访问开始时间", children: info.visitStartTime }, { label: "访问结束时间", children: info.visitEndTime }, - { label: "访问港区", children: JSON.parse(info.gateLevelAuthArea)?.area?.map(item => item.value)?.join("、") }, + { label: "访问港区", children: info.gateLevelAuthArea && JSON.parse(info.gateLevelAuthArea).area.map(item => item.value).join("、") }, { label: "访问口门名称", children: info.mkmjName }, { label: "来访事由", children: info.reasonVisit, span: 2 }, { label: "行驶证照片", children: (), span: 2 },