Skip to content

Commit 36dc3c0

Browse files
committed
【代码调整】AI:MJ 二次 Action 的接口修改
1 parent 7fe8b8b commit 36dc3c0

File tree

5 files changed

+46
-62
lines changed

5 files changed

+46
-62
lines changed

src/api/ai/image/index.ts

Lines changed: 32 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,28 @@
11
import request from '@/config/axios'
22

33
// AI API 密钥 VO
4-
// TODO @fan:要不前端不弄太多 VO,就用这个 ImageDetailVO?!
5-
export interface ImageDetailVO {
4+
export interface ImageRespVO {
65
id: number // 编号
6+
platform: string // 平台
7+
model: string // 模型
78
prompt: string // 提示词
9+
width: number // 图片宽度
10+
height: number // 图片高度
811
status: number // 状态
9-
errorMessage: string // 错误信息
10-
type: string // 模型下分不同的类型(清晰、真实...)
11-
taskId: number // dr 任务id
12+
publicStatus: string // 公开状态
1213
picUrl: string // 任务地址
13-
originalPicUrl: string // 绘制图片地址
14-
platform: string // 平台
15-
model: string // 模型
16-
style: string // 图像生成的风格
17-
size: string // 图片尺寸
14+
errorMessage: string // 错误信息
15+
options: object // 配置 Map<string, string>
16+
taskId: number // 任务编号
1817
buttons: ImageMjButtonsVO[] // mj 操作按钮
1918
createTime: string // 创建时间
20-
updateTime: string // 更新事件
2119
}
2220

23-
export interface ImageMjButtonsVO {
24-
customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
25-
emoji: string // 图标 emoji
26-
label: string // Make Variations 文本
27-
style: number // 样式: 2(Primary)、3(Green)
28-
}
29-
30-
export interface ImageMjActionVO {
31-
id: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
32-
customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
33-
}
34-
35-
3621
export interface ImagePageReqVO {
3722
pageNo: number // 分页编号
3823
pageSize: number // 分页大小
3924
}
4025

41-
export interface ImageDallReqVO {
42-
prompt: string // 提示词
43-
model: string // 模型
44-
style: string // 图像生成的风格
45-
width: string // 图片宽度
46-
height: string // 图片高度
47-
}
48-
4926
export interface ImageDrawReqVO {
5027
platform: string // 平台
5128
prompt: string // 提示词
@@ -65,34 +42,45 @@ export interface ImageMidjourneyImagineReqVO {
6542
version: string // 版本
6643
}
6744

68-
// TODO 芋艿:review 下整体注释、方法名
45+
export interface ImageMjActionVO {
46+
id: number // 图片编号
47+
customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
48+
}
49+
50+
export interface ImageMjButtonsVO {
51+
customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
52+
emoji: string // 图标 emoji
53+
label: string // Make Variations 文本
54+
style: number // 样式: 2(Primary)、3(Green)
55+
}
56+
6957
// AI API 密钥 API
7058
export const ImageApi = {
71-
// 获取 image 列表
72-
getImageList: async (params: ImagePageReqVO) => {
59+
// 获取我的图片列表
60+
getImagePageMy: async (params: ImagePageReqVO) => {
7361
return await request.get({ url: `/ai/image/my-page`, params })
7462
},
75-
// 获取 image 详细信息
76-
getImageDetail: async (id: number) => {
63+
// 获取我的图片
64+
getImageMy: async (id: number) => {
7765
return await request.get({ url: `/ai/image/get-my?id=${id}`})
7866
},
7967
// 生成图片
8068
drawImage: async (data: ImageDrawReqVO)=> {
8169
return await request.post({ url: `/ai/image/draw`, data })
8270
},
83-
// 删除
84-
deleteImage: async (id: number)=> {
71+
// 删除我的图片
72+
deleteImageMy: async (id: number)=> {
8573
return await request.delete({ url: `/ai/image/delete-my?id=${id}`})
8674
},
8775

88-
// ------------ midjourney
76+
// ================ midjourney 专属 ================
8977

90-
// midjourney - imagine
78+
// 【Midjourney】生成图片
9179
midjourneyImagine: async (data: ImageMidjourneyImagineReqVO)=> {
9280
return await request.post({ url: `/ai/image/midjourney/imagine`, data })
9381
},
94-
// midjourney - action
95-
midjourneyAction: async (params: ImageMjActionVO)=> {
96-
return await request.get({ url: `/ai/image/midjourney/action`, params })
82+
// 【Midjourney】Action 操作(二次生成图片)
83+
midjourneyAction: async (data: ImageMjActionVO)=> {
84+
return await request.post({ url: `/ai/image/midjourney/action`, data })
9785
},
9886
}

src/views/ai/image/ImageDetailDrawer.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@
6060
</template>
6161

6262
<script setup lang="ts">
63-
import {ImageApi, ImageDetailVO} from '@/api/ai/image';
63+
import {ImageApi, ImageRespVO} from '@/api/ai/image';
6464
import ImageTaskCard from './ImageTaskCard.vue';
6565
6666
const showDrawer = ref<boolean>(false) // 是否显示
67-
const imageDetail = ref<ImageDetailVO>({} as ImageDetailVO) // 图片详细信息
67+
const imageDetail = ref<ImageRespVO>({} as ImageRespVO) // 图片详细信息
6868
6969
const props = defineProps({
7070
show: {
@@ -86,7 +86,7 @@ const handlerDrawerClose = async () => {
8686
/** 获取 - 图片 detail */
8787
const getImageDetail = async (id) => {
8888
// 获取图片详细
89-
imageDetail.value = await ImageApi.getImageDetail(id)
89+
imageDetail.value = await ImageApi.getImageMy(id)
9090
}
9191
9292
/** 任务 - detail */

src/views/ai/image/ImageTask.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
/>
2727
</template>
2828
<script setup lang="ts">
29-
import {ImageApi, ImageDetailVO, ImageMjActionVO, ImageMjButtonsVO} from '@/api/ai/image';
29+
import {ImageApi, ImageRespVO, ImageMjActionVO, ImageMjButtonsVO} from '@/api/ai/image';
3030
import ImageDetailDrawer from './ImageDetailDrawer.vue'
3131
import ImageTaskCard from './ImageTaskCard.vue'
3232
import {ElLoading, LoadingOptionsResolved} from "element-plus";
3333
3434
const message = useMessage() // 消息弹窗
3535
36-
const imageList = ref<ImageDetailVO[]>([]) // image 列表
36+
const imageList = ref<ImageRespVO[]>([]) // image 列表
3737
const imageListInterval = ref<any>() // image 列表定时器,刷新列表
3838
const isShowImageDetail = ref<boolean>(false) // 是否显示 task 详情
3939
const showImageDetailId = ref<number>(0) // 是否显示 task 详情
@@ -64,7 +64,7 @@ const getImageList = async (apply:boolean = false) => {
6464
target: imageTaskRef.value,
6565
text: '加载中...'
6666
} as LoadingOptionsResolved)
67-
const { list, total } = await ImageApi.getImageList({pageNo: pageNo.value, pageSize: pageSize.value})
67+
const { list, total } = await ImageApi.getImagePageMy({pageNo: pageNo.value, pageSize: pageSize.value})
6868
if (apply) {
6969
imageList.value = [...imageList.value, ...list]
7070
} else {
@@ -80,7 +80,7 @@ const getImageList = async (apply:boolean = false) => {
8080
}
8181
8282
/** 图片 - btn click */
83-
const handlerImageBtnClick = async (type, imageDetail: ImageDetailVO) => {
83+
const handlerImageBtnClick = async (type, imageDetail: ImageRespVO) => {
8484
// 获取 image detail id
8585
showImageDetailId.value = imageDetail.id
8686
console.log('type', imageDetail.id)
@@ -89,7 +89,7 @@ const handlerImageBtnClick = async (type, imageDetail: ImageDetailVO) => {
8989
await handlerDrawerOpen()
9090
} else if (type === 'delete') {
9191
await message.confirm(`是否删除照片?`)
92-
await ImageApi.deleteImage(imageDetail.id)
92+
await ImageApi.deleteImageMy(imageDetail.id)
9393
await getImageList()
9494
await message.success("删除成功!")
9595
} else if (type === 'download') {
@@ -98,14 +98,14 @@ const handlerImageBtnClick = async (type, imageDetail: ImageDetailVO) => {
9898
}
9999
100100
/** 图片 - mj btn click */
101-
const handlerImageMjBtnClick = async (button: ImageMjButtonsVO, imageDetail: ImageDetailVO) => {
101+
const handlerImageMjBtnClick = async (button: ImageMjButtonsVO, imageDetail: ImageRespVO) => {
102102
// 1、构建 params 参数
103-
const params = {
103+
const data = {
104104
id: imageDetail.id,
105105
customId: button.customId,
106106
} as ImageMjActionVO
107107
// 2、发送 action
108-
await ImageApi.midjourneyAction(params)
108+
await ImageApi.midjourneyAction(data)
109109
// 3、刷新列表
110110
await getImageList()
111111
}

src/views/ai/image/ImageTaskCard.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</template>
3333
<script setup lang="ts">
3434
import {Delete, Download, More} from "@element-plus/icons-vue";
35-
import {ImageDetailVO, ImageMjButtonsVO} from "@/api/ai/image";
35+
import {ImageRespVO, ImageMjButtonsVO} from "@/api/ai/image";
3636
import {PropType} from "vue";
3737
import {ElLoading, ElMessageBox} from "element-plus";
3838
@@ -41,13 +41,13 @@ const cardImageLoadingInstance = ref<any>() // 卡片 image ref
4141
const message = useMessage()
4242
const props = defineProps({
4343
imageDetail: {
44-
type: Object as PropType<ImageDetailVO>,
44+
type: Object as PropType<ImageRespVO>,
4545
require: true
4646
}
4747
})
4848
4949
/** 按钮 - 点击事件 */
50-
const handlerBtnClick = async (type, imageDetail: ImageDetailVO) => {
50+
const handlerBtnClick = async (type, imageDetail: ImageRespVO) => {
5151
emits('onBtnClick', type, imageDetail)
5252
}
5353

src/views/ai/image/midjourney/index.vue

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ const imageSizeList = ref<ImageSizeVO[]>([
170170
]) // size
171171
selectImageSize.value = imageSizeList.value[0]
172172
173-
174173
// version
175174
let versionList = ref<any>([]) // version 列表
176175
const midjourneyVersionList = ref<any>([
@@ -204,9 +203,6 @@ const nijiVersionList = ref<any>([
204203
const selectVersion = ref<any>('6.0') // 选中的 version
205204
versionList.value = midjourneyVersionList.value // 默认选择 midjourney
206205
207-
// 定义 Props
208-
const props = defineProps({})
209-
210206
/** 热词 - click */
211207
const handlerHotWordClick = async (hotWord: string) => {
212208
// 取消

0 commit comments

Comments
 (0)