InspectionCleaning/pages/login/login.vue

145 lines
3.7 KiB
Vue

<template>
<view class="content">
<view
style="
margin-top: 50rpx;
display: flex;
align-items: center;
padding-right: 50rpx;
"
>
<view style="margin-right: 50rpx">账号</view>
<u-input v-model="phone" border placeholder="账号"></u-input>
</view>
<view
style="
margin-top: 50rpx;
display: flex;
align-items: center;
padding-right: 50rpx;
"
>
<view style="margin-right: 50rpx">账号</view>
<u-input v-model="pwd" border placeholder="密码"></u-input>
</view>
<u-button type="primary" @click="loginFn" style="margin-top: 50rpx"
>登陆</u-button
>
<u-button type="primary" @click="login1Fn" style="margin-top: 50rpx"
>登陆13800451500清洁工</u-button
>
<u-button type="primary" @click="login2Fn" style="margin-top: 50rpx"
>登陆18174010562管理员</u-button
>
</view>
</template>
<script>
import bcrypt from "bcryptjs";
import { loginApi } from "@/api/apiList";
export default {
data() {
return {
phone: "13800451500",
pwd: "123456",
};
},
mounted() {
// console.log("%c%s", "color:red", "mounted--");
uni.hideLoading(); // 关闭 Loading
},
onLoad() {},
methods: {
login1Fn() {
this.phone = "13800451500";
this.pwd = "123456";
const normalTabBar = [
{
pagePath: "/pages/index/planList",
iconPath: "/static/tab/planList.png",
selectedIconPath: "/static/tab/planList-active.png",
text: "计划",
},
{
pagePath: "/pages/index/index",
iconPath: "/static/tab/admin-home.png",
selectedIconPath: "/static/tab/admin-home-acitve.png",
text: "首页",
},
{
pagePath: "/pages/user/index",
iconPath: "/static/tab/admin-my.png",
selectedIconPath: "/static/tab/admin-my-active.png",
text: "设置",
},
];
this.$u.vuex("vuex_tabbar", normalTabBar);
this.loginFn("user");
},
login2Fn() {
this.phone = "18174010562";
this.pwd = "123456";
const adminTabBar = [
{
pagePath: "/pages/adminHome/index",
iconPath: "/static/tab/admin-home.png",
selectedIconPath: "/static/tab/admin-home-acitve.png",
text: "首页",
},
{
pagePath: "/pages/adminNfc/index",
iconPath: "/static/tab/nfc.png",
selectedIconPath: "/static/tab/nfc-active.png",
text: "nfc写入",
},
{
pagePath: "/pages/adminMy/index",
iconPath: "/static/tab/admin-my.png",
selectedIconPath: "/static/tab/admin-my-active.png",
text: "我的",
},
];
this.$u.vuex("vuex_tabbar", adminTabBar);
this.loginFn("admin");
},
async loginFn(type) {
let salt = bcrypt.genSaltSync(12);
let req = {
phone: this.phone,
password: bcrypt.hashSync(this.pwd, salt),
};
const res = await loginApi(req);
if (!res.succeed) {
uni.showToast({
title: res.error || "登录失败",
icon: "none",
});
return;
}
let token = res.data;
uni.setStorageSync("token", "Bearer " + token);
console.log(type, "type--");
if (type === "user") {
uni.switchTab({
url: `/pages/index/planList`,
});
}
if (type === "admin") {
uni.switchTab({
url: `/pages/adminHome/index`,
});
}
},
},
};
</script>
<style lang="scss" scoped>
.content {
height: 100vh; // 确保容器有明确高度
// background-color: skyblue;
overflow: hidden;
padding-bottom: 100rpx;
}
</style>