This commit is contained in:
liyuwanglan 2023-12-05 11:08:03 +08:00
parent 5a799139cd
commit aa65f49190
20 changed files with 1004 additions and 537 deletions

BIN
web/public/images/16_9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
web/public/images/1_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
web/public/images/1_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
web/public/images/2_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
web/public/images/3_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
web/public/images/4_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
web/public/images/9_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
web/public/images/mj1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
web/public/images/mj2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
web/public/images/mj3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
web/public/images/nj1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
web/public/images/nj2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
web/public/images/nj3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
web/public/images/nj4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -39,4 +39,157 @@ html, body {
} }
} }
/* 省略显示 */
.ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sl {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.sl3 {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
.sl4 {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
/* 居中布局 */
.auto_center{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.h_center{
width: 100%;
position: absolute;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
}
.w_center{
position: absolute;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
}
/* flex布局 */
.flex-row {
display: flex;
flex-direction: row;
}
.flex-col {
display: flex;
flex-direction: column;
}
.justify-start {
justify-content: flex-start;
}
.justify-end {
justify-content: flex-end;
}
.justify-center {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.justify-around {
justify-content: space-around;
}
.justify-evenly {
justify-content: space-evenly;
}
.items-start {
align-items: flex-start;
}
.items-end {
align-items: flex-end;
}
.items-center {
align-items: center;
}
.items-baseline {
align-items: baseline;
}
.items-stretch {
align-items: stretch;
}
.self-start {
align-self: flex-start;
}
.self-end {
align-self: flex-end;
}
.self-center {
align-self: center;
}
.self-baseline {
align-self: baseline;
}
.self-stretch {
align-self: stretch;
}
.flex-1 {
flex: 1 1 0%;
}
.flex-auto {
flex: 1 1 auto;
}
.grow {
flex-grow: 1;
}
.grow-0 {
flex-grow: 0;
}
.shrink {
flex-shrink: 1;
}
.shrink-0 {
flex-shrink: 0;
}
.shrink-1 {
flex-shrink: 1;
}
.relative {
position: relative;
}
</style> </style>

View File

@ -40,7 +40,6 @@
.el-icon { .el-icon {
position relative position relative
top 3px
} }
.grid-content { .grid-content {
@ -49,29 +48,72 @@
padding 8px 14px padding 8px 14px
display flex display flex
cursor pointer cursor pointer
margin-bottom: 10px;
&:hover { &:hover {
background-color #585858 background-color #585858
} }
.icon{
width 20px
height 20px
margin-bottom 5px
}
.shape { .shape {
width 16px width 16px
height 16px height 16px
margin-right 5px margin-bottom 5px
border 1px solid #C4C4C4 border 1px solid #C4C4C4
border-radius 3px border-radius 3px
} }
.shape.vertical { .shape.size9-16 {
width 12px width 9px
height 20px height 16px
} }
.shape.horizontal { .shape.size16-9 {
height 12px height 9px
width 20px width 16px
position relative position relative
top 3px margin 4px 0 7px
}
.shape.size3-4 {
width 12px
height 16px
}
.shape.size4-3 {
height 12px
width 16px
position relative
margin 4px 0 4px
}
.shape.size2-3 {
width 11px
height 16px
}
.shape.size3-2 {
height 11px
width 16px
position relative
margin 4px 0 5px
}
.shape.size1-2 {
width 8px
height 16px
}
.shape.size2-1 {
height 8px
width 16px
position relative
margin 4px 0 8px
} }
} }
@ -90,6 +132,7 @@
border 1px solid #454545 border 1px solid #454545
border-radius 5px border-radius 5px
padding 10px padding 10px
margin-bottom 10px
display flex display flex
flex-flow column flex-flow column
align-items center align-items center
@ -118,14 +161,23 @@
.form-item-inner { .form-item-inner {
display flex display flex
align-items: center
.el-select {
--el-select-input-focus-border-color: #47FFF1;
--el-input-focus-border-color: #47FFF1;
}
.el-input__wrapper {
background: #383838;
}
.el-input__inner {
color: #fff
}
.el-icon { .el-icon {
margin-left 10px margin-left 10px
margin-top 2px
} }
} }
.img-uploader { .img-uploader {
.el-upload { .el-upload {
border: 1px dashed var(--el-border-color); border: 1px dashed var(--el-border-color);
@ -153,6 +205,8 @@
} }
.param-line.pt { .param-line.pt {
display: flex
align-items: center
padding-top 5px padding-top 5px
padding-bottom 5px padding-bottom 5px
} }
@ -192,6 +246,5 @@
margin-left 10px margin-left 10px
cursor pointer cursor pointer
position relative position relative
top 2px
} }
} }

View File

@ -4,6 +4,99 @@
color #ffffff color #ffffff
overflow-x hidden overflow-x hidden
.task-list-inner {
.el-tabs {
--el-tabs-header-height: 55px;
}
.el-tabs__item {
color: #fff;
font-size: 18px;
}
.title-tabs .el-tabs__item.is-active {
color: #47FFF1;
font-size: 18px;
}
.title-tabs .el-tabs__active-bar {
background-color: #47FFF1;
}
.title-tabs .el-tabs__content {
padding: 10px 0;
}
.el-textarea {
--el-input-focus-border-color: #47FFF1;
}
.el-textarea__inner {
background: transparent;
color: #fff;
}
.el-input__wrapper {
background: transparent;
padding 5px
}
.text{
margin-bottom: 10px;
color: #6b778c;
font-size: 15px
}
.param-line.pt {
padding-top 5px
padding-bottom 5px
}
.form-item-inner {
display flex
align-items: center
.el-icon {
margin-left 10px
}
}
.el-form-item__label {
color #ffffff
}
.img-uploader {
.el-upload {
border: 1px dashed var(--el-border-color);
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width 300px;
transition: var(--el-transition-duration-fast);
margin-bottom: 20px;
&:hover {
border-color: var(--el-color-primary);
}
.el-icon.uploader-icon {
font-size: 28px
color: #8c939d
width 100%
height: 120px
text-align: center
}
}
}
.submit-btn{
margin: 20px 0
.el-icon.submit-icon {
font-size: 28px
width 100%
height: 100px
text-align: center
margin-right: 10px
}
}
}
.running-job-list { .running-job-list {
.job-item { .job-item {

View File

@ -1,43 +1,43 @@
<template> <template>
<div class="home"> <div class="home">
<div class="navigator"> <div class="navigator">
<div class="logo"> <div class="logo">
<el-image :src="logo"/> <el-link href="/">
<div class="divider"></div> <el-image :src="logo" />
</div> </el-link>
<div class="divider"></div>
<ul class="nav-items"> </div>
<li v-for="item in navs" :key="item.path"> <ul class="nav-items">
<el-tooltip <li v-for="item in navs" :key="item.path">
effect="light" <el-tooltip effect="light" :content="item.title" placement="right">
:content="item.title" <a @click="changeNav(item)" :class="item.path === curPath ? 'active' : ''">
placement="right" <el-image :src="item.icon_path" :width="20" v-if="item.icon_path" />
> <i :class="'iconfont icon-' + item.icon" v-else></i>
<a @click="changeNav(item)" :class="item.path === curPath?'active':''"> </a>
<el-image :src="item.icon_path" :width="20" v-if="item.icon_path"/> </el-tooltip>
<i :class="'iconfont icon-'+item.icon" v-else></i> <div :class="item.path === curPath ? 'title active' : 'title'">{{ item.title }}</div>
</a> </li>
</el-tooltip> </ul>
</li> </div>
</ul> <div class="content">
</div> <router-view v-slot="{ Component }">
<div class="content"> <transition name="move" mode="out-in">
<router-view v-slot="{ Component }"> <component :is="Component"></component>
<transition name="move" mode="out-in"> </transition>
<component :is="Component"></component> </router-view>
</transition> </div>
</router-view> </div>
</div>
</div>
</template> </template>
<script setup> <script setup>
import {useRouter} from "vue-router"; import { useRouter } from "vue-router";
import {ref} from "vue"; import { checkSession } from "@/action/session";
import { isMobile } from "@/utils/libs";
import { ref } from "vue";
const router = useRouter(); const router = useRouter();
const logo = '/images/logo.png'; const logo = '/images/icon-logo.png';
const navs = ref([ const navs = ref([
{path: "/chat", icon_path: "/images/chat.png", title: "对话聊天"}, {path: "/chat", icon_path: "/images/chat.png", title: "对话聊天"},
{path: "/mj", icon_path: "/images/mj.png", title: "MJ 绘画"}, {path: "/mj", icon_path: "/images/mj.png", title: "MJ 绘画"},
@ -51,8 +51,8 @@ const navs = ref([
const curPath = ref(router.currentRoute.value.path) const curPath = ref(router.currentRoute.value.path)
const changeNav = (item) => { const changeNav = (item) => {
curPath.value = item.path curPath.value = item.path
router.push(item.path) router.push(item.path)
} }
</script> </script>
@ -67,7 +67,7 @@ const changeNav = (item) => {
.navigator { .navigator {
display flex display flex
flex-flow column flex-flow column
width 48px width 70px
padding 10px 6px padding 10px 6px
border-right: 1px solid #3c3c3c border-right: 1px solid #3c3c3c
@ -75,7 +75,7 @@ const changeNav = (item) => {
display flex display flex
flex-flow column flex-flow column
align-items center align-items center
height 60px
.divider { .divider {
border-bottom 1px solid #4A4A4A border-bottom 1px solid #4A4A4A
@ -85,7 +85,9 @@ const changeNav = (item) => {
} }
.nav-items { .nav-items {
margin-top 10px margin-top: 20px;
padding-left: 10px;
padding-right: 10px;
li { li {
margin-bottom 15px margin-bottom 15px
@ -94,8 +96,8 @@ const changeNav = (item) => {
color #DADBDC color #DADBDC
background-color #40444A background-color #40444A
border-radius 10px border-radius 10px
width 44px width 48px
height 44px height 48px
display flex display flex
justify-content center justify-content center
align-items center align-items center
@ -112,6 +114,16 @@ const changeNav = (item) => {
a:hover, a.active { a:hover, a.active {
color #47fff1 color #47fff1
}
.title{
font-size: 12px
padding-top: 5px
color: #e5e7eb;
text-align: center;
}
.active {
color #47fff1
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@ let webpack = require('webpack')
module.exports = defineConfig({ module.exports = defineConfig({
transpileDependencies: true, transpileDependencies: true,
lintOnSave: false, //关闭eslint校验 lintOnSave: false, //关闭eslint校验
productionSourceMap: false, //在生产模式中禁用 Source Map既可以减少包大小也可以加密源码
configureWebpack: { configureWebpack: {
// disable performance hints // disable performance hints
performance: { performance: {