Compare commits

..

2 Commits

37 changed files with 512 additions and 215 deletions

2
.gitignore vendored
View File

@ -6,7 +6,7 @@
# production # production
/dist /dist
/demo /demo
/.trae/
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*

View File

@ -10,7 +10,7 @@ module.exports = {
javaGitBranch: "<branch-name>", javaGitBranch: "<branch-name>",
// 本地联调 safety-eval-servicecontext-path: /safety-eval默认端口 8095 // 本地联调 safety-eval-servicecontext-path: /safety-eval默认端口 8095
// 可通过环境变量覆盖: SAFETY_EVAL_API_HOST=http://192.168.x.x:8095 // 可通过环境变量覆盖: SAFETY_EVAL_API_HOST=http://192.168.x.x:8095
API_HOST: process.env.SAFETY_EVAL_API_HOST || "http://192.168.0.124:8095", API_HOST: "http://192.168.0.124:8095",
}, },
production: { production: {
// 应用后端分支名称,部署上线需要 // 应用后端分支名称,部署上线需要

View File

@ -29,7 +29,7 @@
"@rc-component/motion": "^1.0.0", "@rc-component/motion": "^1.0.0",
"@rc-component/util": "^1.11.1", "@rc-component/util": "^1.11.1",
"ahooks": "^3.9.5", "ahooks": "^3.9.5",
"antd": "^5.11.2", "antd": "^5.29.2",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"qrcode.react": "^4.2.0", "qrcode.react": "^4.2.0",

View File

@ -42,7 +42,7 @@ importers:
specifier: ^3.9.5 specifier: ^3.9.5
version: 3.9.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 3.9.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
antd: antd:
specifier: ^5.11.2 specifier: ^5.29.2
version: 5.29.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 5.29.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
dayjs: dayjs:
specifier: ^1.11.7 specifier: ^1.11.7
@ -1322,30 +1322,35 @@ packages:
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@napi-rs/canvas-linux-arm64-musl@0.1.100': '@napi-rs/canvas-linux-arm64-musl@0.1.100':
resolution: {integrity: sha512-K3mDW66N+xT2/V439u1alFANiBUjdEx2gLiNYnCmUsva5jZMxWTjafBYwTzYK+EMFMHrUoabuU+T1BIP5CgbYQ==} resolution: {integrity: sha512-K3mDW66N+xT2/V439u1alFANiBUjdEx2gLiNYnCmUsva5jZMxWTjafBYwTzYK+EMFMHrUoabuU+T1BIP5CgbYQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@napi-rs/canvas-linux-riscv64-gnu@0.1.100': '@napi-rs/canvas-linux-riscv64-gnu@0.1.100':
resolution: {integrity: sha512-mooqUBTIsccZpnoQC4NgrC1v6C1vof39etLNMnBwCY+p0gajWJvAHLGQ6g/gGyS5YrpDW+GefSN4+Cvcr08UWw==} resolution: {integrity: sha512-mooqUBTIsccZpnoQC4NgrC1v6C1vof39etLNMnBwCY+p0gajWJvAHLGQ6g/gGyS5YrpDW+GefSN4+Cvcr08UWw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [glibc]
'@napi-rs/canvas-linux-x64-gnu@0.1.100': '@napi-rs/canvas-linux-x64-gnu@0.1.100':
resolution: {integrity: sha512-1eCvkDCazm7FFhsT7DfGOdSaHgZVK3bt/dSBl5EWHOWmnz+I7j8tPseJqqD81NF+MH21jKUK4wQSDjN0mdhnTg==} resolution: {integrity: sha512-1eCvkDCazm7FFhsT7DfGOdSaHgZVK3bt/dSBl5EWHOWmnz+I7j8tPseJqqD81NF+MH21jKUK4wQSDjN0mdhnTg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@napi-rs/canvas-linux-x64-musl@0.1.100': '@napi-rs/canvas-linux-x64-musl@0.1.100':
resolution: {integrity: sha512-20arT6lnI19S68qNlii73TSEDbECNgzMz2EpldC1V3mZFuRkeujXkcebRk0LRJe9SEUAooYiLokfMViY8IX7yA==} resolution: {integrity: sha512-20arT6lnI19S68qNlii73TSEDbECNgzMz2EpldC1V3mZFuRkeujXkcebRk0LRJe9SEUAooYiLokfMViY8IX7yA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@napi-rs/canvas-win32-arm64-msvc@0.1.100': '@napi-rs/canvas-win32-arm64-msvc@0.1.100':
resolution: {integrity: sha512-DZFFT1wIAg37LJw37yhMRFfjATd3vTQzjZ1Yki8u2vhO6Hi5VE6BVaGQ1aaDu7xb4iMErz+9EOwjpS7xcxFeBw==} resolution: {integrity: sha512-DZFFT1wIAg37LJw37yhMRFfjATd3vTQzjZ1Yki8u2vhO6Hi5VE6BVaGQ1aaDu7xb4iMErz+9EOwjpS7xcxFeBw==}
@ -1413,48 +1418,56 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-arm64-musl@0.35.0': '@oxfmt/binding-linux-arm64-musl@0.35.0':
resolution: {integrity: sha512-5Okqi+uhYFxwKz8hcnUftNNwdm8BCkf6GSCbcz9xJxYMm87k1E4p7PEmAAbhLTk7cjSdDre6TDL0pDzNX+Y22Q==} resolution: {integrity: sha512-5Okqi+uhYFxwKz8hcnUftNNwdm8BCkf6GSCbcz9xJxYMm87k1E4p7PEmAAbhLTk7cjSdDre6TDL0pDzNX+Y22Q==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@oxfmt/binding-linux-ppc64-gnu@0.35.0': '@oxfmt/binding-linux-ppc64-gnu@0.35.0':
resolution: {integrity: sha512-9k66pbZQXM/lBJWys3Xbc5yhl4JexyfqkEf/tvtq8976VIJnLAAL3M127xHA3ifYSqxdVHfVGTg84eiBHCGcNw==} resolution: {integrity: sha512-9k66pbZQXM/lBJWys3Xbc5yhl4JexyfqkEf/tvtq8976VIJnLAAL3M127xHA3ifYSqxdVHfVGTg84eiBHCGcNw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-riscv64-gnu@0.35.0': '@oxfmt/binding-linux-riscv64-gnu@0.35.0':
resolution: {integrity: sha512-aUcY9ofKPtjO52idT6t0SAQvEF6ctjzUQa1lLp7GDsRpSBvuTrBQGeq0rYKz3gN8dMIQ7mtMdGD9tT4LhR8jAQ==} resolution: {integrity: sha512-aUcY9ofKPtjO52idT6t0SAQvEF6ctjzUQa1lLp7GDsRpSBvuTrBQGeq0rYKz3gN8dMIQ7mtMdGD9tT4LhR8jAQ==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-riscv64-musl@0.35.0': '@oxfmt/binding-linux-riscv64-musl@0.35.0':
resolution: {integrity: sha512-C6yhY5Hvc2sGM+mCPek9ZLe5xRUOC/BvhAt2qIWFAeXMn4il04EYIjl3DsWiJr0xDMTJhvMOmD55xTRPlNp39w==} resolution: {integrity: sha512-C6yhY5Hvc2sGM+mCPek9ZLe5xRUOC/BvhAt2qIWFAeXMn4il04EYIjl3DsWiJr0xDMTJhvMOmD55xTRPlNp39w==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [musl]
'@oxfmt/binding-linux-s390x-gnu@0.35.0': '@oxfmt/binding-linux-s390x-gnu@0.35.0':
resolution: {integrity: sha512-RG2hlvOMK4OMZpO3mt8MpxLQ0AAezlFqhn5mI/g5YrVbPFyoCv9a34AAvbSJS501ocOxlFIRcKEuw5hFvddf9g==} resolution: {integrity: sha512-RG2hlvOMK4OMZpO3mt8MpxLQ0AAezlFqhn5mI/g5YrVbPFyoCv9a34AAvbSJS501ocOxlFIRcKEuw5hFvddf9g==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-x64-gnu@0.35.0': '@oxfmt/binding-linux-x64-gnu@0.35.0':
resolution: {integrity: sha512-wzmh90Pwvqj9xOKHJjkQYBpydRkaXG77ZvDz+iFDRRQpnqIEqGm5gmim2s6vnZIkDGsvKCuTdtxm0GFmBjM1+w==} resolution: {integrity: sha512-wzmh90Pwvqj9xOKHJjkQYBpydRkaXG77ZvDz+iFDRRQpnqIEqGm5gmim2s6vnZIkDGsvKCuTdtxm0GFmBjM1+w==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-x64-musl@0.35.0': '@oxfmt/binding-linux-x64-musl@0.35.0':
resolution: {integrity: sha512-+HCqYCJPCUy5I+b2cf+gUVaApfgtoQT3HdnSg/l7NIcLHOhKstlYaGyrFZLmUpQt4WkFbpGKZZayG6zjRU0KFA==} resolution: {integrity: sha512-+HCqYCJPCUy5I+b2cf+gUVaApfgtoQT3HdnSg/l7NIcLHOhKstlYaGyrFZLmUpQt4WkFbpGKZZayG6zjRU0KFA==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@oxfmt/binding-openharmony-arm64@0.35.0': '@oxfmt/binding-openharmony-arm64@0.35.0':
resolution: {integrity: sha512-kFYmWfR9YL78XyO5ws+1dsxNvZoD973qfVMNFOS4e9bcHXGF7DvGC2tY5UDFwyMCeB33t3sDIuGONKggnVNSJA==} resolution: {integrity: sha512-kFYmWfR9YL78XyO5ws+1dsxNvZoD973qfVMNFOS4e9bcHXGF7DvGC2tY5UDFwyMCeB33t3sDIuGONKggnVNSJA==}
@ -1568,21 +1581,25 @@ packages:
resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==} resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@rspack/binding-linux-arm64-musl@1.7.12': '@rspack/binding-linux-arm64-musl@1.7.12':
resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==} resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@rspack/binding-linux-x64-gnu@1.7.12': '@rspack/binding-linux-x64-gnu@1.7.12':
resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==} resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@rspack/binding-linux-x64-musl@1.7.12': '@rspack/binding-linux-x64-musl@1.7.12':
resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==} resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@rspack/binding-wasm32-wasi@1.7.12': '@rspack/binding-wasm32-wasi@1.7.12':
resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==} resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==}

View File

@ -1,7 +1,7 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Divider } from "antd"; import { Descriptions, Divider } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PreviewImg from "zy-react-library/components/PreviewImg"; import PreviewImg from "zy-react-library/components/PreviewImg";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile"; import useGetFile from "zy-react-library/hooks/useGetFile";
@ -49,7 +49,7 @@ function PersonInChargeInfo({ props, certificatePhotoType }) {
return ( return (
<div> <div>
<Page headerTitle="证书信息查看"> <PageLayout title="证书信息查看">
<div> <div>
<Divider orientation="left">人员信息</Divider> <Divider orientation="left">人员信息</Divider>
<Descriptions <Descriptions
@ -133,7 +133,7 @@ function PersonInChargeInfo({ props, certificatePhotoType }) {
/> />
</div> </div>
</Page> </PageLayout>
</div> </div>
); );

View File

@ -4,7 +4,7 @@ import { Button, Form, message, Modal, Space } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
@ -227,7 +227,7 @@ function List({ props, certificatePhotoType, displayType, personnelType, permiss
}, [tableProps.dataSource]); }, [tableProps.dataSource]);
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -388,7 +388,7 @@ function List({ props, certificatePhotoType, displayType, personnelType, permiss
/> />
)} )}
</Page> </PageLayout>
); );
} }
function AddModalComponent(props) { function AddModalComponent(props) {

View File

@ -2,7 +2,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Descriptions, Divider } from "antd"; import { Descriptions, Divider } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PreviewImg from "zy-react-library/components/PreviewImg"; import PreviewImg from "zy-react-library/components/PreviewImg";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile"; import useGetFile from "zy-react-library/hooks/useGetFile";
@ -47,7 +47,7 @@ function SpecialCertificateInfo({ props, certificatePhotoType }) {
return ( return (
<div> <div>
<Page headerTitle="证书信息查看"> <PageLayout title="证书信息查看">
<div> <div>
<Divider orientation="left">人员信息</Divider> <Divider orientation="left">人员信息</Divider>
<Descriptions <Descriptions
@ -142,7 +142,7 @@ function SpecialCertificateInfo({ props, certificatePhotoType }) {
/> />
</div> </div>
</Page> </PageLayout>
</div> </div>
); );

View File

@ -5,7 +5,7 @@ import { useEffect, useRef, useState } from "react";
import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -256,7 +256,7 @@ function SpecialCertificateList({ props, certificatePhotoType, displayType, pers
} }
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
onValuesChange={onValuesChange} onValuesChange={onValuesChange}
@ -439,7 +439,7 @@ function SpecialCertificateList({ props, certificatePhotoType, displayType, pers
/> />
)} )}
</Page> </PageLayout>
); );
} }
function AddModalComponent(props) { function AddModalComponent(props) {

View File

@ -32,7 +32,7 @@ if (!window.__POWERED_BY_QIANKUN__) {
// 本地开发时注入 Token使 API 请求可携带认证信息 // 本地开发时注入 Token使 API 请求可携带认证信息
sessionStorage.setItem( sessionStorage.setItem(
"token", "token",
"jjb-saas-auth:oauth:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJjbGllbnRJZFwiOlwiWlFBUVBKXCIsXCJhY2NvdW50SWRcIjoyMDY5Njc0MjM3ODc0MDEyMTYwLFwidXNlclR5cGVFbnVtXCI6XCJQTEFURk9STVwiLFwidXNlcklkXCI6MjA2OTY3NDIzNzE3MzQzNjQxNixcInRlbmFudElkXCI6MjA2OTU5NjM5NzkyMDg0OTkyMCxcInRlbmFudE5hbWVcIjpcIumHjeW6huWuieWFqOivhOS7t1wiLFwidGVuYW50UGFyZW50SWRzXCI6XCIwLDIwNjk1OTYzOTc5MjA4NDk5MjBcIixcIm5hbWVcIjpcInRlc3QwMVwiLFwiYWNjZXNzVGlja2V0XCI6XCJ0eGd0MjA3dktBd21OeTUwY3ppdmhUZlNaSm9ZbmxZV003ZHJQbUlsS0wxV2ZYTnNFckp2OUxCMzNBSXRcIixcInJlZnJlc2hUaWNrZXRcIjpcIkl3cHdlMWpCeXZnQTRvTlNtZXNzdHl4cXQ3WWdmb3NuMlZyd01RVUtkanNyWjFpSFBHMXZQQVRRT1A3c1wiLFwiZXhwaXJlSW5cIjo2MDQ4MDAsXCJyZWZyZXNoRXhwaXJlc0luXCI6NjA0ODAwLFwib3JnSWRcIjoyMDY5NTk2Mzk3OTIwODQ5OTIwLFwib3JnTmFtZVwiOlwi6YeN5bqG5a6J5YWo6K-E5Lu3XCIsXCJvcmdJZHNcIjpbMjA2OTU5NjM5NzkyMDg0OTkyMF0sXCJyb2xlc1R5cGVzXCI6W1wiR0xZSlNcIl0sXCJyb2xlSWRzXCI6WzIwNjk2NzEzMDc1OTg4OTMwNThdLFwic2NvcGVzXCI6W10sXCJycGNUeXBlRW51bVwiOlwiSFRUUFwiLFwiYmluZE1vYmlsZVNpZ25cIjpcIkZBTFNFXCJ9IiwiaXNzIjoicHJvLXNlcnZlciIsImV4cCI6MTc4MzMwNDY3OX0.HSQlvOrqikDKAOPfTuXGQbm5W8YrUQkYmkhKg03OjuM" "jjb-saas-auth:oauth:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJjbGllbnRJZFwiOlwiWlFBUVBKXCIsXCJhY2NvdW50SWRcIjoyMDY5Njc0MjM3ODc0MDEyMTYwLFwidXNlclR5cGVFbnVtXCI6XCJQTEFURk9STVwiLFwidXNlcklkXCI6MjA2OTY3NDIzNzE3MzQzNjQxNixcInRlbmFudElkXCI6MjA2OTU5NjM5NzkyMDg0OTkyMCxcInRlbmFudE5hbWVcIjpcIumHjeW6huWuieWFqOivhOS7t1wiLFwidGVuYW50UGFyZW50SWRzXCI6XCIwLDIwNjk1OTYzOTc5MjA4NDk5MjBcIixcIm5hbWVcIjpcInRlc3QwMVwiLFwiYWNjZXNzVGlja2V0XCI6XCJFS0FJVThJT2g4WlE3cjg4UXE5YlkxbENhd2lLOTNBWGhSMGVTN2Z4aFo2SU43QjVOclBncDlnb1pnS0JcIixcInJlZnJlc2hUaWNrZXRcIjpcInJQc2V0ZXR6SjB3aHBSSk8ycDlRb3RPaHJTcFdFY0xkblBkdURxb0JwU0F0VmdENU56QW1XTkVCc09jMFwiLFwiZXhwaXJlSW5cIjo2MDQ4MDAsXCJyZWZyZXNoRXhwaXJlc0luXCI6NjA0ODAwLFwib3JnSWRcIjoyMDY5NTk2Mzk3OTIwODQ5OTIwLFwib3JnTmFtZVwiOlwi6YeN5bqG5a6J5YWo6K-E5Lu3XCIsXCJvcmdJZHNcIjpbMjA2OTU5NjM5NzkyMDg0OTkyMF0sXCJyb2xlc1R5cGVzXCI6W1wiR0xZSlNcIl0sXCJyb2xlSWRzXCI6WzIwNjk2NzEzMDc1OTg4OTMwNThdLFwic2NvcGVzXCI6W10sXCJycGNUeXBlRW51bVwiOlwiSFRUUFwiLFwiYmluZE1vYmlsZVNpZ25cIjpcIkZBTFNFXCJ9IiwiaXNzIjoicHJvLXNlcnZlciIsImV4cCI6MTc4MzMxOTc4OX0.rt-lrdDQlyhDu9S7xUtJ3L3F9k_C8710Ah1dJ-0-A1c"
); );
} }

View File

@ -2,14 +2,13 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Empty, Form, Input, message, Modal, Row, Col, Select, Space, Tree } from "antd"; import { Button, Empty, Form, Input, message, Modal, Row, Col, Select, Space, Tree } from "antd";
import { useEffect, useMemo, useRef, useState } from "react"; import { useEffect, useMemo, useRef, useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_ORG_DEPARTMENT, NS_ORG_POSITION, NS_STAFF_INFO } from "~/enumerate/namespace"; import { NS_ORG_DEPARTMENT, NS_ORG_POSITION, NS_STAFF_INFO } from "~/enumerate/namespace";
import { asId, sameId } from "~/api/enterpriseInfo/idUtil"; import { asId, sameId } from "~/api/enterpriseInfo/idUtil";
import { safeListRequest, safeRequest } from "~/utils"; import { safeListRequest, safeRequest } from "~/utils";
import PageHeader from "../components/PageHeader";
function findDeptNode(nodes = [], id) { function findDeptNode(nodes = [], id) {
for (const node of nodes) { for (const node of nodes) {
@ -218,8 +217,7 @@ function DepartmentPositionPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout title="部门岗位管理">
<PageHeader title="部门岗位管理" />
<div style={{ display: "flex", gap: 16, minHeight: 480 }}> <div style={{ display: "flex", gap: 16, minHeight: 480 }}>
<div style={{ width: 260, borderRight: "1px solid #f0f0f0", paddingRight: 16, flexShrink: 0 }}> <div style={{ width: 260, borderRight: "1px solid #f0f0f0", paddingRight: 16, flexShrink: 0 }}>
<Space direction="vertical" style={{ width: "100%", marginBottom: 12 }}> <Space direction="vertical" style={{ width: "100%", marginBottom: 12 }}>
@ -339,7 +337,7 @@ function DepartmentPositionPage(props) {
</Form> </Form>
</Modal> </Modal>
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -2,7 +2,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, Input, InputNumber, message, Modal, Row, Col, Select, Space } from "antd"; import { Button, Descriptions, Form, Input, InputNumber, message, Modal, Row, Col, Select, Space } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; 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";
@ -11,7 +11,6 @@ import { NS_EQUIP_INFO } from "~/enumerate/namespace";
import { isEquipEnabled } from "~/api/enterpriseInfo/adapter"; import { isEquipEnabled } from "~/api/enterpriseInfo/adapter";
import { safeListRequest, safeRequest } from "~/utils"; import { safeListRequest, safeRequest } from "~/utils";
import { positiveNumberRule } from "~/utils/validators"; import { positiveNumberRule } from "~/utils/validators";
import PageHeader from "../components/PageHeader";
const DUAL_CHANNEL = { 1: "是", 0: "否" }; const DUAL_CHANNEL = { 1: "是", 0: "否" };
@ -64,11 +63,10 @@ function EquipInfoPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="装备信息管理" 实现对评价机构内装备信息的维护管理
subTitle="实现对评价机构内装备信息的维护管理。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -157,7 +155,7 @@ function EquipInfoPage(props) {
}} }}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -1,34 +1,69 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Space } from "antd"; import {
Button,
Col,
DatePicker,
Form,
Input,
InputNumber,
message,
Row,
Select,
Space,
Upload,
} from "antd";
import dayjs from "dayjs";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Page from "zy-react-library/components/Page";
import { getOrgInfoDetail } from "~/api/enterpriseInfo/orgBootstrap"; import {
import PageHeader from "../components/PageHeader"; CHONGQING_DISTRICTS,
ENTERPRISE_SCALE_OPTIONS,
ENTERPRISE_STATUS_OPTIONS,
FILING_RECORD_STATUS_OPTIONS,
FILING_TYPE_OPTIONS,
} from "~/enumerate/enterpriseOptions";
import { NS_ORG_INFO } from "~/enumerate/namespace"; import { NS_ORG_INFO } from "~/enumerate/namespace";
import { mockUploadFileList } from "~/utils/mockUpload"; import { mockUploadFileList } from "~/utils/mockUpload";
import { buildOrgInfoFormOptions } from "./formOptions"; import {
creditCodeRule,
latitudeRule,
longitudeRule,
nonNegativeIntegerRule,
phoneRule,
positiveNumberRule,
urlRule,
} from "~/utils/validators";
function OrgInfoPage(props) { function OrgInfoPage(props) {
const [form] = Form.useForm(); const [form] = Form.useForm();
const { orgInfoLoading } = props.orgInfo;
const [editing, setEditing] = useState(true); const [editing, setEditing] = useState(true);
const [submitting, setSubmitting] = useState(false); const [submitting, setSubmitting] = useState(false);
const [detail, setDetail] = useState({}); const [detail, setDetail] = useState({});
/** 是否已存在机构数据(有 id 视为已入库,只能修改) */ /** 是否已存在机构数据(有 id 视为已入库,只能修改) */
const [hasExistingData, setHasExistingData] = useState(false); const [hasExistingData, setHasExistingData] = useState(false);
const formOptions = buildOrgInfoFormOptions(); const selectDistrictOptions = CHONGQING_DISTRICTS.map((v) => ({
label: v,
value: v,
}));
const loadDetail = async () => { const loadDetail = async () => {
try { try {
const res = getOrgInfoDetail(); const res = await props.orgInfoGet();
if (res?.data?.id) { if (res?.data?.id) {
setDetail(res.data); setDetail(res.data);
form.setFieldsValue(res.data); form.setFieldsValue({
...res.data,
productionDate: res.data.productionDate
? dayjs(res.data.productionDate)
: undefined,
});
setHasExistingData(true); setHasExistingData(true);
setEditing(false); setEditing(false);
} } else {
else {
setDetail({}); setDetail({});
setHasExistingData(false); setHasExistingData(false);
setEditing(true); setEditing(true);
@ -38,8 +73,7 @@ function OrgInfoPage(props) {
attachments: mockUploadFileList("资质申请书.pdf"), attachments: mockUploadFileList("资质申请书.pdf"),
}); });
} }
} } catch (err) {
catch (err) {
console.warn("[OrgInfo] loadDetail failed:", err); console.warn("[OrgInfo] loadDetail failed:", err);
setDetail({}); setDetail({});
setHasExistingData(false); setHasExistingData(false);
@ -53,17 +87,27 @@ function OrgInfoPage(props) {
const handleCancelEdit = () => { const handleCancelEdit = () => {
if (hasExistingData) { if (hasExistingData) {
form.setFieldsValue(detail); form.setFieldsValue({
...detail,
productionDate: detail.productionDate
? dayjs(detail.productionDate)
: undefined,
});
setEditing(false); setEditing(false);
} } else {
else {
form.resetFields(); form.resetFields();
} }
}; };
const handleSave = async (submitType) => { const handleSave = async (submitType) => {
try { try {
const values = await form.validateFields(); const formValues = await form.validateFields();
const values = {
...formValues,
productionDate: formValues.productionDate
? dayjs(formValues.productionDate).format("YYYY-MM-DD")
: undefined,
};
setSubmitting(true); setSubmitting(true);
let request; let request;
@ -71,10 +115,10 @@ function OrgInfoPage(props) {
// 已有数据:仅走修改接口 // 已有数据:仅走修改接口
request = props.orgInfoSave; request = props.orgInfoSave;
values.id = detail.id; values.id = detail.id;
} } else {
else {
// 无数据:暂存、提交均走保存接口(草稿/已提交由 authStatusCode 区分) // 无数据:暂存、提交均走保存接口(草稿/已提交由 authStatusCode 区分)
request = submitType === "draft" ? props.orgInfoDraft : props.orgInfoSave; request =
submitType === "draft" ? props.orgInfoDraft : props.orgInfoSave;
} }
const res = await request(values); const res = await request(values);
@ -82,61 +126,330 @@ function OrgInfoPage(props) {
message.success( message.success(
hasExistingData hasExistingData
? "修改成功" ? "修改成功"
: (submitType === "draft" ? "暂存成功" : "提交成功"), : submitType === "draft"
? "暂存成功"
: "提交成功",
); );
setEditing(false); setEditing(false);
loadDetail(); loadDetail();
} }
} } catch (err) {
catch (err) {
if (err?.errorFields) { if (err?.errorFields) {
return; return;
} }
message.error(hasExistingData ? "修改失败,请稍后重试" : "保存失败,请稍后重试"); message.error(
} hasExistingData ? "修改失败,请稍后重试" : "保存失败,请稍后重试",
finally { );
} finally {
setSubmitting(false); setSubmitting(false);
} }
}; };
const subTitleText =
"新成立或首次使用系统的安全评价机构,可通过系统提供的引导页面,详细填写机构的基本信息。";
return ( return (
<Page isShowAllAction={false}> <PageLayout
<PageHeader
title="机构信息管理" title="机构信息管理"
subTitle="新成立或首次使用系统的安全评价机构,可通过系统提供的引导页面,详细填写机构的基本信息。" extra={
extra={hasExistingData && !editing && ( hasExistingData &&
<Button type="primary" onClick={() => setEditing(true)}> !editing && (
<Button type="primary" loading={orgInfoLoading} onClick={() => setEditing(true)}>
修改 修改
</Button> </Button>
)} )
}
>
<p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
{subTitleText}
</p>
<Form form={form} labelCol={{ span: 10 }} disabled={!editing}>
<Row gutter={[16, 16]}>
<Col span={12}>
<Form.Item
name="orgName"
label="生产经营单位名称"
rules={[{ required: true, message: "请输入生产经营单位名称" }]}
>
<Input placeholder="请输入生产经营单位名称" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="creditCode"
label="统一社会信用代码"
rules={[creditCodeRule(true)]}
>
<Input placeholder="请输入统一社会信用代码" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="safetyIndustryCategory"
label="安全生产监管行业类别"
rules={[
{ required: true, message: "请输入安全生产监管行业类别" },
]}
>
<Input placeholder="请输入安全生产监管行业类别" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="regionCountyName"
label="属地"
rules={[{ required: true, message: "请选择属地" }]}
>
<Select options={selectDistrictOptions} placeholder="请选择属地" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="regionStreetName"
label="所属镇、街道"
rules={[{ required: true, message: "请输入所属镇街道" }]}
>
<Input placeholder="请输入所属镇街道" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="regionCommunityName" label="属村(社区)">
<Input placeholder="请输入属村(社区)" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="longitude"
label="所在地坐标经度"
rules={[longitudeRule(false)]}
>
<InputNumber
style={{ width: "100%" }}
min={-180}
max={180}
precision={6}
placeholder="请输入经度"
/> />
<FormBuilder </Form.Item>
form={form} </Col>
span={12} <Col span={12}>
disabled={!editing} <Form.Item
useAutoGenerateRequired={false} name="latitude"
options={formOptions} label="所在地坐标纬度"
labelCol={{ span: 10 }} rules={[latitudeRule(false)]}
showActionButtons={false} >
<InputNumber
style={{ width: "100%" }}
min={-90}
max={90}
precision={6}
placeholder="请输入纬度"
/> />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="registerAddress"
label="注册地址"
rules={[{ required: true, message: "请输入注册地址" }]}
>
<Input.TextArea rows={3} placeholder="请输入注册地址" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="businessAddress"
label="经营地址"
rules={[{ required: true, message: "请输入经营地址" }]}
>
<Input.TextArea rows={3} placeholder="请输入经营地址" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="ownershipType" label="归属类型">
<Input placeholder="请输入归属类型" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="gbIndustryCode"
label="国民经济行业分类(GB/T4754-2017)"
>
<Input placeholder="请输入国民经济行业分类" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="legalRepresentative"
label="法定代表人"
rules={[{ required: true, message: "请输入法定代表人" }]}
>
<Input placeholder="请输入法定代表人" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="legalRepPhone"
label="法定代表人联系电话"
rules={[phoneRule("法定代表人联系电话", false)]}
>
<Input placeholder="请输入法定代表人联系电话" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="principal"
label="主要负责人"
rules={[{ required: true, message: "请输入主要负责人" }]}
>
<Input placeholder="请输入主要负责人" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="principalPhone"
label="主要负责人联系电话"
rules={[phoneRule("主要负责人联系电话", true)]}
>
<Input placeholder="请输入主要负责人联系电话" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="safetyDeptHead" label="安全管理部门负责人">
<Input placeholder="请输入安全管理部门负责人" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="safetyDeptPhone"
label="安全管理部门负责人联系电话"
rules={[phoneRule("安全管理部门负责人联系电话", false)]}
>
<Input placeholder="请输入安全管理部门负责人联系电话" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="safetyVp" label="主管安全副总">
<Input placeholder="请输入主管安全副总" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="safetyVpPhone"
label="主管安全副总联系电话"
rules={[phoneRule("主管安全副总联系电话", false)]}
>
<Input placeholder="请输入主管安全副总联系电话" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="productionDate" label="投产日期">
<DatePicker style={{ width: "100%" }} placeholder="请选择投产日期" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="businessStatus" label="企业经营状态">
<Input placeholder="请输入企业经营状态" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="disclosureUrl"
label="信息公开网址"
rules={[urlRule("信息公开网址", false)]}
>
<Input placeholder="请输入信息公开网址" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="workplaceArea"
label="工作场所建筑面积"
rules={[positiveNumberRule("工作场所建筑面积", false)]}
>
<InputNumber style={{ width: "100%" }} min={0} precision={2} placeholder="请输入工作场所建筑面积" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="archiveRoomArea"
label="档案室面积"
rules={[positiveNumberRule("档案室面积", false)]}
>
<InputNumber style={{ width: "100%" }} min={0} precision={2} placeholder="请输入档案室面积" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="fullTimeEvaluatorCount"
label="专职安全评价师数量"
rules={[nonNegativeIntegerRule("专职安全评价师数量", false)]}
>
<InputNumber style={{ width: "100%" }} min={0} precision={0} placeholder="请输入专职安全评价师数量" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="registeredSafetyEngineerCount"
label="注册安全工程师数量"
rules={[nonNegativeIntegerRule("注册安全工程师数量", false)]}
>
<InputNumber style={{ width: "100%" }} min={0} precision={0} placeholder="请输入注册安全工程师数量" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="enterpriseStatus" label="企业状态">
<Select options={ENTERPRISE_STATUS_OPTIONS} placeholder="请选择企业状态" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="enterpriseScale" label="企业规模">
<Select options={ENTERPRISE_SCALE_OPTIONS} placeholder="请选择企业规模" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="filingType" label="备案类型">
<Select options={FILING_TYPE_OPTIONS} placeholder="请选择备案类型" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="filingRecordStatus" label="备案状态">
<Select options={FILING_RECORD_STATUS_OPTIONS} placeholder="请选择备案状态" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="attachments"
label="上传附件"
valuePropName="fileList"
>
<Upload maxCount={5} listType="picture-card">
<Button>上传附件</Button>
</Upload>
</Form.Item>
</Col>
</Row>
</Form>
{editing && ( {editing && (
<div style={{ marginTop: 24, textAlign: "center" }}> <div style={{ marginTop: 24, textAlign: "center" }}>
<Space> <Space>
<Button onClick={handleCancelEdit}> <Button onClick={handleCancelEdit}>取消</Button>
取消
</Button>
{!hasExistingData && ( {!hasExistingData && (
<Button loading={submitting} onClick={() => handleSave("draft")}> <Button loading={submitting} onClick={() => handleSave("draft")}>
暂存 暂存
</Button> </Button>
)} )}
<Button type="primary" loading={submitting} onClick={() => handleSave("submit")}> <Button
type="primary"
loading={submitting}
onClick={() => handleSave("submit")}
>
提交 提交
</Button> </Button>
</Space> </Space>
</div> </div>
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -1,14 +1,14 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, Input, message, Modal, Select, Space, Typography } from "antd"; import { Button, Descriptions, Form, Input, message, Modal, Select, Space, Typography } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_STAFF_CHANGE_LOG, NS_STAFF_INFO } from "~/enumerate/namespace"; import { NS_STAFF_CHANGE_LOG, NS_STAFF_INFO } from "~/enumerate/namespace";
import { safeListRequest, safeRequest } from "~/utils"; import { safeListRequest, safeRequest } from "~/utils";
import { CHANGE_COUNT_STYLE, formSelectField, getChangeCount, getEmploymentStatusLabel, getResignAuditStatusLabel } from "~/utils/enterpriseForm"; import { CHANGE_COUNT_STYLE, formSelectField, getChangeCount, getEmploymentStatusLabel, getResignAuditStatusLabel } from "~/utils/enterpriseForm";
import PageHeader from "../components/PageHeader";
const EMPLOYMENT_STATUS = { 1: "在职", 2: "离职" }; const EMPLOYMENT_STATUS = { 1: "在职", 2: "离职" };
const RESIGN_AUDIT_STATUS = { 0: "未审核", 1: "已审核", 2: "已退回" }; const RESIGN_AUDIT_STATUS = { 0: "未审核", 1: "已审核", 2: "已退回" };
@ -119,8 +119,7 @@ function PersonnelChangePage(props) {
if (viewMode === "log") { if (viewMode === "log") {
return ( return (
<Page isShowAllAction={false}> <PageLayout title="人员变更次数">
<PageHeader title="人员变更次数" />
<Button style={{ marginBottom: 16 }} onClick={() => setViewMode("list")}>返回</Button> <Button style={{ marginBottom: 16 }} onClick={() => setViewMode("list")}>返回</Button>
<div style={{ marginBottom: 8 }}> <div style={{ marginBottom: 8 }}>
人员 人员
@ -134,16 +133,15 @@ function PersonnelChangePage(props) {
]} ]}
{...logTableProps} {...logTableProps}
/> />
</Page> </PageLayout>
); );
} }
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="人员变更管理" 机构管理员在人员信息管理页面进行相应的修改操作
subTitle="机构管理员在人员信息管理页面进行相应的修改操作" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -265,7 +263,7 @@ function PersonnelChangePage(props) {
<Descriptions.Item label="备注">{resignInfo.remark}</Descriptions.Item> <Descriptions.Item label="备注">{resignInfo.remark}</Descriptions.Item>
</Descriptions> </Descriptions>
</Modal> </Modal>
</Page> </PageLayout>
); );
} }

View File

@ -3,7 +3,7 @@ import { Button, Descriptions, Form, message, Modal, Space } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import CertPreviewImg from "~/components/CertPreviewImg"; import CertPreviewImg from "~/components/CertPreviewImg";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -16,7 +16,7 @@ import { NS_STAFF_CERTIFICATE } from "~/enumerate/namespace";
import { safeGetFiles, safeListRequest, safeRequest } from "~/utils"; import { safeGetFiles, safeListRequest, safeRequest } from "~/utils";
import { mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload"; import { mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload";
import { dateRangeRule } from "~/utils/validators"; import { dateRangeRule } from "~/utils/validators";
import PageHeader from "../../components/PageHeader";
function StaffCertificatePage(props) { function StaffCertificatePage(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
@ -62,8 +62,7 @@ function StaffCertificatePage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout title={`人员证书 - ${staffName || ""}`}>
<PageHeader title={`人员证书 - ${staffName || ""}`} />
<Button style={{ marginBottom: 16 }} onClick={goBack}>返回</Button> <Button style={{ marginBottom: 16 }} onClick={goBack}>返回</Button>
<Search <Search
form={form} form={form}
@ -136,7 +135,7 @@ function StaffCertificatePage(props) {
}} }}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -2,7 +2,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, DatePicker, Form, Input, message, Modal, Row, Col, Select, Space } from "antd"; import { Button, DatePicker, Form, Input, message, Modal, Row, Col, Select, Space } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
@ -22,7 +22,6 @@ import { getBirthDateFromIdCard, safeListRequest, safeRequest } from "~/utils";
import { toDayjs } from "~/utils/dateFormat"; import { toDayjs } from "~/utils/dateFormat";
import { formSelectField } from "~/utils/enterpriseForm"; import { formSelectField } from "~/utils/enterpriseForm";
import { idCardRule, mobileRule } from "~/utils/validators"; import { idCardRule, mobileRule } from "~/utils/validators";
import PageHeader from "../../components/PageHeader";
import StaffViewModal from "../StaffViewModal"; import StaffViewModal from "../StaffViewModal";
function mapPositionOptions(list = []) { function mapPositionOptions(list = []) {
@ -111,11 +110,10 @@ function PersonnelInfoPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="人员信息管理" 机构管理员在系统中为本机构的人员进行信息录入包括姓名性别身份证号出生日期等
subTitle="机构管理员在系统中为本机构的人员进行信息录入,包括姓名、性别、身份证号、出生日期等。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -198,7 +196,7 @@ function PersonnelInfoPage(props) {
}} }}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -3,7 +3,8 @@ import { Button, Descriptions, Form, message, Modal, Space } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PreviewImg from "zy-react-library/components/PreviewImg";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
@ -19,7 +20,6 @@ import { safeGetFiles, safeListRequest, safeRequest } from "~/utils";
import { toDayjs } from "~/utils/dateFormat"; import { toDayjs } from "~/utils/dateFormat";
import { mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload"; import { mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload";
import { dateRangeRule } from "~/utils/validators"; import { dateRangeRule } from "~/utils/validators";
import PageHeader from "../components/PageHeader";
function QualificationCertPage(props) { function QualificationCertPage(props) {
const [addModalOpen, setAddModalOpen] = useState(false); const [addModalOpen, setAddModalOpen] = useState(false);
@ -90,11 +90,10 @@ function QualificationCertPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="资质信息管理" 机构需将自身拥有的安全评价资质证书信息录入系统包括资质等级发证机关发证日期有效期等
subTitle="机构需将自身拥有的安全评价资质证书信息录入系统,包括资质等级、发证机关、发证日期、有效期等。" </p>
/>
<Search <Search
form={form} form={form}
options={[ options={[
@ -210,7 +209,7 @@ function QualificationCertPage(props) {
}} }}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -2,7 +2,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, DatePicker, Descriptions, Form, Input, message, Modal, Select } from "antd"; import { Button, DatePicker, Descriptions, Form, Input, message, Modal, Select } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
@ -12,7 +12,7 @@ import { NS_STAFF_INFO, NS_STAFF_RESIGNATION_APPLY } from "~/enumerate/namespace
import { safeListRequest, safeRequest } from "~/utils"; import { safeListRequest, safeRequest } from "~/utils";
import { formSelectField, getResignAuditStatusLabel } from "~/utils/enterpriseForm"; import { formSelectField, getResignAuditStatusLabel } from "~/utils/enterpriseForm";
import { DEFAULT_UPLOAD_FILE_URL, mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload"; import { DEFAULT_UPLOAD_FILE_URL, mockUploadFileList, resolveUploadFileId } from "~/utils/mockUpload";
import PageHeader from "../components/PageHeader";
const RESIGN_AUDIT_STATUS = { 0: "未审核", 1: "已审核", 2: "已退回" }; const RESIGN_AUDIT_STATUS = { 0: "未审核", 1: "已审核", 2: "已退回" };
@ -49,11 +49,10 @@ function ResignationApplyPage(props) {
}, []); }, []);
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="人员离职申请" 机构管理员在人员信息管理页面进行相应的修改操作
subTitle="机构管理员在人员信息管理页面进行相应的修改操作" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -129,7 +128,7 @@ function ResignationApplyPage(props) {
}} }}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -1,13 +0,0 @@
export default function PageHeader({ title, subTitle, extra }) {
return (
<div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-start", marginBottom: 16 }}>
<div>
<h2 style={{ margin: 0, fontSize: 20, fontWeight: 600 }}>{title}</h2>
{subTitle && (
<p style={{ margin: "8px 0 0", color: "rgba(0, 0, 0, 0.45)" }}>{subTitle}</p>
)}
</div>
{extra}
</div>
);
}

