|
|
@@ -9,6 +9,17 @@
|
|
|
智能绘画
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div class="img-box">
|
|
|
+ <p>
|
|
|
+ <img
|
|
|
+ style=" width: fit-content; height: 180px; margin: 10px;"
|
|
|
+ src="@/assets/images/color.png"
|
|
|
+ class="avatar user"
|
|
|
+ />
|
|
|
+ </p>
|
|
|
+ <p>期待你的画作喔~</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- 右侧AI问答 -->
|
|
|
<div class="number-people">
|
|
|
@@ -17,7 +28,7 @@
|
|
|
<div class="chat-dialog">
|
|
|
<!-- 对话消息列表 -->
|
|
|
<div class="message-list">
|
|
|
- <div v-for="(item, index) in imageAllList" :key="index">
|
|
|
+ <div v-if="imageAllList.length > 0" v-for="(item, index) in imageAllList" :key="index">
|
|
|
|
|
|
<!-- 用户消息 -->
|
|
|
<div class="user-message" v-if="item.type === 'user'">
|
|
|
@@ -63,7 +74,55 @@
|
|
|
</el-image>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
+ <div v-else class="content-demo">
|
|
|
+
|
|
|
+ <h3>请参考示例:</h3>
|
|
|
+
|
|
|
+ <!-- 用户消息 -->
|
|
|
+ <div class="user-message">
|
|
|
+ 生成粉色的会飞的猪
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- AI生成图片对话框 -->
|
|
|
+ <div class="ai-message" >
|
|
|
+ 为您生成图片:
|
|
|
+
|
|
|
+ <div class="image-list" v-if="demoImageList">
|
|
|
+ <el-image
|
|
|
+ v-for="(image, index) in demoImageList"
|
|
|
+ :key="index"
|
|
|
+ style=" width: fit-content; height: 180px; margin: 10px;"
|
|
|
+ :src="image"
|
|
|
+ :preview-src-list="demoImageList"
|
|
|
+ fit="cover"
|
|
|
+ show-progress
|
|
|
+ >
|
|
|
+ <template
|
|
|
+ #toolbar="{ actions, prev, next, reset, activeIndex, setActiveItem }"
|
|
|
+ >
|
|
|
+ <el-icon @click="prev"><Back /></el-icon>
|
|
|
+ <el-icon @click="next"><Right /></el-icon>
|
|
|
+ <el-icon @click="setActiveItem(demoImageList.length - 1)">
|
|
|
+ <DArrowRight />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon @click="actions('zoomOut')"><ZoomOut /></el-icon>
|
|
|
+ <el-icon
|
|
|
+ @click="actions('zoomIn', { enableTransition: false, zoomRate: 2 })">
|
|
|
+ <ZoomIn />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon
|
|
|
+ @click="actions('clockwise', { rotateDeg: 180, enableTransition: false })">
|
|
|
+ <RefreshRight />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon @click="actions('anticlockwise')"><RefreshLeft /></el-icon>
|
|
|
+ <el-icon @click="reset"><Refresh /></el-icon>
|
|
|
+ <el-icon @click="download(activeIndex)"><Download /></el-icon>
|
|
|
+ </template>
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 输入框和发送按钮 -->
|
|
|
@@ -85,6 +144,10 @@
|
|
|
import { ref, onMounted,onUnmounted} from 'vue'
|
|
|
import {AiImageStatusEnum, CreatePainting, PaintingGetMys} from '@/api/questions.js'
|
|
|
import { useRouter, useRoute } from 'vue-router'
|
|
|
+import demo1 from '@/assets/images/ai-demo/ai-image-demo1.png'
|
|
|
+import demo2 from '@/assets/images/ai-demo/ai-image-demo2.png'
|
|
|
+import demo3 from '@/assets/images/ai-demo/ai-image-demo3.png'
|
|
|
+import demo4 from '@/assets/images/ai-demo/ai-image-demo4.png'
|
|
|
import {
|
|
|
Document,
|
|
|
Menu as IconMenu,
|
|
|
@@ -100,18 +163,7 @@ const goBack = () => {
|
|
|
const router = useRouter()
|
|
|
const route = useRoute()
|
|
|
|
|
|
-// AI生成图片
|
|
|
-// CreatePainting({
|
|
|
-// modelId: 56,
|
|
|
-// prompt:''
|
|
|
-// }).then(res=>{
|
|
|
-// console.log(res);
|
|
|
-// })
|
|
|
-
|
|
|
-// 获取绘图记录
|
|
|
-// CreatePaintingGetMy().then(res=>{
|
|
|
-// console.log(res);
|
|
|
-// })
|
|
|
+const demoImageList = [demo1, demo2, demo3, demo4]
|
|
|
|
|
|
// 消息列表和输入内容的响应式变量
|
|
|
const messages = ref([])
|
|
|
@@ -279,6 +331,7 @@ const inProgressTimerFun = () => {
|
|
|
display: flex;
|
|
|
background-color: #ece9fd;
|
|
|
}
|
|
|
+
|
|
|
.content-box {
|
|
|
flex: 1;
|
|
|
margin-top: rpx(10);
|
|
|
@@ -288,6 +341,11 @@ const inProgressTimerFun = () => {
|
|
|
background: rgba($color: #ffffff, $alpha: 0.5);
|
|
|
}
|
|
|
|
|
|
+//左侧展览区图标
|
|
|
+.img-box {
|
|
|
+ margin-top: rpx(50);
|
|
|
+ color: #a39dce;
|
|
|
+}
|
|
|
// 对话框
|
|
|
.chat-dialog {
|
|
|
display: flex;
|
|
|
@@ -354,4 +412,10 @@ const inProgressTimerFun = () => {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
}
|
|
|
+
|
|
|
+.content-demo {
|
|
|
+ background-color: #f4f2fa;
|
|
|
+ border-radius: 15px;
|
|
|
+ padding: 30px 10px;
|
|
|
+}
|
|
|
</style>
|