fix:测试问题修改

ocr_2.0
xiangcongshuai 6 months ago
parent c4a9390f0b
commit 94491696e0

@ -176,3 +176,11 @@ export function redoExtract(data) {
data
})
}
/** 批量删除证据 */
export function batchDeleteEvidence(data) {
return request({
url: `/caseEvidence/batchDeleteEvidence`,
method: 'delete',
data
})
}

@ -5,7 +5,7 @@ const network = {
// 默认的接口地址 如果是开发环境和生产环境走vab-mock-server当然你也可以选择自己配置成需要的接口地址
baseURL:
process.env.NODE_ENV === 'development'
? 'http://192.168.10.138:8097/fu-hsi-server'
? 'http://192.168.10.25:8097/fu-hsi-server'
: '/fuHsiApi',
// 配后端数据的接收方式application/json;charset=UTF-8或者application/x-www-form-urlencoded;charset=UTF-8
contentType: 'application/json;charset=UTF-8',

@ -217,7 +217,7 @@ export const asyncRoutes = [
meta: { title: '上传图像证据', affix: true }
},
{
path: '/edit-evidence/:id',
path: '/edit-evidence/:id/:evidenceId',
name: 'EditEvidence',
permission: 'p_caseDetails',
component: () => import('@/views/caseDetails/components/EditEvidence/index.vue'),

@ -12,10 +12,12 @@
placeholder="搜索名称"
/>
<el-tree
ref="tree"
:data="treeData"
highlight-current
default-expand-all
:props="defaultProps"
:filter-node-method="filterNode"
@node-click="handleNodeClick"
/>
</div>
@ -47,11 +49,20 @@ export default {
}
},
watch: {
filterText(val) {
this.$refs.tree.filter(val)
}
},
mounted() {
},
methods: {
//
filterNode(value, data) {
if (!value) return true
return data.directoryName.indexOf(value) !== -1
},
show() {
this.dialogOptions.show = true
this.getTreeList()

@ -0,0 +1,124 @@
<template>
<el-dialog
:visible.sync="dialogVisible"
width="500px"
append-to-body
:before-close="handleClose"
>
<template>
<div class="del-folder">
<div class="header">
<img src="@/assets/record/error.png" alt="">
<span>确认删除当前项</span>
</div>
<div class="content-text">点击确认将把文件移至未分类目录或点击取消保留文件一键删除将永久移除文件无法恢复请谨慎操作</div>
<div class="footer-btns">
<div class="btn" @click="delItem"></div>
<div class="btn" @click="delAll"></div>
<div class="reset_btn" @click="handleClose"></div>
</div>
</div>
</template>
</el-dialog>
</template>
<script>
export default {
name: 'DelFolder',
data() {
return {
dialogVisible: false
}
},
mounted() {
},
methods: {
//
show() {
this.dialogVisible = true
},
handleClose() {
this.dialogVisible = false
},
delItem() {
this.$emit('delItem')
this.dialogVisible = false
},
delAll() {
this.$emit('delAll')
this.dialogVisible = false
}
}
}
</script>
<style lang="scss" scoped>
.dialog-content {
border-radius: 5px;
padding: 20px;
box-sizing: border-box;
}
::v-deep .el-dialog__header {
padding: 0;
}
::v-deep .el-dialog__body {
padding: 0 !important;
}
::v-deep .el-dialog {
background: linear-gradient(to bottom, #E1ECFE, #FFFFFF);
}
.del-folder {
padding: 24px;
.header {
display: flex;
img {
width: 28px;
height: 28px;
margin-right: 16px;
}
font-weight: bold;
font-size: 20px;
color: #333333;
}
.content-text {
margin-top: 12px;
font-weight: 400;
font-size: 16px;
color: #666666;
line-height: 25px;
}
.footer-btns {
padding-top: 24px;
display: flex;
flex-direction: row-reverse;
.btn {
padding: 8px 24px;
background: #3763FF;
box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.04);
border-radius: 6px 6px 6px 6px;
text-align: center;
font-size: 16px;
color: #FFFFFF;
cursor: pointer;
margin-left: 16px;
}
.reset_btn {
padding: 8px 24px;
background: #FFFFFF;
box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.04);
border-radius: 6px 6px 6px 6px;
border: 1px solid #3763FF;
text-align: center;
font-size: 16px;
color: #3763FF;
cursor: pointer;
margin-left: 16px;
}
}
}
</style>

@ -68,8 +68,15 @@
<el-form v-if="level === '2'" ref="form" :model="selectInfo.evidenceInfo" :rules="rules" label-width="100px" style="margin-top: 10px">
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="证据名称" prop="title">
<el-input v-model="selectInfo.evidenceInfo.title" placeholder="请输入证据名称" />
<el-form-item label="证据名称" prop="evidenceName">
<el-input v-model="selectInfo.evidenceInfo.evidenceName" placeholder="请输入证据名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="标题" prop="title">
<el-input v-model="selectInfo.evidenceInfo.title" placeholder="请输入证据标题" />
</el-form-item>
</el-col>
</el-row>
@ -100,8 +107,15 @@
<el-form v-if="level === '3'" ref="form" :model="evidenceInfo" :rules="rules" label-width="100px" style="margin-top: 10px">
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="证据名称" prop="title">
<el-input v-model="evidenceInfo.title" placeholder="请输入证据名称" />
<el-form-item label="证据名称" prop="evidenceName">
<el-input v-model="evidenceInfo.evidenceName" placeholder="请输入证据名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="标题" prop="title">
<el-input v-model="evidenceInfo.title" placeholder="请输入证据标题" />
</el-form-item>
</el-col>
</el-row>
@ -132,7 +146,7 @@
</div>
</div>
<div class="footer-btns">
<div class="btn" @click="submit"></div>
<div class="btn" @click="save"></div>
<div class="btn" @click="save"></div>
<div class="reset_btn" @click="reset"></div>
</div>
@ -163,7 +177,7 @@ export default {
label: 'directoryName'
},
rules: {
title: [{ required: true, message: '证据名称不能为空!', trigger: 'blur' }]
evidenceName: [{ required: true, message: '证据名称不能为空!', trigger: 'blur' }]
},
treeData: [],
flag: true,
@ -171,7 +185,8 @@ export default {
selectInfo: {
evidenceInfo: {
property: [],
title: ''
title: '',
evidenceName:''
},
ocrText: ''
}
@ -204,7 +219,7 @@ export default {
if (res.code === 200) {
this.treeData = res.data
this.$nextTick(() => {
this.handleNodeClick(res.data[0])
this.initializateSelection()
})
}
})
@ -229,6 +244,11 @@ export default {
}
return null
},
//
initializateSelection() {
const nodeItem = this.getFileList(this.treeData)
this.handleNodeClick(nodeItem)
},
// list
getFileList(nodes) {
for (const node of nodes) {
@ -247,16 +267,16 @@ export default {
// this.selectId = data.id
this.navList = []
this.navList = this.getParentNames(data, this.treeData)
const nodeItem = this.getFileList(this.treeData)
if (nodeItem.evidenceInfo) {
if (data.evidenceInfo) {
this.level = '3'
this.evidenceInfo = nodeItem.evidenceInfo
this.evidenceInfo = data.evidenceInfo
} else {
this.level = '2'
}
this.selectList = nodeItem.fileInfoList
this.selectList = data.fileInfoList
this.selectInfo = this.selectList[0]
this.selectId = nodeItem.id
this.selectId = data.id
this.navList.push(data.directoryName)
this.$refs.tree.setCurrentKey(this.selectId)
},
@ -264,9 +284,9 @@ export default {
for (const item of nodes) {
if (item.fileInfoList.length > 0) {
for (let i = 0; i < item.fileInfoList.length; i++) {
if (!item.fileInfoList[i].evidenceInfo.title) {
if (!item.fileInfoList[i].evidenceInfo.evidenceName) {
this.handleNodeClick(item)
this.selectItem(item.fileInfoList[i])
this.selectItem(i)
this.flag = false
break
}
@ -279,34 +299,40 @@ export default {
handleAdd() {
this.$refs.add.show()
},
submit() {
caseEvidenceVerify({
batchNo: this.$route.query.recordId,
caseId: this.$route.params.id,
evidenceDirectoryList: this.treeData
}).then(res => {
if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!')
this.$store.dispatch(
'tabsBar/delRoute',
this.$route
)
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { isEdit: 1,currentKey: '1-2', caseNo: this.$route.query.caseNo }})
}
})
},
save() {
this.checkEvidence(this.treeData)
if (this.flag) {
caseEvidenceVerify({
batchNo: this.$route.query.recordId,
caseId: this.$route.params.id,
evidenceDirectoryList: this.treeData
}).then(res => {
if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!')
this.$store.dispatch(
'tabsBar/delRoute',
this.$route
)
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { isEdit: 1, caseNo: this.$route.query.caseNo }})
}
})
if (this.level === '2') {
this.checkEvidence(this.treeData)
if (this.flag) {
this.submit()
} else {
this.$baseMessage.error('证据不能为空!')
}
} else {
this.$baseMessage.error('证据不能为空!')
if (this.evidenceInfo.evidenceName) {
this.submit()
} else {
this.$baseMessage.error('证据不能为空!')
}
}
},
handleDragEnd() {
this.findNodeById(this.treeData, this.selectId)
},
submit() {
console.log('2323', this.selectList)
this.save()
this.$emit('submit')
}
}
}
@ -427,7 +453,8 @@ export default {
border-radius: 8px 8px 8px 8px;
margin-left: 24px;
overflow-y: auto;
// height: calc(100vh - 350px);
height: calc(100vh - 460px);
overflow: auto;
padding: 0 24px;
margin-bottom: 72px;
.expand {

@ -8,7 +8,7 @@
<template #status="{row}">
<div v-if="row.status === '2'" class="status">
<img src="@/assets/record/success.png" alt="">
<span>处理完毕</span>
<span>已提取</span>
</div>
<div v-if="row.status === '3'" class="status">
<img src="@/assets/record/error.png" alt="">
@ -129,7 +129,7 @@ export default {
'tabsBar/delRoute',
this.$route
)
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { isEdit: 1, caseNo: this.$route.query.caseNo }})
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { isEdit: 1, currentKey: '1-2', caseNo: this.$route.query.caseNo }})
},
next() {
let flag = true

@ -7,12 +7,15 @@
placeholder="搜索名称"
/>
<el-tree
ref="tree"
:data="treeData"
:props="defaultProps"
node-key="id"
current-node-key="1"
highlight-current
default-expand-all
:filter-node-method="filterNode"
:render-content="renderContent"
@node-click="handleNodeClick"
/>
</div>
@ -24,7 +27,7 @@
</div>
</div>
<div class="btn-list">
<el-button type="primary" icon="el-icon-folder-add" @click="addFolder"></el-button>
<el-button type="primary" style="height: 42px" icon="el-icon-folder-add" @click="addFolder"></el-button>
<el-upload
:headers="{
token: token
@ -56,7 +59,9 @@
<svg-icon v-if="item.type === 4" class="svg-img" icon-class="pdf" />
<img v-if="item.type === 2" class="file-img" :src="getImgUrl(item.fileId)" alt="">
</div>
<div class="footer">{{ item.fileName }}</div>
<el-input v-if="item.type === 1" v-model="item.fileName" class="footer folder-input" @blur="((val) => changeFolder(val,index) )" />
<div v-else class="footer">{{ item.fileName }}</div>
<div v-if="!item.check" class="no-select" />
<img v-else src="@/assets/file/check.png" class="selected" alt="">
</div>
@ -75,6 +80,7 @@
</div>
<AddFolder ref="AddFolderRef" @addOk="addFolderOk" />
<MoveFolder ref="MoveFolderRef" @selectOk="selectOk" />
<DelFolder ref="DelFolderRef" @delItem="delItem" @delAll="delAll" />
</div>
</template>
<script>
@ -85,9 +91,10 @@ import * as vuedraggable from 'vuedraggable'
import AddFolder from '../AddFolder.vue'
import MoveFolder from '../MoveFolder.vue'
import { getCaseEvidenceFileTree, ocrAndExtract } from '@/api/caseDetails/evidence'
import DelFolder from './DelFolder.vue'
export default {
name: 'UploadEvidence',
components: { vuedraggable, AddFolder, MoveFolder },
components: { vuedraggable, AddFolder, MoveFolder, DelFolder },
data() {
return {
//
@ -110,12 +117,21 @@ export default {
loading: false
}
},
watch: {
filterText(val) {
this.$refs.tree.filter(val)
}
},
mounted() {
this.getTreeList()
this.caseNo = this.$route.query.caseNo
this.caseName = this.$route.query.caseName
},
methods: {
filterNode(value, data) {
if (!value) return true
return data.directoryName.indexOf(value) !== -1
},
beforeUpload(file) {
const isLt5M = file.size / 1024 / 1024 < 5
const filename = file.name
@ -130,6 +146,26 @@ export default {
}
return true
},
//
changeFolder(e, index) {
const node = this.findNodeById(this.treeData, this.selectId)
node.child[index].directoryName = e.target.value
},
renderContent(h, { node, data }) {
if (data.fileInfoList.length > 0) {
return (
<span>
{data.directoryName} <span style=''>({data.fileInfoList.length})</span>
</span>
)
} else {
return (
<span>
{data.directoryName}
</span>
)
}
},
handleSuccess(res, file) {
const filename = file.name
const postfix = filename.substring(filename.lastIndexOf('.'))
@ -161,7 +197,8 @@ export default {
}
})
if (!flag) {
this.$baseMessage.error('不能删除文件夹!!')
// this.$baseMessage.error('!')
this.$refs.DelFolderRef.show()
return
}
this.delFiles()
@ -169,12 +206,38 @@ export default {
//
delFiles() {
const node = this.findNodeById(this.treeData, this.selectId)
for (let i = node.fileInfoList.length - 1; i >= 0; i--) {
if (node.fileInfoList[i].check === true) {
node.fileInfoList.splice(i, 1)
for (let i = this.selectList.length - 1; i >= 0; i--) {
if (this.selectList[i].check === true) {
this.treeData[0].fileInfoList.push(this.selectList[i])
this.selectList.splice(i, 1)
}
}
const list = []
for (const item of this.selectList) {
if (item.type !== 1) {
list.push(item)
}
}
node.fileInfoList = JSON.parse(JSON.stringify(list))
},
//
delItem() {
const node = this.findNodeById(this.treeData, this.selectId)
for (let i = this.selectList.length - 1; i >= 0; i--) {
if (this.selectList[i].check === true) {
this.treeData[0].fileInfoList = this.treeData[0].fileInfoList.concat(node.child[i].fileInfoList)
node.child[i].fileInfoList = []
}
}
},
//
delAll() {
const node = this.findNodeById(this.treeData, this.selectId)
for (let i = this.selectList.length - 1; i >= 0; i--) {
if (this.selectList[i].check === true) {
node.child[i].fileInfoList = []
}
}
this.selectList = JSON.parse(JSON.stringify(node.fileInfoList))
},
//
selectOk(val) {
@ -196,9 +259,7 @@ export default {
const node = this.findNodeById(this.treeData, nodeId)
if (node) {
node.fileInfoList.push(data)
node.fileIdList.push(data.fileId)
}
console.log('111', this.treeData)
},
findNodeById(nodes, id) {
for (const node of nodes) {
@ -236,7 +297,6 @@ export default {
this.treeData.unshift({
directoryName: '未分类',
id: '1',
fileIdList: [],
fileInfoList: []
})
}
@ -276,7 +336,6 @@ export default {
node.child.push({
...item,
child: [],
fileIdList: [],
fileInfoList: []
})
},
@ -409,6 +468,7 @@ export default {
.btn-list {
display: flex;
position: relative;
align-items: center;
.plain-btn {
height: 42px;
background: #FFFFFF;
@ -439,6 +499,12 @@ export default {
display: flex;
flex-wrap: wrap;
}
::v-deep {
.el-input__inner {
border: none !important;
padding: 0;
}
}
.file-item {
width: 190px;
height: 230px;

@ -2,6 +2,11 @@
<template>
<div class="evidence-content">
<div class="evidence-tree">
<el-input
v-model="filterText"
prefix-icon="el-icon-search"
placeholder="搜索名称"
/>
<el-tree
ref="tree"
node-key="id"
@ -9,7 +14,9 @@
current-node-key="1"
:props="defaultProps"
highlight-current
:filter-node-method="filterNode"
default-expand-all
:expand-on-click-node="false"
@node-click="handleNodeClick"
/>
</div>
@ -18,6 +25,7 @@
<div>
<el-button type="primary" icon="el-icon-folder-add" @click="addFolder"></el-button>
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="addEvidence"></el-button>
<el-button type="primary" @click="delAll"></el-button>
</div>
<!-- <el-input v-model="searchName" placeholder="搜索名称" style="width: 300px" /> -->
@ -28,11 +36,15 @@
<span v-if="index !== navList.length -1">></span>
</div>
</div>
<vxe-grid v-bind="gridOptions" style="margin-top: 10px;width: calc(100vw - 630px);">
<vxe-grid
ref="entityTable"
v-bind="gridOptions"
style="margin-top: 10px;width: calc(100vw - 630px);"
>
<template #status="{row}">
<div v-if="row.processStatus === '2'" class="status">
<img src="@/assets/record/success.png" alt="">
<span>处理完毕</span>
<span>已提取</span>
</div>
<div v-if="row.processStatus === '3'" class="status">
<img src="@/assets/record/error.png" alt="">
@ -47,9 +59,10 @@
</div>
</template>
<template #opera="{row}">
<el-button type="text" @click="handelEdit(row)"></el-button>
<el-button v-if="row.processStatus === '3'" type="text" @click="handelExtract(row)"></el-button>
<el-button type="text" style="color: red" @click="handleDel(row)"></el-button>
<el-button v-if="row.fileList.length > 0" type="text" icon="el-icon-edit" title="编辑" @click="handelEdit(row)" />
<el-button icon="el-icon-collection" title="重新提取" type="text" @click="handelExtract(row)" />
<el-button type="text" icon="el-icon-delete" style="color: red" title="删除" @click="handleDel(row)" />
</template>
</vxe-grid>
<div style="text-align: center">
@ -74,7 +87,7 @@
import mixin from '@/views/mixin'
import EditEvidence from '@/views/caseDetails/components/edit/EditEvidence.vue'
import AddFolder from './AddEvidence/AddFolder.vue'
import { queryEvidenceList, deleteEvidence } from '@/api/caseDetails'
import { queryEvidenceList, deleteEvidence, batchDeleteEvidence } from '@/api/caseDetails'
import { debounce } from '@/utils'
import { getCaseEvidenceFileTree, caseEvidenceAnalysis } from '@/api/caseDetails/evidence'
import SelectUploadType from './SelectUploadType.vue'
@ -97,15 +110,16 @@ export default {
data() {
return {
searchName: '',
filterText: '',
gridOptions: {
...mixin.data().gridOptions,
columns: [
{ type: 'checkbox', width: '50px' },
{ title: '序号', type: 'seq', width: 80 },
{ title: '证据名称', field: 'evidenceName' },
{ title: '格式', field: 'evidenceFormat', width: 150 },
{ title: '提供人', field: 'provider', width: 200 },
{ title: '状态', slots: { default: 'status' }, align: 'center', width: 200 },
{ title: '证据类型', field: 'evidenceTypeDesc', width: 200 },
// { title: '', field: 'confessionMaterial' },
{ title: '最新时间', field: 'updateTime', width: 200 },
{ title: '操作', slots: { default: 'opera' }, fixed: 'right', width: '150px' }
@ -132,6 +146,9 @@ export default {
},
searchName: function() {
this.debounceSearch(this)
},
filterText(val) {
this.$refs.tree.filter(val)
}
},
mounted() {
@ -147,6 +164,10 @@ export default {
debounceSearch: debounce((_this) => {
_this.fetchData()
}),
filterNode(value, data) {
if (!value) return true
return data.directoryName.indexOf(value) !== -1
},
addFolder() {
this.$refs.AddFolderRef.show()
},
@ -168,11 +189,23 @@ export default {
this.queryForm.total = res.data.total
})
},
filterTree(nodes) {
for (const node of nodes) {
if (node.level === 2) {
node.child = null
}
if (node.child) {
this.filterTree(node.child)
}
}
},
//
getTreeList() {
getCaseEvidenceFileTree({ caseId: this.caseId }).then(res => {
if (res.code === 200) {
this.treeData = res.data
//
this.filterTree(this.treeData)
this.treeData.unshift({
directoryName: '全部',
id: '1'
@ -214,7 +247,7 @@ export default {
this.$baseMessage.error('当前文件夹不可编辑!')
return
}
this.$router.push({ path: `/edit-evidence/${this.caseId}`, query: { caseName: this.$route.params.caseName, caseNo: this.$route.query.caseNo, evidenceId: row.id }})
this.$router.push({ path: `/edit-evidence/${this.caseId}/${row.id}`, query: { caseName: this.$route.params.caseName, caseNo: this.$route.query.caseNo }})
},
handleSelect(val) {
val === '1' ? this.$refs.edit.show() : this.$router.push({ path: `/add-evidence/${this.caseId}`, query: { caseName: this.$route.params.caseName, caseNo: this.$route.query.caseNo }})
@ -226,6 +259,28 @@ export default {
code === 200 ? this.$baseMessage.success(msg || '提取成功!') : this.$baseMessage.error(msg || '提取失败!')
this.fetchData()
},
//
delAll() {
const item = this.$refs.entityTable.getCheckboxRecords()
const list = []
for (const items of item) {
list.push({
evidenceId: items.id,
fileId: items.fileId
})
}
if (list.length === 0) {
this.$baseMessage.error('请至少选择一条数据!')
return
}
batchDeleteEvidence(list).then(res => {
if (res.code === 200) {
this.$baseMessage.success('删除成功!')
this.fetchData()
this.getTreeList()
}
})
},
//
handleDel(row) {
this.$baseConfirm('你确定要删除当前项吗', null, async() => {
@ -234,6 +289,7 @@ export default {
fileId: row.fileId
})
code === 200 ? this.$baseMessage.success(msg || '删除成功!') : this.$baseMessage.error(msg || '删除失败!')
this.getTreeList()
this.fetchData()
})
}

@ -50,8 +50,15 @@
<el-form v-if="level === '2'" ref="form" :model="selectInfo.evidenceInfo" :rules="rules" label-width="100px" style="margin-top: 10px">
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="证据名称" prop="title">
<el-input v-model="selectInfo.evidenceInfo.title" placeholder="请输入证据名称" />
<el-form-item label="证据名称" prop="evidenceName">
<el-input v-model="selectInfo.evidenceInfo.evidenceName" placeholder="请输入证据名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="标题" prop="title">
<el-input v-model="selectInfo.evidenceInfo.title" placeholder="请输入证据标题" />
</el-form-item>
</el-col>
</el-row>
@ -82,8 +89,15 @@
<el-form v-if="level === '3'" ref="form" :model="evidenceInfo" :rules="rules" label-width="100px" style="margin-top: 10px">
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="证据名称" prop="title">
<el-input v-model="evidenceInfo.title" placeholder="请输入证据名称" />
<el-form-item label="证据名称" prop="evidenceName">
<el-input v-model="evidenceInfo.evidenceName" placeholder="请输入证据名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="form-content">
<el-col :span="24">
<el-form-item label="标题" prop="title">
<el-input v-model="evidenceInfo.title" placeholder="请输入证据标题" />
</el-form-item>
</el-col>
</el-row>
@ -114,7 +128,7 @@
</div>
</div>
<div class="footer-btns">
<div class="btn" @click="submit"></div>
<div class="btn" @click="save"></div>
<div class="reset_btn" @click="reset"></div>
</div>
</div>
@ -139,14 +153,15 @@ export default {
//
evidenceTypeList: JSON.parse(sessionStorage.getItem('evidence_type')),
rules: {
title: [{ required: true, message: '证据名称不能为空!', trigger: 'blur' }]
evidenceName: [{ required: true, message: '证据名称不能为空!', trigger: 'blur' }]
},
flag: true,
level: '',
selectInfo: {
evidenceInfo: {
property: [],
title: ''
title: '',
evidenceName: ''
},
ocrText: ''
}
@ -170,7 +185,7 @@ export default {
this.getTreeList()
},
getTreeList() {
ocrAndExtractDetails({ caseId: this.$route.params.id, evidenceId: this.$route.query.evidenceId }).then(res => {
ocrAndExtractDetails({ caseId: this.$route.params.id, evidenceId: this.$route.params.evidenceId }).then(res => {
if (res.code === 200) {
this.treeData = res.data
this.$nextTick(() => {
@ -226,13 +241,12 @@ export default {
// this.selectInfo = this.selectList[0]
// this.selectId = nodeItem.id
// }
},
checkEvidence(nodes) {
for (const item of nodes) {
if (item.fileInfoList.length > 0) {
for (let i = 0; i < item.fileInfoList.length; i++) {
if (!item.fileInfoList[i].evidenceInfo.title) {
if (!item.fileInfoList[i].evidenceInfo.evidenceName) {
this.handleNodeClick(item)
this.selectItem(i)
this.flag = false
@ -244,33 +258,40 @@ export default {
}
}
},
submit() {
caseEvidenceVerify({
evidenceId: this.$route.query.evidenceId,
caseId: this.$route.params.id,
evidenceDirectoryList: this.treeData
}).then(res => {
if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!')
this.$store.dispatch(
'tabsBar/delRoute',
this.$route
)
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { currentKey: '1-2', isEdit: 1, caseNo: this.$route.query.caseNo }})
}
})
},
save() {
this.checkEvidence(this.treeData)
if (this.flag) {
caseEvidenceVerify({
evidenceId: this.$route.query.evidenceId,
caseId: this.$route.params.id,
evidenceDirectoryList: this.treeData
}).then(res => {
if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!')
this.$store.dispatch(
'tabsBar/delRoute',
this.$route
)
this.$router.push({ path: `/case-details/${this.$route.params.id}/${this.$route.query.caseName}`, query: { isEdit: 1, caseNo: this.$route.query.caseNo }})
}
})
if (this.level === '2') {
this.checkEvidence(this.treeData)
if (this.flag) {
this.submit()
} else {
this.$baseMessage.error('证据不能为空!')
}
} else {
this.$baseMessage.error('证据不能为空!')
if (this.evidenceInfo.evidenceName) {
this.submit()
} else {
this.$baseMessage.error('证据不能为空!')
}
}
},
handleDragEnd() {
this.findNodeById(this.treeData, this.selectId)
},
submit() {
console.log('2323', this.selectList, this.treeData)
this.save()
}
}
}
@ -376,7 +397,8 @@ export default {
background: #F6F8F9;
border-radius: 8px 8px 8px 8px;
margin-left: 24px;
// height: calc(100vh - 350px);
height: calc(100vh - 460px);
overflow: auto;
padding: 0 24px;
margin-bottom: 72px;
.expand {

@ -21,6 +21,7 @@
</div>
</div>
<div class="right">
<el-button type="primary" class="btn" @click="submit"></el-button>
<div class="right-item">
<span>调试内容</span>
<el-input
@ -28,7 +29,6 @@
type="textarea"
:rows="8"
placeholder="请输入"
@blur="submit"
/>
</div>
<div class="right-item">
@ -111,13 +111,16 @@ export default {
},
handleSuccess(res, file) {
this.fileId = res.data
this.submit()
},
remove() {
this.fileId = ''
},
//
submit() {
if (!this.text && !this.fileId) {
this.$message.error('请上传文件或者输入调试内容!')
return
}
const params = {
text: this.text,
type: this.dataInfo.type,
@ -205,6 +208,12 @@ export default {
.right {
margin-left: 32px;
flex: 1;
position: relative;
.btn {
position: absolute;
right: 0;
top: 16px;
}
.right-item {
display: flex;
flex-direction: column;

@ -139,7 +139,7 @@ export default {
customInputMentions: [],
dataInfo: {
rules: '(问[:](.*?))\s*答[:](.*?)(?=(问[:]|$))',
caseType: '',
caseType: '1',
type: '1',
name: '',
evidenceCategoryList: [],
@ -179,12 +179,14 @@ export default {
type: [{ required: true, message: '提示词类型不能为空!', trigger: 'blur' }],
name: [{ required: true, message: '提示词名称不能为空!', trigger: 'blur' }],
typeList: [{ required: true, message: '分类不能为空!', trigger: 'change' }],
evidenceCategoryIdList: [{ required: true, message: '所属目录不能为空!', trigger: 'change' }],
extractAttributes: [{ required: true, message: '提取属性不能为空!', trigger: 'change' }]
},
defaultProps: {
children: 'child',
label: 'categoryName',
value: 'id'
value: 'id',
disabled:'hasPrompt'
},
treeData: [],
id: '',
@ -323,7 +325,7 @@ export default {
const params = {
id: this.$route.params.id,
...this.dataInfo,
evidenceCategoryId: this.dataInfo.evidenceCategoryIdList[this.dataInfo.evidenceCategoryIdList.length - 1 ]
evidenceCategoryId: this.dataInfo.evidenceCategoryIdList ? this.dataInfo.evidenceCategoryIdList[this.dataInfo.evidenceCategoryIdList.length - 1 ] : undefined
}
if (params.type === '2') {
params.tripleList = this.entityOptions.data

@ -57,6 +57,9 @@ export default {
}
}
},
activated() {
this.fetchData()
},
mounted() {
this.tableHeight(390)
},

Loading…
Cancel
Save