View File

@ -51,7 +51,7 @@ function EnterpriseInfo(props) {
} }
return ( return (
<div> <div style={{ height: "100%" }}>
{props.children} {props.children}
</div> </div>
); );

View File

@ -1,6 +1,6 @@
import { Button, Card, Col, Descriptions, Form, Modal, Row, Statistic, Tag } from "antd"; import { Button, Card, Col, Descriptions, Form, Modal, Row, Statistic, Tag } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; 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";
@ -11,7 +11,6 @@ import {
getEnterprisePortraitDetail, getEnterprisePortraitDetail,
queryEnterprisePortraitPage, queryEnterprisePortraitPage,
} from "~/mock/regulator/basicInfo"; } from "~/mock/regulator/basicInfo";
import PageHeader from "../../../EnterpriseInfo/components/PageHeader";
const INFO_LEVEL_COLOR = { const INFO_LEVEL_COLOR = {
level1: "success", level1: "success",
@ -51,11 +50,10 @@ function EnterprisePortraitPage() {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="企业画像管理" 监管端查看企业安全能力画像与综合评级当前为 Mock 数据
subTitle="监管端查看企业安全能力画像与综合评级(当前为 Mock 数据)。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -198,7 +196,7 @@ function EnterprisePortraitPage() {
</> </>
)} )}
</Modal> </Modal>
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,11 @@
import { Button, Descriptions, Form, Modal, Table, Tag, Tooltip } from "antd"; import { Button, Descriptions, Form, Modal, Table, Tag, Tooltip } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import TableList from "zy-react-library/components/Table"; import TableList 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 { getEvaluatorDetail, queryEvaluatorPage } from "~/mock/regulator/basicInfo"; import { getEvaluatorDetail, queryEvaluatorPage } from "~/mock/regulator/basicInfo";
import PageHeader from "../../../EnterpriseInfo/components/PageHeader";
const YES_NO_OPTIONS = [ const YES_NO_OPTIONS = [
{ label: "是", value: 1 }, { label: "是", value: 1 },
@ -52,11 +51,10 @@ function EvaluatorInfoPage() {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="评价师信息管理" 监管端查看辖区内评价师备案及资质状态当前为 Mock 数据
subTitle="监管端查看辖区内评价师备案及资质状态(当前为 Mock 数据)。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
options={[ options={[
@ -201,7 +199,7 @@ function EvaluatorInfoPage() {
</Descriptions> </Descriptions>
)} )}
</Modal> </Modal>
</Page> </PageLayout>
); );
} }

