luma page is ready

This commit is contained in:
RockYang 2024-08-20 14:31:40 +08:00
parent 8d7c028ca8
commit 04d6ba0853
27 changed files with 171 additions and 44 deletions

View File

@ -15,48 +15,5 @@
``` ```
## 功能截图 ## 功能截图
**!!!多图预警!!!** 请参考 [GeekAI 项目介绍](https://docs.geekai.me/info/)。
### 首页
![首页](imgs/home.png)
### 注册
![注册](imgs/register.png)
### AI 对话
![AI对话](imgs/chat.png)
### MidJourney 专业绘画界面
![MJ绘画](imgs/mj-image.png)
![MJ绘画](imgs/mj-list.png)
### Stable-Diffusion 专业绘画
![SD绘画](imgs/sd.png)
### DALLE 绘画
![Dalle](imgs/dalle.png)
### 画廊
![画廊](imgs/img-wall.png)
### 思维导图
![思维导图](imgs/markmap.png)
### 会员充值
![会员充值](imgs/member.png)
### 管理后台
![管理后台](imgs/admin.png)
### 管理后台暗黑主题
![深色主题](imgs/admin-dark.png)
### H5 首页
![H5首页](imgs/mobile-home.png)
### H5 对话
![对话列表](imgs/mobile-chat-list.png)
![对话列表](imgs/mobile-chat.png)
### H5 MidJourney 绘画
![H5 MidJourney](imgs/mobile-mj.png)
### H5 Stable-Diffusion 绘画
![H5 SD](imgs/mobile-sd.png)
### H5 会员充值
![H5 Member](imgs/mobile-member.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -0,0 +1,106 @@
.page-luma {
display flex
height 100%
background-color #0E0808
overflow auto
//justify-content center
flex-flow column
align-items center
background: linear-gradient(180deg, rgba(75, 62, 53, 0.8), rgba(144, 50, 181, 0.3));
.prompt-box {
display flex
max-width 56rem
width 100%
padding 20px
flex-flow column
.images {
display flex
flex-flow row
padding-bottom 10px
justify-content center
.item {
position relative
.el-image {
width 100px
height 100px
border-radius 6px
margin-right 10px
}
.el-icon {
position absolute
cursor pointer
font-size 20px
color #545454
right 10px
top 0
&:hover {
color #888888
}
}
}
}
.prompt-container {
width: 100%;
.input-container {
background: linear-gradient(90deg, rgba(75, 62, 53, 0.8), rgba(144, 50, 181, 0.3));
border-radius: 28px;
padding: 10px 20px;
display: flex;
align-items: center;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
.prompt-input {
background: transparent;
border: none;
outline: none;
color: white;
font-size: 14px;
width: 100%;
padding: 10px;
resize: none;
white-space: pre-wrap;
word-wrap: break-word;
line-height 24px
overflow-wrap: break-word;
scrollbar-width: none; /* */
&::placeholder {
color: rgba(255, 255, 255, 0.6);
}
&::-webkit-scrollbar {
display: none;
}
}
.upload-icon, .send-icon {
color #e1e1e1
.iconfont {
font-size 20px
cursor pointer
}
}
.upload-icon {
position relative
}
}
}
}
.h-title {
color #ffffff
max-width 56rem
width 100%
padding 40px 20
font-size 36px
text-align left
}
}

View File

@ -97,6 +97,12 @@ const routes = [
meta: {title: 'Suno音乐播放'}, meta: {title: 'Suno音乐播放'},
component: () => import('@/views/Song.vue'), component: () => import('@/views/Song.vue'),
}, },
{
name: 'luma',
path: '/luma',
meta: {title: 'Luma视频创作'},
component: () => import('@/views/Luma.vue'),
},
] ]
}, },
{ {

58
web/src/views/Luma.vue Normal file
View File

@ -0,0 +1,58 @@
<template>
<div class="page-luma">
<div class="prompt-box">
<div class="images">
<div v-for="img in images" class="item">
<el-image :src="img" fit="cover"/>
<el-icon><CircleCloseFilled /></el-icon>
</div>
</div>
<div class="prompt-container">
<div class="input-container">
<div class="upload-icon">
<i class="iconfont icon-image"></i>
</div>
<textarea
class="prompt-input"
:rows="row"
v-model="prompt"
placeholder="请输入提示词或者上传图片"
autofocus>
</textarea>
<div class="send-icon">
<i class="iconfont icon-send"></i>
</div>
</div>
</div>
</div>
<h2 class="h-title">你的作品</h2>
</div>
</template>
<script setup>
import {ref} from "vue";
import {CircleCloseFilled} from "@element-plus/icons-vue";
const row = ref(1)
const prompt = ref('')
const images = ref([
"http://nk.img.r9it.com/chatgpt-plus/1719371605709871.jpg",
"http://nk.img.r9it.com/chatgpt-plus/1719371605709871.jpg"
])
const list = ref([
{
id: 1,
name: '1',
url: 'http://localhost/download/xmind.mp4'
}
])
</script>
<style lang="stylus" scoped>
@import "@/assets/css/luma.styl"
</style>