dev_1.0.1
tangjie 2026-07-03 17:55:26 +08:00
parent d850e828a3
commit 1be6126075
8 changed files with 78 additions and 50 deletions

View File

@ -0,0 +1,43 @@
import { Button, Upload } from "antd";
import { useState } from "react";
/**
* 上传按钮组件
* @param {Object} props
* @param {string} [props.action] - 上传地址默认从环境变量获取
* @param {function} [props.onSuccess] - 上传成功回调 (response) => void
* @param {Object} [props.uploadProps] - 透传给 antd Upload 的其他属性
* @param {string} [props.children] - 按钮文字默认"上传"
* @param {Object} [props.buttonProps] - 透传给 antd Button 的其他属性
*/
export default function UploadButton({
action = `${window.process.env.app.API_HOST}/safetyEval/file/upload`,
onSuccess,
uploadProps,
children = "上传",
buttonProps,
}) {
const [uploading, setUploading] = useState(false);
return (
<Upload
showUploadList={false}
action={action}
onChange={(info) => {
if (info.file.status === "uploading") {
setUploading(true);
} else if (info.file.status === "done") {
setUploading(false);
onSuccess?.(info.file.response?.data, info.file);
} else if (info.file.status === "error") {
setUploading(false);
}
}}
{...uploadProps}
>
<Button type="link" size="small" loading={uploading} {...buttonProps}>
{children}
</Button>
</Upload>
);
}

View File

@ -42,7 +42,7 @@ function saveState(tabs, activeKey) {
sessionStorage.setItem(ACTIVE_KEY, activeKey || ""); sessionStorage.setItem(ACTIVE_KEY, activeKey || "");
} }
export default function SimulatedLayout({ children }) { export default function SimulatedLayout({ children, history }) {
const [collapsed, setCollapsed] = useState(false); const [collapsed, setCollapsed] = useState(false);
const [state, setState] = useState(loadState); const [state, setState] = useState(loadState);
const currentPath = window.location.pathname; const currentPath = window.location.pathname;

View File

@ -1,4 +1,4 @@
import React from "react"; import React from "react";
import { import {
DashboardOutlined, DashboardOutlined,
FileProtectOutlined, FileProtectOutlined,
@ -29,6 +29,16 @@ const menuItems = [
label: "监管端", label: "监管端",
icon: <DashboardOutlined />, icon: <DashboardOutlined />,
children: [ children: [
{
key: "/safetyEval/container/Supervision/Dashboard",
label: "机构端首页",
icon: <DashboardOutlined />,
},
{
key: "/safetyEval/container/Supervision/Cockpit",
label: "监管端首页",
icon: <PieChartOutlined />,
},
{ {
key: "/safetyEval/container/Supervision/BasicInfo", key: "/safetyEval/container/Supervision/BasicInfo",
label: "基础信息管理", label: "基础信息管理",

View File

@ -82,7 +82,11 @@ export default function BasicInfoStep({ form, disabled }) {
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={12}> <Col span={12}>
<Form.Item name="fixedAssetAmount" label="固定资产总值(万元)"> <Form.Item
name="fixedAssetAmount"
label="固定资产总值(万元)"
rules={[{ required: !disabled, message: "请输入固定资产总值" }]}
>
<InputNumber style={{ width: "100%" }} min={0} placeholder="万元" /> <InputNumber style={{ width: "100%" }} min={0} placeholder="万元" />
</Form.Item> </Form.Item>
</Col> </Col>
@ -118,7 +122,11 @@ export default function BasicInfoStep({ form, disabled }) {
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={24}> <Col span={24}>
<AttachmentUpload name="attachmentUrl" label="上传附件" disabled={disabled} /> <AttachmentUpload
name="attachmentUrl"
label="上传附件"
disabled={disabled}
/>
</Col> </Col>
</Row> </Row>
</Form> </Form>

View File

@ -1,6 +1,7 @@
import { Button, Image, Space, Table, Upload } from "antd"; import { Button, Image, Space, Table } from "antd";
import { useState } from "react"; import { useState } from "react";
import UploadButton from "~/components/UploadButton";
import OrgEquipmentSelectModal from "./OrgEquipmentSelectModal"; import OrgEquipmentSelectModal from "./OrgEquipmentSelectModal";
export default function EquipmentStep({ export default function EquipmentStep({
@ -55,20 +56,10 @@ export default function EquipmentStep({
</Button> </Button>
) : ( ) : (
!disabled && ( !disabled && (
<Upload <UploadButton
showUploadList={false} onSuccess={(data) => onUploadCalibration?.(record, data)}
action={`${window.process.env.app.API_HOST}/safetyEval/file/upload`} buttonProps={{ children: "上传报告" }}
onChange={(info) => { />
if (info.file.status === "done") {
const data = info.file.response?.data;
if (data) {
onUploadCalibration?.(record, data);
}
}
}}
>
<Button type="link" size="small">上传报告</Button>
</Upload>
) )
)} )}
</Space> </Space>

View File

@ -1,5 +1,6 @@
import { Button, Image, Space, Table, Tag, Upload } from "antd"; import { Button, Image, Space, Table, Tag } from "antd";
import { useState } from "react"; import { useState } from "react";
import UploadButton from "~/components/UploadButton";
export default function MaterialStep({ export default function MaterialStep({
materials = [], materials = [],
@ -59,20 +60,9 @@ export default function MaterialStep({
</Button> </Button>
) : ( ) : (
!disabled && ( !disabled && (
<Upload <UploadButton
showUploadList={false} onSuccess={(data) => onUpload?.(record, data)}
action={`${window.process.env.app.API_HOST}/safetyEval/file/upload`} />
onChange={(info) => {
if (info.file.status === "done") {
const data = info.file.response?.data;
if (data) {
onUpload?.(record, data);
}
}
}}
>
<Button type="link" size="small">上传</Button>
</Upload>
) )
)} )}
</Space> </Space>

View File

@ -357,21 +357,7 @@ function FilingFormPage(props) {
title={MODE_TITLE[mode] || "资质备案表单"} title={MODE_TITLE[mode] || "资质备案表单"}
history={props.history} history={props.history}
previous previous
extra={
<Button
onClick={() =>
goFilingList(
mode === FILING_FORM_MODE.FILED
? "filed"
: mode === FILING_FORM_MODE.CHANGE
? "change"
: "application",
)
}
>
返回列表
</Button>
}
> >
<Spin spinning={loading || submitting}> <Spin spinning={loading || submitting}>
<Tabs <Tabs

View File

@ -10,7 +10,7 @@
scrollbar-width: thin; scrollbar-width: thin;
} }
body { body {
height: 100%; margin: 0;
overflow-y: hidden; overflow-y: hidden;
} }
.micro-temp-layout-container .micro-temp-lay-container-bottom { .micro-temp-layout-container .micro-temp-lay-container-bottom {