3
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_http = require("../../common/http.js");
|
||||
const common_config = require("../../common/config.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
tab: "login",
|
||||
authLoginTopImage: common_config.AUTH_LOGIN_TOP_IMAGE,
|
||||
loginForm: { email: "", password: "" },
|
||||
regForm: { name: "", email: "", code: "", password: "", password2: "" },
|
||||
resetForm: { email: "", code: "", password: "", password2: "" },
|
||||
@@ -18,6 +20,12 @@ const _sfc_main = {
|
||||
this._timers.forEach((t) => clearInterval(t));
|
||||
},
|
||||
methods: {
|
||||
gotoRegister() {
|
||||
this.tab = "register";
|
||||
},
|
||||
gotoReset() {
|
||||
this.tab = "reset";
|
||||
},
|
||||
toast(msg) {
|
||||
try {
|
||||
common_vendor.index.showToast({ title: String(msg || "操作失败"), icon: "none" });
|
||||
@@ -154,65 +162,64 @@ const _sfc_main = {
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.n($data.tab === "login" ? "active" : ""),
|
||||
b: common_vendor.o(($event) => $data.tab = "login"),
|
||||
c: common_vendor.n($data.tab === "register" ? "active" : ""),
|
||||
d: common_vendor.o(($event) => $data.tab = "register"),
|
||||
e: common_vendor.n($data.tab === "reset" ? "active" : ""),
|
||||
f: common_vendor.o(($event) => $data.tab = "reset"),
|
||||
g: $data.tab === "login"
|
||||
a: $data.authLoginTopImage,
|
||||
b: $data.tab === "login"
|
||||
}, $data.tab === "login" ? {
|
||||
h: $data.loginForm.email,
|
||||
i: common_vendor.o(common_vendor.m(($event) => $data.loginForm.email = $event.detail.value, {
|
||||
c: $data.loginForm.email,
|
||||
d: common_vendor.o(common_vendor.m(($event) => $data.loginForm.email = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
j: $data.loginForm.password,
|
||||
k: common_vendor.o(($event) => $data.loginForm.password = $event.detail.value),
|
||||
l: $data.loading,
|
||||
m: common_vendor.o((...args) => $options.onLogin && $options.onLogin(...args))
|
||||
} : $data.tab === "register" ? {
|
||||
o: $data.regForm.name,
|
||||
p: common_vendor.o(common_vendor.m(($event) => $data.regForm.name = $event.detail.value, {
|
||||
e: $data.loginForm.password,
|
||||
f: common_vendor.o(($event) => $data.loginForm.password = $event.detail.value),
|
||||
g: $data.loading,
|
||||
h: common_vendor.o((...args) => $options.onLogin && $options.onLogin(...args)),
|
||||
i: common_vendor.o((...args) => $options.gotoRegister && $options.gotoRegister(...args)),
|
||||
j: common_vendor.o((...args) => $options.gotoReset && $options.gotoReset(...args))
|
||||
} : {}, {
|
||||
k: $data.tab === "register"
|
||||
}, $data.tab === "register" ? {
|
||||
l: $data.regForm.name,
|
||||
m: common_vendor.o(common_vendor.m(($event) => $data.regForm.name = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
q: $data.regForm.email,
|
||||
r: common_vendor.o(common_vendor.m(($event) => $data.regForm.email = $event.detail.value, {
|
||||
n: $data.regForm.email,
|
||||
o: common_vendor.o(common_vendor.m(($event) => $data.regForm.email = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
s: $data.regForm.code,
|
||||
t: common_vendor.o(common_vendor.m(($event) => $data.regForm.code = $event.detail.value, {
|
||||
p: $data.regForm.code,
|
||||
q: common_vendor.o(common_vendor.m(($event) => $data.regForm.code = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
v: common_vendor.t($data.regCountdown > 0 ? $data.regCountdown + "s" : "获取验证码"),
|
||||
w: $data.regCountdown > 0 || $data.loading,
|
||||
x: common_vendor.o((...args) => $options.sendRegCode && $options.sendRegCode(...args)),
|
||||
y: $data.regForm.password,
|
||||
z: common_vendor.o(($event) => $data.regForm.password = $event.detail.value),
|
||||
A: $data.regForm.password2,
|
||||
B: common_vendor.o(($event) => $data.regForm.password2 = $event.detail.value),
|
||||
C: $data.loading,
|
||||
D: common_vendor.o((...args) => $options.onRegister && $options.onRegister(...args))
|
||||
} : {
|
||||
E: $data.resetForm.email,
|
||||
F: common_vendor.o(common_vendor.m(($event) => $data.resetForm.email = $event.detail.value, {
|
||||
r: common_vendor.t($data.regCountdown > 0 ? $data.regCountdown + "s" : "获取验证码"),
|
||||
s: $data.regCountdown > 0 || $data.loading,
|
||||
t: common_vendor.o((...args) => $options.sendRegCode && $options.sendRegCode(...args)),
|
||||
v: $data.regForm.password,
|
||||
w: common_vendor.o(($event) => $data.regForm.password = $event.detail.value),
|
||||
x: $data.regForm.password2,
|
||||
y: common_vendor.o(($event) => $data.regForm.password2 = $event.detail.value),
|
||||
z: $data.loading,
|
||||
A: common_vendor.o((...args) => $options.onRegister && $options.onRegister(...args))
|
||||
} : {}, {
|
||||
B: $data.tab === "reset"
|
||||
}, $data.tab === "reset" ? {
|
||||
C: $data.resetForm.email,
|
||||
D: common_vendor.o(common_vendor.m(($event) => $data.resetForm.email = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
G: $data.resetForm.code,
|
||||
H: common_vendor.o(common_vendor.m(($event) => $data.resetForm.code = $event.detail.value, {
|
||||
E: $data.resetForm.code,
|
||||
F: common_vendor.o(common_vendor.m(($event) => $data.resetForm.code = $event.detail.value, {
|
||||
trim: true
|
||||
})),
|
||||
I: common_vendor.t($data.resetCountdown > 0 ? $data.resetCountdown + "s" : "获取验证码"),
|
||||
J: $data.resetCountdown > 0 || $data.loading,
|
||||
K: common_vendor.o((...args) => $options.sendResetCode && $options.sendResetCode(...args)),
|
||||
L: $data.resetForm.password,
|
||||
M: common_vendor.o(($event) => $data.resetForm.password = $event.detail.value),
|
||||
N: $data.resetForm.password2,
|
||||
O: common_vendor.o(($event) => $data.resetForm.password2 = $event.detail.value),
|
||||
P: $data.loading,
|
||||
Q: common_vendor.o((...args) => $options.onReset && $options.onReset(...args))
|
||||
}, {
|
||||
n: $data.tab === "register"
|
||||
});
|
||||
G: common_vendor.t($data.resetCountdown > 0 ? $data.resetCountdown + "s" : "获取验证码"),
|
||||
H: $data.resetCountdown > 0 || $data.loading,
|
||||
I: common_vendor.o((...args) => $options.sendResetCode && $options.sendResetCode(...args)),
|
||||
J: $data.resetForm.password,
|
||||
K: common_vendor.o(($event) => $data.resetForm.password = $event.detail.value),
|
||||
L: $data.resetForm.password2,
|
||||
M: common_vendor.o(($event) => $data.resetForm.password2 = $event.detail.value),
|
||||
N: $data.loading,
|
||||
O: common_vendor.o((...args) => $options.onReset && $options.onReset(...args))
|
||||
} : {});
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view class="auth-page"><view class="tabs"><view class="{{['tab', a]}}" bindtap="{{b}}">登录</view><view class="{{['tab', c]}}" bindtap="{{d}}">注册</view><view class="{{['tab', e]}}" bindtap="{{f}}">忘记密码</view></view><view wx:if="{{g}}" class="panel"><input class="input" type="text" placeholder="输入邮箱" value="{{h}}" bindinput="{{i}}"/><input class="input" type="password" placeholder="输入密码" value="{{j}}" bindinput="{{k}}"/><button class="btn primary" disabled="{{l}}" bindtap="{{m}}">登录</button></view><view wx:elif="{{n}}" class="panel"><input class="input" type="text" placeholder="输入用户名" value="{{o}}" bindinput="{{p}}"/><input class="input" type="text" placeholder="输入邮箱" value="{{q}}" bindinput="{{r}}"/><view class="row"><input class="input flex1" type="text" placeholder="邮箱验证码" value="{{s}}" bindinput="{{t}}"/><button class="btn ghost" disabled="{{w}}" bindtap="{{x}}">{{v}}</button></view><input class="input" type="password" placeholder="输入密码(≥6位)" value="{{y}}" bindinput="{{z}}"/><input class="input" type="password" placeholder="再次输入密码" value="{{A}}" bindinput="{{B}}"/><button class="btn primary" disabled="{{C}}" bindtap="{{D}}">注册新用户</button></view><view wx:else class="panel"><input class="input" type="text" placeholder="输入邮箱" value="{{E}}" bindinput="{{F}}"/><view class="row"><input class="input flex1" type="text" placeholder="邮箱验证码" value="{{G}}" bindinput="{{H}}"/><button class="btn ghost" disabled="{{J}}" bindtap="{{K}}">{{I}}</button></view><input class="input" type="password" placeholder="新密码(≥6位)" value="{{L}}" bindinput="{{M}}"/><input class="input" type="password" placeholder="再次输入新密码" value="{{N}}" bindinput="{{O}}"/><button class="btn primary" disabled="{{P}}" bindtap="{{Q}}">重置密码</button></view></view>
|
||||
<view class="auth-page"><view class="login-hero"><image class="login-hero-img" src="{{a}}" mode="widthFix"/></view><view class="header"><text class="title">邮箱密码登录</text></view><view wx:if="{{b}}" class="panel"><input class="input" type="text" placeholder="输入邮箱" value="{{c}}" bindinput="{{d}}"/><input class="input" type="password" placeholder="输入密码" value="{{e}}" bindinput="{{f}}"/><button class="btn primary" disabled="{{g}}" bindtap="{{h}}">登录</button><view class="quick-inline"><button class="quick-link" bindtap="{{i}}">注册</button><button class="quick-link" bindtap="{{j}}">忘记密码</button></view></view><view wx:if="{{k}}" class="panel minor"><input class="input" type="text" placeholder="输入用户名" value="{{l}}" bindinput="{{m}}"/><input class="input" type="text" placeholder="输入邮箱" value="{{n}}" bindinput="{{o}}"/><view class="row"><input class="input flex1" type="text" placeholder="邮箱验证码" value="{{p}}" bindinput="{{q}}"/><button class="btn ghost" disabled="{{s}}" bindtap="{{t}}">{{r}}</button></view><input class="input" type="password" placeholder="输入密码(≥6位)" value="{{v}}" bindinput="{{w}}"/><input class="input" type="password" placeholder="再次输入密码" value="{{x}}" bindinput="{{y}}"/><button class="btn primary" disabled="{{z}}" bindtap="{{A}}">注册新用户</button></view><view wx:if="{{B}}" class="panel minor"><input class="input" type="text" placeholder="输入邮箱" value="{{C}}" bindinput="{{D}}"/><view class="row"><input class="input flex1" type="text" placeholder="邮箱验证码" value="{{E}}" bindinput="{{F}}"/><button class="btn ghost" disabled="{{H}}" bindtap="{{I}}">{{G}}</button></view><input class="input" type="password" placeholder="新密码(≥6位)" value="{{J}}" bindinput="{{K}}"/><input class="input" type="password" placeholder="再次输入新密码" value="{{L}}" bindinput="{{M}}"/><button class="btn primary" disabled="{{N}}" bindtap="{{O}}">重置密码</button></view></view>
|
||||
@@ -24,39 +24,78 @@
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 藏青系主色(高亮) */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
|
||||
.auth-page {
|
||||
padding: 32rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24rpx;
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
}
|
||||
.tabs {
|
||||
.header {
|
||||
display: flex;
|
||||
gap: 24rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 8rpx 0 0;
|
||||
}
|
||||
.tab {
|
||||
padding: 12rpx 20rpx;
|
||||
border-radius: 999rpx;
|
||||
background: #f2f4f8;
|
||||
color: #5b6b80;
|
||||
font-weight: 700;
|
||||
.title {
|
||||
font-size: 34rpx;
|
||||
font-weight: 800;
|
||||
color: #111;
|
||||
}
|
||||
.tab.active {
|
||||
background: #2d6be6;
|
||||
color: #fff;
|
||||
.login-hero {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 16rpx 0 0;
|
||||
}
|
||||
.login-hero-img {
|
||||
width: 72%;
|
||||
max-width: 560rpx;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16rpx;
|
||||
background: #fff;
|
||||
padding: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid #eef2f9;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
}
|
||||
.panel.minor {
|
||||
margin-top: 12rpx;
|
||||
}
|
||||
.input {
|
||||
background: #f7f9ff;
|
||||
border: 2rpx solid rgba(45, 107, 230, 0.12);
|
||||
background: #ffffff;
|
||||
border: 2rpx solid #e5e7eb;
|
||||
border-radius: 12rpx;
|
||||
padding: 22rpx 20rpx;
|
||||
font-size: 28rpx;
|
||||
@@ -78,8 +117,47 @@
|
||||
.btn.primary {
|
||||
background: linear-gradient(135deg, #4788ff 0%, #2d6be6 100%);
|
||||
color: #fff;
|
||||
border: 1rpx solid rgba(45, 107, 230, 0.25);
|
||||
width: 72%;
|
||||
margin: 0 auto;
|
||||
padding: 14rpx 16rpx;
|
||||
}
|
||||
.btn.ghost {
|
||||
background: #eef3ff;
|
||||
color: #2d6be6;
|
||||
}
|
||||
/* 右下角快捷入口:贴着登录功能,无边框、无背景 */
|
||||
.quick-inline {
|
||||
display: flex;
|
||||
gap: 28rpx;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.quick-link {
|
||||
background: transparent !important;
|
||||
color: #2d6be6;
|
||||
border: none !important;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
font-size: 26rpx;
|
||||
font-weight: 700;
|
||||
box-shadow: none;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.quick-link::after {
|
||||
border: none !important;
|
||||
}
|
||||
/* 注册/重置页:验证码按钮与左侧输入框等高,且更紧凑 */
|
||||
.panel.minor .row > .input {
|
||||
height: 76rpx;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
.panel.minor .row > .btn.ghost {
|
||||
height: 76rpx;
|
||||
padding: 0 20rpx;
|
||||
border-radius: 12rpx;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -24,6 +24,7 @@
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
|
||||
.register-container {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
|
||||
Reference in New Issue
Block a user