|
|
|
@ -77,7 +77,8 @@
|
|
|
|
|
<div v-else class="flex-row pick-up-info">
|
|
|
|
|
<div class="flex-row left-title" style="align-items: center">
|
|
|
|
|
<span>综合得分:</span>
|
|
|
|
|
<span :style="commonStyle">{{ caseData.totalScore }}</span>
|
|
|
|
|
<span :style="commonStyle" style="font-size: 30px;">{{ caseData.totalScore }}</span>
|
|
|
|
|
<div v-if="isEdit" class="model" @click="handleAnalysis">模型分析</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="base-info flex-row" style="align-items: center; justify-content: space-between">
|
|
|
|
|
<div class="flex-row">
|
|
|
|
@ -87,6 +88,18 @@
|
|
|
|
|
<span>{{ caseData.caseName }}</span>
|
|
|
|
|
<span style="margin-left: 30px">案件状态:</span>
|
|
|
|
|
<span>{{ caseData.caseStatusName }}</span>
|
|
|
|
|
<div class="btn-list">
|
|
|
|
|
<div v-if="isEdit" class="btns" @click="handleEdit">
|
|
|
|
|
<img src="@/assets/caseManagement/edit.png" alt="">
|
|
|
|
|
<span>编辑</span>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <el-button v-if="isEdit" type="primary" plain icon="el-icon-edit" @click="handleEdit">编辑</el-button> -->
|
|
|
|
|
<div v-if="caseData['totalScore'] != null" class="btns" @click="openDeatil">
|
|
|
|
|
<img src="@/assets/caseManagement/analysis.png" alt="">
|
|
|
|
|
<span>案件分析结果</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<el-button type="text" icon="el-icon-arrow-down" style="color: #666666" @click="expand = true">展开</el-button>
|
|
|
|
|
</div>
|
|
|
|
@ -135,6 +148,7 @@ import ModelAnalysis from '@/views/caseManagement/components/ModelAnalysis.vue'
|
|
|
|
|
import CaseAnalysis from './components/CaseAnalysis.vue'
|
|
|
|
|
import ManuallyDefined from './components/ManuallyDefined.vue'
|
|
|
|
|
import { executeModelAnalyse, queryCaseList, getCaseScore } from '@/api/caseManagement'
|
|
|
|
|
import merge from 'webpack-merge'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'Index',
|
|
|
|
|
components: {
|
|
|
|
@ -204,20 +218,45 @@ export default {
|
|
|
|
|
this.isEdit = this.$route.query.isEdit === '1'
|
|
|
|
|
this.fetchData()
|
|
|
|
|
this.queryCaseScore()
|
|
|
|
|
if (this.$route.query.currentKey) {
|
|
|
|
|
this.currentKey = '1-2'
|
|
|
|
|
this.selectTitle = '案件证据-证据'
|
|
|
|
|
this.selectCom = 'CaseEvidence'
|
|
|
|
|
} else {
|
|
|
|
|
this.currentKey = '1-1'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 获取当前选中的node
|
|
|
|
|
getSelectNode(val) {
|
|
|
|
|
for (const item of this.leftTabs) {
|
|
|
|
|
for (const items of item.children) {
|
|
|
|
|
if (items.value === val) {
|
|
|
|
|
return {
|
|
|
|
|
component: items.component,
|
|
|
|
|
selectTitle: `${item['label']}-${items['label']}`,
|
|
|
|
|
label: `${items['label']}`
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 获取案件得分详情
|
|
|
|
|
queryCaseScore() {
|
|
|
|
|
getCaseScore({ caseId: this.$route.params['id'] }).then(res => {
|
|
|
|
|
if (res.code === 200) {
|
|
|
|
|
this.scoreInfo = res.data
|
|
|
|
|
if (this.$route.query.currentKey) {
|
|
|
|
|
this.currentKey = this.$route.query.currentKey
|
|
|
|
|
const node = this.getSelectNode(this.$route.query.currentKey)
|
|
|
|
|
this.selectTitle = node.selectTitle
|
|
|
|
|
|
|
|
|
|
if (node.label === '共性指标') {
|
|
|
|
|
this.score = this.scoreInfo.commonScore
|
|
|
|
|
} else if (node.label === '入罪指标') {
|
|
|
|
|
this.score = this.scoreInfo.crimeScore
|
|
|
|
|
} else if (node.label === '出罪指标') {
|
|
|
|
|
this.score = this.scoreInfo.crimeOutScore
|
|
|
|
|
} else {
|
|
|
|
|
this.score = ''
|
|
|
|
|
}
|
|
|
|
|
this.selectCom = node.component
|
|
|
|
|
} else {
|
|
|
|
|
this.currentKey = '1-1'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
@ -303,7 +342,6 @@ export default {
|
|
|
|
|
this.showFlag = true
|
|
|
|
|
this.fetchData()
|
|
|
|
|
}, 5000)
|
|
|
|
|
|
|
|
|
|
// this.$refs.analysis.show(this.caseData)
|
|
|
|
|
},
|
|
|
|
|
handleConfirmAnalysis(data) {
|
|
|
|
@ -316,12 +354,24 @@ export default {
|
|
|
|
|
executeModelAnalyse(params).then(res => {
|
|
|
|
|
const { code, msg } = res
|
|
|
|
|
this.$set(this.caseData, 'isAnalysing', false)
|
|
|
|
|
code === 200 ? this.$baseMessage.success(msg || '模型分析成功!') : this.$baseMessage.error(msg || '模型分析失败!')
|
|
|
|
|
if (code === 200) {
|
|
|
|
|
this.$baseMessage.success(msg || '模型分析成功!')
|
|
|
|
|
}
|
|
|
|
|
this.fetchData()
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.showFlag = true
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 节点点击回调
|
|
|
|
|
handleNodeClick(node, data) {
|
|
|
|
|
const currentQuery = this.$route.query
|
|
|
|
|
currentQuery.currentKey = node.value
|
|
|
|
|
// this.$set(this.$route.query, 'currentKey', node.value)
|
|
|
|
|
this.$router.push({
|
|
|
|
|
query: merge(this.$route.query, currentQuery)
|
|
|
|
|
})
|
|
|
|
|
// this.$route.query.currentKey = node.value
|
|
|
|
|
|
|
|
|
|
// console.log(data, 666)
|
|
|
|
|
if (data.level === 1) return
|
|
|
|
|
this.selectTitle = `${data.parent.data['label']}-${data.data['label']}`
|
|
|
|
@ -347,7 +397,7 @@ export default {
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
.btn-icon {
|
|
|
|
|
padding: 8px 20px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
border-radius: 6px 6px 6px 6px;
|
|
|
|
|
border: 1px solid #3763FF;
|
|
|
|
|
display: flex;
|
|
|
|
@ -482,6 +532,18 @@ export default {
|
|
|
|
|
height: 50px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 50px;
|
|
|
|
|
|
|
|
|
|
.model {
|
|
|
|
|
width: 112px;
|
|
|
|
|
height: 42px;
|
|
|
|
|
background: #3763FF;
|
|
|
|
|
border-radius: 6px 6px 6px 6px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
line-height: 42px;font-size: 16px;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
margin: 0 24px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.left-title {
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
margin-right: 10px;
|
|
|
|
@ -498,12 +560,43 @@ export default {
|
|
|
|
|
padding: 10px;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
position: relative;
|
|
|
|
|
// height: 240px;
|
|
|
|
|
h4 {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
.btn-list {
|
|
|
|
|
display: flex;
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 48px;
|
|
|
|
|
top: 4px;
|
|
|
|
|
}
|
|
|
|
|
.btns {
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
// height: 42px;
|
|
|
|
|
// line-height: 42px;
|
|
|
|
|
border-radius: 6px 6px 6px 6px;
|
|
|
|
|
border: 1px solid #3763FF;
|
|
|
|
|
display: flex;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
color: #3763FF;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-right: 24px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
line-height: 38px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
span {
|
|
|
|
|
line-height: unset !important;
|
|
|
|
|
}
|
|
|
|
|
img {
|
|
|
|
|
width: 16px;
|
|
|
|
|
height: 16px;
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.case-summarize {
|
|
|
|
|
max-height: 55px;
|
|
|
|
|