import { Button, DatePicker, Descriptions, Form, Input, InputNumber, message, Modal, Row, Col, Select, Space, Tag, Table, } from "antd"; import TableAction from "@cqsjjb/jjb-react-admin-component/TableAction"; import { tools } from "@cqsjjb/jjb-common-lib"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { useEffect, useState } from "react"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout"; import SearchForm from "@cqsjjb/jjb-react-admin-component/SearchForm"; import ControlWrapper from "@cqsjjb/jjb-react-admin-component/ControlWrapper"; import { AntdTableFuncControl } from "@cqsjjb/jjb-common-decorator/antd"; import { isOrgAccountEnabled } from "~/utils/enterpriseInfo/adapter"; import { CHONGQING_DISTRICTS, ENTERPRISE_SCALE_OPTIONS, ORG_ACCOUNT_STATE_OPTIONS, ENTERPRISE_STATUS_OPTIONS, } from "~/enumerate/enterpriseOptions"; import { NS_ORG_INFO } from "~/enumerate/namespace"; import { safeListRequest, safeRequest } from "~/utils"; const { router } = tools; 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 [detailLoading, setDetailLoading] = useState(false); const [editLoading, setEditLoading] = useState(false); const [dataSource, setDataSource] = useState([]); const [total, setTotal] = useState(0); const [loading, setLoading] = useState(false); const getData = async () => { setLoading(true); try { const raw = searchForm.getFieldsValue(); const params = { ...raw, current: router.query.current || 1, pageSize: router.query.pageSize || 10, state: raw.state !== "" && raw.state !== undefined ? Number(raw.state) : undefined, ...(Array.isArray(raw.openTimeRange) && raw.openTimeRange[0] && raw.openTimeRange[1] ? { createTimeStart: raw.openTimeRange[0].format("YYYY-MM-DD"), createTimeEnd: raw.openTimeRange[1].format("YYYY-MM-DD"), } : {}), }; delete params.openTimeRange; Object.keys(params).forEach((k) => { if (params[k] === undefined) delete params[k]; }); const res = await safeListRequest(props.orgAccountList)(params); setDataSource(res?.data || []); setTotal(res?.total || 0); } finally { setLoading(false); } }; useEffect(() => { getData(1, 10); }, []); const loadDetail = async (id) => { setDetailLoading(true); const res = await safeRequest(props.orgAccountGet, { id }); setDetail(res?.data || 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.unitName}」账号?` : `确认启用「${record.unitName}」账号?`, 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(); } }, }); }; const onResetPassword = (record) => { console.log(record); Modal.confirm({ title: "重置密码", content: (

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

初始密码:a123456

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

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

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

), okText: "确认删除", okButtonProps: { danger: true }, cancelText: "取消", onOk: async () => { const res = await props.orgAccountDelete({ data: record.id }); if (res?.success !== false) { message.success("删除成功"); await getData(); } }, }); }; const onEditSubmit = async () => { const values = await editForm.validateFields(); setEditLoading(true); const res = await props.orgAccountModify({ ...values, id: currentId, }); setEditLoading(false); if (res?.success !== false) { message.success("保存成功"); setEditOpen(false); setCurrentId(null); editForm.resetFields(); await getData(); } }; const columns = [ { title: "机构名称", dataIndex: "unitName", ellipsis: true }, { title: "属地", dataIndex: "districtName", width: 260 }, { title: "状态", width: 80, render: (_, record) => ( {isOrgAccountEnabled(record) ? "启用" : "禁用"} ), }, { title: "开户时间", dataIndex: "createTime", width: 110 }, { title: "操作", width: 200, fixed: "right", render: (_, record) => ( ), }, ]; return ( 评价机构账号管理
监管端维护评价机构开户账号。
} > , {CHONGQING_DISTRICTS.map((opt) => ( {opt.label} ))} , {ORG_ACCOUNT_STATE_OPTIONS.map((opt) => ( {opt.label} ))} , , ]} onReset={(values) => { searchForm.resetFields(); router.query = { ...values, current: 1, pageSize: 10, }; getData(); }} onFinish={(values) => { router.query = { ...values, current: 1, pageSize: 10, }; getData() }} /> `共 ${t} 条`, current: router.query.current || 1, pageSize: router.query.pageSize || 10, onChange: (page, pageSize) => { router.query = { ...router.query, current: page, pageSize }; getData(); }, }} /> { setViewOpen(false); setDetail(null); }} > {detail && ( {detail.unitName} {detail.creditCode} {detail.districtName} {detail.safetyIndustryCategoryName} {detail.businessAddress} {detail.enterpriseStatusName} {detail.longitude}, {detail.latitude} {detail.principalName} {detail.principalPhone} {detail.legalRepresentative} {detail.legalRepresentativePhone} {detail.enterpriseScaleName} )} { setEditOpen(false); setCurrentId(null); editForm.resetFields(); }} onOk={onEditSubmit} >