|
@ -1,50 +1,405 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="preview-wrapper"> |
|
|
<div class="preview-wrapper"> |
|
|
<div class="collect-header" style="justify-content: flex-start; border-top: none; "> |
|
|
|
|
|
<h4 class="is-file" style="flex:none;">四性检测报告</h4> |
|
|
|
|
|
<span style="font-size: 12px; flex: 1; line-height: 42px;">所属文件:{{ parentArchiveNo }}</span> |
|
|
|
|
|
|
|
|
<div class="collect-header" style="display: flex; justify-content: space-between;"> |
|
|
|
|
|
<h4 class="is-file">四性检测详情</h4> |
|
|
|
|
|
<div class="preview-btn" style="margin-right: 20px;"> |
|
|
|
|
|
<el-button class="iconfont icon-xiazai" @click="downloadFile(fileCurrent)">导出</el-button> |
|
|
|
|
|
<el-button v-print="printObj" class="iconfont icon-dayin">打印</el-button> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="main-content"> |
|
|
<div class="main-content"> |
|
|
<div class="content-list"> |
|
|
<div class="content-list"> |
|
|
<h4 class="arc-title">原文列表</h4> |
|
|
|
|
|
<ul v-if="allFileTables.length!==0" class="file-list"> |
|
|
|
|
|
|
|
|
<h4 class="arc-title">文件名称</h4> |
|
|
|
|
|
<!-- <ul v-if="allFileTables.length!==0" class="file-list"> |
|
|
<li v-for="(item,index) in allFileTables" :key="index" :class="{'active-file': item.id == fileCurrent.id}" @click="selectFile(item)"> |
|
|
<li v-for="(item,index) in allFileTables" :key="index" :class="{'active-file': item.id == fileCurrent.id}" @click="selectFile(item)"> |
|
|
<span>{{ item.file_name }}</span> |
|
|
<span>{{ item.file_name }}</span> |
|
|
<i class="iconfont icon-attachment" /> |
|
|
<i class="iconfont icon-attachment" /> |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
|
|
|
|
|
|
</ul> --> |
|
|
|
|
|
<el-tree |
|
|
|
|
|
v-if="allFileTables.length!==0" |
|
|
|
|
|
ref="tree" |
|
|
|
|
|
node-key="archivesId" |
|
|
|
|
|
:data="allFileTables" |
|
|
|
|
|
:props="defaultProps" |
|
|
|
|
|
:highlight-current="true" |
|
|
|
|
|
:default-expand-all="true" |
|
|
|
|
|
:expand-on-click-node="false" |
|
|
|
|
|
@node-click="handleNodeClick" |
|
|
|
|
|
/> |
|
|
<el-empty v-else :image-size="100" /> |
|
|
<el-empty v-else :image-size="100" /> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div id="printArea" ref="output" v-loading="loading" class="content-right"> |
|
|
|
|
|
<div class="report-header"> |
|
|
|
|
|
<h5>四性检测报告</h5> |
|
|
|
|
|
<p>报告编号:{{ currentReportInfo && currentReportInfo.reportNo }}</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div v-if="reportData" class="report-baseInfo"> |
|
|
|
|
|
<div class="report-title"><span>基础信息</span></div> |
|
|
|
|
|
<ul class="baseInfo-txt"> |
|
|
|
|
|
<li><span>检测范围:</span>真实性、完整性、可用性、安全性</li> |
|
|
|
|
|
<li><span>检测结论:</span> |
|
|
|
|
|
<span v-if="reportData.current.failNum === 0 || (reportData.current.checkNum === reportData.current.passNum)" class="row-state end-state">通过</span> |
|
|
|
|
|
<span v-else class="row-state cancel-state">未通过</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li><span>检测耗时:</span>{{ reportData.current.checkTime }} ms</li> |
|
|
|
|
|
|
|
|
|
|
|
<li v-if="currentReportInfo.categoryLevel === 2"><span>检测总数:</span>{{ reportData.current.checkNum }} 条</li> |
|
|
|
|
|
<li v-else><span>检测总数:</span>{{ reportData.current.checkNum }} 项</li> |
|
|
|
|
|
<li><span>所属门类:</span>{{ reportData.parent.categoryName }}</li> |
|
|
|
|
|
<li><span>所在级别:</span>{{ currentReportInfo.categoryLevel === 2 ? '案卷级' : (currentReportInfo.categoryLevel === 3 && reportData.subset.length === 0 ? '文件级' : '卷内级') }}</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
<span>档案档号:</span> |
|
|
|
|
|
{{ |
|
|
|
|
|
(currentReportInfo.categoryLevel === 2 || (currentReportInfo.categoryLevel === 3 && reportData.subset.length === 0)) |
|
|
|
|
|
? reportData.parent?.archivesNo ?? '' |
|
|
|
|
|
: (currentReportInfo.categoryLevel === 3 && reportData.subset.length !== 0) |
|
|
|
|
|
? getArchivesSubet(currentReportInfo.archivesId)?.archivesNo ?? '' |
|
|
|
|
|
: '' |
|
|
|
|
|
}} |
|
|
|
|
|
</li> |
|
|
|
|
|
<li><span>档案题名:</span> |
|
|
|
|
|
{{ |
|
|
|
|
|
(currentReportInfo.categoryLevel === 2 || (currentReportInfo.categoryLevel === 3 && reportData.subset.length === 0)) |
|
|
|
|
|
? reportData.parent?.archivesName ?? '' |
|
|
|
|
|
: (currentReportInfo.categoryLevel === 3 && reportData.subset.length !== 0) |
|
|
|
|
|
? getArchivesSubet(currentReportInfo.archivesId)?.archivesName ?? '' |
|
|
|
|
|
: '' |
|
|
|
|
|
}} |
|
|
|
|
|
</li> |
|
|
|
|
|
<li v-if="currentReportInfo.categoryLevel === 2"> |
|
|
|
|
|
<span>检测详情:</span>总共检测 {{ checkDetails.total }} 条卷内;通过 <span style="color: #12C37A;">{{ checkDetails.pass }}</span> 条;未通过 <span style="color: #ED4A41;">{{ checkDetails.fail }}</span> 条 |
|
|
|
|
|
</li> |
|
|
|
|
|
<li v-if="currentReportInfo.categoryLevel === 3 && reportData.subset.length === 0"> |
|
|
|
|
|
<span>检测详情:</span>总共检测 {{ checkDetails.total }} 项;通过 <span style="color: #12C37A;">{{ checkDetails.pass }}</span> 项;未通过 <span style="color: #ED4A41;">{{ checkDetails.fail }}</span> 项 |
|
|
|
|
|
</li> |
|
|
|
|
|
<li v-if="currentReportInfo.categoryLevel === 3 && reportData.subset.length !== 0"> |
|
|
|
|
|
<span>检测详情:</span>总共检测 {{ subsetCheckDetails.total }} 项;通过 <span style="color: #12C37A;">{{ subsetCheckDetails.pass }}</span> 项;未通过 <span style="color: #ED4A41;">{{ subsetCheckDetails.fail }}</span> 项 |
|
|
|
|
|
</li> |
|
|
|
|
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div v-if="currentReportInfo && currentReportInfo.categoryLevel === 3"> |
|
|
|
|
|
<div class="report-checkItem"> |
|
|
|
|
|
<div class="report-title"><span>真实性检测</span></div> |
|
|
|
|
|
<el-table ref="table" class="fixed-table" :data="checkItemAllData.authenticity"> |
|
|
|
|
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="secondaryClassId" label="分类" min-width="150" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionCode" label="检测编号" min-width="100" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionProject" label="检测项目" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObjective" label="检测目的" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObject" label="检测对象" min-width="140" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionAccording" label="检测依据和方法" min-width="140" /> |
|
|
|
|
|
<el-table-column prop="checkDetails" label="检测详情" min-width="140"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<el-popover |
|
|
|
|
|
popper-class="myPopover" |
|
|
|
|
|
placement="top" |
|
|
|
|
|
width="300" |
|
|
|
|
|
trigger="hover" |
|
|
|
|
|
> |
|
|
|
|
|
<div slot="reference">{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
<div>{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
</el-popover> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="checkResult" label="检测结论" min-width="80"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.checkResult==='成功'" class="row-state end-state">通过</span> |
|
|
|
|
|
<span v-else class="row-state cancel-state">未通过</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
</el-table> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="report-checkItem"> |
|
|
|
|
|
<div class="report-title"><span>完整性检测</span></div> |
|
|
|
|
|
<el-table ref="table" class="fixed-table" :data="checkItemAllData.integrity"> |
|
|
|
|
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="secondaryClassId" label="分类" min-width="150" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionCode" label="检测编号" min-width="100" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionProject" label="检测项目" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObjective" label="检测目的" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObject" label="检测对象" min-width="140" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionAccording" label="检测依据和方法" min-width="140" /> |
|
|
|
|
|
<el-table-column prop="checkDetails" label="检测详情" min-width="140"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<el-popover |
|
|
|
|
|
popper-class="myPopover" |
|
|
|
|
|
placement="top" |
|
|
|
|
|
width="300" |
|
|
|
|
|
trigger="hover" |
|
|
|
|
|
> |
|
|
|
|
|
<div slot="reference">{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
<div>{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
</el-popover> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="checkResult" label="检测结论" min-width="80"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.checkResult==='成功'" class="row-state end-state">通过</span> |
|
|
|
|
|
<span v-else class="row-state cancel-state">未通过</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
</el-table> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="report-checkItem"> |
|
|
|
|
|
<div class="report-title"><span>可用性检测</span></div> |
|
|
|
|
|
<el-table ref="table" class="fixed-table" :data="checkItemAllData.usability"> |
|
|
|
|
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="secondaryClassId" label="分类" min-width="150" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionCode" label="检测编号" min-width="100" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionProject" label="检测项目" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObjective" label="检测目的" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObject" label="检测对象" min-width="140" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionAccording" label="检测依据和方法" min-width="140" /> |
|
|
|
|
|
<el-table-column prop="checkDetails" label="检测详情" min-width="140"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<el-popover |
|
|
|
|
|
popper-class="myPopover" |
|
|
|
|
|
placement="top" |
|
|
|
|
|
width="300" |
|
|
|
|
|
trigger="hover" |
|
|
|
|
|
> |
|
|
|
|
|
<div slot="reference">{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
<div>{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
</el-popover> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="checkResult" label="检测结论" min-width="80"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.checkResult==='成功'" class="row-state end-state">通过</span> |
|
|
|
|
|
<span v-else class="row-state cancel-state">未通过</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
</el-table> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="report-checkItem"> |
|
|
|
|
|
<div class="report-title"><span>安全性检测</span></div> |
|
|
|
|
|
<el-table ref="table" class="fixed-table" :data="checkItemAllData.safety"> |
|
|
|
|
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="secondaryClassId" label="分类" min-width="150" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionCode" label="检测编号" min-width="100" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionProject" label="检测项目" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObjective" label="检测目的" min-width="200" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionObject" label="检测对象" min-width="140" /> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="detectionAccording" label="检测依据和方法" min-width="140" /> |
|
|
|
|
|
<el-table-column prop="checkDetails" label="检测详情" min-width="140"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<el-popover |
|
|
|
|
|
popper-class="myPopover" |
|
|
|
|
|
placement="top" |
|
|
|
|
|
width="300" |
|
|
|
|
|
trigger="hover" |
|
|
|
|
|
> |
|
|
|
|
|
<div slot="reference">{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
<div>{{ scope.row.checkDetails }}</div> |
|
|
|
|
|
</el-popover> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column :show-overflow-tooltip="true" prop="checkResult" label="检测结论" min-width="80"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.checkResult==='成功'" class="row-state end-state">通过</span> |
|
|
|
|
|
<span v-else class="row-state cancel-state">未通过</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
</el-table> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
|
|
|
import { FetchFourCheckRecordTreeByReportId } from '@/api/collect/collect' |
|
|
|
|
|
import { downloadFile } from '@/utils/index' |
|
|
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
|
|
// import html2canvas from 'html2canvas' // 转图片打印需要先安装html2Canvas和print-js |
|
|
|
|
|
// import printJS from 'print-js' |
|
|
export default { |
|
|
export default { |
|
|
name: 'FourTestReport', |
|
|
name: 'FourTestReport', |
|
|
components: { |
|
|
components: { |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
parentArchiveNo: null, |
|
|
|
|
|
|
|
|
loading: false, |
|
|
|
|
|
currentReportInfo: null, |
|
|
allFileTables: [], |
|
|
allFileTables: [], |
|
|
fileCurrent: null |
|
|
|
|
|
|
|
|
defaultProps: { |
|
|
|
|
|
children: 'children', |
|
|
|
|
|
label: 'label' |
|
|
|
|
|
}, |
|
|
|
|
|
reportData: null, |
|
|
|
|
|
checkItemAllData: { |
|
|
|
|
|
authenticity: [], |
|
|
|
|
|
integrity: [], |
|
|
|
|
|
usability: [], |
|
|
|
|
|
safety: [] |
|
|
|
|
|
}, |
|
|
|
|
|
printObj: { |
|
|
|
|
|
id: 'printArea', |
|
|
|
|
|
preview: true, // 是否启动预览模式,默认是false |
|
|
|
|
|
previewTitle: '四性检测报告', // 打印预览的标题 |
|
|
|
|
|
previewPrintBtnLabel: '预览结束,开始打印', |
|
|
|
|
|
zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高 |
|
|
|
|
|
extraCss: '', // 打印可引入外部的一个css文件 |
|
|
|
|
|
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>,<style> #printArea { height: auto !important; } <style>', // 打印头部文字 |
|
|
|
|
|
previewBeforeOpenCallback() { console.log('正在加载预览窗口!') }, // 预览窗口打开之前的callback |
|
|
|
|
|
previewOpenCallback() { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback |
|
|
|
|
|
beforeOpenCallback() { console.log('开始打印之前!') }, // 开始打印之前的callback |
|
|
|
|
|
openCallback() { console.log('执行打印了!') }, // 调用打印时的callback |
|
|
|
|
|
closeCallback() { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消) |
|
|
|
|
|
clickMounted() { console.log('点击v-print绑定的按钮了!') }, |
|
|
|
|
|
// url: 'http://192.168.99.67:11100/downloadFile/category/AE8B188F0C0314F9BE31B8/82FBCAE96CBC9F50809838/7f3df862-f36d-4061-9c3e-e81556420742.pdf', // 打印指定的URL,确保同源策略相同 |
|
|
|
|
|
// asyncUrl (reslove) { |
|
|
|
|
|
// setTimeout(() => { |
|
|
|
|
|
// reslove('http://localhost:8080/') |
|
|
|
|
|
// }, 2000) |
|
|
|
|
|
// }, |
|
|
|
|
|
standard: '', |
|
|
|
|
|
extarCss: '' |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
computed: { |
|
|
|
|
|
...mapGetters([ |
|
|
|
|
|
'baseApi' |
|
|
|
|
|
]), |
|
|
|
|
|
checkDetails() { |
|
|
|
|
|
return { |
|
|
|
|
|
total: this.reportData.current.checkNum, |
|
|
|
|
|
pass: this.reportData.current.passNum, |
|
|
|
|
|
fail: this.reportData.current.failNum |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
subsetCheckDetails() { |
|
|
|
|
|
return { |
|
|
|
|
|
total: this.getArchivesSubet(this.currentReportInfo.archivesId).checkNum, |
|
|
|
|
|
pass: this.getArchivesSubet(this.currentReportInfo.archivesId).passNum, |
|
|
|
|
|
fail: this.getArchivesSubet(this.currentReportInfo.archivesId).failNum |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
|
|
|
if (localStorage.getItem('fourTestStorage')) { |
|
|
|
|
|
this.currentReportInfo = JSON.parse(localStorage.getItem('fourTestStorage')) |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
if (this.$route.query.archiveNo) { |
|
|
|
|
|
this.parentArchiveNo = this.$route.query.archiveNo |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.getFourCheckRecordTreeByReportId() |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
handleNodeClick(data) { |
|
|
|
|
|
this.loading = true |
|
|
|
|
|
this.currentReportInfo = data |
|
|
|
|
|
this.getFourCheckRecordTreeByReportId() |
|
|
|
|
|
}, |
|
|
|
|
|
getFourCheckRecordTreeByReportId() { |
|
|
|
|
|
this.loading = true |
|
|
|
|
|
const params = { |
|
|
|
|
|
'reportId': this.currentReportInfo.id |
|
|
|
|
|
} |
|
|
|
|
|
FetchFourCheckRecordTreeByReportId(params).then((res) => { |
|
|
|
|
|
this.reportData = res |
|
|
|
|
|
// 左侧列表数据 |
|
|
|
|
|
const parent = { |
|
|
|
|
|
archivesId: res.parent.archivesId, |
|
|
|
|
|
categoryLevel: res.parent.categoryLevel, |
|
|
|
|
|
id: res.parent.id, |
|
|
|
|
|
label: res.parent.archivesName ?? '', |
|
|
|
|
|
reportNo: res.parent.reportNo, |
|
|
|
|
|
children: [] |
|
|
|
|
|
} |
|
|
|
|
|
const children = res.subset.map(subsetItem => ({ |
|
|
|
|
|
archivesId: subsetItem.archivesId, |
|
|
|
|
|
categoryLevel: subsetItem.categoryLevel, |
|
|
|
|
|
id: subsetItem.id, |
|
|
|
|
|
reportNo: subsetItem.reportNo, |
|
|
|
|
|
label: subsetItem.archivesName |
|
|
|
|
|
})) |
|
|
|
|
|
parent.children = children |
|
|
|
|
|
const treeData = [parent] |
|
|
|
|
|
|
|
|
|
|
|
this.allFileTables = treeData |
|
|
|
|
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.setCurrentKey(this.currentReportInfo.archivesId) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
// 右侧检测项 |
|
|
|
|
|
res.details.forEach(item => { |
|
|
|
|
|
switch (item.primaryClassId) { |
|
|
|
|
|
case '真实性检测': |
|
|
|
|
|
this.checkItemAllData.authenticity.push(item) |
|
|
|
|
|
break |
|
|
|
|
|
case '完整性检测': |
|
|
|
|
|
this.checkItemAllData.integrity.push(item) |
|
|
|
|
|
break |
|
|
|
|
|
case '可用性检测': |
|
|
|
|
|
this.checkItemAllData.usability.push(item) |
|
|
|
|
|
break |
|
|
|
|
|
case '安全性检测': |
|
|
|
|
|
this.checkItemAllData.safety.push(item) |
|
|
|
|
|
break |
|
|
|
|
|
default: |
|
|
|
|
|
console.log('暂无分类') |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
this.loading = false |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
getArchivesSubet(archivesId) { |
|
|
|
|
|
if (this.currentReportInfo.categoryLevel !== 2) { |
|
|
|
|
|
const matchedSubset = this.reportData.subset.find(subsetItem => subsetItem.archivesId === archivesId) |
|
|
|
|
|
console.log('matchedSubset', matchedSubset) |
|
|
|
|
|
return matchedSubset || null |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
setCurrentKey(key) { |
|
|
|
|
|
if (this.$refs.tree) { |
|
|
|
|
|
this.$refs.tree.setCurrentKey(key) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
downloadFile(row) { |
|
|
|
|
|
const url = this.baseApi + '/downloadFile' + row.file_path |
|
|
|
|
|
fetch(url).then(res => res.blob()).then(blob => { |
|
|
|
|
|
downloadFile(blob, row.file_name.split('.')[0], row.file_type) |
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
this.$message({ message: '下载文件失败!', type: 'error', offset: 8 }) |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
<style lang="scss"> |
|
|
|
|
|
.print-content { |
|
|
|
|
|
background-color: red; |
|
|
|
|
|
} |
|
|
|
|
|
.el-tooltip__popper { |
|
|
|
|
|
max-width: 300px; |
|
|
|
|
|
line-height: 20px !important; |
|
|
|
|
|
} |
|
|
|
|
|
.el-popover { |
|
|
|
|
|
font-size: 12px; |
|
|
|
|
|
background: #303133; |
|
|
|
|
|
border: 1px solid #303133; |
|
|
|
|
|
line-height: 20px !important; |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
} |
|
|
|
|
|
.el-popover[x-placement^=top] .popper__arrow{ |
|
|
|
|
|
border-top-color: #303133; |
|
|
|
|
|
} |
|
|
|
|
|
.el-popover[x-placement^=top] .popper__arrow::after{ |
|
|
|
|
|
border-top-color: #303133; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |
|
|
<style lang="scss" scoped> |
|
|
<style lang="scss" scoped> |
|
|
|
|
|
@import "~@/assets/styles/mixin.scss"; |
|
|
.preview-wrapper{ |
|
|
.preview-wrapper{ |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
overflow: hidden; |
|
|
background-color: #f6f8fc; |
|
|
background-color: #f6f8fc; |
|
|
.collect-header{ |
|
|
.collect-header{ |
|
|
background-color: #fff; |
|
|
background-color: #fff; |
|
@ -54,12 +409,13 @@ export default { |
|
|
.main-content{ |
|
|
.main-content{ |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: space-between; |
|
|
justify-content: space-between; |
|
|
width: calc(100%); |
|
|
|
|
|
|
|
|
width: 100%; |
|
|
height: calc(100vh - 75px); |
|
|
height: calc(100vh - 75px); |
|
|
background-color: #fff; |
|
|
|
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
.content-list{ |
|
|
.content-list{ |
|
|
width: 300px; |
|
|
width: 300px; |
|
|
|
|
|
background-color: #fff; |
|
|
.arc-title{ |
|
|
.arc-title{ |
|
|
height: 48px; |
|
|
height: 48px; |
|
|
line-height: 48px; |
|
|
line-height: 48px; |
|
@ -96,5 +452,70 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
.content-right{ |
|
|
|
|
|
width: calc(100% - 300px); |
|
|
|
|
|
// background-color: yellow; |
|
|
|
|
|
padding-bottom: 20px; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
overflow-y: scroll; |
|
|
|
|
|
.report-header{ |
|
|
|
|
|
padding: 10px 20px; |
|
|
|
|
|
height: 200px; |
|
|
|
|
|
background-color: #1890ff; |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
h5{ |
|
|
|
|
|
font-size: 24px; |
|
|
|
|
|
line-height: 48px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
.report-baseInfo{ |
|
|
|
|
|
margin: -100px 20px 0 20px; |
|
|
|
|
|
background-color: #fff; |
|
|
|
|
|
padding: 20px; |
|
|
|
|
|
border-radius: 10px; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
.baseInfo-txt{ |
|
|
|
|
|
display: flex; |
|
|
|
|
|
justify-content: flex-start; |
|
|
|
|
|
flex-wrap: wrap; |
|
|
|
|
|
li{ |
|
|
|
|
|
width: 40%; |
|
|
|
|
|
font-size: 14px; |
|
|
|
|
|
line-height: 28px; |
|
|
|
|
|
color:#606266; |
|
|
|
|
|
span{ |
|
|
|
|
|
color: #0c0e1e; |
|
|
|
|
|
} |
|
|
|
|
|
.row-state{ |
|
|
|
|
|
@include process-status-style; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
.report-title{ |
|
|
|
|
|
margin-bottom: 20px; |
|
|
|
|
|
border-bottom: 1px solid #edeff3; |
|
|
|
|
|
span{ |
|
|
|
|
|
display: inline-block; |
|
|
|
|
|
padding-bottom: 10px; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
border-bottom: 3px solid #0348f3; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
.report-checkItem{ |
|
|
|
|
|
background-color: #fff; |
|
|
|
|
|
padding: 20px; |
|
|
|
|
|
border-radius: 10px; |
|
|
|
|
|
margin: 20px 20px 0 20px; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
::v-deep .el-popover__reference{ |
|
|
|
|
|
max-width: 200px; |
|
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
text-overflow: ellipsis; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |