import { Button, Descriptions, Form, Input, InputNumber, message, Modal, Row, Col, Select, Space, Tag, } from "antd"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { useEffect, useState } from "react"; import Page from "zy-react-library/components/Page"; 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"; import { isOrgAccountEnabled } from "~/api/enterpriseInfo/adapter"; import { CHONGQING_DISTRICTS, ENTERPRISE_SCALE_OPTIONS, ENTERPRISE_STATUS_OPTIONS, ORG_ACCOUNT_STATE_OPTIONS, } from "~/enumerate/enterpriseOptions"; import { NS_ORG_INFO } from "~/enumerate/namespace"; import { safeListRequest, safeRequest } from "~/utils"; import { formSelectField } from "~/utils/enterpriseForm"; import PageHeader from "../../../EnterpriseInfo/components/PageHeader"; const SEARCH_COL = { xs: 24, sm: 12, md: 8, lg: 6 }; const SEARCH_DEFAULT_VALUES = { state: "" }; function OrgAccountPage(props) { const [searchForm] = Form.useForm(); const [editForm] = Form.useForm(); const [viewOpen, setViewOpen] = useState(false); const [editOpen, setEditOpen] = useState(false); const [currentId, setCurrentId] = useState(null); const [detail, setDetail] = useState(null); const [rawDetail, setRawDetail] = useState(null); const [detailLoading, setDetailLoading] = useState(false); const [editLoading, setEditLoading] = useState(false); const { tableProps, getData } = useTable(safeListRequest(props.orgAccountList), { form: searchForm }); useEffect(() => { getData(); }, []); const loadDetail = async (id) => { setDetailLoading(true); const res = await safeRequest(props.orgAccountGet, { id }); setDetail(res?.data || null); setRawDetail(res?.raw || null); setDetailLoading(false); return res; }; const openView = async (id) => { setCurrentId(id); setViewOpen(true); await loadDetail(id); }; const openEdit = async (id) => { setCurrentId(id); setEditOpen(true); const res = await loadDetail(id); if (res?.data) { editForm.setFieldsValue(res.data); } }; const onToggleStatus = (record) => { const enabled = isOrgAccountEnabled(record); Modal.confirm({ title: "确认操作", content: enabled ? `确认禁用「${record.orgName}」账号?` : `确认启用「${record.orgName}」账号?`, okText: "确认", cancelText: "取消", onOk: async () => { const nextState = enabled ? 1 : 0; const res = await props.orgAccountUpdateState({ id: record.id, state: nextState }); if (res?.success !== false) { message.success("操作成功"); await getData(); } else { message.error(res?.message || "操作失败"); } }, }); }; const onResetPassword = (record) => { Modal.confirm({ title: "重置密码", content: (

确认将 {record.orgName} 的密码重置为初始密码?

初始密码:Ap@123456

), okText: "确认重置", cancelText: "取消", onOk: async () => { const res = await props.orgAccountResetPassword({ id: record.id }); if (res?.success !== false) { message.success("密码已重置"); } else { message.error(res?.message || "重置失败"); } }, }); }; const onDelete = (record) => { Modal.confirm({ title: "确认删除", content: (

确认删除 {record.orgName} 的账号?

此操作不可恢复,请谨慎操作。

), okText: "确认删除", okButtonProps: { danger: true }, cancelText: "取消", onOk: async () => { const res = await props.orgAccountDelete({ id: record.id }); if (res?.success !== false) { message.success("删除成功"); await getData(); } else { message.error(res?.message || "删除失败"); } }, }); }; const onEditSubmit = async () => { const values = await editForm.validateFields(); setEditLoading(true); const res = await props.orgAccountModify({ ...values, id: currentId, raw: rawDetail, }); setEditLoading(false); if (res?.success !== false) { message.success("保存成功"); setEditOpen(false); setCurrentId(null); setRawDetail(null); editForm.resetFields(); await getData(); } else { message.error(res?.message || "保存失败"); } }; return ( ( {isOrgAccountEnabled(record) ? "启用" : "禁用"} ), }, { title: "开户时间", dataIndex: "createTime", width: 110 }, { title: "操作", width: 320, fixed: "right", render: (_, record) => ( ), }, ]} /> { setViewOpen(false); setDetail(null); setRawDetail(null); }} > {detail && ( {detail.orgName} {detail.creditCode} {detail.regionCountyName} {detail.safetyIndustryCategory} {detail.businessAddress} {detail.enterpriseStatus} {detail.longitude}, {detail.latitude} {detail.principal} {detail.principalPhone} {detail.legalRepresentative} {detail.legalRepPhone} {detail.enterpriseScale} )} { setEditOpen(false); setCurrentId(null); setRawDetail(null); editForm.resetFields(); }} onOk={onEditSubmit} >