View File

@ -3,7 +3,7 @@ import {
} from "antd"; } from "antd";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; 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";
@ -18,7 +18,6 @@ import {
import { NS_ORG_INFO } from "~/enumerate/namespace"; import { NS_ORG_INFO } from "~/enumerate/namespace";
import { safeListRequest, safeRequest } from "~/utils"; import { safeListRequest, safeRequest } from "~/utils";
import { formSelectField } from "~/utils/enterpriseForm"; import { formSelectField } from "~/utils/enterpriseForm";
import PageHeader from "../../../EnterpriseInfo/components/PageHeader";
const SEARCH_COL = { xs: 24, sm: 12, md: 8, lg: 6 }; const SEARCH_COL = { xs: 24, sm: 12, md: 8, lg: 6 };
const SEARCH_DEFAULT_VALUES = { state: "" }; const SEARCH_DEFAULT_VALUES = { state: "" };
@ -164,11 +163,10 @@ function OrgAccountPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="评价机构账号管理" 监管端维护评价机构开户账号
subTitle="监管端维护评价机构开户账号。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
values={SEARCH_DEFAULT_VALUES} values={SEARCH_DEFAULT_VALUES}
@ -339,7 +337,7 @@ function OrgAccountPage(props) {
</Row> </Row>
</Form> </Form>
</Modal> </Modal>
</Page> </PageLayout>
); );
} }

