dev
xiangcongshuai 5 months ago
parent bd2a588df8
commit 115ddfb490

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -119,7 +119,7 @@ export default {
} }
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
padding: 10px; padding: 10px;
border-bottom: 1px solid #5B8BFF; border-bottom: 1px solid #E9E9E9;
} }
::v-deep .el-dialog__body { ::v-deep .el-dialog__body {
padding: 10px 0 0; padding: 10px 0 0;
@ -131,12 +131,12 @@ export default {
::v-deep .dialog-footer { ::v-deep .dialog-footer {
//background-color: #eff4f9; //background-color: #eff4f9;
text-align: center; text-align: center;
padding: 10px; padding: 24px;
display: block; display: block;
border-top: 1px solid #dcdfe6; border-top: 1px solid #dcdfe6;
} }
::v-deep .el-dialog { ::v-deep .el-dialog {
background: linear-gradient(to bottom, #E1ECFE, #FFFFFF); // background: linear-gradient(to bottom, #E1ECFE, #FFFFFF);
} }
.el-dialog__wrapper { .el-dialog__wrapper {
height: 1000px; height: 1000px;

@ -15,6 +15,7 @@ const resetMessage = (options) => {
} }
} }
options.type = type options.type = type
options.showClose = true
return resetMessage(options) return resetMessage(options)
} }
}) })

@ -176,7 +176,7 @@ export const asyncRoutes = [
name: 'HandleCases', name: 'HandleCases',
permission: 'p_handleCases', permission: 'p_handleCases',
component: () => import('@/views/operationManagement/HandleCases/index.vue'), component: () => import('@/views/operationManagement/HandleCases/index.vue'),
meta: { title: '案件批量处理', affix: false } meta: { title: '案件批量分析', affix: false }
} }
] ]
}, },

