Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/main.jsdev_1.0.1
commit
080691d675
|
|
@ -362,6 +362,11 @@ export const qualFilingChangeSubmit = declareRequest("qualFilingLoading", safeAc
|
|||
return apiPost("/safetyEval/qual-filing-change/submit", { draftFilingId: asId(draftFilingId) });
|
||||
}));
|
||||
|
||||
export const qualFilingReviewGet = declareRequest(
|
||||
"qualFilingLoading",
|
||||
"Get > /safetyEval/qual-filing-review/page",
|
||||
);
|
||||
|
||||
export const submitQualFiling = declareRequest(
|
||||
"qualFilingSubmitLoading",
|
||||
"Post > @/safetyEval/qual-filing/aggregationSaveOrEdit",
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ export const FILING_TYPE_OPTIONS = [
|
|||
|
||||
/** 监管端已备案机构 - 备案类型搜索 */
|
||||
export const REGISTERED_ORG_FILING_TYPE_SEARCH_OPTIONS = [
|
||||
{ label: "全部", value: "" },
|
||||
|
||||
{ label: "审核备案", value: "1" },
|
||||
{ label: "确认备案", value: "2" },
|
||||
];
|
||||
|
|
|
|||
|
|
@ -99,10 +99,4 @@ export function canStartFilingChange(statusCode) {
|
|||
return Number(statusCode) === 1;
|
||||
}
|
||||
|
||||
/** 已备案资质管理:周期性填报审核中可修改 */
|
||||
export function isFiledManageEditable(statusCode, mode) {
|
||||
if (mode !== FILING_FORM_MODE.FILED) {
|
||||
return isQualFilingEditable(statusCode);
|
||||
}
|
||||
return Number(statusCode) === 2;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,10 +28,7 @@ if (!window.__POWERED_BY_QIANKUN__) {
|
|||
window.__coreLib.ReactDOM = require("react-dom");
|
||||
window.__coreLib.jjbCommonLib = require("@cqsjjb/jjb-common-lib");
|
||||
|
||||
// 本地开发时注入 Token,使 API 请求可携带认证信息
|
||||
const tokenValue = "jjb-saas-auth:oauth:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJjbGllbnRJZFwiOlwiNzJjZjRmNjU5ZGM1NGRjZmFlZWNkMzJlYWJmNDgzYjVcIixcImFjY291bnRJZFwiOjEsXCJ1c2VyVHlwZUVudW1cIjpcIlBMQVRGT1JNXCIsXCJ1c2VySWRcIjoxLFwibmFtZVwiOlwi6LaF57qn566h55CG5ZGYXCIsXCJhY2Nlc3NUaWNrZXRcIjpcIkc5Z3hoNkZYWUNpRThORFlWUlM2aW1pMGJ3WURZeHlXaUdnRDBRbVl2SFE1NEk3Ym5YeHlFaGRxdkNHclwiLFwicmVmcmVzaFRpY2tldFwiOlwiaDM4U3doemhVM0hIdk5pREI2dnU1NG0zaGRIZE1FRGhLZ2VSdTJsbzhwb3g3RlJHUFA4elF4WE5VWXJPXCIsXCJleHBpcmVJblwiOjkwMDAwMCxcInJlZnJlc2hFeHBpcmVzSW5cIjo5MDAwMDAsXCJvcmdJZFwiOjEsXCJvcmdOYW1lXCI6XCLlubPlj7BcIixcIm9yZ0lkc1wiOlsxXSxcInJvbGVzVHlwZXNcIjpbXCJTVVBFUl9BRE1JTlwiXSxcInJvbGVJZHNcIjpbMTAwXSxcInNjb3Blc1wiOltdLFwicnBjVHlwZUVudW1cIjpcIkhUVFBcIixcImJpbmRNb2JpbGVTaWduXCI6XCJUUlVFXCJ9IiwiaXNzIjoicHJvLXNlcnZlciIsImV4cCI6MTc4NDQwMjM3OH0.misilejhwf1sJBpZJSanAKkwbMXIZqeSn7pKIMlMOYs";
|
||||
localStorage.setItem("token", tokenValue);
|
||||
sessionStorage.setItem("token", tokenValue);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import {
|
|||
ENTERPRISE_SCALE_OPTIONS,
|
||||
ENTERPRISE_STATUS_OPTIONS,
|
||||
FILING_RECORD_STATUS_OPTIONS,
|
||||
FILING_TYPE_OPTIONS,
|
||||
REGISTERED_ORG_FILING_TYPE_SEARCH_OPTIONS,
|
||||
} from "~/enumerate/enterpriseOptions";
|
||||
import { NS_ORG_INFO } from "~/enumerate/namespace";
|
||||
import { mockUploadFileList } from "~/utils/mockUpload";
|
||||
|
|
@ -428,7 +428,7 @@ function OrgInfoPage(props) {
|
|||
<Col span={12}>
|
||||
<Form.Item name="filingTypeName" label="备案类型">
|
||||
<Select
|
||||
options={FILING_TYPE_OPTIONS}
|
||||
options={REGISTERED_ORG_FILING_TYPE_SEARCH_OPTIONS}
|
||||
placeholder="请选择备案类型"
|
||||
allowClear
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Form, message } from "antd";
|
||||
import { Button, Empty, Form, Modal, Table } from "antd";
|
||||
import { useEffect, useState } from "react";
|
||||
import { tools } from "@cqsjjb/jjb-common-lib";
|
||||
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
|
||||
|
|
@ -12,6 +12,8 @@ import { goFilingForm } from "../../filingPaths";
|
|||
const { router } = tools;
|
||||
|
||||
function FiledManageListPage(props) {
|
||||
const { qualFiling } = props;
|
||||
const {qualFilingLoading}= qualFiling;
|
||||
const [searchForm] = Form.useForm();
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [dataSource, setDataSource] = useState([]);
|
||||
|
|
@ -57,22 +59,76 @@ function FiledManageListPage(props) {
|
|||
goFilingForm({ mode: FILING_FORM_MODE.FILED });
|
||||
};
|
||||
|
||||
const [reviewModalOpen, setReviewModalOpen] = useState(false);
|
||||
const [reviewList, setReviewList] = useState([]);
|
||||
|
||||
const handleShowReview = async (record) => {
|
||||
setReviewModalOpen(true);
|
||||
setReviewList([]);
|
||||
try {
|
||||
const res = await props.qualFilingReviewGet({ filingId: record.filingId || record.id, current: 1, size: 999 });
|
||||
setReviewList(res?.data || []);
|
||||
} catch {
|
||||
setReviewList([]);
|
||||
}
|
||||
};
|
||||
|
||||
const handleCloseReview = () => {
|
||||
setReviewModalOpen(false);
|
||||
setReviewList([]);
|
||||
};
|
||||
|
||||
const REVIEW_RESULT_MAP = { 1: "通过", 2: "待定", 3: "不通过" };
|
||||
const reviewColumns = [
|
||||
{ title: "审核结果", dataIndex: "reviewResult", width: 100, render: (v) => REVIEW_RESULT_MAP[v] || v || "-" },
|
||||
{ title: "审核结果说明", dataIndex: "reviewResultRemark", ellipsis: true },
|
||||
{ title: "审核专家", dataIndex: "filingExpertName", width: 120 },
|
||||
{ title: "综合审核意见", dataIndex: "reviewOpinion", ellipsis: true },
|
||||
];
|
||||
|
||||
return (
|
||||
<FilingListTable
|
||||
PageLayout={PageLayout}
|
||||
listTitle="已备案资质管理"
|
||||
listDesc="对已备案资质进行周期性填报与维护。"
|
||||
createLabel="资质备案填报"
|
||||
mode={FILING_FORM_MODE.FILED}
|
||||
dataSource={dataSource}
|
||||
total={total}
|
||||
loading={loading}
|
||||
scrollY={props.scrollY}
|
||||
searchForm={searchForm}
|
||||
onSearch={handleSearch}
|
||||
onPageChange={handlePageChange}
|
||||
onCreate={handleCreate}
|
||||
/>
|
||||
<>
|
||||
<FilingListTable
|
||||
PageLayout={PageLayout}
|
||||
listTitle="已备案资质管理"
|
||||
listDesc="对已备案资质进行周期性填报与维护。"
|
||||
createLabel="资质备案填报"
|
||||
mode={FILING_FORM_MODE.FILED}
|
||||
dataSource={dataSource}
|
||||
total={total}
|
||||
loading={loading}
|
||||
scrollY={props.scrollY}
|
||||
searchForm={searchForm}
|
||||
onSearch={handleSearch}
|
||||
onPageChange={handlePageChange}
|
||||
onCreate={handleCreate}
|
||||
extraActions={(record) =>
|
||||
Number(record.filingStatusCode) === 3
|
||||
? <Button type="link" size="small" onClick={() => handleShowReview(record)}>打回原因</Button>
|
||||
: null
|
||||
}
|
||||
/>
|
||||
<Modal
|
||||
open={reviewModalOpen}
|
||||
title="打回原因"
|
||||
width={800}
|
||||
loading={qualFilingLoading}
|
||||
cancelText="关闭"
|
||||
okButtonProps={{ style: { display: "none" } }}
|
||||
onCancel={handleCloseReview}
|
||||
>
|
||||
{reviewList.length ? (
|
||||
<Table
|
||||
rowKey="id"
|
||||
size="small"
|
||||
bordered
|
||||
pagination={false}
|
||||
dataSource={reviewList}
|
||||
columns={reviewColumns}
|
||||
/>
|
||||
) : !qualFilingLoading ? <Empty /> : null}
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import { CHONGQING_DISTRICTS } from "~/enumerate/enterpriseOptions";
|
|||
import {
|
||||
FILING_FORM_MODE,
|
||||
getFilingStatusOptions,
|
||||
isFiledManageEditable,
|
||||
isQualFilingEditable,
|
||||
QUAL_FILING_STATUS_COLOR,
|
||||
} from "~/enumerate/qualFilingOptions";
|
||||
|
|
@ -35,9 +34,7 @@ export default function FilingListTable({
|
|||
const statusOptions = getFilingStatusOptions(mode);
|
||||
|
||||
const canEditRow = (record) => {
|
||||
if (mode === FILING_FORM_MODE.FILED) {
|
||||
return isFiledManageEditable(record.filingStatusCode, mode);
|
||||
}
|
||||
|
||||
return isQualFilingEditable(record.filingStatusCode);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ const ExpertVerification = (props) => {
|
|||
ellipsis: true,
|
||||
},
|
||||
{ title: "机构类型", dataIndex: "filingUnitTypeName", width: 100 },
|
||||
{ title: "证书编号", dataIndex: "filingNo", width: 140, ellipsis: true },
|
||||
{ title: "证书编号", dataIndex: "qualCertNo", width: 140, ellipsis: true },
|
||||
{
|
||||
title: "安全评价业务范围",
|
||||
dataIndex: "businessScope",
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const QualConfirm = (props) => {
|
|||
},
|
||||
{ title: "机构名称", dataIndex: "filingUnitName", width: 220, ellipsis: true },
|
||||
{ title: "机构类型", dataIndex: "filingUnitTypeName", width: 100 },
|
||||
{ title: "证书编号", dataIndex: "filingNo", width: 140, ellipsis: true },
|
||||
{ title: "证书编号", dataIndex: "qualCertNo", width: 140, ellipsis: true },
|
||||
{ title: "安全评价业务范围", dataIndex: "businessScope", width: 180, ellipsis: true },
|
||||
{
|
||||
title: "确认状态",
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ const QualConfirmForm = (props) => {
|
|||
</div>
|
||||
<div>
|
||||
<div className="summary-label">证书编号</div>
|
||||
<div className="summary-value">{qualFilingDetail.filingNo || '--'}</div>
|
||||
<div className="summary-value">{qualFilingDetail.qualCertNo || '--'}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="summary-label">业务范围</div>
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ const QualReview = (props) => {
|
|||
allowClear
|
||||
style={{ width: "100%" }}
|
||||
>
|
||||
|
||||
<Select.Option value="1">已审核</Select.Option>
|
||||
<Select.Option value="2">审核中</Select.Option>
|
||||
<Select.Option value="3">打回</Select.Option>
|
||||
</ControlWrapper.Select>
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ function OrgAccountPage(props) {
|
|||
<strong>{record.orgName}</strong>
|
||||
的密码重置为初始密码?
|
||||
</p>
|
||||
<p style={{ color: "rgba(0,0,0,0.45)", fontSize: 12 }}>初始密码:Ap@123456</p>
|
||||
<p style={{ color: "rgba(0,0,0,0.45)", fontSize: 12 }}>初始密码:a123456</p>
|
||||
</div>
|
||||
),
|
||||
okText: "确认重置",
|
||||
|
|
@ -166,7 +166,7 @@ function OrgAccountPage(props) {
|
|||
|
||||
const columns = [
|
||||
{ title: "机构名称", dataIndex: "orgName", ellipsis: true },
|
||||
{ title: "属地", dataIndex: "district", width: 100 },
|
||||
{ title: "属地", dataIndex: "district", width: 260 },
|
||||
{
|
||||
title: "状态",
|
||||
width: 80,
|
||||
|
|
|
|||
|
|
@ -291,7 +291,10 @@ const ExperManage = (props) => {
|
|||
{qualExpertDetail?.idCardNo || "--"}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="证书" span={2}>
|
||||
{(qualExpertDetail?.certificate? JSON.parse(qualExpertDetail?.certificate): [])?.map((item) => (
|
||||
{(Array.isArray(qualExpertDetail?.certificate)
|
||||
? qualExpertDetail?.certificate
|
||||
: JSON.parse(qualExpertDetail?.certificate || "[]")
|
||||
)?.map((item) => (
|
||||
<a key={item.id} href={item.url} target="_blank">
|
||||
{item.name}
|
||||
</a>
|
||||
|
|
|
|||
Loading…
Reference in New Issue