View File

@ -1,7 +1,7 @@
import { Button, Card, Form, Spin, Table, Tabs, Tag, message } from "antd"; import { Button, Card, Form, Spin, Table, Tabs, Tag, message } from "antd";
import { useEffect, useMemo, useState } from "react"; import { useEffect, useMemo, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import FilePreviewModal from "~/components/FilePreviewModal"; import FilePreviewModal from "~/components/FilePreviewModal";
import { import {
fetchRegisteredOrgDetail, fetchRegisteredOrgDetail,
@ -12,7 +12,6 @@ import {
fetchRegisteredOrgQualificationGroups, fetchRegisteredOrgQualificationGroups,
} from "~/api/regulatorOrgInfo"; } from "~/api/regulatorOrgInfo";
import { buildOrgInfoFormOptions } from "../../../../EnterpriseInfo/OrgInfo/formOptions"; import { buildOrgInfoFormOptions } from "../../../../EnterpriseInfo/OrgInfo/formOptions";
import PageHeader from "../../../../EnterpriseInfo/components/PageHeader";
import StaffViewModal from "../../../../EnterpriseInfo/PersonnelInfo/StaffViewModal"; import StaffViewModal from "../../../../EnterpriseInfo/PersonnelInfo/StaffViewModal";
const LIST_PATH = "/container/supervision/basicInfo/registeredOrg/list"; const LIST_PATH = "/container/supervision/basicInfo/registeredOrg/list";
@ -192,9 +191,11 @@ function RegisteredOrgDetailPage(props) {
if (!id) { if (!id) {
return ( return (
<Page isShowAllAction={false}> <PageLayout title="备案信息详情" extra={<Button onClick={goBack}>返回</Button>}>
<PageHeader title="备案信息详情" subTitle="缺少机构 ID 参数" extra={<Button onClick={goBack}>返回</Button>} /> <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
</Page> 缺少机构 ID 参数
</p>
</PageLayout>
); );
} }
@ -241,12 +242,10 @@ function RegisteredOrgDetailPage(props) {
]; ];
return ( return (
<Page isShowAllAction={false}> <PageLayout title="备案信息详情" extra={<Button onClick={goBack}> 返回</Button>}>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="备案信息详情" {orgName || undefined}
subTitle={orgName || undefined} </p>
extra={<Button onClick={goBack}> 返回</Button>}
/>
<Tabs items={tabItems} /> <Tabs items={tabItems} />
<FilePreviewModal <FilePreviewModal
@ -267,7 +266,7 @@ function RegisteredOrgDetailPage(props) {
onCancel={() => setViewPersonnelId("")} onCancel={() => setViewPersonnelId("")}
/> />
)} )}
</Page> </PageLayout>
); );
} }