@ -70,7 +70,7 @@ export default {
padding: 0 !important; padding: 0 !important;
} }
::v-deep .el-dialog { ::v-deep .el-dialog {
background: linear-gradient(to bottom, #E1ECFE, #FFFFFF); // background: linear-gradient(to bottom, #E1ECFE, #FFFFFF);
} }
.del-folder { .del-folder {
padding: 24px; padding: 24px;

@ -64,7 +64,17 @@
<img v-if="item.type === 1" src="@/assets/file/type1.png" alt=""> <img v-if="item.type === 1" src="@/assets/file/type1.png" alt="">
<svg-icon v-if="item.type === 3" class="svg-img" icon-class="docx" /> <svg-icon v-if="item.type === 3" class="svg-img" icon-class="docx" />
<svg-icon v-if="item.type === 4" class="svg-img" icon-class="pdf" /> <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=""> <!-- <img :src="getImgUrl(item.fileId)" alt=""> -->
<el-image
v-if="item.type === 2"
class="file-img"
:src="getImgUrl(item.fileId)"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="[getImgUrl(item.fileId)]"
fit="cover"
/>
</div> </div>
<el-input v-if="item.type === 1" v-model="item.fileName" class="footer folder-input" @blur="((val) => changeFolder(val,index) )" /> <el-input v-if="item.type === 1" v-model="item.fileName" class="footer folder-input" @blur="((val) => changeFolder(val,index) )" />

@ -43,7 +43,7 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="供述材料" prop="confessionMaterial"> <el-form-item label="供述材料" prop="confessionMaterial">
<el-input v-model="recordForm['confessionMaterial']" placeholder="请输入供述材料" /> <el-input v-model="recordForm['confessionMaterial']" placeholder="例如,第1次询问笔录" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -97,6 +97,7 @@ export default {
rules: { rules: {
personId: [{ required: true, message: '姓名不能为空!', trigger: 'blur' }], personId: [{ required: true, message: '姓名不能为空!', trigger: 'blur' }],
lawAsker: [{ required: true, message: '询问人不能为空!', trigger: 'blur' }], lawAsker: [{ required: true, message: '询问人不能为空!', trigger: 'blur' }],
confessionMaterial: [{ required: true, message: '供述材料不能为空!', trigger: 'blur' }],
confessionTime: [{ required: true, message: '供述时间不能为空!', trigger: 'blur' }] confessionTime: [{ required: true, message: '供述时间不能为空!', trigger: 'blur' }]
}, },
// //

@ -3,9 +3,9 @@
<FormInfo ref="formInfoRef" :is-edit="true" /> <FormInfo ref="formInfoRef" :is-edit="true" />
<div class="analysis-main"> <div class="analysis-main">
<div class="content"> <div class="content">
<span class="title">笔录上传成功</span> <span class="title">已发送提取</span>
<!-- <span class="desc">系统正在处理笔录信息可稍后在笔录列表中提交[笔录分析]以免超载</span> --> <!-- <span class="desc">系统正在处理笔录信息可稍后在笔录列表中提交[笔录分析]以免超载</span> -->
<span class="btn" @click="closed"></span> <span class="btn" @click="closed"></span>
</div> </div>
</div> </div>
@ -14,7 +14,7 @@
</template> </template>
<script> <script>
import FormInfo from './FormInfo.vue' import FormInfo from './FormInfo.vue'
import { submitTask } from '@/api/caseDetails/ocr'
export default { export default {
name: 'RecordAnalysis', name: 'RecordAnalysis',
components: { FormInfo }, components: { FormInfo },
@ -25,15 +25,11 @@ export default {
}, },
methods: { methods: {
closed() { closed() {
submitTask({ recordId: this.$route.query.recordId }).then(res => { this.$store.dispatch(
if (res.code === 200) { 'tabsBar/delRoute',
this.$store.dispatch( this.$route
'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, caseNo: this.$route.query.caseNo }})
}
})
} }
} }
} }
@ -41,10 +37,11 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.RecordAnalysis { .RecordAnalysis {
display: flex; display: flex;
flex-direction: row-reverse;
padding: 0 24px; padding: 0 24px;
.analysis-main { .analysis-main {
flex: 1; flex: 1;
margin-left: 16px; margin-right: 16px;
// border: 1px dashed #3763FF; // border: 1px dashed #3763FF;
border: 1px dashed transparent; border: 1px dashed transparent;
background: linear-gradient(#fff,#fff) padding-box, background: linear-gradient(#fff,#fff) padding-box,

@ -24,20 +24,23 @@
<div class="btn-list"> <div class="btn-list">
<!-- <img src="@/assets/record/reset_identify.png" alt=""> --> <!-- <img src="@/assets/record/reset_identify.png" alt=""> -->
<!-- <img src="@/assets/record/view_detail.png" alt=""> --> <!-- <img src="@/assets/record/view_detail.png" alt=""> -->
<el-image <el-tooltip class="item" effect="dark" content="详情" placement="top-start">
style="width: 16px; height: 16px;margin-right: 16px;" <el-image
:src="detailImg" style="width: 16px; height: 16px;margin-right: 16px;"
:preview-src-list="getImgUrlList(row)" :src="detailImg"
fit="cover" :preview-src-list="getImgUrlList(row)"
@click="openDeatils(row)" fit="cover"
/> />
<img src="@/assets/record/del.png" alt="" @click="del(row,rowIndex )"> </el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top-start">
<img src="@/assets/record/del.png" alt="" @click="del(row,rowIndex )">
</el-tooltip>
</div> </div>
</template> </template>
</vxe-grid> </vxe-grid>
<div class="footer-btns"> <div class="footer-btns">
<div class="btn" @click="back"></div> <div class="btn" @click="back"></div>
<div class="btn" @click="next"></div> <div class="btn" @click="next"></div>
</div> </div>
</div> </div>
@ -147,9 +150,10 @@ export default {
.RecordIdentify { .RecordIdentify {
display: flex; display: flex;
padding: 0 24px; padding: 0 24px;
flex-direction: row-reverse;
.record_table { .record_table {
flex: 1; flex: 1;
margin-left: 18px; margin-right: 18px;
} }
.status { .status {
display: flex; display: flex;

@ -33,8 +33,8 @@
</div> </div>
<div class="footer-btns"> <div class="footer-btns">
<div class="reset_btn" @click="reset"></div> <div class="reset_btn" @click="reset"></div>
<div class="btn" @click="save"></div> <div class="btn" @click="save"></div>
<div class="btn" @click="submit"></div> <div class="btn" @click="submit"></div>
</div> </div>
</div> </div>
@ -44,7 +44,8 @@ import * as vuedraggable from 'vuedraggable'
import FormInfo from './FormInfo.vue' import FormInfo from './FormInfo.vue'
import { baseURL } from '@/config' import { baseURL } from '@/config'
import { commonDownloadFile } from '@/api/config/uploadApi' import { commonDownloadFile } from '@/api/config/uploadApi'
import { reviseOcrText, queryFileList } from '@/api/caseDetails/ocr' import { reviseOcrText, queryFileList, submitTask } from '@/api/caseDetails/ocr'
export default { export default {
name: 'RecordProofread', name: 'RecordProofread',
components: { vuedraggable, FormInfo }, components: { vuedraggable, FormInfo },
@ -90,11 +91,32 @@ export default {
reviseOcrText(list).then(res => { reviseOcrText(list).then(res => {
if (res.code === 200) { if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!') 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 }})
} }
}) })
}, },
submit() { async submit() {
this.save() const list = []
this.dataList.forEach(e => {
list.push({
ocrId: e.ocrId,
reviseText: e.reviseText
})
})
reviseOcrText(list).then(res => {
if (res.code === 200) {
submitTask({ recordId: this.$route.query.recordId }).then(res => {
if (res.code === 200) {
this.$baseMessage.success(res.msg || '保存成功!')
}
})
}
})
this.$emit('submit') this.$emit('submit')
} }
} }
@ -104,12 +126,13 @@ export default {
.RecordProofread { .RecordProofread {
display: flex; display: flex;
padding: 0 24px; padding: 0 24px;
flex-direction: row-reverse;
:deep(.el-scrollbar__wrap) { :deep(.el-scrollbar__wrap) {
overflow-x: hidden; overflow-x: hidden;
} }
.proofread-content { .proofread-content {
flex: 1; flex: 1;
margin-left: 18px; margin-right: 18px;
display: flex; display: flex;
.left { .left {
width: 55%; width: 55%;

@ -180,9 +180,10 @@ export default {
.UploadRecord { .UploadRecord {
display: flex; display: flex;
padding: 0 24px; padding: 0 24px;
flex-direction: row-reverse;
.main-content { .main-content {
flex: 1; flex: 1;
margin-left: 18px; margin-right: 18px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.tips { .tips {

@ -26,8 +26,8 @@
class="input-item" class="input-item"
size="lager" size="lager"
placeholder="请输入" placeholder="请输入"
@keyup.enter.native="search"
clearable clearable
@keyup.enter.native="search"
/> />
<div class="btn" @click="search"></div> <div class="btn" @click="search"></div>
</div> </div>
@ -72,7 +72,6 @@ export default {
} }
}, },
mounted() { mounted() {
this.caseAtlasOption.toolbox = { this.caseAtlasOption.toolbox = {
// //
show: true, show: true,
@ -237,7 +236,8 @@ export default {
} }
} }
.right { .right {
width: calc(100vw - 700px); // width: calc(100vw - 700px);
flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background: radial-gradient(circle, rgba(255, 255, 255, 0.05), rgba(66, 135, 255, 0.05)); background: radial-gradient(circle, rgba(255, 255, 255, 0.05), rgba(66, 135, 255, 0.05));

@ -20,7 +20,7 @@
<el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" /> <el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" />
<vxe-grid v-if="gridOptions.data.length > 0" :row-config="{isHover: true}" v-bind="gridOptions" style="margin-top: 10px"> <vxe-grid :row-config="{isHover: true}" v-bind="gridOptions" style="margin-top: 10px">
<template #operate="{row}"> <template #operate="{row}">
<div class="btn-item"> <div class="btn-item">
<span>{{ row.record }}</span> <span>{{ row.record }}</span>
@ -97,7 +97,7 @@ export default {
{ title: '分析结果', width: '200px', field: 'indexResult', slots: { default: 'result' }}, { title: '分析结果', width: '200px', field: 'indexResult', slots: { default: 'result' }},
// { title: '', width: '200px', slots: { default: 'operate' }, align: 'center' }, // { title: '', width: '200px', slots: { default: 'operate' }, align: 'center' },
{ title: '指标名称', field: 'indexName', slots: { default: 'detail' }, align: 'left' }, { title: '指标名称', field: 'indexName', slots: { default: 'detail' }, align: 'left' },
{ title: '分值', field: 'score', width: '50px' } { title: '分值', field: 'score', width: '200px' }
// { title: '', field: 'indexSource', width: '200px', formatter: ({ cellValue }) => { // { title: '', field: 'indexSource', width: '200px', formatter: ({ cellValue }) => {
// return cellValue ? this.indexSourceList.find(item => item.value === cellValue).label : '' // return cellValue ? this.indexSourceList.find(item => item.value === cellValue).label : ''
// } } // } }

@ -20,7 +20,7 @@
<el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" /> <el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" />
<vxe-grid v-if="gridOptions.data.length > 0" :row-config="{isHover: true}" v-bind="gridOptions" style="margin-top: 10px"> <vxe-grid :row-config="{isHover: true}" v-bind="gridOptions" style="margin-top: 10px">
<template #operate="{row}"> <template #operate="{row}">
<div class="btn-item"> <div class="btn-item">
<span>{{ row.record }}</span> <span>{{ row.record }}</span>

@ -20,7 +20,7 @@
<el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in indexSourceList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" /> <el-input v-model="atomicName" placeholder="原子指标名称" clearable style="width: 200px;margin-left: 16px;" />
<vxe-grid :row-config="{isHover: true}" v-if="gridOptions.data.length > 0" v-bind="gridOptions" style="margin-top: 10px"> <vxe-grid :row-config="{isHover: true}" v-bind="gridOptions" style="margin-top: 10px">
<template #operate="{row}"> <template #operate="{row}">
<div class="btn-item"> <div class="btn-item">
<span>{{ row.record }}</span> <span>{{ row.record }}</span>

@ -238,11 +238,11 @@ export default {
display: flex; display: flex;
background: #FFFFFF; background: #FFFFFF;
height: 750px; height: 750px;
width: 1240px; // width: 1240px;
.left { .left {
width: 100%; width: 100%;
border-right: 1px solid #EAEAEA; // border-right: 1px solid #EAEAEA;
padding-right: 30px; // padding-right: 30px;
.search { .search {
display: flex; display: flex;
margin: 32px 32px 16px 32px; margin: 32px 32px 16px 32px;

@ -160,7 +160,7 @@ export default {
roleCode: [{ required: true, message: '角色不能为空!', trigger: 'blur' }], roleCode: [{ required: true, message: '角色不能为空!', trigger: 'blur' }],
lawAsker: [{ required: true, message: '询问人不能为空!', trigger: 'blur' }], lawAsker: [{ required: true, message: '询问人不能为空!', trigger: 'blur' }],
confessionTime: [{ required: true, message: '供述时间不能为空!', trigger: 'blur' }], confessionTime: [{ required: true, message: '供述时间不能为空!', trigger: 'blur' }],
confessionMaterial: [{ required: true, message: '供述材料不能为空!', trigger: 'blur' }], // confessionMaterial: [{ required: true, message: '!', trigger: 'blur' }],
fileIdList: [{ required: true, message: '上传材料不能为空!', trigger: 'blur' }] fileIdList: [{ required: true, message: '上传材料不能为空!', trigger: 'blur' }]
}, },
// //

@ -77,7 +77,7 @@
</div> </div>
<div v-else class="flex-row pick-up-info"> <div v-else class="flex-row pick-up-info">
<div class="flex-row left-title" style="align-items: center"> <div class="flex-row left-title" style="align-items: center">
<span>综合得分</span> <span style="margin-left: 6px;">综合得分</span>
<span :style="commonStyle" style="font-size: 30px;">{{ caseData.totalScore }}</span> <span :style="commonStyle" style="font-size: 30px;">{{ caseData.totalScore }}</span>
<div v-if="isEdit" class="model" @click="handleAnalysis"></div> <div v-if="isEdit" class="model" @click="handleAnalysis"></div>
</div> </div>
@ -576,7 +576,7 @@ export default {
display: flex; display: flex;
position: absolute; position: absolute;
right: 48px; right: 48px;
top: 4px; top: 8px;
} }
.btns { .btns {
padding: 0 20px; padding: 0 20px;
@ -590,8 +590,8 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
height: 38px; height: 34px;
line-height: 38px; line-height: 34px;
cursor: pointer; cursor: pointer;
span { span {
line-height: unset !important; line-height: unset !important;
@ -622,7 +622,7 @@ export default {
>div { >div {
height: 100%; height: 100%;
background: #FFFFFF; background: #FFFFFF;
padding: 20px; padding: 24px;
box-sizing: border-box; box-sizing: border-box;
border-radius: 8px; border-radius: 8px;
} }
@ -633,7 +633,7 @@ export default {
} }
.info-right { .info-right {
// flex: 1; // flex: 1;
width: calc(100% - 250px); width: calc(100% - 256px);
margin-left: 10px; margin-left: 10px;
>div { >div {
margin-top: 10px; margin-top: 10px;

@ -78,6 +78,8 @@
<div class="flex-column"> <div class="flex-column">
<div class="flex-row" style="align-items: center;margin-bottom: 5px"> <div class="flex-row" style="align-items: center;margin-bottom: 5px">
<i v-if="item.isAnalysing" class="el-icon-loading" style="margin-right: 5px" /> <i v-if="item.isAnalysing" class="el-icon-loading" style="margin-right: 5px" />
<img v-if="item.totalScore && !item.isAnalysing" class="status_img" src="../../assets/record/success.png" alt="">
<span v-if="!item.totalScore && !item.isAnalysing" class="circle" />
<span class="status-title">{{ formatterStatusName(item) }}</span> <span class="status-title">{{ formatterStatusName(item) }}</span>
</div> </div>
<span class="subtitle">{{ item.caseAnalysisSuccessTime }}</span> <span class="subtitle">{{ item.caseAnalysisSuccessTime }}</span>
@ -432,6 +434,19 @@ export default {
color: #999999; color: #999999;
} }
} }
.status_img {
width: 20px;
height: 20px;
margin-right: 16px;
}
.circle {
width: 17px; /* 圆的直径 */
height: 17px; /* 圆的直径 */
border: 3px solid #3763FF; /* 边框颜色和宽度 */
border-radius: 50%; /* 使其成为圆形 */
background-color: transparent; /* 背景透明 */
margin-right: 16px;
}
.status-title { .status-title {
color: #333333; color: #333333;
font-weight: 500; font-weight: 500;

@ -1,8 +1,8 @@
<template> <template>
<div class="content"> <div class="content">
<cs-search title="案件批量处理" :data="searchData" :span="6" direction="row" @onSearch="onSearch" @getData="onSearch" /> <cs-search title="案件批量分析" :data="searchData" :span="6" direction="row" @onSearch="onSearch" @getData="onSearch" />
<div class="index-content"> <div v-loading="loading" element-loading-text="分析中..." class="index-content">
<div class="header"> <div class="header">
<el-button type="primary" icon="el-icon-video-play" @click="handleAnalysisAll"></el-button> <el-button type="primary" icon="el-icon-video-play" @click="handleAnalysisAll"></el-button>
</div> </div>
@ -46,6 +46,7 @@ export default {
{ label: '认定结果', model: 'identifyResult', type: 'selectMultiple', option: JSON.parse(sessionStorage.getItem('identify_result')) }, { label: '认定结果', model: 'identifyResult', type: 'selectMultiple', option: JSON.parse(sessionStorage.getItem('identify_result')) },
{ label: '分析状态', model: 'analysisStatus', type: 'selectMultiple', option: JSON.parse(sessionStorage.getItem('case_analysis_status')) } { label: '分析状态', model: 'analysisStatus', type: 'selectMultiple', option: JSON.parse(sessionStorage.getItem('case_analysis_status')) }
], ],
loading: false,
// //
gridOptions: { gridOptions: {
...mixin.data().gridOptions, ...mixin.data().gridOptions,
@ -74,6 +75,14 @@ export default {
queryCaseList({ ...this.searchFormData }, this.queryForm.page, this.queryForm.size).then(res => { queryCaseList({ ...this.searchFormData }, this.queryForm.page, this.queryForm.size).then(res => {
this.gridOptions.data = res.data.records this.gridOptions.data = res.data.records
this.queryForm.total = res.data.total this.queryForm.total = res.data.total
for (const item of this.gridOptions.data) {
if (item.analysisStatus === '1') {
setTimeout(() => {
this.fetchData()
}, 5000)
return
}
}
}) })
}, },
@ -84,6 +93,7 @@ export default {
} else { } else {
return true return true
} }
setTimeout
}, },
handleAnalysisAll() { handleAnalysisAll() {
const item = this.$refs.modelTable.getCheckboxRecords() const item = this.$refs.modelTable.getCheckboxRecords()
@ -95,6 +105,7 @@ export default {
for (const items of item) { for (const items of item) {
list.push(items.caseId) list.push(items.caseId)
} }
this.loading = true
this.handlecaseAnalysis(list) this.handlecaseAnalysis(list)
}, },
getTypeName(val, type) { getTypeName(val, type) {
@ -105,9 +116,10 @@ export default {
} }
}, },
async handlecaseAnalysis(list) { async handlecaseAnalysis(list) {
const loading = this.$baseLoading(1, '执行中...') // const loading = this.$baseLoading(1, '...')
const res = await caseAnalysis(list) const res = await caseAnalysis(list)
loading.close() // loading.close()
this.loading = false
if (res.code === 200) { if (res.code === 200) {
this.$baseMessage.success('分析成功') this.$baseMessage.success('分析成功')
this.fetchData() this.fetchData()

@ -47,10 +47,12 @@ export default {
{ title: '序号', type: 'seq', width: '50px' }, { title: '序号', type: 'seq', width: '50px' },
{ title: '任务名称', field: 'taskName' }, { title: '任务名称', field: 'taskName' },
{ title: '案件名称', field: 'caseName' }, { title: '案件名称', field: 'caseName' },
{ title: '提示词名称', field: 'promptName' },
{ title: '任务状态', field: 'taskStatus', slots: { default: 'taskStatus' }}, { title: '任务状态', field: 'taskStatus', slots: { default: 'taskStatus' }},
{ title: '操作人', field: 'createUserName' }, { title: '操作人', field: 'createUserName' },
{ title: '任务创建时间', field: 'createTime' }, { title: '任务创建时间', field: 'createTime', sortable: true },
{ title: '任务取消时间', field: 'cancelTime' }, { title: '任务完成时间', field: 'finishTime', sortable: true },
{ title: '任务取消时间', field: 'cancelTime', sortable: true },
{ title: '操作', slots: { default: 'operate' }, fixed: 'right', width: '150px' } { title: '操作', slots: { default: 'operate' }, fixed: 'right', width: '150px' }
], ],
data: [] data: []

@ -17,19 +17,22 @@
<el-radio :label="0">全部案件</el-radio> <el-radio :label="0">全部案件</el-radio>
<el-radio :label="1">指定案件</el-radio> <el-radio :label="1">指定案件</el-radio>
<el-radio :disabled="dataInfo.type === '1'" :label="2">指定笔录</el-radio> <el-radio :disabled="dataInfo.type === '1'" :label="2">指定笔录</el-radio>
<el-radio :disabled="dataInfo.type === '2'" :label="3">指定证据</el-radio> <el-radio :disabled="dataInfo.type === '2'" :label="3">指定证据</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-show="ruleForm.type === 1" label="案件名称" :prop="ruleForm.type === 1?'caseIdList':''"> <div v-if="ruleForm.type === 1">
<el-select v-model="ruleForm.caseIdList" filterable multiple style="width: 100%;" placeholder="请选择案件名称"> <el-form-item label="案件名称" prop="caseIdList">
<el-option <el-select v-model="ruleForm.caseIdList" filterable multiple style="width: 100%;" placeholder="请选择案件名称">
v-for="item in caseOptions" <el-option
:key="item.id" v-for="item in caseOptions"
:label="item.caseName" :key="item.id"
:value="item.id" :label="item.caseName"
/> :value="item.id"
</el-select> />
</el-form-item> </el-select>
</el-form-item>
</div>
<el-form-item v-if="ruleForm.type === 2 || ruleForm.type === 3 " label="案件名称" prop="caseId"> <el-form-item v-if="ruleForm.type === 2 || ruleForm.type === 3 " label="案件名称" prop="caseId">
<el-select v-model="ruleForm.caseId" style="width: 100%;" filterable placeholder="请选择案件名称" @change="selectCase"> <el-select v-model="ruleForm.caseId" style="width: 100%;" filterable placeholder="请选择案件名称" @change="selectCase">
<el-option <el-option
@ -165,6 +168,8 @@ export default {
console.log('11111', this.ruleForm) console.log('11111', this.ruleForm)
}, },
selectCase() { selectCase() {
this.ruleForm.recordIdList = []
this.ruleForm.evidenceIdList = []
this.getRecordData() this.getRecordData()
this.getEvidenceData() this.getEvidenceData()
}, },
@ -189,7 +194,7 @@ export default {
loading.close() loading.close()
if (res.code === 200) { if (res.code === 200) {
this.drawerOption.show = false this.drawerOption.show = false
this.$baseMessage.success('提取成功') this.$baseMessage.success('数据提取任务已成功发起')
} }
}).catch(() => { loading.close() }) }).catch(() => { loading.close() })
} }

@ -66,7 +66,7 @@ export default {
} }
} }
}, },
mounted() { activated() {
this.fetchData() this.fetchData()
this.tableHeight(390) this.tableHeight(390)
}, },

@ -13,10 +13,30 @@
@onSubmit="handleSubmit" @onSubmit="handleSubmit"
> >
<div slot="content"> <div slot="content">
<el-steps :active="activeStep" align-center> <!-- <el-steps :active="activeStep" align-center>
<el-step title="指标基础信息" description="设置指标名称及原子指标项目" /> <el-step title="指标基础信息" description="设置指标名称及原子指标项目" />
<el-step title="指标规则" description="模型按规则分析案件指标" /> <el-step title="指标规则" description="模型按规则分析案件指标" />
</el-steps> </el-steps> -->
<div class="step_list">
<div class="step_item">
<div class="header">
<img src="../../../../assets/common/step1.png" alt="">
<span class="act_title">指标基础信息</span>
</div>
<div class="desc">设置指标名称及原子指标项目</div>
</div>
<div :class="[activeStep > 0 ?'act-step-line':'step-line']">
<span>>></span>
</div>
<div class="step_item">
<div class="header">
<img v-if="activeStep===0" src="../../../../assets/common/step2.png" alt="">
<img v-if="activeStep===1" src="../../../../assets/common/act_step2.png" alt="">
<span :class="[activeStep > 0 ?'act_title':'title']">指标规则</span>
</div>
<div class="desc">模型按规则分析案件指标</div>
</div>
</div>
<el-form <el-form
v-if="activeStep === 0" v-if="activeStep === 0"
ref="form" ref="form"
@ -275,6 +295,67 @@ export default {
width: 100%; width: 100%;
} }
} }
.step_list {
display: flex;
justify-content: center;
align-items: center;
.step_item {
display: flex;
flex-direction: column;
margin-right: 8px;
.header {
display: flex;
margin-bottom: 8px;
.act_title {
font-size: 20px;
color: #333333;
}
.title {
color: #999999;
font-size: 20px;
}
}
.desc {
font-size: 14px;
color: #999999;
}
img {
width: 24px;
height: 24px;
margin-right: 8px;
}
}
.step-line {
width: 137px;
height: 2px;
border-top: 2px dashed #999999;
display: flex;
position: relative;
margin-right: 42px;
span {
position: absolute;
right: -24px;
top: -11px;
color: #999999;
font-size: 16px;
}
}
.act-step-line {
width: 137px;
height: 2px;
border-top: 2px dashed #3763FF;
display: flex;
position: relative;
margin-right: 42px;
span {
position: absolute;
right: -24px;
top: -11px;
color: #3763FF;
font-size: 16px;
}
}
}
.select_list { .select_list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

@ -117,9 +117,10 @@ export default {
margin-bottom: 16px; margin-bottom: 16px;
} }
.desc { .desc {
font-size: 16px; font-size: 14px;
color: #666666; color: #666666;
word-break: keep-all; word-break: keep-all;
line-height: 32px;
} }
} }
.card_table { .card_table {

Loading…
Cancel
Save