修改监管端 相关方信息管理 添加分公司信息管理

master
853931625@qq.com 2025-11-04 10:22:48 +08:00
parent dd438a6c74
commit 9a76737033
17 changed files with 321 additions and 28 deletions

View File

@ -1,8 +1,11 @@
import { tools } from "@cqsjjb/jjb-common-lib"; import { tools } from "@cqsjjb/jjb-common-lib";
import { Button, Modal, QRCode } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import HeaderBack from "zy-react-library/components/HeaderBack";
import Map from "zy-react-library/components/Map"; import Map from "zy-react-library/components/Map";
import Upload from "zy-react-library/components/Upload";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { PHONE, UNIFIED_SOCIAL_CREDIT_CODE } from "zy-react-library/regular"; import { PHONE, UNIFIED_SOCIAL_CREDIT_CODE } from "zy-react-library/regular";
@ -15,6 +18,7 @@ const xgfStateMap = {
}; };
const { query } = tools.router; const { query } = tools.router;
function Add() { function Add() {
const [corpInfoQrCodeOpen, setCorpInfoQrCodeOpen] = useState(false);
const onSubmit = (values) => { const onSubmit = (values) => {
console.log(values); console.log(values);
}; };
@ -24,43 +28,63 @@ function Add() {
<div style={{ paddingBottom: 10 }}> <div style={{ paddingBottom: 10 }}>
<FormBuilder <FormBuilder
onFinish={onSubmit} onFinish={onSubmit}
span={8} span={12}
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
{ label: "相关方单位基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER}, { label: "相关方单位基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{ name: "corpName", label: "单位名称" }, { name: "corpName", label: "单位名称" },
{ name: "xgfState", label: "企业状态", required: false, render: ({ formValues }) => xgfStateMap[formValues?.xgfState] || "未填报" }, { name: "xgfState", label: "企业状态", required: false, render: ({ formValues }) => xgfStateMap[formValues?.xgfState] || "未填报" },
{ name: "managerDepIds", label: "股份监管部门", required: false }, { name: "holderName", label: "开户人", required: false, componentProps: { disabled: true }, hidden: (!query.id) },
{ name: "mainDepIds", label: "股份主管部门", required: false }, { name: "code", label: "统一社会信用代码", rules: [{ pattern: UNIFIED_SOCIAL_CREDIT_CODE, message: "请输入正确的统一社会信用代码" }] },
{ name: "competentDepIds", label: "基层单位监管部门", required: false }, { name: "companyAreas", label: "属地", required: false, hidden: (!query.id) },
{ name: "superviseDepIds", label: "基层单位主管部门" }, { name: "industryNames", label: "所属行业", required: false, hidden: (!query.id) },
{ name: "corpTypIds", label: "集团单位", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }] }, { name: "map", customizeRender: true, render: () => <Map required={false} />, span: 24, hidden: (!query.id) },
{ name: "holderName", label: "开户人", required: false, disabled: true },
{ name: "code", label: "统一社会信用代码", rules: [{ pattern: UNIFIED_SOCIAL_CREDIT_CODE, message: "请输入正确的统一社会信用代码" }], required: false },
{ name: "companyAreas", label: "属地", required: false },
{ name: "industryNames", label: "所属行业", required: false },
{ name: "ecoType", label: "经济类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false }, { name: "ecoType", label: "经济类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false },
{ name: "map", customizeRender: true, render: () => <Map required={false} />, span: 16 }, { name: "address", label: "单位经营地址", required: false, hidden: (!query.id) },
{ name: "address", label: "单位经营地址", required: false }, { name: "scale", label: "企业规模", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "scale", label: "企业规模", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false }, { name: "lrName", label: "法人姓名", required: false, hidden: (!query.id) },
{ name: "lrName", label: "法人姓名", required: false }, { name: "lrPhone", label: "联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false, hidden: (!query.id) },
{ name: "lrPhone", label: "联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false }, { name: "contacts", label: "主要负责人", required: false, hidden: (!query.id) },
{ name: "contacts", label: "主要负责人", required: false }, { name: "contactsPhone", label: "主要负责人联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false, hidden: (!query.id) },
{ name: "contactsPhone", label: "主要负责人联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false }, { name: "createDate", label: "成立日期", render: FORM_ITEM_RENDER_ENUM.DATE, required: false, hidden: (!query.id) },
{ name: "createDate", label: "成立日期", render: FORM_ITEM_RENDER_ENUM.DATE, required: false }, { name: "employees", label: "职工人数(人)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "employees", label: "职工人数(人)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false }, { name: "totalassets", label: "资产总额(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "totalassets", label: "资产总额(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false }, { name: "regcapital", label: "注册资金(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "regcapital", label: "注册资金(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false }, { name: "employmentForm", label: "用工形式", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "employmentForm", label: "用工形式", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false }, { name: "selectForms", label: "企业类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "selectForms", label: "选取形式", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false }, { name: "businessLicense", label: "营业执照", render: ({ value, onChange }) => <Upload maxCount={5} size={5} value={value} onChange={onChange} />, hidden: (!query.id) },
{ name: "selectForms", label: "企业类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false }, { name: "businessLicenseDate", label: "营业执照有效期", render: FORM_ITEM_RENDER_ENUM.DATE, hidden: (!query.id) },
{ name: "qrCode", label: "企业二维码", required: false, hidden: formValues => !(formValues.xgfState !== 2 && query.id), render: () => (
<Button
type="link"
onClick={() => {
setCorpInfoQrCodeOpen(true);
}}
>
查看
</Button>
) },
]} ]}
/> />
</div> </div>
<CorpInfoQrCode open={corpInfoQrCodeOpen} onCancel={() => setCorpInfoQrCodeOpen(false)} />
</> </>
); );
} }
const CorpInfoQrCode = (props) => {
return (
<Modal
open={props.open}
onCancel={props.onCancel}
title="企业二维码"
footer={[
<Button key="cancel" onClick={props.onCancel}>
关闭
</Button>,
]}
>
<QRCode value="-" style={{ margin: "0 auto" }} />
</Modal>
);
};
export default Add; export default Add;

View File

@ -0,0 +1,39 @@
import { Descriptions, Divider } from "antd";
function Info() {
return (
<div style={{ padding: 20 }}>
<Divider orientation="left">基本信息</Divider>
<Descriptions
labelStyle={{ width: 200 }}
column={1}
bordered
items={[
{ label: "企业名称", children: "Zhou" },
{ label: "企业状态", children: "Zhou" },
{ label: "开户人", children: "Zhou" },
{ label: "统一社会信用代码", children: "Zhou" },
{ label: "属地", children: "Zhou" },
{ label: "所属行业", children: "Zhou" },
{ label: "经济类型", children: "Zhou" },
{ label: "经度", children: "Zhou" },
{ label: "纬度", children: "Zhou" },
{ label: "单位经营地址", children: "Zhou" },
{ label: "企业规模", children: "Zhou" },
{ label: "法定代表人", children: "Zhou" },
{ label: "法人手机号", children: "Zhou" },
{ label: "主要负责人", children: "Zhou" },
{ label: "主要负责人手机号", children: "Zhou" },
{ label: "成立日期", children: "Zhou" },
{ label: "职工人数", children: "Zhou" },
{ label: "资产总额(万元)", children: "Zhou" },
{ label: "注册资金(万元)", children: "Zhou" },
{ label: "营业执照", children: "Zhou" },
{ label: "企业二维码", children: "Zhou" },
]}
/>
</div>
);
}
export default Info;

View File

@ -0,0 +1,90 @@
import { tools } from "@cqsjjb/jjb-common-lib";
import { Button, Modal, QRCode } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Map from "zy-react-library/components/Map";
import Upload from "zy-react-library/components/Upload";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { PHONE, UNIFIED_SOCIAL_CREDIT_CODE } from "zy-react-library/regular";
const xgfStateMap = {
0: "未填报",
1: "待审核",
2: "已审核",
3: <span style={{ color: "red" }}>已打回</span>,
4: "已填报",
};
const { query } = tools.router;
function Add() {
const [corpInfoQrCodeOpen, setCorpInfoQrCodeOpen] = useState(false);
const onSubmit = (values) => {
console.log(values);
};
return (
<>
<HeaderBack title={query.id ? "修改" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<FormBuilder
onFinish={onSubmit}
span={12}
labelCol={{ span: 8 }}
options={[
{ label: "相关方单位基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{ name: "corpName", label: "单位名称" },
{ name: "xgfState", label: "企业状态", required: false, render: ({ formValues }) => xgfStateMap[formValues?.xgfState] || "未填报" },
{ name: "holderName", label: "开户人", required: false, componentProps: { disabled: true }, hidden: (!query.id) },
{ name: "code", label: "统一社会信用代码", rules: [{ pattern: UNIFIED_SOCIAL_CREDIT_CODE, message: "请输入正确的统一社会信用代码" }] },
{ name: "companyAreas", label: "属地", required: false, hidden: (!query.id) },
{ name: "industryNames", label: "所属行业", required: false, hidden: (!query.id) },
{ name: "map", customizeRender: true, render: () => <Map required={false} />, span: 24, hidden: (!query.id) },
{ name: "ecoType", label: "经济类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false },
{ name: "address", label: "单位经营地址", required: false, hidden: (!query.id) },
{ name: "scale", label: "企业规模", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "lrName", label: "法人姓名", required: false, hidden: (!query.id) },
{ name: "lrPhone", label: "联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false, hidden: (!query.id) },
{ name: "contacts", label: "主要负责人", required: false, hidden: (!query.id) },
{ name: "contactsPhone", label: "主要负责人联系电话", rules: [{ pattern: PHONE, message: "请输入正确的手机号码" }], required: false, hidden: (!query.id) },
{ name: "createDate", label: "成立日期", render: FORM_ITEM_RENDER_ENUM.DATE, required: false, hidden: (!query.id) },
{ name: "employees", label: "职工人数(人)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "totalassets", label: "资产总额(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "regcapital", label: "注册资金(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, required: false, hidden: (!query.id) },
{ name: "employmentForm", label: "用工形式", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "selectForms", label: "企业类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "集团单位1", id: "1" }], required: false, hidden: (!query.id) },
{ name: "businessLicense", label: "营业执照", render: ({ value, onChange }) => <Upload maxCount={5} size={5} value={value} onChange={onChange} />, hidden: (!query.id) },
{ name: "businessLicenseDate", label: "营业执照有效期", render: FORM_ITEM_RENDER_ENUM.DATE, hidden: (!query.id) },
{ name: "qrCode", label: "企业二维码", required: false, hidden: formValues => !(formValues.xgfState !== 2 && query.id), render: () => (
<Button
type="link"
onClick={() => {
setCorpInfoQrCodeOpen(true);
}}
>
查看
</Button>
) },
]}
/>
</div>
<CorpInfoQrCode open={corpInfoQrCodeOpen} onCancel={() => setCorpInfoQrCodeOpen(false)} />
</>
);
}
const CorpInfoQrCode = (props) => {
return (
<Modal
open={props.open}
onCancel={props.onCancel}
title="企业二维码"
footer={[
<Button key="cancel" onClick={props.onCancel}>
关闭
</Button>,
]}
>
<QRCode value="-" style={{ margin: "0 auto" }} />
</Modal>
);
};
export default Add;

View File

@ -0,0 +1,74 @@
import { Button, Form, message, Modal, Space } from "antd";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useTable from "zy-react-library/hooks/useTable";
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(() => {}, { form });
const onDelete = (id) => {
Modal.confirm({
title: "提示",
content: "确定删除吗?",
onOk: () => {
message.success("删除成功");
getData();
},
});
};
const onResetPassword = () => {
Modal.confirm({
title: "提示",
content: "确定要重置密码为Aa@123456789吗",
onOk: () => {
message.success("重置密码成功");
},
});
};
return (
<div style={{ padding: 20 }}>
<Search
options={[
// { name: "name", label: "关键字", tip: "证书名称/证书编号" },
{ name: "name", label: "单位名称", placeholder: "请输入单位名称,支持模糊搜索" },
{ name: "name", label: "属地", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "111", id: "1" }] },
{ name: "time", label: "证书有效期", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "name", label: "集团单位", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "111", id: "1" }] },
{ name: "name", label: "股份主管部门", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "111", id: "1" }] },
{ name: "name", label: "主管部门(指定)", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "111", id: "1" }] },
{ name: "name", label: "主管部门(级联)", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "111", id: "1" }] },
]}
form={form}
/>
<Table
toolBarRender={() => (
<Button type="primary" onClick={() => props.history.push("./add")} icon={<AddIcon />}>新增</Button>
)}
columns={[
{ title: "集团单位", dataIndex: "name" },
{ title: "相关单位名称", dataIndex: "name" },
{ title: "属地", dataIndex: "name" },
{ title: "股份主管部门", dataIndex: "name" },
{ title: "股份监管部门", dataIndex: "name" },
{ title: "基层单位主管部门", dataIndex: "name" },
{ title: "基层单位监督部门", dataIndex: "name" },
{ title: "开户人", dataIndex: "name" },
{ title: "状态", dataIndex: "name" },
{ title: "操作", width: 200, render: (_, record) => (
<Space>
<Button type="link" onClick={() => props.history.push(`./add?id=${record.id}`)}>查看</Button>
<Button type="link" onClick={() => props.history.push(`./add?id=${record.id}`)}>编辑</Button>
<Button type="link" onClick={() => onResetPassword(record.id)}>重置密码</Button>
<Button type="link" danger onClick={() => onDelete(record.id)}>删除</Button>
</Space>
) },
]}
{...tableProps}
/>
</div>
);
}
export default List;

