You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fu-hsi-web/src/views/PoliceAi/index.vue

239 lines
6.6 KiB
Vue

<template>
<div class="PoliceAi">
<div class="case-title">
<div class="case-item">
<span>案件名称</span>
<span>|</span>
<el-select v-model="caseId" style="width: 200px;" clearable placeholder="请选择案件" @change="selectCase">
<el-option v-for="item in caseOptions" :key="item.id" :label="item.caseName" :value="item.id" />
</el-select>
</div>
<el-input v-model="caseActorName" class="case-input" readonly placeholder="行为人" />
</div>
<div :style="{marginTop:firstEnter?'146px':''}" class="main-content">
<div class="robot">
<div class="robot-top">
<img src="../../assets/police/robot.png" alt="">
<span>数字民警</span>
</div>
<span class="robot-item">
你好本数字民警可为您提供案件分析结果查询服务您还能通过输入 @来选取特定罪与非罪指标结果以便精准获取您所需信息
</span>
</div>
<div class="nav-list">
<div class="nav-item">
<div class="nav-item-top">
<img src="../../assets/police/analysis.png" alt="">
<span>案件分析结果</span>
</div>
<span class="desc">案件分析预测入罪与出罪提示司法判定风险</span>
</div>
<div class="nav-item">
<div class="nav-item-top">
<img src="../../assets/police/case_info.png" alt="">
<span>案件概况</span>
</div>
<span class="desc">获取案件的基本情况概述</span>
</div>
<div class="nav-item">
<div class="nav-item-top">
<img src="../../assets/police/evidence.png" alt="">
<span>案件证据指引</span>
</div>
<span class="desc">为补充证据材料信息提供导向</span>
</div>
</div>
</div>
<div class="send-bottom">
<el-input
v-model="sendText"
placeholder="可咨询案件内容、输入@或# 可选择查询指标结果"
@keyup.enter.native="handleSend"
/>
<img src="@/assets/police/send.png" alt="">
</div>
</div>
</template>
<script>
import { queryCaseList, robotChat } from '@/api/caseManagement'
import { queryIndexData } from '@/api/indexRule'
import { marked } from 'marked'
export default {
name: 'PoliceAi',
data() {
return {
caseId: '',
caseActorName: '',
// 是否第一次进入
firstEnter: true,
sendText: '',
conversationList: [],
caseOptions: []
}
},
mounted() {
},
methods: {
// 请求接口数据
fetchData() {
queryCaseList({}, 1, 99999).then(res => {
this.caseOptions = res.data.records
})
},
// 查询指标
getIndexData(val) {
queryIndexData({
indexType: val
}, 1, 9999).then(res => {
this.questionlist = res.data.result
})
},
selectCase() {
},
handleSend() {
}
}
}
</script>
<style lang="scss" scoped>
.PoliceAi {
background: #FFFFFF;
height: 100%;
position: relative;
padding-top: 24px;
display: flex;
flex-direction: column;
align-items: center;
.case-title {
width: 632px;
height: 98px;
background: rgba(55,99,255,0.15);
border-radius: 21px 21px 21px 21px;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 9;
top: 24px;
.case-item {
display: flex;background: #FFFFFF;
border-radius: 6px 6px 6px 6px;
border: 1px solid #D9D9D9;
padding: 8px 16px;
align-items: center;
justify-content: center;
span {
font-size: 16px;
color: #333333;
margin-right: 16px;
}
::v-deep {
.el-input__inner {
border: none !important;
}
}
}
.case-input {
width: 202px;
height: 50px;
background: #F4F8FF;
border-radius: 6px 6px 6px 6px;
margin-left: 16px;
::v-deep {
.el-input__inner {
height: 50px !important;
}
}
}
}
.main-content {
flex: 1;
overflow: auto;
width: 1154px;
.robot {
.robot-top {
display: flex;
align-items: center;
margin-bottom: 10px;
img {
width: 45px;
height: 45px;
margin-right: 10px;
}
span {
font-size: 20px;
color: #3763FF;
}
}
.robot-item {
background: #F5F7FF;
border-radius: 16px 0px 16px 16px;
line-height: 53px;font-size: 16px;
color: #333333;
padding: 16px;
margin-bottom: 16px;
}
}
.nav-list {
display: flex;
margin-top: 16px;
.nav-item {
background: #FFFFFF;
border-radius: 8px 8px 8px 8px;
border: 1px solid #D9D9D9;
padding: 24px;
margin-right: 24px;
.desc {
font-size: 14px;
color: #999999;
}
.nav-item-top {
display: flex;
margin-bottom: 8px;
align-items: center;
img {
width: 30px;
height: 30px;
margin-right: 10px;
}
}
}
}
}
.send-bottom {
width: 1154px;
height: 75px;
background: #FFFFFF;
border-radius: 16px 16px 16px 16px;
border: 2px solid rgba(55, 99, 255, 1);
// border-image: linear-gradient(90deg, rgba(55, 99, 255, 1), rgba(25, 166, 254, 1)) 2 2;
margin-bottom: 56px;
display: flex;
align-items: center;
position: relative;
::v-deep {
.el-input__inner {
border: none !important;
font-size: 16px;
}
}
img {
width: 60px;
height: 60px;
position: absolute;
right: 12px;
top: 12px;
cursor: pointer;
}
}
}
</style>