|
@@ -7,52 +7,49 @@
|
|
|
>
|
|
|
<!-- 图片 -->
|
|
|
<div class="item">
|
|
|
- <!-- <div class="header">-->
|
|
|
- <!-- <div>图片</div>-->
|
|
|
- <!-- <div>-->
|
|
|
- <!-- </div>-->
|
|
|
- <!-- </div>-->
|
|
|
<div class="body">
|
|
|
- <!-- TODO @fan: 要不,这里只展示图片???不用 ImageCard -->
|
|
|
- <ImageCard :image-detail="imageDetail" />
|
|
|
+ <el-image
|
|
|
+ class="image"
|
|
|
+ :src="detail?.picUrl"
|
|
|
+ :preview-src-list="[detail.picUrl]"
|
|
|
+ preview-teleported
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 时间 -->
|
|
|
+ <!-- 时间 -->
|
|
|
<div class="item">
|
|
|
<div class="tip">时间</div>
|
|
|
<div class="body">
|
|
|
- <div>提交时间:{{ imageDetail.createTime }}</div>
|
|
|
- <div>生成时间:{{ imageDetail.finishTime }}</div>
|
|
|
+ <div>提交时间:{{ detail.createTime }}</div>
|
|
|
+ <div>生成时间:{{ detail.finishTime }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 模型 -->
|
|
|
+ <!-- 模型 -->
|
|
|
<div class="item">
|
|
|
<div class="tip">模型</div>
|
|
|
- <div class="body">
|
|
|
- {{ imageDetail.model }}({{ imageDetail.height }}x{{ imageDetail.width }})
|
|
|
- </div>
|
|
|
+ <div class="body"> {{ detail.model }}({{ detail.height }}x{{ detail.width }}) </div>
|
|
|
</div>
|
|
|
- <!-- 提示词 -->
|
|
|
+ <!-- 提示词 -->
|
|
|
<div class="item">
|
|
|
<div class="tip">提示词</div>
|
|
|
<div class="body">
|
|
|
- {{ imageDetail.prompt }}
|
|
|
+ {{ detail.prompt }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 地址 -->
|
|
|
+ <!-- 地址 -->
|
|
|
<div class="item">
|
|
|
<div class="tip">图片地址</div>
|
|
|
<div class="body">
|
|
|
- {{ imageDetail.picUrl }}
|
|
|
+ {{ detail.picUrl }}
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 风格 -->
|
|
|
- <div class="item" v-if="imageDetail?.options?.style">
|
|
|
+ <div class="item" v-if="detail?.options?.style">
|
|
|
<div class="tip">风格</div>
|
|
|
<div class="body">
|
|
|
<!-- TODO @fan:貌似需要把 imageStyleList 搞到 api/image/index.ts 枚举起来? -->
|
|
|
<!-- TODO @fan:这里的展示,可能需要按照平台做区分 -->
|
|
|
- {{ imageDetail?.options?.style }}
|
|
|
+ {{ detail?.options?.style }}
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-drawer>
|
|
@@ -63,7 +60,7 @@ import { ImageApi, ImageVO } from '@/api/ai/image'
|
|
|
import ImageCard from './ImageCard.vue'
|
|
|
|
|
|
const showDrawer = ref<boolean>(false) // 是否显示
|
|
|
-const imageDetail = ref<ImageVO>({} as ImageVO) // 图片详细信息
|
|
|
+const detail = ref<ImageVO>({} as ImageVO) // 图片详细信息
|
|
|
|
|
|
const props = defineProps({
|
|
|
show: {
|
|
@@ -77,35 +74,30 @@ const props = defineProps({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-/** 抽屉 - close */
|
|
|
+/** 关闭抽屉 */
|
|
|
const handleDrawerClose = async () => {
|
|
|
emits('handleDrawerClose')
|
|
|
}
|
|
|
|
|
|
-/** 获取 - 图片 detail */
|
|
|
-const getImageDetail = async (id) => {
|
|
|
- // 获取图片详细
|
|
|
- imageDetail.value = await ImageApi.getImageMy(id)
|
|
|
-}
|
|
|
-
|
|
|
-/** 任务 - detail */
|
|
|
-const handleTaskDetail = async () => {
|
|
|
- showDrawer.value = true
|
|
|
-}
|
|
|
-
|
|
|
-// watch show
|
|
|
+/** 监听 drawer 是否打开 */
|
|
|
const { show } = toRefs(props)
|
|
|
watch(show, async (newValue, oldValue) => {
|
|
|
showDrawer.value = newValue as boolean
|
|
|
})
|
|
|
-// watch id
|
|
|
+
|
|
|
+/** 获取图片详情 */
|
|
|
+const getImageDetail = async (id: number) => {
|
|
|
+ detail.value = await ImageApi.getImageMy(id)
|
|
|
+}
|
|
|
+
|
|
|
+/** 监听 id 变化,加载最新图片详情 */
|
|
|
const { id } = toRefs(props)
|
|
|
watch(id, async (newVal, oldVal) => {
|
|
|
if (newVal) {
|
|
|
await getImageDetail(newVal)
|
|
|
}
|
|
|
})
|
|
|
-//
|
|
|
+
|
|
|
const emits = defineEmits(['handleDrawerClose'])
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|