From 8487d2c9eb1fbd28313ab5af8fc52e0d3fa172d7 Mon Sep 17 00:00:00 2001 From: RockYang Date: Tue, 19 Mar 2024 18:59:02 +0800 Subject: [PATCH] feat: no need login refactor with member and chatApps page --- api/core/app_server.go | 1 + web/src/components/UserProfile.vue | 12 +- web/src/views/ChatApps.vue | 69 +++--- web/src/views/ImageMj.vue | 61 ++++-- web/src/views/Member.vue | 332 +++++++++++++++-------------- 5 files changed, 258 insertions(+), 217 deletions(-) diff --git a/api/core/app_server.go b/api/core/app_server.go index f1f508a8..3becca04 100644 --- a/api/core/app_server.go +++ b/api/core/app_server.go @@ -213,6 +213,7 @@ func needLogin(c *gin.Context) bool { c.Request.URL.Path == "/api/sd/imgWall" || c.Request.URL.Path == "/api/sd/client" || c.Request.URL.Path == "/api/config/get" || + c.Request.URL.Path == "/api/product/list" || strings.HasPrefix(c.Request.URL.Path, "/api/test") || strings.HasPrefix(c.Request.URL.Path, "/api/function/") || strings.HasPrefix(c.Request.URL.Path, "/api/sms/") || diff --git a/web/src/components/UserProfile.vue b/web/src/components/UserProfile.vue index 0979466d..15c55746 100644 --- a/web/src/components/UserProfile.vue +++ b/web/src/components/UserProfile.vue @@ -1,6 +1,6 @@ diff --git a/web/src/views/ImageMj.vue b/web/src/views/ImageMj.vue index 504a33cb..c8bdebb2 100644 --- a/web/src/views/ImageMj.vue +++ b/web/src/views/ImageMj.vue @@ -340,7 +340,7 @@
立即生成
- 绘图可用额度:{{ power }} + 当前可用算力:{{ power }}
@@ -481,6 +481,7 @@ + @@ -505,9 +506,12 @@ import {checkSession} from "@/action/session"; import {useRouter} from "vue-router"; import {getSessionId} from "@/store/session"; import {isMobile, removeArrayItem} from "@/utils/libs"; +import LoginDialog from "@/components/LoginDialog.vue"; const listBoxHeight = ref(window.innerHeight - 40) const mjBoxHeight = ref(window.innerHeight - 150) +const showLoginDialog = ref(false) + window.onresize = () => { listBoxHeight.value = window.innerHeight - 40 mjBoxHeight.value = window.innerHeight - 150 @@ -583,12 +587,14 @@ const socket = ref(null) const power = ref(0) const translating = ref(false) const userId = ref(0) - -if (isMobile()) { - router.replace("/mobile/mj") -} +const isLogin = ref(false) const rewritePrompt = () => { + if (!isLogin.value) { + showLoginDialog.value = true + return + } + translating.value = true httpPost("/api/prompt/rewrite", {"prompt": params.value.prompt}).then(res => { params.value.prompt = res.data @@ -600,6 +606,11 @@ const rewritePrompt = () => { } const translatePrompt = (negative) => { + if (!isLogin.value) { + showLoginDialog.value = true + return + } + translating.value = true let prompt = params.value.prompt if (negative) { @@ -666,18 +677,7 @@ const connect = () => { const clipboard = ref(null) onMounted(() => { - checkSession().then(user => { - power.value = user['power'] - userId.value = user.id - - fetchRunningJobs() - fetchFinishJobs(1) - connect() - - }).catch(() => { - router.push('/login') - }); - + initData() clipboard.value = new Clipboard('.copy-prompt-mj'); clipboard.value.on('success', () => { ElMessage.success("复制成功!"); @@ -688,6 +688,23 @@ onMounted(() => { }) }) +// 初始化数据 + +const initData = () => { + checkSession().then(user => { + power.value = user['power'] + userId.value = user.id + isLogin.value = true + + fetchRunningJobs() + fetchFinishJobs(1) + connect() + + }).catch(() => { + + }); +} + onUnmounted(() => { clipboard.value.destroy() }) @@ -776,6 +793,11 @@ const changeModel = (item) => { // 图片上传 const uploadImg = (file) => { + if (!isLogin.value) { + showLoginDialog.value = true + return + } + // 压缩图片并上传 new Compressor(file.file, { quality: 0.6, @@ -799,6 +821,11 @@ const uploadImg = (file) => { // 创建绘图任务 const promptRef = ref(null) const generate = () => { + if (!isLogin.value) { + showLoginDialog.value = true + return + } + if (params.value.prompt === '' && params.value.task_type === "image") { promptRef.value.focus() return ElMessage.error("请输入绘画提示词!") diff --git a/web/src/views/Member.vue b/web/src/views/Member.vue index d8ad8c6d..cd99b529 100644 --- a/web/src/views/Member.vue +++ b/web/src/views/Member.vue @@ -1,162 +1,164 @@ @@ -212,13 +214,14 @@ onMounted(() => { checkSession().then(_user => { user.value = _user isLogin.value = true - httpGet("/api/product/list").then((res) => { - list.value = res.data - }).catch(e => { - ElMessage.error("获取产品套餐失败:" + e.message) - }) }).catch(() => { - router.push("/login") + showLoginDialog.value = true + }) + + httpGet("/api/product/list").then((res) => { + list.value = res.data + }).catch(e => { + ElMessage.error("获取产品套餐失败:" + e.message) }) httpGet("/api/config/get?key=system").then(res => { @@ -276,10 +279,11 @@ const alipay = (row) => { payName.value = "支付宝" curPay.value = "alipay" amount.value = (row.price - row.discount).toFixed(2) - if (!user.value.id) { + if (!isLogin.value) { showLoginDialog.value = true return } + if (row) { curPayProduct.value = row } @@ -291,10 +295,11 @@ const huPiPay = (row) => { payName.value = payWays.value["hupi"]["name"] === "wechat" ? '微信' : '支付宝' curPay.value = "hupi" amount.value = (row.price - row.discount).toFixed(2) - if (!user.value.id) { + if (!isLogin.value) { showLoginDialog.value = true return } + if (row) { curPayProduct.value = row } @@ -306,10 +311,11 @@ const PayJs = (row) => { payName.value = '微信' curPay.value = "payjs" amount.value = (row.price - row.discount).toFixed(2) - if (!user.value.id) { + if (!isLogin.value) { showLoginDialog.value = true return } + if (row) { curPayProduct.value = row } @@ -352,6 +358,10 @@ const closeOrder = () => { activeOrderNo.value = '' } +const loginSuccess = () => { + location.reload() +} +