Files
ccdi/ruoyi-ui/src/views/ccdiProject/components/detail/PreliminaryCheck.vue

90 lines
2.0 KiB
Vue
Raw Normal View History

<template>
<div class="preliminary-check-container">
2026-03-19 10:35:40 +08:00
<div v-if="pageState === 'loading'" class="preliminary-check-state">
2026-03-19 10:39:24 +08:00
<div class="state-card">
<el-skeleton animated :rows="6" />
</div>
2026-03-19 10:35:40 +08:00
</div>
<div v-else-if="pageState === 'empty'" class="preliminary-check-state">
2026-03-19 10:39:24 +08:00
<div class="state-card">
<el-empty description="暂无结果总览数据" />
</div>
2026-03-19 10:35:40 +08:00
</div>
<div v-else class="preliminary-check-page">
2026-03-19 10:39:24 +08:00
<overview-stats :summary="currentData.summary" />
<risk-people-section :section-data="currentData.riskPeople" />
<risk-model-section :section-data="currentData.riskModels" />
<risk-detail-section :section-data="currentData.riskDetails" />
</div>
</div>
</template>
<script>
2026-03-19 10:39:24 +08:00
import { mockOverviewData, mockOverviewStateData } from "./preliminaryCheck.mock";
import OverviewStats from "./OverviewStats";
import RiskPeopleSection from "./RiskPeopleSection";
import RiskModelSection from "./RiskModelSection";
import RiskDetailSection from "./RiskDetailSection";
2026-03-19 10:35:40 +08:00
export default {
name: "PreliminaryCheck",
2026-03-19 10:35:40 +08:00
components: {
OverviewStats,
RiskPeopleSection,
RiskModelSection,
RiskDetailSection,
},
props: {
projectId: {
type: [String, Number],
default: null,
},
projectInfo: {
type: Object,
default: () => ({
projectName: "",
updateTime: "",
projectStatus: "0",
}),
},
},
2026-03-19 10:35:40 +08:00
data() {
return {
pageState: "loaded",
mockData: mockOverviewData,
2026-03-19 10:39:24 +08:00
stateDataMap: mockOverviewStateData,
2026-03-19 10:35:40 +08:00
};
},
2026-03-19 10:39:24 +08:00
computed: {
currentData() {
return this.stateDataMap[this.pageState] || this.mockData;
},
},
};
</script>
<style lang="scss" scoped>
.preliminary-check-container {
min-height: 400px;
2026-03-19 10:39:24 +08:00
padding: 16px 0 24px;
background: #f3f6fb;
}
2026-03-19 10:35:40 +08:00
.preliminary-check-state {
2026-03-19 10:39:24 +08:00
min-height: 400px;
}
.state-card {
padding: 32px 24px;
border-radius: 16px;
2026-03-19 10:35:40 +08:00
background: #fff;
2026-03-19 10:39:24 +08:00
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
2026-03-19 10:35:40 +08:00
}
2026-03-19 10:35:40 +08:00
.preliminary-check-page {
min-height: 400px;
}
</style>