2024-05-26 20:47:29 +08:00
|
|
|
|
|
|
|
<template>
|
|
|
|
<el-card class="dr-task" body-class="task-card" shadow="never">
|
|
|
|
<template #header>绘画任务</template>
|
2024-05-26 21:56:10 +08:00
|
|
|
<ImageTaskCard v-for="image in imageList" :key="image" :image-detail="image" @on-btn-click="handlerImageBtnClick" />
|
2024-05-26 20:47:29 +08:00
|
|
|
</el-card>
|
2024-05-26 20:59:42 +08:00
|
|
|
<!-- 图片 detail 抽屉 -->
|
|
|
|
<ImageDetailDrawer
|
|
|
|
:show="showTaskDetail"
|
|
|
|
@handler-drawer-close="handlerDrawerClose"
|
|
|
|
/>
|
2024-05-26 20:47:29 +08:00
|
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
2024-05-26 21:51:42 +08:00
|
|
|
import {ImageApi, ImageDetailVO} from '@/api/ai/image';
|
2024-05-26 20:59:42 +08:00
|
|
|
import ImageDetailDrawer from './ImageDetailDrawer.vue'
|
2024-05-26 21:51:42 +08:00
|
|
|
import ImageTaskCard from './ImageTaskCard.vue'
|
2024-05-26 20:59:42 +08:00
|
|
|
import {bool} from "vue-types";
|
|
|
|
|
2024-05-26 21:51:42 +08:00
|
|
|
const imageList = ref<ImageDetailVO[]>([]) // image 列表
|
2024-05-26 20:59:42 +08:00
|
|
|
const showTaskDetail = ref<bool>(false) // 是否显示 task 详情
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 图片人物 - detail
|
|
|
|
*/
|
|
|
|
const handlerTaskDetail = async () => {
|
|
|
|
showTaskDetail.value = !showTaskDetail.value
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2024-05-26 21:51:42 +08:00
|
|
|
* 抽屉 - close
|
2024-05-26 20:59:42 +08:00
|
|
|
*/
|
|
|
|
const handlerDrawerClose = async () => {
|
|
|
|
showTaskDetail.value = false
|
|
|
|
}
|
|
|
|
|
2024-05-26 21:51:42 +08:00
|
|
|
/**
|
|
|
|
* 任务 - detail
|
|
|
|
*/
|
|
|
|
const handlerDrawerOpen = async () => {
|
|
|
|
showTaskDetail.value = true
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取 - image 列表
|
|
|
|
*/
|
|
|
|
const getImageList = async () => {
|
2024-05-27 17:14:03 +08:00
|
|
|
const { list } = await ImageApi.getImageList({pageNo: 1, pageSize: 20})
|
|
|
|
imageList.value = list
|
2024-05-26 21:51:42 +08:00
|
|
|
}
|
2024-05-26 20:59:42 +08:00
|
|
|
|
2024-05-26 21:56:10 +08:00
|
|
|
/**
|
|
|
|
* 图片 - btn click
|
|
|
|
*/
|
|
|
|
const handlerImageBtnClick = async (type, imageDetail: ImageDetailVO) => {
|
|
|
|
if (type === 'more') {
|
|
|
|
await handlerDrawerOpen()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-05-26 21:51:42 +08:00
|
|
|
//
|
|
|
|
onMounted(async () => {
|
|
|
|
await getImageList()
|
|
|
|
})
|
2024-05-26 20:47:29 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
|
|
.dr-task {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
|
|
|
|
.task-card {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|