<template>
|
<el-drawer
|
v-model="drawer"
|
size="60%"
|
title="建议调度历史"
|
:direction="direction"
|
:before-close="handleClose"
|
>
|
<!-- 列表 -->
|
<ContentWrap>
|
<el-table v-loading="loading" :data="list">
|
<el-table-column
|
prop="scheduleTime"
|
label="调度时间"
|
header-align="center"
|
align="left"
|
min-width="150"
|
/>
|
<el-table-column
|
prop="resultCode"
|
label="结果code"
|
header-align="center"
|
align="left"
|
min-width="50"
|
/>
|
<el-table-column
|
prop="resultData"
|
label="结果数据"
|
header-align="center"
|
min-width="150"
|
align="center"
|
/>
|
<el-table-column
|
prop="operate"
|
label="操作"
|
header-align="center"
|
align="center"
|
min-width="50"
|
/>
|
<el-table-column
|
prop="reason"
|
label="原因"
|
header-align="center"
|
align="center"
|
min-width="100"
|
/>
|
<el-table-column
|
prop="handler"
|
label="处理人"
|
header-align="center"
|
align="center"
|
min-width="100"
|
/>
|
<el-table-column
|
prop="handleTime"
|
label="处理时间"
|
:formatter="dateFormatter"
|
header-align="center"
|
align="center"
|
min-width="100"
|
/>
|
</el-table>
|
<!-- 分页 -->
|
<Pagination
|
:total="total"
|
v-model:page="queryParams.pageNo"
|
v-model:limit="queryParams.pageSize"
|
@pagination="getList"
|
/>
|
</ContentWrap>
|
</el-drawer>
|
<!-- 快照弹窗 -->
|
<SuggestSnapshot ref="suggestSnapshotRef" @success="getList" />
|
</template>
|
<script lang="ts" setup>
|
import type {DrawerProps} from 'element-plus'
|
import { getSuggestOperationRecordPage } from '@/api/model/sche/suggest/suggestOperationRecord';
|
import SuggestSnapshot from './suggestSnapshot.vue'
|
import {dateFormatter} from '@/utils/formatTime'
|
import {ref} from "vue";
|
|
defineOptions({name: 'SuggestOperationRecord'})
|
|
const message = useMessage() // 消息弹窗
|
const {t} = useI18n() // 国际化
|
|
const drawer = ref(false)
|
const direction = ref<DrawerProps['direction']>('rtl')
|
const loading = ref(true) // 列表的加载中
|
const total = ref(0) // 列表的总页数
|
const list = ref([]) // 列表的数据
|
const queryParams = reactive({
|
pageNo: 1,
|
pageSize: 10,
|
modelId: undefined,
|
scheduleTime: undefined
|
})
|
const queryFormRef = ref() // 搜索的表单
|
const exportLoading = ref(false) // 导出的加载中
|
|
/** 查询列表 */
|
const getList = async () => {
|
loading.value = true
|
try {
|
const page = await getSuggestOperationRecordPage(queryParams);
|
list.value = page.list
|
total.value = page.total
|
} finally {
|
loading.value = false
|
}
|
}
|
|
/** 搜索按钮操作 */
|
const handleQuery = () => {
|
queryParams.pageNo = 1
|
getList()
|
}
|
|
/** 快照 */
|
const suggestSnapshotRef = ref()
|
const openSnapshot = (id?: string) => {
|
suggestSnapshotRef.value.open(id)
|
}
|
|
/** 打开弹窗 */
|
const open = async (modelId?: string, scheduleTime?: string) => {
|
drawer.value = true
|
queryParams.modelId = modelId
|
queryParams.scheduleTime = scheduleTime
|
if (modelId) {
|
getList()
|
}
|
}
|
defineExpose({open}) // 提供 open 方法,用于打开弹窗
|
|
const handleClose = (done: () => void) => {
|
drawer.value = false
|
}
|
|
</script>
|