From 636db4afccee403f2ed77184f0ad1424cca8afd3 Mon Sep 17 00:00:00 2001 From: RockYang Date: Wed, 6 Mar 2024 16:22:03 +0800 Subject: [PATCH 1/3] add prompt translating function for mobile midjourney page --- api/handler/chatimpl/chat_item_handler.go | 3 +- api/handler/chatimpl/openai_handler.go | 1 + web/src/assets/css/mobile/image-mj.css | 4 ++ web/src/assets/css/mobile/image-mj.styl | 5 ++ web/src/assets/css/task-list.css | 85 +++++++++++++++-------- web/src/views/Login.vue | 4 +- web/src/views/mobile/ImageMj.vue | 51 +++++++++++--- 7 files changed, 110 insertions(+), 43 deletions(-) diff --git a/api/handler/chatimpl/chat_item_handler.go b/api/handler/chatimpl/chat_item_handler.go index fee4a4fa..285894be 100644 --- a/api/handler/chatimpl/chat_item_handler.go +++ b/api/handler/chatimpl/chat_item_handler.go @@ -124,10 +124,9 @@ func (h *ChatHandler) Clear(c *gin.Context) { // History 获取聊天历史记录 func (h *ChatHandler) History(c *gin.Context) { chatId := c.Query("chat_id") // 会话 ID - userId := h.GetLoginUserId(c) var items []model.ChatMessage var messages = make([]vo.HistoryMessage, 0) - res := h.db.Where("user_id = ? AND chat_id = ?", userId, chatId).Find(&items) + res := h.db.Debug().Where("chat_id = ?", chatId).Find(&items) if res.Error != nil { resp.ERROR(c, "No history message") return diff --git a/api/handler/chatimpl/openai_handler.go b/api/handler/chatimpl/openai_handler.go index e7105c9f..39811946 100644 --- a/api/handler/chatimpl/openai_handler.go +++ b/api/handler/chatimpl/openai_handler.go @@ -276,6 +276,7 @@ func (h *ChatHandler) sendOpenAiMessage( var res types.ApiError err = json.Unmarshal(body, &res) if err != nil { + logger.Debug(string(body)) return fmt.Errorf("error with decode response: %v", err) } diff --git a/web/src/assets/css/mobile/image-mj.css b/web/src/assets/css/mobile/image-mj.css index c392e885..d6aa8db2 100644 --- a/web/src/assets/css/mobile/image-mj.css +++ b/web/src/assets/css/mobile/image-mj.css @@ -51,6 +51,10 @@ position: absolute; right: 20px; } +.mobile-mj .content .text-line .align-right { + display: flex; + justify-content: right; +} .mobile-mj .content .running-job-list .van-grid .van-grid-item .van-grid-item__content { padding: 0; position: relative; diff --git a/web/src/assets/css/mobile/image-mj.styl b/web/src/assets/css/mobile/image-mj.styl index 1b767205..09ab3501 100644 --- a/web/src/assets/css/mobile/image-mj.styl +++ b/web/src/assets/css/mobile/image-mj.styl @@ -67,6 +67,11 @@ right 20px } } + + .align-right { + display flex + justify-content right + } } .running-job-list { diff --git a/web/src/assets/css/task-list.css b/web/src/assets/css/task-list.css index ffbad7a1..1b6bf4b8 100644 --- a/web/src/assets/css/task-list.css +++ b/web/src/assets/css/task-list.css @@ -18,9 +18,6 @@ .task-list-box .task-list-inner .title-tabs .el-tabs__active-bar { background-color: #47fff1; } -.task-list-box .task-list-inner .title-tabs .el-tabs__content { - padding: 10px 0; -} .task-list-box .task-list-inner .el-textarea { --el-input-focus-border-color: #47fff1; } @@ -51,26 +48,49 @@ .task-list-box .task-list-inner .el-form-item__label { color: #fff; } -.task-list-box .task-list-inner .img-uploader .el-upload { +.task-list-box .task-list-inner .img-inline { + display: flex; +} +.task-list-box .task-list-inner .img-inline .img-uploader .el-upload { border: 1px dashed var(--el-border-color); border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; - width: 300px; + width: 120px; transition: var(--el-transition-duration-fast); margin-bottom: 20px; } -.task-list-box .task-list-inner .img-uploader .el-upload:hover { +.task-list-box .task-list-inner .img-inline .img-uploader .el-upload:hover { border-color: var(--el-color-primary); } -.task-list-box .task-list-inner .img-uploader .el-upload .el-icon.uploader-icon { +.task-list-box .task-list-inner .img-inline .img-uploader .el-upload .el-icon.uploader-icon { font-size: 28px; color: #8c939d; width: 100%; height: 120px; text-align: center; } +.task-list-box .task-list-inner .img-inline .img-list-box { + display: flex; +} +.task-list-box .task-list-inner .img-inline .img-list-box .img-item { + width: 120px; + position: relative; + margin-right: 10px; +} +.task-list-box .task-list-inner .img-inline .img-list-box .img-item .el-image { + width: 120px; + height: 120px; + border-radius: 5px; +} +.task-list-box .task-list-inner .img-inline .img-list-box .img-item .el-button { + position: absolute; + right: 5px; + top: 5px; + width: 20px; + height: 20px; +} .task-list-box .task-list-inner .submit-btn { display: flex; margin: 20px 0; @@ -84,17 +104,17 @@ justify-content: right; align-items: center; } -.task-list-box .running-job-list .job-item { +.task-list-box .task-list-inner .job-list-box .running-job-list .job-item { width: 100%; padding: 2px; background-color: #555; } -.task-list-box .running-job-list .job-item .job-item-inner { +.task-list-box .task-list-inner .job-list-box .running-job-list .job-item .job-item-inner { position: relative; height: 100%; overflow: hidden; } -.task-list-box .running-job-list .job-item .job-item-inner .progress { +.task-list-box .task-list-inner .job-list-box .running-job-list .job-item .job-item-inner .progress { position: absolute; width: 100%; height: 100%; @@ -104,11 +124,11 @@ justify-content: center; align-items: center; } -.task-list-box .running-job-list .job-item .job-item-inner .progress span { +.task-list-box .task-list-inner .job-list-box .running-job-list .job-item .job-item-inner .progress span { font-size: 20px; color: #fff; } -.task-list-box .finish-job-list .job-item { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item { width: 100%; height: 100%; border: 1px solid #666; @@ -116,18 +136,19 @@ overflow: hidden; border-radius: 6px; transition: all 0.3s ease; /* 添加过渡效果 */ + position: relative; } -.task-list-box .finish-job-list .job-item .opt .opt-line { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line { margin: 6px 0; } -.task-list-box .finish-job-list .job-item .opt .opt-line ul { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line ul { display: flex; flex-flow: row; } -.task-list-box .finish-job-list .job-item .opt .opt-line ul li { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line ul li { margin-right: 6px; } -.task-list-box .finish-job-list .job-item .opt .opt-line ul li a { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line ul li a { padding: 3px 0; width: 40px; text-align: center; @@ -137,50 +158,58 @@ background-color: #4e5058; color: #fff; } -.task-list-box .finish-job-list .job-item .opt .opt-line ul li a:hover { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line ul li a:hover { background-color: #6d6f78; } -.task-list-box .finish-job-list .job-item .opt .opt-line ul .show-prompt { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .opt .opt-line ul .show-prompt { font-size: 20px; cursor: pointer; } -.task-list-box .finish-job-list .animate:hover { +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item .remove { + display: none; + position: absolute; + right: 10px; + top: 10px; +} +.task-list-box .task-list-inner .job-list-box .finish-job-list .job-item:hover .remove { + display: block; +} +.task-list-box .task-list-inner .job-list-box .finish-job-list .animate:hover { box-shadow: 0 0 10px rgba(71,255,241,0.6); /* 添加阴影效果 */ transform: translateY(-10px); /* 向上移动10像素 */ } -.task-list-box .el-image { +.task-list-box .task-list-inner .job-list-box .el-image { width: 100%; height: 100%; overflow: visible; } -.task-list-box .el-image img { +.task-list-box .task-list-inner .job-list-box .el-image img { height: 240px; } -.task-list-box .el-image .el-image-viewer__wrapper img { +.task-list-box .task-list-inner .job-list-box .el-image .el-image-viewer__wrapper img { width: auto; height: auto; } -.task-list-box .el-image .image-slot { +.task-list-box .task-list-inner .job-list-box .el-image .image-slot { display: flex; flex-flow: column; justify-content: center; align-items: center; - height: 100%; min-height: 200px; color: #fff; height: 240px; } -.task-list-box .el-image .image-slot .iconfont { +.task-list-box .task-list-inner .job-list-box .el-image .image-slot .iconfont { font-size: 50px; margin-bottom: 10px; } -.task-list-box .el-image.upscale { +.task-list-box .task-list-inner .job-list-box .el-image.upscale { max-height: 310px; } -.task-list-box .el-image.upscale img { +.task-list-box .task-list-inner .job-list-box .el-image.upscale img { height: 310px; } -.task-list-box .el-image.upscale .el-image-viewer__wrapper img { +.task-list-box .task-list-inner .job-list-box .el-image.upscale .el-image-viewer__wrapper img { width: auto; height: auto; } diff --git a/web/src/views/Login.vue b/web/src/views/Login.vue index 296664b5..c4d3af0e 100644 --- a/web/src/views/Login.vue +++ b/web/src/views/Login.vue @@ -87,8 +87,8 @@ const handleKeyup = (e) => { }; const login = function () { - if (!validateMobile(username.value) && !validateEmail(username.value)) { - return ElMessage.error("请输入合法的手机号/邮箱地址") + if (username.value.trim() === '') { + return ElMessage.error("请输入用户民") } if (password.value.trim() === '') { return ElMessage.error('请输入密码'); diff --git a/web/src/views/mobile/ImageMj.vue b/web/src/views/mobile/ImageMj.vue index 1cb1f543..9bd9a0cf 100644 --- a/web/src/views/mobile/ImageMj.vue +++ b/web/src/views/mobile/ImageMj.vue @@ -62,14 +62,18 @@
- + + + +
@@ -192,7 +196,15 @@