feat: 样式修改,提示词功能修改

dev
xiangcongshuai 6 months ago
parent feea049c35
commit 73f21f1ed9

@ -157,6 +157,22 @@ export const asyncRoutes = [
// } // }
] ]
}, },
{
path: '/operationManagement',
name: 'OperationManagement',
permission: 'p_operationManagement',
component: Layout,
meta: { title: '运营管理' },
children: [
{
path: '/task-list',
name: 'TaskList',
permission: 'p_taskList',
component: () => import('@/views/operationManagement/TaskList/index.vue'),
meta: { title: '任务列表', affix: false }
}
]
},
{ {
path: '/system', path: '/system',
name: 'System', name: 'System',

@ -413,3 +413,6 @@ input::-webkit-inner-spin-button{
.vxe-table--tooltip-wrapper { .vxe-table--tooltip-wrapper {
z-index: 9999999 !important; /* 设定一个较高的 z-index 值 */ z-index: 9999999 !important; /* 设定一个较高的 z-index 值 */
} }
// .vxe-body--column :hover {
// background-color: #F8FBFF !important; /* 你想设置的悬停颜色 */
// }

@ -38,9 +38,9 @@
<el-input v-model="searchName" class="search" placeholder="搜索名称" style="width: 300px" /> <el-input v-model="searchName" class="search" placeholder="搜索名称" style="width: 300px" />
</div> </div>
<vxe-grid <vxe-grid
v-if="gridOptions.data.length > 0"
ref="entityTable" ref="entityTable"
v-bind="gridOptions" v-bind="gridOptions"
:row-config="{isHover: true}"
style="margin-top: 10px" style="margin-top: 10px"
> >
<template #status="{row}"> <template #status="{row}">
@ -371,7 +371,7 @@ export default {
} }
} }
.evidence-main { .evidence-main {
flex: 1; width: calc(100% - 250px);
} }
.status { .status {
display: flex; display: flex;

@ -22,7 +22,7 @@
<el-input v-model="searchName" placeholder="搜索名称" style="width: 300px" /> <el-input v-model="searchName" placeholder="搜索名称" style="width: 300px" />
</div> </div>
<vxe-grid 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 #opera="{row}"> <template #opera="{row}">
<!-- <el-button v-if="row.children.length === 0" type="text" icon="el-icon-video-play" :disabled="!isEdit" title="笔录分析" @click="handleCreateAtlas(row)" /> --> <!-- <el-button v-if="row.children.length === 0" type="text" icon="el-icon-video-play" :disabled="!isEdit" title="笔录分析" @click="handleCreateAtlas(row)" /> -->

@ -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" v-bind="gridOptions" style="margin-top: 10px"> <vxe-grid v-if="gridOptions.data.length > 0" :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>
@ -34,10 +34,10 @@
<template #result="{row}"> <template #result="{row}">
<div v-if="row.newFlag" style="padding: 10px 0;"> <div v-if="row.newFlag" style="padding: 10px 0;">
<el-badge value="new" class="item"> <el-badge value="new" class="item">
<el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag> <el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
</el-badge> </el-badge>
</div> </div>
<el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag> <el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
</template> </template>
</vxe-grid> </vxe-grid>
<!-- <div style="text-align: center"> <!-- <div style="text-align: center">
@ -81,10 +81,10 @@ export default {
name: '未评估', name: '未评估',
id: '0' id: '0'
}, { }, {
name: '存在', name: '符合',
id: '1' id: '1'
}, { }, {
name: '不存在', name: '不符合',
id: '2' id: '2'
}], }],
gridOptions: { gridOptions: {

@ -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-bind="gridOptions" v-if="gridOptions.data.length > 0" style="margin-top: 10px"> <vxe-grid v-if="gridOptions.data.length > 0" :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>
@ -28,17 +28,16 @@
</div> </div>
</template> </template>
<template #detail="{row}"> <template #detail="{row}">
<span v-if="row.parentIndexName"><a v-if="!row.isRead" style="text-decoration: underline;" @click="handleDetails(row)">{{ row.indexName }}</a><span style="text-decoration: underline;cursor: pointer;" v-else @click="handleDetails(row)">{{ row.indexName }}</span></span> <span v-if="row.parentIndexName"><a v-if="!row.isRead" style="text-decoration: underline;" @click="handleDetails(row)">{{ row.indexName }}</a><span v-else style="text-decoration: underline;cursor: pointer;" @click="handleDetails(row)">{{ row.indexName }}</span></span>
<span v-else>{{ row.indexName }}</span> <span v-else>{{ row.indexName }}</span>
</template> </template>
<template #result="{row}"> <template #result="{row}">
<div v-if="row.newFlag" style="padding: 10px 0;"> <div v-if="row.newFlag" style="padding: 10px 0;">
<el-badge value="new" class="item"> <el-badge value="new" class="item">
<el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag> <el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
</el-badge> </el-badge>
</div> </div>
<el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
<el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag>
</template> </template>
</vxe-grid> </vxe-grid>
@ -83,10 +82,10 @@ export default {
name: '未评估', name: '未评估',
id: '0' id: '0'
}, { }, {
name: '存在', name: '符合',
id: '1' id: '1'
}, { }, {
name: '不存在', name: '不符合',
id: '2' id: '2'
}], }],
gridOptions: { gridOptions: {
@ -100,7 +99,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: '分值', width: '200px', field: 'score' }, { title: '分值', width: '200px', field: 'score' }
// { 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" v-bind="gridOptions" style="margin-top: 10px"> <vxe-grid :row-config="{isHover: true}" v-if="gridOptions.data.length > 0" 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>
@ -34,10 +34,10 @@
<template #result="{row}"> <template #result="{row}">
<div v-if="row.newFlag" style="padding: 10px 0;"> <div v-if="row.newFlag" style="padding: 10px 0;">
<el-badge value="new" class="item"> <el-badge value="new" class="item">
<el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag> <el-tag :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
</el-badge> </el-badge>
</div> </div>
<el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? '存在' : '不存在': '未评估' }}</el-tag> <el-tag v-else :type="row.indexResult === 'true' ? 'success' : 'error'">{{ row.indexResult?row.indexResult=== 'true' ? row.parentIndexName?'存在':'符合' : row.parentIndexName?'不存在':'不符合': '未评估' }}</el-tag>
</template> </template>
</vxe-grid> </vxe-grid>
<!-- <div style="text-align: center"> <!-- <div style="text-align: center">
@ -81,10 +81,10 @@ export default {
name: '未评估', name: '未评估',
id: '0' id: '0'
}, { }, {
name: '存在', name: '符合',
id: '1' id: '1'
}, { }, {
name: '不存在', name: '不符合',
id: '2' id: '2'
}], }],
gridOptions: { gridOptions: {

@ -1,7 +1,7 @@
<template> <template>
<div class="evidence-content"> <div class="evidence-content">
<vxe-grid ref="xTable" v-bind="gridOptions"> <vxe-grid :row-config="{isHover: true}" ref="xTable" v-bind="gridOptions">
<template #result_edit="{row}"> <template #result_edit="{row}">
<el-select v-model="row['atomicResult']" placeholder="请选择" @change="save"> <el-select v-model="row['atomicResult']" placeholder="请选择" @change="save">
<el-option <el-option

@ -20,6 +20,7 @@
<vxe-grid <vxe-grid
ref="xTable" ref="xTable"
:row-config="{isHover: true}"
:checkbox-config="{ labelField: '', highlight: true, trigger: 'row', reserve: true , range: true}" :checkbox-config="{ labelField: '', highlight: true, trigger: 'row', reserve: true , range: true}"
row-id="id" row-id="id"
v-bind="gridOptions" v-bind="gridOptions"

@ -632,7 +632,8 @@ export default {
// overflow-x: hidden; // overflow-x: hidden;
} }
.info-right { .info-right {
flex: 1; // flex: 1;
width: calc(100% - 250px);
margin-left: 10px; margin-left: 10px;
>div { >div {
margin-top: 10px; margin-top: 10px;

@ -260,15 +260,18 @@ export default {
}, },
// //
handleConfirmAnalysis(item) { handleConfirmAnalysis(item) {
if (item.isAnalysing === true) return
this.$set(item, 'isAnalysing', true) this.$set(item, 'isAnalysing', true)
const params = { const params = {
caseId: item.id, caseId: item.id,
lawActorName: item.lawActorName, lawActorName: item.lawActorName,
lawParty: item.lawParty lawParty: item.lawParty
} }
executeModelAnalyse(params).then(res => { executeModelAnalyse(params).then(async res => {
this.$set(item, 'isAnalysing', false)
this.fetchData() this.fetchData()
setTimeout(() => {
this.$set(item, 'isAnalysing', false)
}, 1000)
}).catch(() => { }).catch(() => {
this.$set(item, 'isAnalysing', false) this.$set(item, 'isAnalysing', false)
}) })
@ -279,17 +282,18 @@ export default {
}, },
// //
formatterStatusName(item) { formatterStatusName(item) {
const score = item['totalScore']
let statusName = '' let statusName = ''
const score = item['totalScore']
if (item['isAnalysing']) {
statusName = '正在分析...'
} else {
if (score) { if (score) {
statusName = '已分析' statusName = '已分析'
} else {
if (item['isAnalysing']) {
statusName = '正在分析'
} else { } else {
statusName = '未分析' statusName = '未分析'
} }
} }
return statusName return statusName
}, },
// tab // tab

@ -0,0 +1,106 @@
<template>
<div class="content">
<cs-search title="指标检索" :data="searchData" :span="6" direction="row" @onSearch="onSearch" @getData="onSearch" />
<div class="index-content">
<div class="header">
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="handleAdd"></el-button>
</div>
<vxe-grid v-bind="gridOptions" style="margin-top: 20px">
<template #operate="{row}">
<el-button type="text" @click="handleEdit(row)"></el-button>
<!-- <el-button type="text" @click="handleAtlas(row)"></el-button> -->
<el-button type="text" style="color: red" @click="handleDel(row)"></el-button>
</template>
</vxe-grid>
<div style="text-align: center">
<cs-page
:page.sync="queryForm.page"
:limit.sync="queryForm.size"
:total="queryForm.total"
@pagination="fetchData"
/>
</div>
</div>
</div>
</template>
<script>
import mixin from '@/views/mixin'
import { queryIndexData, deleteModelIndex } from '@/api/indexRule'
export default {
name: 'Index',
mixins: [mixin],
data() {
return {
//
searchData: [
{ label: '指标名称', model: 'name', type: 'input' },
{ label: '指标类别', model: 'indexType', type: 'select', option: JSON.parse(sessionStorage.getItem('index_type')) },
// { label: '', model: 'doer', type: 'input' },
{ label: '案件类型', model: 'caseType', type: 'select', option: JSON.parse(sessionStorage.getItem('case_type')) },
{ label: '原子指标', model: 'atomicIndexName', type: 'input' }
],
//
gridOptions: {
...mixin.data().gridOptions,
columns: [
{ type: 'expand', width: '40px', slots: { content: 'content' }},
{ title: '序号', type: 'seq', width: '50px' },
{ title: '指标名称', field: 'name', align: 'left' },
{ title: '指标类别', field: 'indexTypeName', width: '150px' },
{ title: '指标分数', field: 'indexScore', width: '150px', sortable: true },
{ title: '原子指标数量', field: 'atomicIndexNum', width: '150px' },
{ title: '最新时间', field: 'updateTime', width: '150px' },
{ title: '操作', slots: { default: 'operate' }, fixed: 'right', width: '150px' }
],
data: []
}
}
},
mounted() {
this.tableHeight(390)
},
methods: {
//
fetchData() {
queryIndexData({ ...this.searchFormData }, this.queryForm.page, this.queryForm.size).then(res => {
this.gridOptions.data = res.data.result
this.queryForm.total = res.data.total
})
},
//
handleDel(row) {
this.$baseConfirm('确定要删除吗?', null, async() => {
const { code, msg } = await deleteModelIndex(row.id)
code === 200 ? this.$baseMessage.success(msg || '删除成功!') : this.$baseMessage.error(msg || '删除失败!')
this.fetchData()
})
},
//
onSearch(data, callback) {
this.searchFormData = Object.assign({}, data)
this.queryForm.page = 1
this.fetchData()
if (callback) callback(true)
}
}
}
</script>
<style scoped lang="scss">
.content {
height: 100%;
.index-content {
border-radius: 8px;
background: white;
padding: 20px;
box-sizing: border-box;
margin-top: 10px;
height: calc(100% - 123px);
}
}
</style>

@ -832,3 +832,8 @@ export default {
} }
} }
</style> </style>
<style lang="scss" >
.vxe-table--tooltip-wrapper {
display: none!important;
}
</style>

@ -11,7 +11,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="提示词类型" prop="type"> <el-form-item label="提示词类型" prop="type">
<el-select v-model="dataInfo['type']" style="width: 100%;" placeholder="请选择提示词类型" @change="selectType"> <el-select disabled v-model="dataInfo['type']" style="width: 100%;" placeholder="请选择提示词类型" @change="selectType">
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -145,7 +145,7 @@ export default {
dataInfo: { dataInfo: {
rules: '(问[:](.*?))\s*答[:](.*?)(?=(问[:]|$))', rules: '(问[:](.*?))\s*答[:](.*?)(?=(问[:]|$))',
caseType: '1', caseType: '1',
type: '1', type: '2',
name: '', name: '',
evidenceCategoryList: [], evidenceCategoryList: [],
typeList: [], typeList: [],
@ -160,7 +160,7 @@ export default {
'1': ['source_text', 'attr_define'], '1': ['source_text', 'attr_define'],
'2': ['headEntityType', 'tailEntityType', 'relation'] '2': ['headEntityType', 'tailEntityType', 'relation']
}, },
showFlag: true, showFlag: false,
// //
entityOptions: { entityOptions: {
...mixin.data().gridOptions, ...mixin.data().gridOptions,
@ -213,7 +213,7 @@ export default {
if (this.$route.params.id) { if (this.$route.params.id) {
this.getDetails() this.getDetails()
} else { } else {
this.selectType('1') this.selectType('2')
} }
}, },
methods: { methods: {
@ -325,14 +325,14 @@ export default {
rules: '(问[:](.*?))\s*答[:](.*?)(?=(问[:]|$))', rules: '(问[:](.*?))\s*答[:](.*?)(?=(问[:]|$))',
caseType: '', caseType: '',
type: '1', type: '2',
name: '', name: '',
evidenceCategoryIdList: [], evidenceCategoryIdList: [],
typeList: [], typeList: [],
extractAttributes: [], extractAttributes: [],
prompt: '' prompt: ''
} }
this.selectType('1') this.selectType('2')
}, },
hasDuplicateValue(arr, key) { hasDuplicateValue(arr, key) {
const values = arr.map(obj => obj[key]) const values = arr.map(obj => obj[key])

@ -13,7 +13,7 @@
<vxe-grid v-bind="gridOptions" style="margin-top: 20px"> <vxe-grid v-bind="gridOptions" style="margin-top: 20px">
<template #operate="{row}"> <template #operate="{row}">
<el-button type="text" @click="handleEdit(row)"></el-button> <el-button type="text" @click="handleEdit(row)"></el-button>
<el-button type="text" style="color: red" @click="handleDel(row)"></el-button> <el-button v-if="row.type ==='2'" type="text" style="color: red" @click="handleDel(row)"></el-button>
</template> </template>
<template #type="{row}"> <template #type="{row}">
<span>{{ getTypeName(row.type) }}</span> <span>{{ getTypeName(row.type) }}</span>
@ -147,3 +147,8 @@ export default {
} }
} }
</style> </style>
<style lang="scss" >
.vxe-table--tooltip-wrapper {
display: block!important;
}
</style>

Loading…
Cancel
Save