style
parent
8e35c0f289
commit
81ddf115ff
|
|
@ -10,6 +10,7 @@
|
|||
/doc
|
||||
/docs
|
||||
/.trae/
|
||||
/.qoder/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
|
|
|||
|
|
@ -25,11 +25,9 @@
|
|||
"@cqsjjb/jjb-common-lib": "latest",
|
||||
"@cqsjjb/jjb-dva-runtime": "latest",
|
||||
"@cqsjjb/jjb-react-admin-component": "latest",
|
||||
"@eigenpal/docx-editor-react": "^1.9.0",
|
||||
"@rc-component/motion": "^1.0.0",
|
||||
"@rc-component/util": "^1.11.1",
|
||||
"antd": "^5.29.2",
|
||||
"china-division": "^2.7.0",
|
||||
"dayjs": "^1.11.7",
|
||||
"docxtemplater": "latest",
|
||||
"echarts": "^6.1.0",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import pcaCode from "china-division/dist/pca-code.json";
|
||||
|
||||
/**
|
||||
* 全局常量定义
|
||||
*/
|
||||
|
|
@ -563,21 +563,7 @@ export const ROLE_DEFINITIONS_MAP = ROLE_DEFINITIONS.reduce((acc, cur) => {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
export const NATIONAL_COUNTIES = (() => {
|
||||
const result = [];
|
||||
pcaCode.forEach((province) => {
|
||||
province.children?.forEach((city) => {
|
||||
city.children?.forEach((county) => {
|
||||
result.push({
|
||||
label: `${province.name}/${city.name}/${county.name}`,
|
||||
value: county.code,
|
||||
name: county.name,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
return result;
|
||||
})();
|
||||
|
||||
|
||||
/** 专业能力枚举 */
|
||||
export const CAPABILITY_OPTIONS = [
|
||||
|
|
|
|||
|
|
@ -66,12 +66,12 @@
|
|||
}
|
||||
|
||||
.inst-metric-card .label {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.inst-metric-card .value {
|
||||
font-size: 24px;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: #0f172a;
|
||||
margin: 4px 0;
|
||||
|
|
@ -91,7 +91,7 @@
|
|||
}
|
||||
|
||||
.inst-metric-card .hint {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #94a3b8;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,19 +29,19 @@
|
|||
|
||||
.stat-info {
|
||||
.stat-label {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 24.5px;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
line-height: 1.15;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.stat-hint {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,11 +18,12 @@
|
|||
|
||||
.stat-info {
|
||||
.stat-label {
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 28px;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
line-height: 1.15;
|
||||
margin-top: 6px;
|
||||
|
|
@ -41,7 +42,7 @@
|
|||
}
|
||||
|
||||
.stat-hint {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,6 @@ const ExpertVerification = (props) => {
|
|||
<SearchForm
|
||||
style={{ marginBottom: 24 }}
|
||||
form={form}
|
||||
defaultExpand
|
||||
loading={qualReviewLoading}
|
||||
formLine={[
|
||||
<Form.Item key="filingUnitName" name="filingUnitName">
|
||||
|
|
|
|||
|
|
@ -122,7 +122,6 @@ const QualChange = (props) => {
|
|||
<SearchForm
|
||||
style={{ marginBottom: 24 }}
|
||||
form={form}
|
||||
defaultExpand
|
||||
loading={qualReviewLoading}
|
||||
formLine={[
|
||||
<Form.Item key="filingUnitName" name="filingUnitName">
|
||||
|
|
|
|||
|
|
@ -124,7 +124,6 @@ const QualConfirm = (props) => {
|
|||
<SearchForm
|
||||
style={{ marginBottom: 24 }}
|
||||
form={form}
|
||||
defaultExpand
|
||||
loading={qualReviewLoading}
|
||||
formLine={[
|
||||
<Form.Item key="filingUnitName" name="filingUnitName">
|
||||
|
|
|
|||
|
|
@ -160,7 +160,6 @@ const QualReview = (props) => {
|
|||
<SearchForm
|
||||
style={{ marginBottom: 24 }}
|
||||
form={form}
|
||||
defaultExpand
|
||||
loading={qualReviewLoading}
|
||||
formLine={[
|
||||
<Form.Item key="filingUnitName" name="filingUnitName">
|
||||
|
|
|
|||
|
|
@ -76,7 +76,6 @@ function RegisteredOrgListPage(props) {
|
|||
<SearchForm
|
||||
form={searchForm}
|
||||
loading={loading}
|
||||
defaultExpand
|
||||
formLine={[
|
||||
<Form.Item key="filingUnitName" name="filingUnitName">
|
||||
<ControlWrapper.Input label="单位名称" allowClear placeholder="关键字搜索" />
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.cockpit-page {
|
||||
.cockpit-page {
|
||||
min-height: 100%;
|
||||
background: #010817;
|
||||
color: #d8eeff;
|
||||
|
|
@ -172,8 +172,8 @@
|
|||
box-shadow: inset 0 0 14px rgba(46, 204, 255, .34);
|
||||
}
|
||||
|
||||
.life-stat p { margin: 0 0 3px; color: #cde9ff; font-size: 14px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.life-stat strong { color: #20caff; font-size: 14px; font-family: Arial, sans-serif; }
|
||||
.life-stat p { margin: 0 0 3px; color: #cde9ff; font-size: 16px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.life-stat strong { color: #20caff; font-size: 20px; font-family: Arial, sans-serif; }
|
||||
.progress-list { padding: 2px 8px 10px; border-top: 1px solid rgba(54, 142, 219, .18); }
|
||||
.progress-row { height: 31px; display: grid; grid-template-columns: 122px 1fr 34px; align-items: center; gap: 8px; font-size: 14px; color: #e2f5ff; }
|
||||
.progress-track { height: 9px; border-radius: 999px; background: rgba(5, 35, 83, .88); overflow: hidden; box-shadow: inset 0 0 9px rgba(5, 17, 44, .9); }
|
||||
|
|
@ -195,8 +195,8 @@
|
|||
}
|
||||
.risk-item:nth-child(3), .risk-item:nth-child(4) { border-color: rgba(255, 207, 43, .45); background: linear-gradient(90deg, rgba(116, 89, 15, .54), rgba(6, 32, 73, .62)); }
|
||||
.risk-item:nth-child(5) { grid-column: 1 / -1; }
|
||||
.risk-item span { color: #e8f7ff; font-size: 14px; line-height: 1.3; }
|
||||
.risk-item b { color: #21caff; font-size: 17px; }
|
||||
.risk-item span { color: #e8f7ff; font-size: 16px; line-height: 1.3; }
|
||||
.risk-item b { color: #21caff; font-size: 20px; }
|
||||
.risk-pie { height: 118px; }
|
||||
|
||||
.kpi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; height: 58px; }
|
||||
|
|
@ -208,9 +208,9 @@
|
|||
box-shadow: inset 0 0 20px rgba(42, 208, 255, .16), 0 0 10px rgba(0, 161, 255, .18);
|
||||
}
|
||||
.kpi-card::before { content: ""; position: absolute; top: -1px; left: 28px; width: 54px; height: 4px; background: repeating-linear-gradient(90deg, #2adfff 0 9px, transparent 9px 15px); }
|
||||
.kpi-card p { margin: 0 0 6px; text-align: center; color: #d6f7ff; font-weight: 700; font-size: 14px; }
|
||||
.kpi-card strong { font-size: 22px; color: #fff; letter-spacing: 1px; }
|
||||
.kpi-card span { float: right; margin-top: 7px; color: #d9ebff; font-size: 14px; }
|
||||
.kpi-card p { margin: 0 0 6px; text-align: center; color: #d6f7ff; font-weight: 700; font-size: 16px; }
|
||||
.kpi-card strong { font-size: 20px; color: #fff; letter-spacing: 1px; }
|
||||
.kpi-card span { float: right; margin-top: 7px; color: #d9ebff; font-size: 16px; }
|
||||
.kpi-card b { color: #fff; }
|
||||
|
||||
.map-chart { position: absolute; inset: 0 0 0; }
|
||||
|
|
@ -240,8 +240,8 @@
|
|||
.todo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 10px; }
|
||||
.todo-item { display: grid; grid-template-columns: 34px 1fr; grid-template-rows: 18px 18px; align-items: center; column-gap: 8px; }
|
||||
.todo-item span { grid-row: 1 / 3; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 16px; background: radial-gradient(circle, rgba(73, 198, 255, .5), rgba(7, 51, 112, .95)); border: 1px solid rgba(69, 204, 255, .64); box-shadow: inset 0 0 15px rgba(53, 202, 255, .3); }
|
||||
.todo-item p { margin: 0; color: #d8edff; font-size: 14px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.todo-item b { color: #13c8ff; font-size: 15px; }
|
||||
.todo-item p { margin: 0; color: #d8edff; font-size: 16px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.todo-item b { color: #13c8ff; font-size: 20px; }
|
||||
.period-tabs { position: absolute; left: 14px; top: 42px; display: flex; z-index: 2; }
|
||||
.period-tabs span { width: 34px; height: 19px; display: grid; place-items: center; color: #d8f2ff; border: 1px solid rgba(46, 159, 232, .48); background: rgba(7, 37, 88, .6); font-size: 14px; cursor: pointer; }
|
||||
.period-tabs span + span { border-left: none; }
|
||||
|
|
@ -251,8 +251,8 @@
|
|||
.review-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 14px; }
|
||||
.review-stat { display: flex; align-items: center; gap: 8px; min-width: 0; }
|
||||
.review-stat span { width: 37px; height: 37px; display: grid; place-items: center; color: #20d3ff; font-size: 17px; border-radius: 50%; background: radial-gradient(circle, rgba(26, 188, 255, .35), rgba(5, 37, 93, .9)); border: 2px solid rgba(35, 210, 255, .65); }
|
||||
.review-stat p { margin: 0; color: #e1f5ff; font-size: 14px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.review-stat b { color: #18c9ff; font-size: 15px; }
|
||||
.review-stat p { margin: 0; color: #e1f5ff; font-size: 16px; white-space: normal; line-height: 1.1; overflow-wrap: anywhere; }
|
||||
.review-stat b { color: #18c9ff; font-size: 20px; }
|
||||
.review-stat b.danger { color: #ff3e53; }
|
||||
.review-pie { height: 144px; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.supervision-dashboard-page {
|
||||
.supervision-dashboard-page {
|
||||
min-height: 100%;
|
||||
background: #f4f4f4;
|
||||
padding: 0;
|
||||
|
|
@ -55,13 +55,13 @@
|
|||
.overview-item p {
|
||||
margin: 0 0 8px;
|
||||
color: #8b8f99;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.overview-item strong {
|
||||
display: block;
|
||||
margin-bottom: 6px;
|
||||
font-size: 21px;
|
||||
font-size: 20px;
|
||||
line-height: 24px;
|
||||
color: #24272d;
|
||||
font-weight: 700;
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
display: flex;
|
||||
gap: 14px;
|
||||
color: #8b8f99;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.overview-item i {
|
||||
|
|
@ -105,12 +105,12 @@
|
|||
.todo-home-item p {
|
||||
margin: 0 0 4px;
|
||||
color: #8b8f99;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.todo-home-item strong {
|
||||
color: #2d2f33;
|
||||
font-size: 18px;
|
||||
font-size: 20px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
|
|
@ -154,7 +154,7 @@
|
|||
.filing-item p {
|
||||
margin: 0 0 3px;
|
||||
color: #555;
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -812,20 +812,26 @@ const EvalReportDatabase = (props) => {
|
|||
<ConfigProvider theme={PROTO_THEME}>
|
||||
<PageLayout title="安评报告数据库">
|
||||
<div className="redb-page">
|
||||
<div className="redb-summary-strip">
|
||||
<span>
|
||||
近三年报告:
|
||||
<strong>{statData.recentThreeYearCount ?? "-"}份</strong>
|
||||
</span>
|
||||
<span>
|
||||
{currentYear}年度:
|
||||
<strong>{statData.currentYearCount ?? "-"}份</strong>
|
||||
</span>
|
||||
<div className="redb-summary-cards">
|
||||
<div className="redb-summary-card">
|
||||
<div className="label">近三年报告</div>
|
||||
<div className="value">
|
||||
<strong>{statData.recentThreeYearCount ?? "-"}份</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div className="redb-summary-card">
|
||||
<div className="label">{currentYear}年度</div>
|
||||
<div className="value">
|
||||
<strong>{statData.currentYearCount ?? "-"}份</strong>
|
||||
</div>
|
||||
</div>
|
||||
{statData.submittedTotalCount != null && (
|
||||
<span>
|
||||
已报送合计:
|
||||
<strong>{statData.submittedTotalCount}份</strong>
|
||||
</span>
|
||||
<div className="redb-summary-card">
|
||||
<div className="label">已报送合计</div>
|
||||
<div className="value">
|
||||
<strong>{statData.submittedTotalCount}份</strong>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,47 @@
|
|||
min-width: 0;
|
||||
}
|
||||
|
||||
/* 原型 .training-summary-strip */
|
||||
/* 统计卡片:标题16px / 数字20px */
|
||||
.redb-summary-cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 11.2px;
|
||||
margin-bottom: 11.2px;
|
||||
}
|
||||
|
||||
.redb-summary-card {
|
||||
border: 1px solid #93c5fd;
|
||||
background: #eff8ff;
|
||||
border-radius: 8px;
|
||||
padding: 9.1px 14px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2.8px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.redb-summary-card .label {
|
||||
font-size: 16px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.redb-summary-card .value {
|
||||
font-size: 20px;
|
||||
color: #0f172a;
|
||||
}
|
||||
|
||||
.redb-summary-card .value strong {
|
||||
color: #2563eb;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
/* AI 分析概览横向条(弹窗内使用) */
|
||||
.redb-summary-strip {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 28px;
|
||||
padding: 9.1px 14px;
|
||||
margin-bottom: 11.2px;
|
||||
border: 1px solid #93c5fd;
|
||||
background: #eff8ff;
|
||||
border-radius: 4px;
|
||||
|
|
@ -179,8 +212,8 @@
|
|||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.redb-summary-strip {
|
||||
gap: 11.2px 16.8px;
|
||||
.redb-summary-cards {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.redb-form-grid {
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ const InspectionNotice = (props) => {
|
|||
title: "告知编号",
|
||||
dataIndex: "noticeNo",
|
||||
width: 140,
|
||||
render: (t) => <span className="insp-mono">{t || "-"}</span>,
|
||||
|
||||
},
|
||||
{ title: "评价机构", dataIndex: "orgName", ellipsis: true, width: 200 },
|
||||
{ title: "检查类型", dataIndex: "inspTypeName", width: 120 },
|
||||
|
|
|
|||
|
|
@ -30,10 +30,7 @@
|
|||
color: #64748b;
|
||||
}
|
||||
|
||||
.insp-mono {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.insp-loading {
|
||||
text-align: center;
|
||||
|
|
|
|||
Loading…
Reference in New Issue