37
37
</div >
38
38
<el-space wrap class =" model-list" >
39
39
<div
40
- :class =" selectModel === model ? 'modal-item selectModel' : 'modal-item'"
40
+ :class =" selectModel === model.key ? 'modal-item selectModel' : 'modal-item'"
41
41
v-for =" model in models"
42
42
:key =" model.key"
43
43
57
57
</div >
58
58
<el-space wrap class =" image-style-list" >
59
59
<div
60
- :class =" selectImageStyle === imageStyle ? 'image-style-item selectImageStyle' : 'image-style-item'"
60
+ :class =" selectImageStyle === imageStyle.key ? 'image-style-item selectImageStyle' : 'image-style-item'"
61
61
v-for =" imageStyle in imageStyleList"
62
62
:key =" imageStyle.key"
63
63
>
79
79
v-for =" imageSize in imageSizeList"
80
80
:key =" imageSize.key"
81
81
@click =" handlerSizeClick(imageSize)" >
82
- <div :class =" selectImageSize === imageSize ? 'size-wrapper selectImageSize' : 'size-wrapper'" >
82
+ <div :class =" selectImageSize === imageSize.key ? 'size-wrapper selectImageSize' : 'size-wrapper'" >
83
83
<div :style =" imageSize.style" ></div >
84
84
</div >
85
85
<div class =" size-font" >{{ imageSize.name }}</div >
@@ -120,7 +120,7 @@ const prompt = ref<string>('') // 提示词
120
120
const drawIn = ref <boolean >(false ) // 生成中
121
121
const selectHotWord = ref <string >(' ' ) // 选中的热词
122
122
const hotWords = ref <string []>([' 中国旗袍' , ' 古装美女' , ' 卡通头像' , ' 机甲战士' , ' 童话小屋' , ' 中国长城' ]) // 热词
123
- const selectModel = ref <any >({} ) // 模型
123
+ const selectModel = ref <string >( ' dall-e-3 ' ) // 模型
124
124
// message
125
125
const message = useMessage ()
126
126
// TODO @fan:image 改成项目里自己的哈
@@ -137,9 +137,8 @@ const models = ref<ImageModelVO[]>([
137
137
image: ' https://h5.cxyhub.com/images/model_1.png' ,
138
138
},
139
139
]) // 模型
140
- selectModel .value = models .value [0 ]
141
140
142
- const selectImageStyle = ref <any >({} ) // style 样式
141
+ const selectImageStyle = ref <string >( ' vivid ' ) // style 样式
143
142
// TODO @fan:image 改成项目里自己的哈
144
143
const imageStyleList = ref <ImageModelVO []>([
145
144
{
@@ -153,9 +152,8 @@ const imageStyleList = ref<ImageModelVO[]>([
153
152
image: ' https://h5.cxyhub.com/images/model_2.png' ,
154
153
},
155
154
]) // style
156
- selectImageStyle .value = imageStyleList .value [0 ]
157
155
158
- const selectImageSize = ref <ImageSizeVO >({} as ImageSizeVO ) // 选中 size
156
+ const selectImageSize = ref <string >( ' 1024x1024 ' ) // 选中 size
159
157
const imageSizeList = ref <ImageSizeVO []>([
160
158
{
161
159
key: ' 1024x1024' ,
@@ -179,7 +177,6 @@ const imageSizeList = ref<ImageSizeVO[]>([
179
177
style: ' width: 50px; height: 30px;background-color: #dcdcdc;' ,
180
178
}
181
179
]) // size
182
- selectImageSize .value = imageSizeList .value [0 ]
183
180
184
181
// 定义 Props
185
182
const props = defineProps ({})
@@ -203,29 +200,17 @@ const handlerHotWordClick = async (hotWord: string) => {
203
200
204
201
/** 模型 - click */
205
202
const handlerModelClick = async (model : ImageModelVO ) => {
206
- if (selectModel .value === model ) {
207
- selectModel .value = {} as ImageModelVO
208
- return
209
- }
210
- selectModel .value = model
203
+ selectModel .value = model .key
211
204
}
212
205
213
206
/** 样式 - click */
214
207
const handlerStyleClick = async (imageStyle : ImageModelVO ) => {
215
- if (selectImageStyle .value === imageStyle ) {
216
- selectImageStyle .value = {} as ImageModelVO
217
- return
218
- }
219
- selectImageStyle .value = imageStyle
208
+ selectImageStyle .value = imageStyle .key
220
209
}
221
210
222
211
/** size - click */
223
212
const handlerSizeClick = async (imageSize : ImageSizeVO ) => {
224
- if (selectImageSize .value === imageSize ) {
225
- selectImageSize .value = {} as ImageSizeVO
226
- return
227
- }
228
- selectImageSize .value = imageSize
213
+ selectImageSize .value = imageSize .key
229
214
}
230
215
231
216
/** 图片生产 */
@@ -236,22 +221,23 @@ const handlerGenerateImage = async () => {
236
221
// 加载中
237
222
drawIn .value = true
238
223
// 回调
239
- emits (' onDrawStart' , selectModel .value .key )
224
+ emits (' onDrawStart' , selectModel .value )
225
+ const imageSize = imageSizeList .value .find (item => item .key === selectImageSize .value ) as ImageSizeVO
240
226
const form = {
241
227
platform: ' OpenAI' ,
242
228
prompt: prompt .value , // 提示词
243
- model: selectModel .value . key , // 模型
244
- width: selectImageSize . value .width , // size 不能为空
245
- height: selectImageSize . value .height , // size 不能为空
229
+ model: selectModel .value , // 模型
230
+ width: imageSize .width , // size 不能为空
231
+ height: imageSize .height , // size 不能为空
246
232
options: {
247
- style: selectImageStyle .value . key , // 图像生成的风格
233
+ style: selectImageStyle .value , // 图像生成的风格
248
234
}
249
235
} as ImageDrawReqVO
250
236
// 发送请求
251
237
await ImageApi .drawImage (form )
252
238
} finally {
253
239
// 回调
254
- emits (' onDrawComplete' , selectModel .value . key )
240
+ emits (' onDrawComplete' , selectModel .value )
255
241
// 加载结束
256
242
drawIn .value = false
257
243
}
@@ -260,6 +246,13 @@ const handlerGenerateImage = async () => {
260
246
/** 填充值 */
261
247
const settingValues = async (imageDetail : ImageVO ) => {
262
248
prompt .value = imageDetail .prompt
249
+ selectModel .value = imageDetail .model
250
+ //
251
+ selectImageStyle .value = imageDetail .options ?.style
252
+ //
253
+ const imageSize = imageSizeList .value .find (item => item .key === ` ${imageDetail .width }x${imageDetail .height } ` ) as ImageSizeVO
254
+ console .log (' imageSize' , imageSize )
255
+ await handlerSizeClick (imageSize )
263
256
}
264
257
265
258
/** 暴露组件方法 */
0 commit comments