From c76922f37ddeeb3344304af453dd2f8befdedb89 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Tue, 30 Sep 2025 14:18:00 +0800
Subject: [PATCH] feat: app搭建调整
---
src/pages/login/index.vue | 277 +++++++++++++++++++------------------------------------
1 files changed, 97 insertions(+), 180 deletions(-)
diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue
index 9ef666e..caad501 100644
--- a/src/pages/login/index.vue
+++ b/src/pages/login/index.vue
@@ -2,209 +2,126 @@
<template>
<view>
<view class="login-form-wrap">
- <view class="title"> 欢迎登录 </view>
- <input v-model="tel" class="u-border-bottom" type="number" placeholder="请输入手机号" />
- <view class="u-border-bottom my-40rpx flex">
- <input v-model="code" class="flex-1" type="number" placeholder="请输入验证码" />
- <view>
- <u-code ref="uCodeRef" @change="codeChange" />
- <u-button :text="tips" type="success" size="mini" @click="getCode" />
- </view>
- </view>
+ <view class="title"> 掌控智飞</view>
+ <input v-model="loginForm.username" class="u-border-bottom" placeholder="请输入用户名"/>
+ <input v-model="loginForm.password" class="u-border-bottom" type="password" placeholder="请输入密码"/>
<button class="login-btn" :style="[inputStyle]" @tap="submit">
- 登录 <text class="i-mdi-login" />
+ 登录
+ <text class="i-mdi-login"/>
</button>
-
- <view class="alternative">
- <view class="password"> 密码登录 </view>
- <view class="issue flex items-center">
- 遇到问题 <text class="i-mdi-help" />
- </view>
- </view>
- </view>
- <view class="login-type-wrap">
- <view class="item wechat">
- <view class="icon">
- <u-icon size="35" name="weixin-fill" color="rgb(83,194,64)" />
- </view>
- 微信
- </view>
- <view class="item QQ">
- <view class="icon">
- <u-icon size="35" name="qq-fill" color="rgb(17,183,233)" />
- </view>
- QQ
- </view>
- </view>
- <view class="hint">
- 登录代表同意
- <text class="link"> 用户协议、隐私政策, </text>
- 并授权使用您的账号信息(如昵称、头像、收获地址)以便您统一管理
</view>
</view>
</template>
<script setup>
- import md5 from 'js-md5'
- import {
- loginByUsername
- } from '@/api/user/index.js'
- import {
- HOME_PATH,
- isTabBarPath,
- LOGIN_PATH,
- removeQueryString,
- } from "@/router";
- import {
- setToken
- } from "@/utils/auth";
- // import { useUserStore } from '@/store';
-
- // const userStore = useUserStore();
- const tel = ref("18502811111");
- const code = ref("1234");
- const tips = ref();
- const uCodeRef = ref(null);
- let redirect = HOME_PATH;
-
- const inputStyle = computed(() => {
- const style = {};
- if (tel.value && code.value) {
- style.color = "#fff";
- style.backgroundColor = uni.$u.color.warning;
- }
- return style;
- });
-
- function codeChange(text) {
- tips.value = text;
+import md5 from 'js-md5'
+import {loginByUsername} from '@/api/user/index.js'
+import {useUserStore} from "@/store/index.js";
+import {
+ HOME_PATH, LOGIN_PATH, removeQueryString,
+} from "@/router";
+const userStore = useUserStore();
+const loginForm = ref({
+ username: "shuishen",
+ password: "Dashabi...."
+})
+const inputStyle = computed(() => {
+ const style = {};
+ if (loginForm.value.username && loginForm.value.password) {
+ style.color = "#fff";
+ style.backgroundColor = uni.$u.color.warning;
}
+ return style;
+});
+let redirect = HOME_PATH;
- function getCode() {
- if (uCodeRef.value?.canGetCode) {
- // 模拟向后端请求验证码
- uni.showLoading({
- title: "正在获取验证码",
- });
- setTimeout(() => {
- uni.hideLoading();
- uni.$u.toast("验证码已发送");
- // 通知验证码组件内部开始倒计时
- uCodeRef.value?.start();
- }, 1000);
- } else {
- uni.$u.toast("倒计时结束后再发送");
- }
+async function submit() {
+ let userInfo = {
+ "tenantId": "000000",
+ "deptId": "",
+ "roleId": "",
+ "username": loginForm.value.username,
+ "password": loginForm.value.password,
+ "type": "account",
+ "code": "",
+ "key": "",
}
- async function submit() {
- if (!uni.$u.test.mobile(Number(tel.value))) {
- uni.$u.toast("请输入正确的手机号");
- return;
- }
- if (!code.value) {
- uni.$u.toast("请输入验证码");
- return;
- }
- // 登录请求
- // const res = await userStore.login({ phone: tel.value, code: code.value }).catch(() => {
- // uni.$u.toast('登录失败');
- // });
- // if (!res) return;
- setToken("1234567890");
- setTimeout(() => {
- uni.$u.route({
- type: isTabBarPath(redirect) ? "switchTab" : "redirectTo",
- url: redirect,
- });
- }, 800);
-
- let userInfo = {
- "tenantId": "000000",
- "deptId": "",
- "roleId": "",
- "username": "shuishen",
- "password": "Dashabi....",
- "type": "account",
- "code": "",
- "key": "",
- "image": "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
- }
-
- loginByUsername(
- userInfo.tenantId,
- userInfo.deptId,
- userInfo.roleId,
- userInfo.username,
- md5(userInfo.password),
- userInfo.type,
- userInfo.key,
- userInfo.code
- ).then(res => {
- uni.switchTab({
- url: '/pages/map/index'
- })
+ loginByUsername(
+ userInfo.tenantId,
+ userInfo.deptId,
+ userInfo.roleId,
+ userInfo.username,
+ md5(userInfo.password),
+ userInfo.type,
+ userInfo.key,
+ userInfo.code
+ ).then(res => {
+ userStore.setUserInfo(res.data)
+ uni.switchTab({
+ url: '/pages/user/index'
})
- }
+ })
+}
- onLoad((options) => {
- if (options.redirect && removeQueryString(options.redirect) !== LOGIN_PATH) {
- redirect = decodeURIComponent(options.redirect);
- }
- });
+onLoad((options) => {
+ if (options.redirect && removeQueryString(options.redirect) !== LOGIN_PATH) {
+ redirect = decodeURIComponent(options.redirect);
+ }
+});
</script>
<style lang="scss" scoped>
- .login-form-wrap {
- @apply mt-80rpx mx-auto mb-0 w-600rpx;
+.login-form-wrap {
+ @apply mt-80rpx mx-auto mb-0 w-600rpx;
- .title {
- @apply mb-100rpx text-60rpx text-left font-500;
- }
-
- input {
- @apply pb-6rpx mb-10rpx text-left;
- }
-
- .tips {
- @apply mt-8rpx mb-60rpx;
-
- color: $u-info;
- }
-
- .login-btn {
- @apply flex items-center justify-center py-12rpx px-0 text-30rpx bg-#fdf3d0 border-none;
-
- color: $u-tips-color;
-
- &::after {
- @apply border-none;
- }
- }
-
- .alternative {
- @apply flex justify-between mt-30rpx;
-
- color: $u-tips-color;
- }
+ .title {
+ @apply mb-100rpx text-60rpx text-left font-500;
}
- .login-type-wrap {
- @apply flex justify-between pt-350rpx px-150rpx pb-150rpx;
-
- .item {
- @apply flex items-center flex-col text-28rpx;
-
- color: $u-content-color;
- }
+ input {
+ @apply pb-6rpx mb-10rpx text-left;
}
- .hint {
- @apply px-40rpx py-20rpx text-24rpx;
+ .tips {
+ @apply mt-8rpx mb-60rpx;
+
+ color: $u-info;
+ }
+
+ .login-btn {
+ @apply flex items-center justify-center py-12rpx px-0 text-30rpx bg-#fdf3d0 border-none;
color: $u-tips-color;
- .link {
- color: $u-warning;
+ &::after {
+ @apply border-none;
}
}
+
+ .alternative {
+ @apply flex justify-between mt-30rpx;
+
+ color: $u-tips-color;
+ }
+}
+
+.login-type-wrap {
+ @apply flex justify-between pt-350rpx px-150rpx pb-150rpx;
+
+ .item {
+ @apply flex items-center flex-col text-28rpx;
+
+ color: $u-content-color;
+ }
+}
+
+.hint {
+ @apply px-40rpx py-20rpx text-24rpx;
+
+ color: $u-tips-color;
+
+ .link {
+ color: $u-warning;
+ }
+}
</style>
--
Gitblit v1.9.3