This commit is contained in:
scout 2024-05-30 11:33:50 +08:00
parent 37e7ac68b2
commit f2c31084c7
11 changed files with 158 additions and 48 deletions

View File

@ -100,7 +100,7 @@ module.exports = configure(function (/* ctx */) {
// (like functional components as one of the examples), // (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere: // you can manually specify Quasar components/directives to be available everywhere:
// //
// components: [], components: ['QInput'],
// directives: [], // directives: [],
// Quasar plugins // Quasar plugins

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -27,7 +27,7 @@
</div> </div>
<q-btn dense flat no-wrap> <q-btn dense flat no-wrap>
<q-avatar size="40px"> <q-avatar size="40px">
<img :src="user.avatar" /> <img :src="user.avatar" @click="updateInfo">
</q-avatar> </q-avatar>
<q-icon name="arrow_drop_down" size="16px" /> <q-icon name="arrow_drop_down" size="16px" />
<q-menu auto-close> <q-menu auto-close>
@ -82,13 +82,17 @@ import { LocalStorage, SessionStorage } from "quasar";
import { ref } from "vue"; import { ref } from "vue";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const tab = ref("ai"); const tab = ref("ai");
const user = ref(null)
const router = useRouter(); const router = useRouter();
const user = LocalStorage.getItem("sd-accountInfo") || {}; user.value = LocalStorage.getItem("sd-accountInfo") || {};
const logOut = () => { const logOut = () => {
LocalStorage.remove("sd-accountInfo"); LocalStorage.remove("sd-accountInfo");
LocalStorage.remove("sd-token"); LocalStorage.remove("sd-token");
window.location.href = "/#/login"; window.location.href = "/#/login";
}; };
const updateInfo = () => {
user.value = LocalStorage.getItem("sd-accountInfo") || {};
};
const goMine = () => { const goMine = () => {
router.push("/mine?active=mineCenter"); router.push("/mine?active=mineCenter");
}; };

View File

@ -63,6 +63,11 @@
class="input-box" class="input-box"
v-model="telNum" v-model="telNum"
:dense="true" :dense="true"
@keyup="
() => {
telNum = telNum.trim();
}
"
placeholder="请输入账号" placeholder="请输入账号"
/> />
</div> </div>
@ -73,6 +78,11 @@
maxlength="8" maxlength="8"
class="input-box" class="input-box"
v-model="password" v-model="password"
@keyup="
() => {
password = password.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入密码" placeholder="请输入密码"
> >
@ -86,7 +96,9 @@
</template> </template>
</q-input> </q-input>
</div> </div>
<div class="forget" @click="forgetPwd">忘记密码?</div> <div class="forget">
<span @click="forgetPwd">忘记密码?</span>
</div>
</div> </div>
<div v-if="tab === 'code'"> <div v-if="tab === 'code'">
@ -97,6 +109,11 @@
<q-input <q-input
class="input-box" class="input-box"
v-model="telNum" v-model="telNum"
@keyup="
() => {
telNum = telNum.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入账号" placeholder="请输入账号"
/> />
@ -107,20 +124,17 @@
> >
<q-input <q-input
style="width: 250px" style="width: 250px"
:type="isPwd ? 'password' : 'text'" :type="'text'"
class="input-box" class="input-box"
v-model="code" v-model="code"
@keyup="
() => {
code = code.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入账号" placeholder="请输入账号"
> >
<template v-slot:append>
<q-icon
color="grey-13"
:name="isPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer"
@click="isPwd = !isPwd"
/>
</template>
</q-input> </q-input>
<q-btn <q-btn
class="code-btn" class="code-btn"
@ -140,8 +154,8 @@
<div class="read"> <div class="read">
<q-checkbox v-model="readed" /> <q-checkbox v-model="readed" />
<a>我已阅读并同意</a> <a>我已阅读并同意</a>
<span style="color: #c348b8"> 用户协议</span> <span style="color: #c348b8" @click="goAgreement"> 用户协议</span>
<span style="color: #c348b8">隐私政策</span> <span style="color: #c348b8" @click="goPolicy">隐私政策</span>
</div> </div>
<q-btn <q-btn
label="登录" label="登录"
@ -181,6 +195,11 @@
<q-input <q-input
class="input-box" class="input-box"
v-model="telNum" v-model="telNum"
@keyup="
() => {
telNum = telNum.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入账号" placeholder="请输入账号"
/> />
@ -191,20 +210,17 @@
> >
<q-input <q-input
style="width: 238px" style="width: 238px"
:type="isPwd ? 'password' : 'text'" :type="'text'"
@keyup="
() => {
code = code.trim();
}
"
class="input-box" class="input-box"
v-model="code" v-model="code"
:dense="true" :dense="true"
placeholder="请输入验证码" placeholder="请输入验证码"
> >
<template v-slot:append>
<q-icon
color="grey-13"
:name="isPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer"
@click="isPwd = !isPwd"
/>
</template>
</q-input> </q-input>
<q-btn <q-btn
class="code-btn" class="code-btn"
@ -226,6 +242,11 @@
class="input-box" class="input-box"
v-model="password" v-model="password"
:dense="true" :dense="true"
@keyup="
() => {
password = password.trim();
}
"
placeholder="请输入密码" placeholder="请输入密码"
maxlength="8" maxlength="8"
style="margin-left: 10px" style="margin-left: 10px"
@ -248,6 +269,11 @@
:type="isPwd ? 'password' : 'text'" :type="isPwd ? 'password' : 'text'"
class="input-box" class="input-box"
v-model="verfyPassword" v-model="verfyPassword"
@keyup="
() => {
verfyPassword = verfyPassword.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入密码" placeholder="请输入密码"
maxlength="8" maxlength="8"
@ -333,6 +359,11 @@
class="input-box" class="input-box"
v-model="telNum" v-model="telNum"
:dense="true" :dense="true"
@keyup="
() => {
telNum = telNum.trim();
}
"
placeholder="请输入账号" placeholder="请输入账号"
/> />
</div> </div>
@ -342,20 +373,17 @@
> >
<q-input <q-input
style="width: 232px" style="width: 232px"
:type="isPwd ? 'password' : 'text'" :type="'text'"
class="input-box" class="input-box"
v-model="code" v-model="code"
@keyup="
() => {
code = code.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入验证码" placeholder="请输入验证码"
> >
<template v-slot:append>
<q-icon
color="grey-13"
:name="isPwd ? 'visibility_off' : 'visibility'"
class="cursor-pointer"
@click="isPwd = !isPwd"
/>
</template>
</q-input> </q-input>
<q-btn <q-btn
class="code-btn" class="code-btn"
@ -376,6 +404,11 @@
:type="isPwd ? 'password' : 'text'" :type="isPwd ? 'password' : 'text'"
class="input-box" class="input-box"
v-model="password" v-model="password"
@keyup="
() => {
password = password.trim();
}
"
:dense="true" :dense="true"
placeholder="请输入密码" placeholder="请输入密码"
style="margin-left: 5px" style="margin-left: 5px"
@ -400,6 +433,11 @@
class="input-box" class="input-box"
v-model="verfyPassword" v-model="verfyPassword"
:dense="true" :dense="true"
@keyup="
() => {
verfyPassword = verfyPassword.trim();
}
"
placeholder="请输入密码" placeholder="请输入密码"
style="margin-right: 25px" style="margin-right: 25px"
maxlength="8" maxlength="8"
@ -472,6 +510,15 @@ function startScrolling(carousel, track) {
} }
}, 20); }, 20);
} }
const inputNum = (val) => {
console.log(val, 123);
};
const goAgreement = () => {
router.push("/agreement");
};
const goPolicy = () => {
router.push("/policy");
};
// //
const login = async () => { const login = async () => {
// //
@ -665,7 +712,7 @@ const goResetPwd = async () => {
if (res.status === 0) { if (res.status === 0) {
loading.value = false; loading.value = false;
code.value = ""; code.value = "";
registType.value = 2; isFlipped.value = false;
} else { } else {
loading.value = false; loading.value = false;
errMsg.value = res.msg; errMsg.value = res.msg;
@ -680,6 +727,11 @@ const goResetPwd = async () => {
function toggleFlip() { function toggleFlip() {
isFlipped.value = !isFlipped.value; isFlipped.value = !isFlipped.value;
code.value = ""; code.value = "";
password.value = "";
telNum.value = "";
verfyPassword.value = "";
isErr.value = false;
errMsg.value = "";
registType.value = 1; registType.value = 1;
} }
const forgetPwd = () => { const forgetPwd = () => {
@ -699,8 +751,8 @@ const goRegist = async () => {
isErr.value = true; isErr.value = true;
return; return;
} }
// //
if (password.value.indexOf(" ") !== -1) { if (password.value.indexOf(" ") !== -1) {
errMsg.value = "密码不允许有空格"; errMsg.value = "密码不允许有空格";
isErr.value = true; isErr.value = true;
return; return;
@ -732,6 +784,12 @@ const goRegist = async () => {
}; };
// //
const backLogin = () => { const backLogin = () => {
code.value = "";
password.value = "";
telNum.value = "";
verfyPassword.value = "";
isErr.value = false;
errMsg.value = "";
isFlipped.value = false; isFlipped.value = false;
}; };
onMounted(() => { onMounted(() => {
@ -754,10 +812,10 @@ onMounted(() => {
.bg { .bg {
display: flex; display: flex;
transform: rotate(30deg); transform: rotate(30deg);
height: 197%; height: 207%;
position: relative; position: relative;
top: -437px; top: -437px;
width: 113%; width: 123%;
left: -133px; left: -133px;
} }
/* 创建一个伪元素作为黑色透明蒙版 */ /* 创建一个伪元素作为黑色透明蒙版 */

View File

@ -164,7 +164,7 @@
list-type="image-card" list-type="image-card"
:max="1" :max="1"
:on-finish="handleChange" :on-finish="handleChange"
action="http://192.168.1.244:8085/api/ai/upload-file" action="http://114.218.158.24:8085/api/ai/upload-file"
> >
<n-upload-dragger> <n-upload-dragger>
<div style="margin-bottom: 12px"> <div style="margin-bottom: 12px">
@ -485,8 +485,8 @@ const selectedSize = ref({
width: 600, width: 600,
height: 800, height: 800,
}); });
const width = ref(0); const width = ref(null);
const height = ref(0); const height = ref(null);
const apiWidth = ref(0); const apiWidth = ref(0);
const apiHeight = ref(0); const apiHeight = ref(0);
const imgList = ref([]); const imgList = ref([]);
@ -606,6 +606,7 @@ const getUserInfo = async() => {
await UserApi.getUserInfo().then((res) => { await UserApi.getUserInfo().then((res) => {
if (res.status === 0) { if (res.status === 0) {
coin.value = res.data.coin; coin.value = res.data.coin;
LocalStorage.set("sd-accountInfo", res.data);
} else { } else {
processError(res.msg); processError(res.msg);
} }
@ -732,11 +733,11 @@ const generate = async () => {
txt2img(); txt2img();
} else { } else {
// //
if (!init_images.value.length) { // if (!init_images.value.length) {
createLoading.value = false; // createLoading.value = false;
processError("请上传参考图"); // processError("");
return; // return;
} // }
img2img(); img2img();
} }
if (plane.value) { if (plane.value) {

View File

@ -110,6 +110,19 @@ const closeModal = () => {
// //
const submit = async () => { const submit = async () => {
errMsg.value = ""; errMsg.value = "";
//
if (!name.value) {
processError('请输入姓名')
return;
}
if (!phone.value) {
processError('请输入手机号')
return;
}
if (!content.value) {
processError('请输入留言内容')
return;
}
const data = { const data = {
domain: "fontree", domain: "fontree",
name: name.value, name: name.value,

View File

@ -39,7 +39,7 @@
<span>提示词</span> <span>提示词</span>
<span>{{ detailData.realPrompt }}</span> <span>{{ detailData.realPrompt }}</span>
</div> </div>
<div class="info"> <div class="info" v-if="detailData.realNegativePrompt">
<span>反向词</span> <span>反向词</span>
<span>{{ detailData.realNegativePrompt }}</span> <span>{{ detailData.realNegativePrompt }}</span>
</div> </div>

View File

@ -86,7 +86,7 @@
list-type="image-card" list-type="image-card"
:max="1" :max="1"
:on-finish="handleChange" :on-finish="handleChange"
action="http://192.168.1.244:8085/api/ai/upload-file" action="http://114.218.158.24:8085/api/ai/upload-file"
> >
<n-upload-dragger> <n-upload-dragger>
<div> <div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -45,6 +45,20 @@ const routes = [
{ path: '', component: () => import('pages/feedback/index.vue') } { path: '', component: () => import('pages/feedback/index.vue') }
] ]
}, },
// 隐私政策
{
path: '/policy',
children: [
{ path: '', component: () => import('pages/policy/policy.vue') }
]
},
// 用户协议
{
path: '/agreement',
children: [
{ path: '', component: () => import('pages/policy/agreement.vue') }
]
},
// Always leave this as last one, // Always leave this as last one,
// but you can also remove it // but you can also remove it
{ {