UnisKB/ui/src/views/log/index.vue

155 lines
4.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<LayoutContainer header="对话日志">
<div class="p-24">
<div class="mb-16">
<el-select v-model="history_day" class="mr-12" @change="changeHandle">
<el-option
v-for="item in dayOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input
v-model="search"
@change="getList"
placeholder="搜索"
prefix-icon="Search"
class="w-240"
/>
</div>
<app-table
:data="tableData"
:pagination-config="paginationConfig"
@sizeChange="handleSizeChange"
@changePage="getList"
@row-click="rowClickHandle"
v-loading="loading"
>
<el-table-column prop="abstract" label="摘要" show-overflow-tooltip />
<el-table-column prop="chat_record_count" label="对话提问数" align="right" />
<el-table-column prop="star_num" label="用户反馈" align="right">
<template #default="{ row }">
<span v-if="!row.trample_num && !row.trample_num"> - </span>
<span v-else>
<span v-if="row.star_num">
<AppIcon iconName="app-like-color"></AppIcon>
{{ row.star_num }}
</span>
<span v-if="row.trample_num" class="ml-4">
<AppIcon iconName="app-oppose-color"></AppIcon>
{{ row.trample_num }}
</span>
</span>
</template>
</el-table-column>
<el-table-column prop="mark_sum" label="改进标注" align="right" />
<el-table-column label="时间" width="180">
<template #default="{ row }">
{{ datetimeFormat(row.create_time) }}
</template>
</el-table-column>
<el-table-column label="操作" width="70" align="center">
<template #default="{ row }">
<el-tooltip effect="dark" content="删除" placement="top">
<el-button type="primary" text @click.stop="deleteLog(row)">
<el-icon><Delete /></el-icon>
</el-button>
</el-tooltip>
</template>
</el-table-column>
</app-table>
</div>
</LayoutContainer>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, computed } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { MsgSuccess, MsgConfirm } from '@/utils/message'
import logApi from '@/api/log'
import { datetimeFormat } from '@/utils/time'
const route = useRoute()
const {
params: { id }
} = route
const dayOptions = [
{
value: 7,
label: '7'
},
{
value: 30,
label: '30'
},
{
value: 90,
label: '90'
},
{
value: 183,
label: ''
}
]
const loading = ref(false)
const paginationConfig = reactive({
current_page: 1,
page_size: 20,
total: 0
})
const tableData = ref([])
const history_day = ref(7)
const search = ref('')
function rowClickHandle(row: any) {
// router.push({ path: `/dataset/${id}/${row.id}` })
}
function deleteLog(row: any) {
MsgConfirm(`${row.abstract} ?`, ``, {
confirmButtonText: '',
confirmButtonClass: 'danger'
})
.then(() => {
loading.value = true
logApi.delChatLog(id as string, row.id, loading).then(() => {
MsgSuccess('删除成功')
getList()
})
})
.catch(() => {})
}
function handleSizeChange() {
paginationConfig.current_page = 1
getList()
}
function changeHandle(val: number) {
history_day.value = val
paginationConfig.current_page = 1
getList()
}
function getList() {
let obj: any = {
history_day: history_day.value
}
if (search.value) {
obj = { ...obj, search: search.value }
}
logApi.getChatLog(id as string, paginationConfig, obj, loading).then((res) => {
tableData.value = res.data.records
paginationConfig.total = res.data.total
})
}
onMounted(() => {
getList()
})
</script>
<style lang="scss" scoped></style>