474 lines
11 KiB
Vue
474 lines
11 KiB
Vue
<template>
|
||
<view
|
||
style="background: url(../../static/bg-login.png) no-repeat;background-size:100% auto;height:100vh;background-color: #058cf5; position: fixed; width: 100%;">
|
||
<!-- <view class="bottom-img">
|
||
<image src="../../static/hg-bottom.png" mode=""></image>
|
||
</view> -->
|
||
<view class="login-box">
|
||
<view class="login-title">
|
||
<view class="login-logo">
|
||
<image src="../../static/image/logo.png" mode=""></image>
|
||
</view>
|
||
<view class="login-text">
|
||
<text>欢迎使用,</text>
|
||
<text>交通运输安全生产综合管理平台!</text>
|
||
</view>
|
||
</view>
|
||
<view class="login-content">
|
||
<view class="input-row">
|
||
<view class="title">
|
||
<text class="">登录帐号</text>
|
||
</view>
|
||
<view class="m-input-view">
|
||
<input v-model="userName" class="m-input" placeholder-style="color: #5caceb;font-size: 34upx;"
|
||
placeholder="请输入身份证号..." />
|
||
</view>
|
||
</view>
|
||
<view class="input-row mt30">
|
||
<view class="title">
|
||
<text class="">密码</text>
|
||
</view>
|
||
<view class="m-input-view">
|
||
<input v-model="userPwd" class="m-input" placeholder-style="color: #5caceb;font-size: 34upx;"
|
||
password type="text" placeholder="请输入密码..." />
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="btn-row">
|
||
<button class="cu-btn bg-login margin-tb-sm lg" @click="$noMultipleClicks(login)">登 录</button>
|
||
</view>
|
||
<view class="bar-forget">
|
||
<!-- <navigator class="title" url="/pages/login/forget/forget">
|
||
忘记密码
|
||
</navigator> -->
|
||
<navigator class="title" url="/pages/login/register/index">
|
||
从业人员注册
|
||
</navigator>
|
||
</view>
|
||
</view>
|
||
<!-- <view
|
||
style="width: 100%;color: #fff;position: absolute;left: 50%;transform: translateX(-50%);bottom: 50upx;display: flex;justify-content: center;align-items: center">
|
||
<radio-group>
|
||
<radio :checked="radio === '1'" @click="radioChange"></radio>
|
||
</radio-group>
|
||
<view style="margin-left: 20upx;display: flex">
|
||
<text>我已阅读并同意</text>
|
||
<navigator style="color: #041d8c" url="/pages/my/agreement/agreement">
|
||
《服务协议》
|
||
</navigator>
|
||
<text>和</text>
|
||
<navigator style="color: #041d8c" url="/pages/my/privacy/privacy">
|
||
《隐私政策》
|
||
</navigator>
|
||
</view>
|
||
</view>-->
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {
|
||
basePath,
|
||
setloginUserId,
|
||
setCorpinfoId,
|
||
setloginUser,
|
||
setDeptId,
|
||
setDeptLevel,
|
||
adminPath,
|
||
corpinfoId,
|
||
setBasePath,
|
||
setIsRest,
|
||
isRest,
|
||
loginUser,
|
||
setPremission,
|
||
publicKey
|
||
} from '@/common/tool.js';
|
||
import JSEncrypt from '../../static/js/jsencrypt.min'
|
||
export default {
|
||
data() {
|
||
return {
|
||
noClick: true,
|
||
userName: '',
|
||
userPwd: '',
|
||
radio: ''
|
||
}
|
||
},
|
||
async onLoad() {
|
||
this.getRemember()
|
||
this.getLoginUser()
|
||
// this.getLoginUser()
|
||
//this.getUrlVersion();
|
||
},
|
||
methods: {
|
||
getRemember() {
|
||
uni.getStorage({
|
||
key: 'remember',
|
||
success: async (res) => {
|
||
if (res.data && res.data.username) {
|
||
this.userName = res.data.username
|
||
this.userPwd = res.data.userPwd
|
||
}
|
||
}
|
||
});
|
||
},
|
||
getLoginUser() {
|
||
uni.getStorage({
|
||
key: 'USER',
|
||
success: async (res) => {
|
||
if (res.data && res.data.USER_ID) {
|
||
|
||
setloginUserId(res.data.USER_ID);
|
||
setCorpinfoId(res.data.CORPINFO_ID);
|
||
setDeptId(res.data.DEPARTMENT_ID);
|
||
setDeptLevel(res.data.DEPARTMENT_LEVEL);
|
||
|
||
setloginUser(res.data);
|
||
if (loginUser.CORPINFO_ID) {
|
||
// 查看是否离岗
|
||
this.handleLoginCheck(res.data.USER_ID).then(() => {
|
||
uni.navigateTo({
|
||
url: '/pages/index/index',
|
||
});
|
||
})
|
||
} else {
|
||
uni.navigateTo({
|
||
url: '/pages/index/index',
|
||
});
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
handleLoginCheck(USER_ID) {
|
||
return new Promise((resolve, reject) => {
|
||
uni.request({
|
||
url: basePath + '/app/offduty/isRest',
|
||
method: 'POST',
|
||
dataType: 'json',
|
||
header: {
|
||
'Content-type': 'application/x-www-form-urlencoded'
|
||
},
|
||
data: {
|
||
CORPINFO_ID: corpinfoId,
|
||
USER_ID: loginUser.USER_ID,
|
||
},
|
||
success: (res1) => {
|
||
if ("success" == res1.data.result) {
|
||
if (res1.data.ISREST != null) {
|
||
setIsRest(res1.data.ISREST);
|
||
} else {
|
||
setIsRest(res.data.ISREST);
|
||
}
|
||
resolve()
|
||
} else if ("usercorperror" == res1.data.result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "您的企业已停用,请联系管理员",
|
||
duration: 2000
|
||
});
|
||
reject()
|
||
} else if ("userUSEerror" == res1.data.result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "您的企业已到使用期限,请联系管理员",
|
||
duration: 2000
|
||
});
|
||
reject()
|
||
}
|
||
|
||
|
||
},
|
||
fail: (res2) => {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "服务器正在升级,请稍后再试。",
|
||
duration: 2000
|
||
});
|
||
}
|
||
});
|
||
})
|
||
},
|
||
radioChange() {
|
||
if (this.radio) this.radio = ''
|
||
else this.radio = '1'
|
||
},
|
||
|
||
userNameinp(e) {
|
||
this.userName = e.detail.value
|
||
},
|
||
userPwdinp(e) {
|
||
this.userPwd = e.detail.value
|
||
},
|
||
login() {
|
||
/*if (this.radio !== '1') {
|
||
uni.showToast({
|
||
title: '请先阅读并同意《服务协议》和《隐私政策》',
|
||
icon: 'none'
|
||
})
|
||
return;
|
||
}*/
|
||
var _this = this;
|
||
var userName = _this.userName;
|
||
var userPwd = _this.userPwd;
|
||
var jsencrypt = new JSEncrypt()
|
||
jsencrypt.setPublicKey(publicKey)
|
||
const keydataVal = jsencrypt.encrypt('zcloudchina' + userName + ',zy,' + userPwd)
|
||
// var keydataVal = 'zcloudchina' + userName + ',zy,' + userPwd;
|
||
|
||
|
||
var myreg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
|
||
|
||
if (userName == '') {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '请输入用户名',
|
||
duration: 2000
|
||
});
|
||
return;
|
||
} else if (userName.length != 11 && !myreg.test(userName)) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '身份证号格式不正确',
|
||
duration: 2000
|
||
});
|
||
return;
|
||
}
|
||
if (userPwd == '') {
|
||
uni.showToast({
|
||
title: '密码不能为空',
|
||
icon: 'none',
|
||
duration: 2000
|
||
});
|
||
return;
|
||
}
|
||
|
||
|
||
uni.showLoading({
|
||
mask: true,
|
||
title: '请稍候'
|
||
})
|
||
uni.request({
|
||
url: basePath + '/admin/checkPractitioner',
|
||
method: 'POST',
|
||
dataType: 'json',
|
||
header: {
|
||
'Content-type': 'application/x-www-form-urlencoded'
|
||
},
|
||
data: {
|
||
KEYDATA: keydataVal,
|
||
SOURCE: '2',
|
||
tm: new Date().getTime(),
|
||
},
|
||
success: (res) => {
|
||
var result = res.data.result;
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: res.data.msg,
|
||
duration: 2000
|
||
});
|
||
if ("success" == result) {
|
||
setloginUserId(res.data.USER_ID);
|
||
setCorpinfoId(res.data.CORPINFO_ID);
|
||
setDeptId(res.data.DEPARTMENT_ID);
|
||
setDeptLevel(res.data.DEPARTMENT_LEVEL);
|
||
setIsRest(res.data.ISREST);
|
||
setloginUser(res.data);
|
||
uni.setStorage({
|
||
key: 'USER',
|
||
data: res.data
|
||
});
|
||
const remember = {}
|
||
remember.username = userName
|
||
remember.userPwd = userPwd
|
||
uni.setStorage({
|
||
key: 'remember',
|
||
data: remember
|
||
});
|
||
uni.hideLoading();
|
||
uni.showToast({
|
||
title: "登录成功",
|
||
duration: 1000
|
||
});
|
||
uni.redirectTo({
|
||
url: '/pages/index/index'
|
||
});
|
||
} else if ("usererror" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "用户名或密码有误",
|
||
duration: 2000
|
||
});
|
||
} else if ("error" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "缺少参数",
|
||
duration: 2000
|
||
});
|
||
} else if ("invalid" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "账号已被冻结,请联系管理员",
|
||
duration: 2000
|
||
});
|
||
} else if ("usercorperror" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: res.data.msg,
|
||
duration: 2000
|
||
});
|
||
} else if ("userUSEerror" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: res.data.msg,
|
||
duration: 2000
|
||
});
|
||
} else if ("maintainDeactivateError" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "企业处于维护停用阶段,暂时无法登录",
|
||
duration: 2000
|
||
});
|
||
} else if ("exception" == result) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: res.data.exception,
|
||
duration: 2000
|
||
});
|
||
}
|
||
|
||
},
|
||
fail: (res) => {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "服务器正在升级,请稍后再试。",
|
||
duration: 2000
|
||
});
|
||
}
|
||
});
|
||
},
|
||
getUrlVersion() {
|
||
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
|
||
var _this = this;
|
||
// 路径
|
||
uni.request({
|
||
url: basePath + '/app/versionurl/goUrlByVersion',
|
||
method: 'POST',
|
||
dataType: 'json',
|
||
header: {
|
||
'Content-type': 'application/x-www-form-urlencoded'
|
||
},
|
||
data: {
|
||
VERSION: inf.version,
|
||
},
|
||
success: (res) => {
|
||
if (res.data.pd != null) {
|
||
console.info(inf.version);
|
||
setBasePath(res.data.pd.URL);
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: "服务器正在升级,请稍后再试。",
|
||
duration: 2000
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
.bottom-img {
|
||
height: 298upx;
|
||
width: 100%;
|
||
position: fixed;
|
||
bottom: 0;
|
||
}
|
||
|
||
.bottom-img image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.bg-login {
|
||
background-color: #72b0ed;
|
||
color: #1f63ae;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.btn-row {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.login-box {
|
||
padding: 105upx 55upx;
|
||
}
|
||
|
||
.login-img {
|
||
width: 90upx;
|
||
height: 90upx;
|
||
margin-bottom: 50upx;
|
||
}
|
||
|
||
.login-img image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.login-title {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 46upx;
|
||
}
|
||
|
||
.login-logo {
|
||
margin-right: 26upx;
|
||
margin-top: 10upx;
|
||
}
|
||
|
||
.login-logo image {
|
||
width: 100upx;
|
||
height: 100upx;
|
||
}
|
||
|
||
.login-text {
|
||
color: #fff;
|
||
font-size: 44upx;
|
||
font-weight: 500;
|
||
display: flex;
|
||
flex-direction: column;
|
||
line-height: 1.6;
|
||
}
|
||
|
||
.login-content {
|
||
margin-top: 100upx;
|
||
margin-bottom: 50upx;
|
||
}
|
||
|
||
.input-row .title {
|
||
color: #8ee6ff;
|
||
margin-top: 10upx;
|
||
right: 0;
|
||
}
|
||
|
||
.bar-forget {
|
||
display: flex;
|
||
padding-top: 30upx;
|
||
justify-content: space-between;
|
||
color: #8ee6ff;
|
||
}
|
||
|
||
.m-input-view {}
|
||
|
||
.m-input-view .m-input {
|
||
height: 80upx;
|
||
line-height: 1;
|
||
color: #fff;
|
||
font-size: 40upx;
|
||
border-bottom: 1upx solid #62abf7;
|
||
}
|
||
</style>
|