View File

@ -0,0 +1,39 @@
import { Descriptions, Divider } from "antd";
function Info() {
return (
<div style={{ padding: 20 }}>
<Divider orientation="left">基本信息</Divider>
<Descriptions
labelStyle={{ width: 200 }}
column={1}
bordered
items={[
{ label: "企业名称", children: "Zhou" },
{ label: "企业状态", children: "Zhou" },
{ label: "开户人", children: "Zhou" },
{ label: "统一社会信用代码", children: "Zhou" },
{ label: "属地", children: "Zhou" },
{ label: "所属行业", children: "Zhou" },
{ label: "经济类型", children: "Zhou" },
{ label: "经度", children: "Zhou" },
{ label: "纬度", children: "Zhou" },
{ label: "单位经营地址", children: "Zhou" },
{ label: "企业规模", children: "Zhou" },
{ label: "法定代表人", children: "Zhou" },
{ label: "法人手机号", children: "Zhou" },
{ label: "主要负责人", children: "Zhou" },
{ label: "主要负责人手机号", children: "Zhou" },
{ label: "成立日期", children: "Zhou" },
{ label: "职工人数", children: "Zhou" },
{ label: "资产总额(万元)", children: "Zhou" },
{ label: "注册资金(万元)", children: "Zhou" },
{ label: "营业执照", children: "Zhou" },
{ label: "企业二维码", children: "Zhou" },
]}
/>
</div>
);
}
export default Info;

View File

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

View File

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

View File

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