39
39
v-for =" imageSize in imageSizeList"
40
40
:key =" imageSize.key"
41
41
@click =" handlerSizeClick(imageSize)" >
42
- <div :class =" selectImageSize === imageSize ? 'size-wrapper selectImageSize' : 'size-wrapper'" >
42
+ <div :class =" selectImageSize === imageSize.key ? 'size-wrapper selectImageSize' : 'size-wrapper'" >
43
43
<div :style =" imageSize.style" ></div >
44
44
</div >
45
45
<div class =" size-font" >{{ imageSize.key }}</div >
74
74
</div >
75
75
<el-space wrap class =" model-list" >
76
76
<div
77
- :class =" selectModel === model ? 'modal-item selectModel' : 'modal-item'"
77
+ :class =" selectModel === model.key ? 'modal-item selectModel' : 'modal-item'"
78
78
v-for =" model in models"
79
79
:key =" model.key"
80
80
@@ -129,7 +129,7 @@ const prompt = ref<string>('') // 提示词
129
129
const referImage = ref <any >() // 参考图
130
130
const selectHotWord = ref <string >(' ' ) // 选中的热词
131
131
const hotWords = ref <string []>([' 中国旗袍' , ' 古装美女' , ' 卡通头像' , ' 机甲战士' , ' 童话小屋' , ' 中国长城' ]) // 热词
132
- const selectModel = ref <any >( ) // 选中的热词
132
+ const selectModel = ref <string >( ' midjourney ' ) // 选中的热词
133
133
const models = ref <ImageModelVO []>([
134
134
{
135
135
key: ' midjourney' ,
@@ -142,9 +142,8 @@ const models = ref<ImageModelVO[]>([
142
142
image: ' https://bigpt8.com/pc/_nuxt/nj.ca79b143.png' ,
143
143
},
144
144
]) // 模型
145
- selectModel .value = models .value [0 ] // 默认选中
146
145
147
- const selectImageSize = ref <ImageSizeVO >({} as ImageSizeVO ) // 选中 size
146
+ const selectImageSize = ref <string >( ' 1:1 ' ) // 选中 size
148
147
const imageSizeList = ref <ImageSizeVO []>([
149
148
{
150
149
key: ' 1:1' ,
@@ -177,10 +176,8 @@ const imageSizeList = ref<ImageSizeVO[]>([
177
176
style: ' width: 50px; height: 30px;background-color: #dcdcdc;' ,
178
177
},
179
178
]) // size
180
- selectImageSize .value = imageSizeList .value [0 ]
181
179
182
180
// version
183
- let versionList = ref <any >([]) // version 列表
184
181
const midjourneyVersionList = ref <any >([
185
182
{
186
183
value: ' 6.0' ,
@@ -210,6 +207,7 @@ const nijiVersionList = ref<any>([
210
207
},
211
208
])
212
209
const selectVersion = ref <any >(' 6.0' ) // 选中的 version
210
+ let versionList = ref <any >([]) // version 列表
213
211
versionList .value = midjourneyVersionList .value // 默认选择 midjourney
214
212
215
213
/** 热词 - click */
@@ -227,16 +225,12 @@ const handlerHotWordClick = async (hotWord: string) => {
227
225
228
226
/** size - click */
229
227
const handlerSizeClick = async (imageSize : ImageSizeVO ) => {
230
- if (selectImageSize .value === imageSize ) {
231
- selectImageSize .value = {} as ImageSizeVO
232
- return
233
- }
234
- selectImageSize .value = imageSize
228
+ selectImageSize .value = imageSize .key
235
229
}
236
230
237
231
/** 模型 - click */
238
232
const handlerModelClick = async (model : ImageModelVO ) => {
239
- selectModel .value = model
233
+ selectModel .value = model . key
240
234
if (model .key === ' niji' ) {
241
235
versionList .value = nijiVersionList .value // 默认选择 niji
242
236
} else {
@@ -258,26 +252,38 @@ const handlerGenerateImage = async () => {
258
252
try {
259
253
console .log (' referImage.value' , referImage .value )
260
254
// 回调
261
- emits (' onDrawStart' , selectModel .value . key )
255
+ emits (' onDrawStart' , selectModel .value )
262
256
// 发送请求
257
+ const imageSize = imageSizeList .value .find (item => selectImageSize === item .key ) as ImageSizeVO
263
258
const req = {
264
259
prompt: prompt .value ,
265
- model: selectModel .value . key ,
266
- width: selectImageSize . value .width ,
267
- height: selectImageSize . value .height ,
260
+ model: selectModel .value ,
261
+ width: imageSize .width ,
262
+ height: imageSize .height ,
268
263
version: selectVersion .value ,
269
264
referImageUrl: referImage .value ,
270
265
} as ImageMidjourneyImagineReqVO
271
266
await ImageApi .midjourneyImagine (req )
272
267
} finally {
273
268
// 回调
274
- emits (' onDrawComplete' , selectModel .value . key )
269
+ emits (' onDrawComplete' , selectModel .value )
275
270
}
276
271
}
277
272
278
273
/** 填充值 */
279
274
const settingValues = async (imageDetail : ImageVO ) => {
275
+ // 提示词
280
276
prompt .value = imageDetail .prompt
277
+ // image size
278
+ const imageSize = imageSizeList .value .find (item => item .key === ` ${imageDetail .width }:${imageDetail .height } ` ) as ImageSizeVO
279
+ selectImageSize .value = imageSize .key
280
+ // 选中模型
281
+ const model = models .value .find (item => item .key === imageDetail .options ?.model ) as ImageModelVO
282
+ await handlerModelClick (model )
283
+ // 版本
284
+ selectVersion .value = versionList .value .find (item => item .value === imageDetail .options ?.version ).value
285
+ // image
286
+ referImage .value = imageDetail .options .referImageUrl
281
287
}
282
288
283
289
/** 暴露组件方法 */
0 commit comments