View File

@ -1,7 +1,7 @@
import { Button, Form, Tag } from "antd"; import { Button, Form, Tag } from "antd";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { useEffect } from "react"; import { useEffect } from "react";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import TableList from "zy-react-library/components/Table"; import TableList from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -12,7 +12,6 @@ import {
import { NS_ORG_INFO } from "~/enumerate/namespace"; import { NS_ORG_INFO } from "~/enumerate/namespace";
import { safeListRequest } from "~/utils"; import { safeListRequest } from "~/utils";
import { formSelectField } from "~/utils/enterpriseForm"; import { formSelectField } from "~/utils/enterpriseForm";
import PageHeader from "../../../../EnterpriseInfo/components/PageHeader";
const FILING_RECORD_STATUS_COLOR = { const FILING_RECORD_STATUS_COLOR = {
1: "success", 1: "success",
@ -46,11 +45,10 @@ function RegisteredOrgListPage(props) {
}; };
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<PageHeader <p style={{ margin: 0, marginBottom: 24, color: "rgba(0, 0, 0, 0.45)" }}>
title="已备案机构管理" 监管端查看已备案评价机构及备案详情
subTitle="监管端查看已备案评价机构及备案详情。" </p>
/>
<Search <Search
form={searchForm} form={searchForm}
values={SEARCH_DEFAULT_VALUES} values={SEARCH_DEFAULT_VALUES}
@ -94,7 +92,7 @@ function RegisteredOrgListPage(props) {
}, },
]} ]}
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,7 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -21,7 +21,7 @@ function List(props) {
}); });
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -64,7 +64,7 @@ function List(props) {
{...tableProps} {...tableProps}
/> />
</Page> </PageLayout>
); );
} }
export default Connect([NS_CORP_CERTIFICATE], true)(Permission(List)); export default Connect([NS_CORP_CERTIFICATE], true)(Permission(List));

