Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/pages/Container/Stakeholder/FirstLevelDoor/VehicleApplication/List/index.js
master^2
dearLin 2026-05-27 11:08:03 +08:00
commit a21d441ced
16 changed files with 104 additions and 55 deletions

View File

@ -20,13 +20,14 @@ module.exports = {
}, },
}, },
// 应用唯一标识符 // 应用唯一标识符
appIdentifier: "primeport-h5", appIdentifier: "primeport",
// 应用上下文注入全局变量 // 应用上下文注入全局变量
contextInject: { contextInject: {
// 应用Key // 应用Key
appKey: "", appKey: "",
// fileUrl: "http://192.168.20.240:9787/mnt/", // fileUrl: "http://192.168.20.240:9787/mnt/",
fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/", // fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/",
fileUrl: "https://skqhdg.porthebei.com:9004/file/uploadFiles2/",
}, },
// public/index.html注入全局变量 // public/index.html注入全局变量
windowInject: { windowInject: {

View File

@ -6,8 +6,8 @@
"license": "MIT", "license": "MIT",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"serve": "node node_modules/@cqsjjb/scripts/webpack.dev.server.js", "serve": "node node_modules/@cqsjjb/scripts/rspack.dev.server.js",
"build": "node node_modules/@cqsjjb/scripts/webpack.build.js", "build": "node node_modules/@cqsjjb/scripts/rspack.build.js",
"push": "jjb-cmd push java production", "push": "jjb-cmd push java production",
"clean-cache": "rimraf node_modules/.cache/webpack", "clean-cache": "rimraf node_modules/.cache/webpack",
"serve:development": "cross-env NODE_ENV=development npm run serve", "serve:development": "cross-env NODE_ENV=development npm run serve",

View File

@ -24,3 +24,8 @@ export const approvalUserAdd = declareRequest(
"approvalUserLoading", "approvalUserLoading",
`Post > @/primeport/mkmjApprovalUser/save`, `Post > @/primeport/mkmjApprovalUser/save`,
); );
export const checkExistByUserId = declareRequest(
"approvalUserLoading",
`Get > /primeport/mkmjApprovalUser/checkExistByUserId/{userId}`,
);

View File

@ -176,23 +176,23 @@ function Add(props) {
), ),
}, },
{ name: "area", label: "访问港区", onlyForLabel: true }, { name: "area", label: "访问港区", onlyForLabel: true },
{ // {
name: "mkmjId", // name: "mkmjId",
label: "访问口门名称", // label: "访问口门名称",
render: FORM_ITEM_RENDER_ENUM.SELECT, // render: FORM_ITEM_RENDER_ENUM.SELECT,
items: firstLevelDoorInfoListAll, // items: firstLevelDoorInfoListAll,
itemsField: { labelKey: "mkmjName", valueKey: "id" }, // itemsField: { labelKey: "mkmjName", valueKey: "id" },
componentProps: { // componentProps: {
onChange: event => // onChange: event =>
form.setFieldValue("mkmjName", getLabelName({ // form.setFieldValue("mkmjName", getLabelName({
list: firstLevelDoorInfoListAll, // list: firstLevelDoorInfoListAll,
status: event, // status: event,
idKey: "id", // idKey: "id",
nameKey: "mkmjName", // nameKey: "mkmjName",
})), // })),
}, // },
}, // },
{ name: "mkmjName", label: "访问口门名称", onlyForLabel: true }, // { name: "mkmjName", label: "访问口门名称", onlyForLabel: true },
{ {
customizeRender: true, customizeRender: true,
span: 24, span: 24,

View File

@ -32,7 +32,7 @@ function List(props) {
<Search <Search
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
options={[ options={[
{ name: "todo1", label: "姓名" }, { name: "employeePersonUserName", label: "姓名" },
{ name: "projectName", label: "项目名称" }, { name: "projectName", label: "项目名称" },
{ {
name: "auditFlag", name: "auditFlag",
@ -209,10 +209,17 @@ const ViewModalComponent = (props) => {
{ label: "项目人员数", children: info.personApplyList?.length }, { label: "项目人员数", children: info.personApplyList?.length },
{ label: "申请时间", children: info.applyTime }, { label: "申请时间", children: info.applyTime },
{ label: "申请状态", children: getLabelName({ list: ENCLOSED_AREA_AUDIT_STATUS_ENUM, status: info.auditFlag }) }, { label: "申请状态", children: getLabelName({ list: ENCLOSED_AREA_AUDIT_STATUS_ENUM, status: info.auditFlag }) },
...(
info.auditFlag === 3 ? [
{ label: "驳回原因", children: info.reasonsRefusal },
] :[]
),
{ label: "申请人签字", children: (<PreviewImg files={info.informSignFile} />) }, { label: "申请人签字", children: (<PreviewImg files={info.informSignFile} />) },
]} ]}
/> />
<Divider orientation="left">人员信息</Divider> <Divider orientation="left">人员信息</Divider>
<Table <Table
options={false} options={false}
disabledResizer={true} disabledResizer={true}

View File

@ -142,6 +142,7 @@ function List(props) {
} }
const ViewRejectReasonModal = (props) => { const ViewRejectReasonModal = (props) => {
return ( return (
<Modal <Modal
open open
@ -167,11 +168,12 @@ const ViewRejectReasonModal = (props) => {
const ViewModalComponent = (props) => { const ViewModalComponent = (props) => {
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
console.log(props);
const { loading: getFileLoading, getFile } = useGetFile(); const { loading: getFileLoading, getFile } = useGetFile();
const getData = async () => { const getData = async () => {
const { data } = await props["vehicleApplyInfo"]({ id: props.id }); const { data } = await props["vehicleApplyInfo"]({ id: props.id });
const drivingLicenseFile = await getFile({ const drivingLicenseFile = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM[601], eqType: UPLOAD_FILE_TYPE_ENUM[601],
eqForeignKey: data.drivingLicenseId, eqForeignKey: data.drivingLicenseId,

View File

@ -12,6 +12,7 @@ import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_APPROVER_USER } from "~/enumerate/namespace"; import { NS_APPROVER_USER } from "~/enumerate/namespace";
import {checkExistByUserId} from "~/api/approverUser";
function ApproverUser(props) { function ApproverUser(props) {
const [addModalVisible, setAddModalVisible] = useState(false); const [addModalVisible, setAddModalVisible] = useState(false);
@ -115,6 +116,7 @@ function ApproverUser(props) {
setAddModalVisible(false); setAddModalVisible(false);
setCurrentId(""); setCurrentId("");
}} }}
checkExistByUserId={props[checkExistByUserId]}
id={currentId} id={currentId}
getData={getData} getData={getData}
/> />
@ -191,6 +193,8 @@ function AddModalComponent(props) {
form.setFieldValue("deptName", label); form.setFieldValue("deptName", label);
}} }}
onChange={() => { onChange={() => {
form.setFieldValue("userId", ""); form.setFieldValue("userId", "");
form.setFieldValue("userName", ""); form.setFieldValue("userName", "");
form.setFieldValue("corpId", ""); form.setFieldValue("corpId", "");
@ -213,6 +217,14 @@ function AddModalComponent(props) {
form.setFieldValue("userName", label); form.setFieldValue("userName", label);
}} }}
onGetOption={(option) => { onGetOption={(option) => {
props.checkExistByUserId({userId:option.id}).then((res) => {
if(res.data){
if(!res.data.available){
form.setFieldValue("userId", undefined);
message.warning(res.data.availableMessage)
}
}
})
form.setFieldValue("corpId", option.corpinfoId); form.setFieldValue("corpId", option.corpinfoId);
form.setFieldValue("corpName", option.corpinfoName); form.setFieldValue("corpName", option.corpinfoName);
form.setFieldValue("postId", option.postId); form.setFieldValue("postId", option.postId);

View File

@ -11,8 +11,8 @@ import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { buildPlayableVideoSource } from "~/utils/video"; import { buildPlayableVideoSource } from "~/utils/video";
const IS_ONLINE_ENUM = [ const IS_ONLINE_ENUM = [
{ name: "", bianma: "0" }, { name: "离线", bianma: "0" },
{ name: "", bianma: "1" }, { name: "在线", bianma: "1" },
]; ];
// 巡屏页: // 巡屏页:
// 1. 左侧树控制参与巡屏的视频范围 // 1. 左侧树控制参与巡屏的视频范围

View File

@ -13,7 +13,7 @@ import useTable from "zy-react-library/hooks/useTable";
import { getLabelName } from "zy-react-library/utils"; import { getLabelName } from "zy-react-library/utils";
import { NS_FIRST_LEVEL_DOOR_INFO } from "~/enumerate/namespace"; import { NS_FIRST_LEVEL_DOOR_INFO } from "~/enumerate/namespace";
import VideoPlayModal from "./components/VideoPlay"; import VideoPlayModal from "./components/VideoPlay";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
const IS_ONLINE_ENUM = [ const IS_ONLINE_ENUM = [
{ name: "否", bianma: "0" }, { name: "否", bianma: "0" },
{ name: "是", bianma: "1" }, { name: "是", bianma: "1" },
@ -92,6 +92,8 @@ function List(props) {
onFinish={getData} onFinish={getData}
options={[ options={[
{ name: "videoResourceName", label: "视频名称" }, { name: "videoResourceName", label: "视频名称" },
{ name: "eqIsOnline", label: "是否在线", render:FORM_ITEM_RENDER_ENUM.SELECT,items:IS_ONLINE_ENUM },
]} ]}
/> />
<Table <Table

View File

@ -301,14 +301,14 @@ const InfoModalComponent = (props) => {
{ {
label: "地理位置", label: "地理位置",
children: ( children: (
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <Button type="text" style={{ display: "flex", alignItems: "center", gap: "8px" }} onClick={() => {
<span>{info.longitude}</span>
<span>{info.latitude}</span>
<LocationIcon onClick={() => {
setMapVisible(true); setMapVisible(true);
}} }}>
/> <span>{info.longitude}</span>
</div> <span>--</span>
<span>{info.latitude}</span>
</Button>
), ),
}, },
{ label: "闸机状态", children: getLabelName({ list: FARE_GATE_STATUS_ENUM, status: info.gateStatus }) }, { label: "闸机状态", children: getLabelName({ list: FARE_GATE_STATUS_ENUM, status: info.gateStatus }) },

View File

@ -227,7 +227,7 @@ const AddModalComponent = (props) => {
label: "通道类型", label: "通道类型",
render: ( render: (
<DictionarySelect <DictionarySelect
dictValue="HGKM_MKMJ_PASSAGE_TYPE" dictValue="HGKM_MKMJ_TYPE"
onGetLabel={label => form.setFieldValue("passageTypeName", label)} onGetLabel={label => form.setFieldValue("passageTypeName", label)}
/> />
), ),
@ -276,14 +276,14 @@ const InfoModalComponent = (props) => {
{ {
label: "地理位置", label: "地理位置",
children: ( children: (
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <Button type="text" style={{ display: "flex", alignItems: "center", gap: "8px" }} onClick={() => {
<span>{info.longitude}</span>
<span>{info.latitude}</span>
<LocationIcon onClick={() => {
setMapVisible(true); setMapVisible(true);
}} }}>
/> <span>{info.longitude}</span>
</div> <span>--</span>
<span>{info.latitude}</span>
</Button>
), ),
}, },
]} ]}

View File

@ -308,14 +308,14 @@ function InfoModalComponent(props) {
{ {
label: "位置", label: "位置",
children: ( children: (
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <Button type="text" style={{ display: "flex", alignItems: "center", gap: "8px" }} onClick={() => {
<span>{info.longitude}</span>
<span>{info.latitude}</span>
<LocationIcon onClick={() => {
setMapVisible(true); setMapVisible(true);
}} }}>
/> <span>{info.longitude}</span>
</div> <span>--</span>
<span>{info.latitude}</span>
</Button>
), ),
}, },
]} ]}

View File

@ -152,6 +152,19 @@ function List(props) {
); );
} }
const formatSubmitDate = (value) => {
if (!value) {
return value;
}
if (typeof value === "string") {
return value.includes("T") ? value.split("T")[0] : value;
}
if (typeof value?.format === "function") {
return value.format("YYYY-MM-DD");
}
return value;
};
const AddModalComponent = (props) => { const AddModalComponent = (props) => {
const { info } = props; const { info } = props;
const isEdit = !!info.id; const isEdit = !!info.id;
@ -160,9 +173,17 @@ const AddModalComponent = (props) => {
const onSubmit = async (values) => { const onSubmit = async (values) => {
let outsideSuccess = false; let outsideSuccess = false;
const submitInspectCarList = (values.inspectCarList || []).map((item) => ({
...item,
visitEndTime: formatSubmitDate(item.visitEndTime),
}));
const submitValues = {
...values,
inspectCarList: submitInspectCarList,
};
if (!isEdit) { if (!isEdit) {
const { success } = await props["inspectDepartmentVehiclesAdd"]({ const { success } = await props["inspectDepartmentVehiclesAdd"]({
...values, ...submitValues,
vehicleBelongType: 7, vehicleBelongType: 7,
}); });
outsideSuccess = success; outsideSuccess = success;
@ -170,8 +191,8 @@ const AddModalComponent = (props) => {
else { else {
const { success } = await props["inspectDepartmentVehiclesUpdate"]({ const { success } = await props["inspectDepartmentVehiclesUpdate"]({
id: info.id, id: info.id,
...values, ...submitValues,
...values.inspectCarList[0], ...submitInspectCarList[0],
vehicleBelongType: 7, vehicleBelongType: 7,
}); });
outsideSuccess = success; outsideSuccess = success;
@ -191,11 +212,11 @@ const AddModalComponent = (props) => {
width={600} width={600}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
// confirmLoading={props.vehicleApply.vehicleApplyLoading} confirmLoading={props.vehicleApply.vehicleApplyLoading}
> >
<FormBuilder <FormBuilder
form={form} form={form}
// loading={props.vehicleApply.vehicleApplyLoading} loading={props.vehicleApply.vehicleApplyLoading}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
span={24} span={24}

View File

@ -123,7 +123,7 @@ function List(props) {
重新申请 重新申请
</Button> </Button>
)} )}
{props.permission(props.delBtn || "jgd-io-personal-vehicle-del") && ( {(props.permission(props.delBtn || "jgd-io-personal-vehicle-del") && record.auditFlag ===2) && (
<Button <Button
type="link" type="link"
danger danger

View File

@ -18,8 +18,7 @@ function List(props) {
<Search <Search
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
options={[ options={[
{ name: "name", label: "姓名" }, { name: "name", label: "相关方名称" },
{ name: "projectName", label: "项目名称" },
]} ]}
onFinish={getData} onFinish={getData}
form={form} form={form}

View File

@ -39,8 +39,8 @@ function RelatedPersonnel(props) {
form={form} form={form}
onFinish={getData} onFinish={getData}
options={[ options={[
{ name: "todo1", label: "姓名" }, { name: "employeePersonUserName", label: "姓名" },
{ name: "todo2", label: "项目名称" }, { name: "projectName", label: "项目名称" },
]} ]}
/> />
<Table <Table