add prompt translating function for mobile midjourney page

This commit is contained in:
RockYang
2024-03-06 16:22:03 +08:00
parent a6f05a5874
commit 5f36f1af11
7 changed files with 110 additions and 43 deletions

View File

@@ -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('请输入密码');

View File

@@ -62,14 +62,18 @@
</div>
<div class="text-line">
<van-field
v-model="params.prompt"
rows="3"
autosize
label="提示词"
type="textarea"
placeholder="如:一个美丽的中国女孩站在电影院门口,手上拿着爆米花,微笑,写实风格,电影灯光效果,半身像"
/>
<van-field v-model="params.prompt"
rows="3"
label="提示词"
autosize
type="textarea"
placeholder="如:一个美丽的中国女孩站在电影院门口,手上拿着爆米花,微笑,写实风格,电影灯光效果,半身像">
<template #button>
<van-button v-if="translating" disabled loading type="primary"/>
<van-button v-else size="small" type="primary" @click="translatePrompt">翻译</van-button>
</template>
</van-field>
</div>
<van-collapse v-model="activeColspan">
@@ -192,7 +196,15 @@
<script setup>
import {onMounted, ref} from "vue";
import {showConfirmDialog, showFailToast, showNotify, showToast, showDialog, showImagePreview} from "vant";
import {
showConfirmDialog,
showFailToast,
showNotify,
showToast,
showDialog,
showImagePreview,
showSuccessToast
} from "vant";
import {httpGet, httpPost} from "@/utils/http";
import Compressor from "compressorjs";
import {ElMessage} from "element-plus";
@@ -449,10 +461,10 @@ const publishImage = (item, action) => {
text = "取消发布"
}
httpPost("/api/mj/publish", {id: item.id, action: action}).then(() => {
ElMessage.success(text + "成功")
showSuccessToast(text + "成功")
item.publish = action
}).catch(e => {
ElMessage.error(text + "失败:" + e.message)
showFailToast(text + "失败:" + e.message)
})
}
@@ -469,6 +481,23 @@ const imageView = (item) => {
showImagePreview([item['img_url']]);
}
const translating = ref(false)
const translatePrompt = () => {
if (params.value.prompt === '') {
return showToast("请输入中文提示词!")
}
translating.value = true
const prompt = params.value.prompt
httpPost("/api/prompt/translate", {"prompt": prompt}).then(res => {
params.value.prompt = res.data
translating.value = false
}).catch(e => {
translating.value = false
showFailToast("翻译失败:" + e.message)
})
}
</script>
<style lang="stylus">