View File

@ -4,7 +4,7 @@ import { Button, Descriptions, Form, message, Modal, Space } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PreviewImg from "zy-react-library/components/PreviewImg"; import PreviewImg from "zy-react-library/components/PreviewImg";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -159,7 +159,7 @@ function EnterpriseLicense(props) {
}; };
}, [tableProps.dataSource]); }, [tableProps.dataSource]);
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -317,7 +317,7 @@ function EnterpriseLicense(props) {
/> />
)} )}
</Page> </PageLayout>
); );
} }
function AddModalComponent(props) { function AddModalComponent(props) {

View File

@ -1,7 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -22,7 +22,7 @@ function List(props) {
}); });
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -66,7 +66,7 @@ function List(props) {
{...tableProps} {...tableProps}
/> />
</Page> </PageLayout>
); );
} }
export default Connect([NS_CORP_CERTIFICATE], true)(Permission(List)); export default Connect([NS_CORP_CERTIFICATE], true)(Permission(List));

View File

@ -1,7 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -21,7 +21,7 @@ function List(props) {
}); });
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -111,7 +111,7 @@ function List(props) {
{...tableProps} {...tableProps}
/> />
</Page> </PageLayout>
); );
} }
export default Connect([NS_USER_CERTIFICATE], true)(Permission(List)); export default Connect([NS_USER_CERTIFICATE], true)(Permission(List));

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PersonInChargeList from "~/components/PersonInChargeList"; import PersonInChargeList from "~/components/PersonInChargeList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业主要负责人管理 // 企业主要负责人管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="主要负责人证书数" isShowFooter={false}> <PageLayout title="主要负责人证书数">
<div> <div>
<PersonInChargeList <PersonInChargeList
props={props} props={props}
@ -17,7 +17,7 @@ function List(props) {
dictionaryType="zyfzrgwmc0000" dictionaryType="zyfzrgwmc0000"
/> />
</div> </div>
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PersonInChargeList from "~/components/PersonInChargeList"; import PersonInChargeList from "~/components/PersonInChargeList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业安全生产管理人员管理 // 企业安全生产管理人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="安全生产管理人员证书数" isShowFooter={false}> <PageLayout title="安全生产管理人员证书数">
<PersonInChargeList <PersonInChargeList
props={props} props={props}
certificatePhotoType={162} certificatePhotoType={162}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-fzgsryzztj-aqgly-infoNb" permissionView="gfd-fzgsryzztj-aqgly-infoNb"
dictionaryType="aqscglrygwmc0000" dictionaryType="aqscglrygwmc0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import SpecialCertificateList from "~/components/SpecialCertificateList"; import SpecialCertificateList from "~/components/SpecialCertificateList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业特种设备操作人员管理 // 企业特种设备操作人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="特种设备操作人员证书数" isShowFooter={false}> <PageLayout title="特种设备操作人员证书数">
<SpecialCertificateList <SpecialCertificateList
props={props} props={props}
certificatePhotoType={160} certificatePhotoType={160}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-fzgsryzztj-tzsbInfoNb" permissionView="gfd-fzgsryzztj-tzsbInfoNb"
dictionaryType="tzsbczryczxmzylb0000" dictionaryType="tzsbczryczxmzylb0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import SpecialCertificateList from "~/components/SpecialCertificateList"; import SpecialCertificateList from "~/components/SpecialCertificateList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业特种作业人员管理 // 企业特种作业人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="特种作业人员证书数" isShowFooter={false}> <PageLayout title="特种作业人员证书数">
<SpecialCertificateList <SpecialCertificateList
props={props} props={props}
certificatePhotoType={159} certificatePhotoType={159}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-fzgsryzztj-tzzyInfoNb" permissionView="gfd-fzgsryzztj-tzzyInfoNb"
dictionaryType="tzzyryhylb0000" dictionaryType="tzzyryhylb0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,7 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -21,7 +21,7 @@ function List(props) {
}); });
return ( return (
<Page isShowAllAction={false}> <PageLayout>
<Search <Search
form={form} form={form}
@ -113,7 +113,7 @@ function List(props) {
{...tableProps} {...tableProps}
/> />
</Page> </PageLayout>
); );
} }
export default Connect([NS_USER_CERTIFICATE], true)(Permission(List)); export default Connect([NS_USER_CERTIFICATE], true)(Permission(List));

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PersonInChargeList from "~/components/PersonInChargeList"; import PersonInChargeList from "~/components/PersonInChargeList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业主要负责人管理 // 企业主要负责人管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="主要负责人证书数" isShowFooter={false}> <PageLayout title="主要负责人证书数">
<PersonInChargeList <PersonInChargeList
props={props} props={props}
certificatePhotoType={161} certificatePhotoType={161}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-xgfryzztj-zyfzrInfoNb" permissionView="gfd-xgfryzztj-zyfzrInfoNb"
dictionaryType="zyfzrgwmc0000" dictionaryType="zyfzrgwmc0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import PersonInChargeList from "~/components/PersonInChargeList"; import PersonInChargeList from "~/components/PersonInChargeList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业安全生产管理人员管理 // 企业安全生产管理人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="安全生产管理人员证书数" isShowFooter={false}> <PageLayout title="安全生产管理人员证书数">
<PersonInChargeList <PersonInChargeList
props={props} props={props}
certificatePhotoType={162} certificatePhotoType={162}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-xgfryzztj-aqscInfoNb" permissionView="gfd-xgfryzztj-aqscInfoNb"
dictionaryType="aqscglrygwmc0000" dictionaryType="aqscglrygwmc0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import SpecialCertificateList from "~/components/SpecialCertificateList"; import SpecialCertificateList from "~/components/SpecialCertificateList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业特种设备操作人员管理 // 企业特种设备操作人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="特种设备操作人员证书数" isShowFooter={false}> <PageLayout title="特种设备操作人员证书数">
<SpecialCertificateList <SpecialCertificateList
props={props} props={props}
certificatePhotoType={160} certificatePhotoType={160}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-xgfryzztj-tzsbInfoNb" permissionView="gfd-xgfryzztj-tzsbInfoNb"
dictionaryType="tzsbczryczxmzylb0000" dictionaryType="tzsbczryczxmzylb0000"
/> />
</Page> </PageLayout>
); );
} }

View File

@ -1,12 +1,12 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import Page from "zy-react-library/components/Page"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import SpecialCertificateList from "~/components/SpecialCertificateList"; import SpecialCertificateList from "~/components/SpecialCertificateList";
import { NS_USER_CERTIFICATE } from "~/enumerate/namespace"; import { NS_USER_CERTIFICATE } from "~/enumerate/namespace";
// 企业特种作业人员管理 // 企业特种作业人员管理
function List(props) { function List(props) {
return ( return (
<Page headerTitle="特种作业人员证书数" isShowFooter={false}> <PageLayout title="特种作业人员证书数">
<SpecialCertificateList <SpecialCertificateList
props={props} props={props}
certificatePhotoType={159} certificatePhotoType={159}
@ -15,7 +15,7 @@ function List(props) {
permissionView="gfd-xgfryzztj-tzzyInfoNb" permissionView="gfd-xgfryzztj-tzzyInfoNb"
dictionaryType="tzzyryhylb0000" dictionaryType="tzzyryhylb0000"
/> />
</Page> </PageLayout>
); );
} }