1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-09-13 00:50:40 +08:00

refactor: 架构升级

This commit is contained in:
小莫唐尼
2026-08-31 07:58:23 +08:00
commit ba5b77568b
693 changed files with 118430 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# 登录页
需要输入账号、密码/验证码的登录页。
## 适用性
本页面主要用于 `h5``APP`
小程序通常有平台的登录方式 `uni.login` 通常用不到登录页,所以不适用于 `小程序`。(即默认情况下,小程序环境是不会走登录拦截逻辑的。)
但是如果您的小程序也需要现实的 `登录页` 那也是可以使用的。
`src/router/config.ts` 中有一个变量 `LOGIN_PAGE_ENABLE_IN_MP` 来控制是否在小程序中使用 `H5的登录页`
更多信息请看 `src/router` 文件夹的内容。
## 登录跳转
目前登录的跳转逻辑主要在 `src/router/interceptor.ts``src/pages/login/login.vue` 里面,默认会在登录后自动重定向到来源/配置的页面。
如果与您的业务不符,您可以自行修改。
+44
View File
@@ -0,0 +1,44 @@
<script lang="ts" setup>
import { useTokenStore } from '@/store/token'
definePage({
style: {
navigationBarTitleText: '登录',
},
})
const tokenStore = useTokenStore()
async function doLogin() {
if (tokenStore.hasLogin) {
uni.navigateBack()
return
}
try {
// 调用登录接口
await tokenStore.login({
username: '菲鸽',
password: '123456',
})
uni.navigateBack()
}
catch (error) {
console.log('登录失败', error)
}
}
</script>
<template>
<view class="login">
<!-- 本页面是非MP的登录页主要用于 h5 APP -->
<view class="text-center">
登录页
</view>
<button class="mt-4 w-40 text-center" @click="doLogin">
点击模拟登录
</button>
</view>
</template>
<style lang="scss" scoped>
//
</style>
+34
View File
@@ -0,0 +1,34 @@
<script lang="ts" setup>
import { LOGIN_PAGE } from '@/router/config'
definePage({
style: {
navigationBarTitleText: '注册',
},
})
function doRegister() {
uni.showToast({
title: '注册成功',
})
// 注册成功后跳转到登录页
uni.navigateTo({
url: LOGIN_PAGE,
})
}
</script>
<template>
<view class="login">
<view class="text-center">
注册页
</view>
<button class="mt-4 w-40 text-center" @click="doRegister">
点击模拟注册
</button>
</view>
</template>
<style lang="scss" scoped>
//
</style>
+33
View File
@@ -0,0 +1,33 @@
<script lang="ts" setup>
defineOptions({
name: 'Index',
})
definePage({
// 使用 type: "home" 属性设置首页,其他页面不需要设置,默认为page
type: 'home',
style: {
// 'custom' 表示开启自定义导航栏,默认 'default'
navigationStyle: 'custom',
navigationBarTitleText: '初始页面',
},
})
console.log('index/index 首页打印了')
function toHome() {
uni.switchTab({
url: '/pages/tabbar/home/home',
})
}
onLoad(() => {
console.log('测试 uni API 自动引入: onLoad')
})
</script>
<template>
<view class="box-border bg-white px-4 pt-safe w-screen h-screen flex flex-col items-center justify-center">
uni-halo
<wd-button @click="toHome()">去首页</wd-button>
</view>
</template>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts" setup>
definePage({
style: {
navigationBarTitleText: '关于',
},
})
</script>
<template>
<view class="mt-10 text-center text-green-500">
关于页面
</view>
</template>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts" setup>
definePage({
style: {
navigationBarTitleText: '分类',
},
})
</script>
<template>
<view class="mt-10 text-center text-green-500">
分类
</view>
</template>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts" setup>
definePage({
style: {
navigationBarTitleText: '图库',
},
})
</script>
<template>
<view class="mt-10 text-center text-green-500">
相册图库
</view>
</template>
+14
View File
@@ -0,0 +1,14 @@
<script lang="ts" setup>
definePage({
style: {
navigationBarTitleText: '首页',
enablePullDownRefresh: true,
},
})
</script>
<template>
<view class="mt-10 text-center text-green-500">
首页
</view>
</template>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts" setup>
definePage({
style: {
navigationBarTitleText: '瞬间',
},
})
</script>
<template>
<view class="mt-10 text-center text-green-500">
瞬间
</view>
</template>