163 lines
3.6 KiB
Vue
163 lines
3.6 KiB
Vue
<template>
|
|
<view class="uni-common-mt container">
|
|
<view class="title">欢迎使用景上运维</view>
|
|
|
|
<!-- 用户名输入框 -->
|
|
<view class="input-group">
|
|
<uni-easyinput v-model="userName" placeholder="请输入用户名"></uni-easyinput>
|
|
</view>
|
|
|
|
<!-- 密码输入框-->
|
|
<view class="input-group">
|
|
<uni-easyinput type="password" v-model="passWord" placeholder="请输入密码"></uni-easyinput>
|
|
</view>
|
|
<!-- 登录按钮 -->
|
|
<button type="primary" class="login-button" @click="login"><span>立即登录</span></button>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getCurrentInstance,
|
|
ref
|
|
} from 'vue';
|
|
import {
|
|
login as reqLogin,
|
|
getUserZone,
|
|
getUserOperation,
|
|
getUserRegion
|
|
} from '../../utils/api';
|
|
export default {
|
|
setup() {
|
|
const userName = ref('');
|
|
const passWord = ref('');
|
|
// 登录功能
|
|
const login = () => {
|
|
if (!userName.value || !passWord.value) {
|
|
uni.showToast({
|
|
title: '请输入完整信息',
|
|
icon: 'none',
|
|
});
|
|
return;
|
|
}
|
|
const param = {
|
|
"username": userName.value,
|
|
"password": passWord.value
|
|
};
|
|
// uni.switchTab({
|
|
// url: '/pages/home/home', // 替换为你的Tab页面路径
|
|
// });
|
|
// return;
|
|
// 使用请求方法
|
|
reqLogin(param).then(
|
|
(res) => {
|
|
if (res.code==200) {
|
|
// 登录成功
|
|
uni.setStorageSync('token', res.data.token);
|
|
uni.setStorageSync('userInfo', res.data.staff);
|
|
uni.setStorageSync('permCodes', res.data.permCodes);
|
|
if(res.data.permCodes.length == 0){
|
|
uni.showToast({
|
|
title: '该用户没有权限',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
else if (res.data.permCodes.includes('maintenance.applet') === -1) {
|
|
uni.showToast({
|
|
title: '该用户没有权限',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
else
|
|
{
|
|
uni.showToast({
|
|
title: '登录成功',
|
|
icon: 'success',
|
|
});
|
|
getUserZone().then(res => {
|
|
if(res.code == 200){
|
|
uni.setStorageSync('userZone', res.data);
|
|
getUserOperation().then(res => {
|
|
if(res.code == 200){
|
|
uni.setStorageSync('userOperation', res.data);
|
|
if(res.data.length > 0){
|
|
uni.setStorageSync('userDefultOperation', res.data[0]);
|
|
}
|
|
// 登录成功后跳转到Home Tab页面
|
|
uni.switchTab({
|
|
url: '/pages/mine/mine', // 替换为你的Tab页面路径
|
|
});
|
|
}
|
|
else
|
|
{
|
|
uni.showToast({
|
|
title: '获取用户区域信息失败',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
uni.showToast({
|
|
title: '获取用户区域信息失败',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
console.log('OK3--user/login登录失败');
|
|
uni.showToast({
|
|
title: '登录失败',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
},
|
|
(error) => {
|
|
console.log('登录异常--user/login');
|
|
uni.showToast({
|
|
title: '登录失败',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
);
|
|
};
|
|
|
|
return {
|
|
userName,
|
|
passWord,
|
|
login
|
|
};
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.container {
|
|
padding: 10px;
|
|
}
|
|
|
|
.container .title {
|
|
font-size: 20px;
|
|
font-weight: 600;
|
|
letter-spacing: 3px;
|
|
margin-top: 20%;
|
|
margin-bottom: 30%;
|
|
}
|
|
|
|
.input-group {
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.input-container {
|
|
display: flex;
|
|
width: 100%;
|
|
}
|
|
|
|
|
|
.login-button {
|
|
margin-top: 80px;
|
|
background-color: #007aff;
|
|
}
|
|
</style> |