2024-05-26 20:59:42 +08:00
|
|
|
|
<template>
|
|
|
|
|
<el-drawer
|
|
|
|
|
v-model="showDrawer"
|
|
|
|
|
title="图片详细"
|
2024-07-04 16:01:08 +08:00
|
|
|
|
@close="handleDrawerClose"
|
2024-05-27 10:47:43 +08:00
|
|
|
|
custom-class="drawer-class"
|
2024-05-26 20:59:42 +08:00
|
|
|
|
>
|
2024-06-01 16:49:42 +08:00
|
|
|
|
<!-- 图片 -->
|
2024-05-26 21:53:26 +08:00
|
|
|
|
<div class="item">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
<!-- <div class="header">-->
|
|
|
|
|
<!-- <div>图片</div>-->
|
|
|
|
|
<!-- <div>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<!-- </div>-->
|
2024-05-26 21:53:26 +08:00
|
|
|
|
<div class="body">
|
2024-06-01 16:49:42 +08:00
|
|
|
|
<!-- TODO @fan: 要不,这里只展示图片???不用 ImageTaskCard -->
|
2024-05-26 21:53:26 +08:00
|
|
|
|
<ImageTaskCard :image-detail="imageDetail" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-05-28 14:29:18 +08:00
|
|
|
|
<!-- 时间 -->
|
|
|
|
|
<div class="item">
|
|
|
|
|
<div class="tip">时间</div>
|
|
|
|
|
<div class="body">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
<div>提交时间:{{ imageDetail.createTime }}</div>
|
2024-07-05 09:09:38 +08:00
|
|
|
|
<div>生成时间:{{ imageDetail.finishTime }}</div>
|
2024-05-28 14:29:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 模型 -->
|
|
|
|
|
<div class="item">
|
|
|
|
|
<div class="tip">模型</div>
|
|
|
|
|
<div class="body">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
{{ imageDetail.model }}({{ imageDetail.height }}x{{ imageDetail.width }})
|
2024-05-28 14:29:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-05-27 10:47:43 +08:00
|
|
|
|
<!-- 提示词 -->
|
2024-05-26 21:53:26 +08:00
|
|
|
|
<div class="item">
|
|
|
|
|
<div class="tip">提示词</div>
|
|
|
|
|
<div class="body">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
{{ imageDetail.prompt }}
|
2024-05-26 21:53:26 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-05-28 14:29:18 +08:00
|
|
|
|
<!-- 地址 -->
|
|
|
|
|
<div class="item">
|
2024-06-01 16:49:42 +08:00
|
|
|
|
<div class="tip">图片地址</div>
|
2024-05-28 14:29:18 +08:00
|
|
|
|
<div class="body">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
{{ imageDetail.picUrl }}
|
2024-05-28 14:29:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-06-01 16:49:42 +08:00
|
|
|
|
<!-- 风格 -->
|
2024-06-18 16:58:23 +08:00
|
|
|
|
<div class="item" v-if="imageDetail?.options?.style">
|
2024-06-01 16:49:42 +08:00
|
|
|
|
<div class="tip">风格</div>
|
|
|
|
|
<div class="body">
|
|
|
|
|
<!-- TODO @fan:貌似需要把 imageStyleList 搞到 api/image/index.ts 枚举起来? -->
|
|
|
|
|
<!-- TODO @fan:这里的展示,可能需要按照平台做区分 -->
|
2024-06-27 23:08:50 +08:00
|
|
|
|
{{ imageDetail?.options?.style }}
|
2024-06-01 16:49:42 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-05-26 20:59:42 +08:00
|
|
|
|
</el-drawer>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
2024-06-27 23:08:50 +08:00
|
|
|
|
import { ImageApi, ImageVO } from '@/api/ai/image'
|
|
|
|
|
import ImageTaskCard from './ImageTaskCard.vue'
|
2024-05-26 20:59:42 +08:00
|
|
|
|
|
|
|
|
|
const showDrawer = ref<boolean>(false) // 是否显示
|
2024-06-27 23:08:50 +08:00
|
|
|
|
const imageDetail = ref<ImageVO>({} as ImageVO) // 图片详细信息
|
2024-05-26 20:59:42 +08:00
|
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
|
|
|
show: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
require: true,
|
|
|
|
|
default: false
|
2024-05-28 14:29:18 +08:00
|
|
|
|
},
|
|
|
|
|
id: {
|
|
|
|
|
type: Number,
|
|
|
|
|
required: true
|
2024-05-26 20:59:42 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
2024-06-03 10:16:56 +08:00
|
|
|
|
/** 抽屉 - close */
|
2024-07-04 16:01:08 +08:00
|
|
|
|
const handleDrawerClose = async () => {
|
|
|
|
|
emits('handleDrawerClose')
|
2024-05-26 20:59:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-06-03 10:16:56 +08:00
|
|
|
|
/** 获取 - 图片 detail */
|
2024-05-26 21:53:26 +08:00
|
|
|
|
const getImageDetail = async (id) => {
|
|
|
|
|
// 获取图片详细
|
2024-06-26 12:38:21 +08:00
|
|
|
|
imageDetail.value = await ImageApi.getImageMy(id)
|
2024-05-26 21:53:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-06-03 10:16:56 +08:00
|
|
|
|
/** 任务 - detail */
|
2024-07-04 16:01:08 +08:00
|
|
|
|
const handleTaskDetail = async () => {
|
2024-05-26 21:53:26 +08:00
|
|
|
|
showDrawer.value = true
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-28 14:29:18 +08:00
|
|
|
|
// watch show
|
2024-05-26 20:59:42 +08:00
|
|
|
|
const { show } = toRefs(props)
|
|
|
|
|
watch(show, async (newValue, oldValue) => {
|
|
|
|
|
showDrawer.value = newValue as boolean
|
|
|
|
|
})
|
2024-05-28 14:29:18 +08:00
|
|
|
|
// watch id
|
|
|
|
|
const { id } = toRefs(props)
|
|
|
|
|
watch(id, async (newVal, oldVal) => {
|
|
|
|
|
if (newVal) {
|
|
|
|
|
await getImageDetail(newVal)
|
|
|
|
|
}
|
|
|
|
|
})
|
2024-05-26 20:59:42 +08:00
|
|
|
|
//
|
2024-07-04 16:01:08 +08:00
|
|
|
|
const emits = defineEmits(['handleDrawerClose'])
|
2024-05-26 21:53:26 +08:00
|
|
|
|
//
|
2024-06-27 23:08:50 +08:00
|
|
|
|
onMounted(async () => {})
|
2024-05-26 20:59:42 +08:00
|
|
|
|
</script>
|
|
|
|
|
<style scoped lang="scss">
|
2024-05-26 21:53:26 +08:00
|
|
|
|
.item {
|
|
|
|
|
margin-bottom: 20px;
|
2024-05-27 10:47:43 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
word-wrap: break-word;
|
2024-05-26 21:53:26 +08:00
|
|
|
|
|
|
|
|
|
.header {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
justify-content: space-between;
|
2024-05-27 10:47:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tip {
|
2024-05-26 21:53:26 +08:00
|
|
|
|
font-weight: bold;
|
2024-05-27 10:47:43 +08:00
|
|
|
|
font-size: 16px;
|
2024-05-26 21:53:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.body {
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
color: #616161;
|
|
|
|
|
|
2024-05-27 10:47:43 +08:00
|
|
|
|
.taskImage {
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-26 20:59:42 +08:00
|
|
|
|
</style>
|