新增项目证据库一期功能

This commit is contained in:
wjj
2026-04-21 16:46:47 +08:00
parent d4ac165723
commit addea20fa1
26 changed files with 1489 additions and 13 deletions

View File

@@ -33,6 +33,15 @@
</div>
</div>
<div class="header-right">
<el-button
class="evidence-entry-btn"
size="mini"
plain
icon="el-icon-collection-tag"
@click="evidenceDrawerVisible = true"
>
证据线索
</el-button>
<el-menu
:default-active="activeTab"
mode="horizontal"
@@ -59,6 +68,18 @@
@name-selected="handleNameSelected"
@generate-report="handleGenerateReport"
@fetch-bank-info="handleFetchBankInfo"
@evidence-confirm="handleEvidenceConfirm"
/>
<evidence-confirm-dialog
:visible.sync="evidenceConfirmVisible"
:payload="evidencePayload"
@saved="handleEvidenceSaved"
/>
<evidence-drawer
ref="evidenceDrawer"
:visible.sync="evidenceDrawerVisible"
:project-id="projectId"
/>
</div>
</template>
@@ -69,6 +90,8 @@ import ParamConfig from "./components/detail/ParamConfig";
import PreliminaryCheck from "./components/detail/PreliminaryCheck";
import SpecialCheck from "./components/detail/SpecialCheck";
import DetailQuery from "./components/detail/DetailQuery";
import EvidenceConfirmDialog from "./components/detail/EvidenceConfirmDialog";
import EvidenceDrawer from "./components/detail/EvidenceDrawer";
import { getProject } from "@/api/ccdiProject";
export default {
@@ -79,6 +102,8 @@ export default {
PreliminaryCheck,
SpecialCheck,
DetailQuery,
EvidenceConfirmDialog,
EvidenceDrawer,
},
data() {
return {
@@ -102,6 +127,9 @@ export default {
warningThreshold: 60,
projectStatus: "0",
},
evidenceConfirmVisible: false,
evidenceDrawerVisible: false,
evidencePayload: {},
projectStatusPollingTimer: null,
projectStatusPollingInterval: 1000,
projectStatusPollingLoading: false,
@@ -139,8 +167,10 @@ export default {
// 初始化页面数据
this.initActiveTabFromRoute();
this.initPageData();
this.$root.$on("ccdi-evidence-confirm", this.handleEvidenceConfirm);
},
beforeDestroy() {
this.$root.$off("ccdi-evidence-confirm", this.handleEvidenceConfirm);
this.stopProjectStatusPolling();
},
methods: {
@@ -400,6 +430,21 @@ export default {
handleRefreshProject() {
this.initPageData();
},
handleEvidenceConfirm(payload) {
this.evidencePayload = {
projectId: this.projectId,
...(payload || {}),
};
this.evidenceConfirmVisible = true;
},
handleEvidenceSaved() {
this.evidenceDrawerVisible = true;
this.$nextTick(() => {
if (this.$refs.evidenceDrawer) {
this.$refs.evidenceDrawer.loadEvidence();
}
});
},
/** 导出报告 */
handleExport() {
console.log("导出报告");
@@ -496,6 +541,21 @@ export default {
.header-right {
display: flex;
align-items: center;
gap: 10px;
.evidence-entry-btn {
padding: 6px 10px;
font-size: 12px;
color: #5b7fb8;
border-color: #d6e4f7;
background: #f8fbff;
&:hover {
color: var(--ccdi-primary);
border-color: #9fc3ff;
background: #edf5ff;
}
}
.nav-menu {
// 移除默认背景色和边框