<template>
|
<view class="content">
|
<image class="bg-img" src="../../static/login.jpg"></image>
|
<view class="container">
|
<view class="title">{{ $t("login.title") }}</view>
|
<view class="box">
|
<view class="logo">
|
<image src="../../static/logo.png" mode=""></image>
|
</view>
|
<view class="login">
|
<!-- <view class="item">
|
<view class="left">当前帐套:</view>
|
<picker :range="arrayDataBases" :value="DataBases" @change="DataBasesChange">
|
<view class="right" style="display: flex;align-items: center;">
|
<input type="text" disabled v-model="DataBases" placeholder="请选择当前帐套">
|
<uni-icons type="forward" color="#808080" style="border-left: 1px solid #aaaaaa;padding: 0 8rpx;" size="18"></uni-icons>
|
</view>
|
</picker>
|
</view> -->
|
<view class="item">
|
<view class="left">{{ $t("login.Language") }}:</view>
|
<picker :range="['中文','English']" :value="Language" @change="onLanguageChangeHandler">
|
<view class="right" style="display: flex;align-items: center;">
|
<input type="text" disabled v-model="Language" placeholder="请选择语言">
|
<uni-icons type="forward" color="#808080"
|
style="border-left: 1px solid #aaaaaa;padding: 0 8rpx;" size="18"></uni-icons>
|
</view>
|
</picker>
|
</view>
|
<view class="item">
|
<view class="left">{{ $t("login.CurrentOrganization") }}:</view>
|
<picker :range="arrayOrganization" :value="Organization" @change="OrganizationChange">
|
<view class="right" style="display: flex;align-items: center;">
|
<input type="text" disabled v-model="Organization" placeholder="请选择当前组织">
|
<uni-icons type="forward" color="#808080"
|
style="border-left: 1px solid #aaaaaa;padding: 0 8rpx;" size="18"></uni-icons>
|
</view>
|
</picker>
|
</view>
|
|
<view class="item">
|
<view class="left">{{ $t("login.UserName") }}:</view>
|
<view class="right">
|
<input type="text" v-model="UserName">
|
</view>
|
</view>
|
<view class="item">
|
<view class="left">{{ $t("login.PassWord") }}:</view>
|
<view class="right">
|
<input type="password" v-model="PassWord">
|
</view>
|
</view>
|
<!-- <view class="api">
|
当前服务器地址:{{serverUrl}}
|
</view>
|
<view class="apibtn" @tap="changeApi=true">修改服务器地址</view> -->
|
</view>
|
</view>
|
<uni-popup ref="popup" type="center">
|
<uni-popup-dialog :title="$t('login.ServiceSetting')" mode="input" @confirm="confirmHandler"
|
:before-close="true" @close="close">
|
<view class="popup-content">
|
<input type="text" v-model="serverUrlName" placeholder="请输入服务器名称">
|
</view>
|
</uni-popup-dialog>
|
</uni-popup>
|
|
<view class="btn" @tap="submit">{{$t("login.Login")}}</view>
|
<view class="btn apibtn" @click="openServerSettingHandler">{{$t("login.ServiceSetting")}}</view>
|
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import {
|
setLoginData,
|
setUserInfo
|
} from "@/utils/auth.js";
|
import hFormAlert from '@/components/h-form-alert/h-form-alert.vue';
|
import {
|
CommonUtils
|
} from "../../utils/common";
|
import { getLanguagePackJson } from "../../utils/i18n";
|
import WebSocketServices from "@/utils/WebSocketServices";
|
export default {
|
components: {
|
hFormAlert
|
},
|
mounted() {
|
console.log(uni.getLocale())
|
},
|
data() {
|
return {
|
WebSocketServices,
|
CommonUtils,
|
arrayDataBases: [],
|
DataBases: '',
|
Language: '中文',
|
serverUrlandName: {
|
"浙江智云迈思": 'http://47.96.97.237/API/',
|
"温州海诚光学": 'http://122.228.39.234:7177/API/',
|
"宁波惠康工业": 'http://172.16.72.30:6699/API/',
|
"余姚兴达起动器": 'http://121.37.133.104/API/',
|
"李林俊本地测试": 'http://localhost:8082/LuBaoAPI/',
|
"杭州凯贝奈特": 'http://192.168.50.253:8080/API/',
|
"杭州凯贝奈特外网": 'http://erp.hzcabinet.cn:9090/API/',
|
"翁涛涛本地测试": 'http://localhost:81/API/',
|
"陈镐哲本地测试": 'http://192.168.0.121:81/API/',
|
"陈镐哲本地测试2": 'http://192.168.255.35:81/API/',
|
"张瑞广本地测试": 'http://localhost:8082/API/',
|
"余思杰本地测试": 'http://localhost:8082/LuBaoAPI/',
|
// 小卫内外网
|
"苏州卫智科技-外网": 'http://221.224.60.42:8082/API_WW/',
|
"苏州卫智科技-内网": 'http://172.16.20.233:8082/API_NW/',
|
// 四维尔内外网
|
"宁波四维尔-内网": "http://192.168.0.236:9010/API/",
|
"宁波四维尔-外网": "http://220.189.218.155:9010/API/",
|
// 锦隆
|
"锦隆-智能家居": "http://192.168.1.11/API/",
|
"锦隆-智能家居-外网": "http://61.174.29.234:8880/API/",
|
// 华舟包装
|
"宁波华舟包装": "http://192.168.88.167:8082/API/",
|
"宁波华舟包装-外网": "http://61.164.64.222:8082/API/",
|
},
|
serverUrlName:uni.getStorageSync('serverUrlName') || '浙江智云迈思',
|
|
arrayOrganization: [],
|
Organization: '',
|
HOrgNameList: [],
|
|
HOrgName: '',
|
UserName: '', //admin 001
|
PassWord: '', //123456
|
serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API/',
|
serverUrlCache: '',
|
}
|
},
|
onLoad() {
|
this.ApplyLanguagePack(this.$i18n.locale)
|
},
|
onShow() {
|
var logindata = uni.getStorageSync('loginData') || ''
|
// console.log(logindata)
|
if (logindata) {
|
logindata = JSON.parse(logindata)
|
this.HOrgName = logindata.HOrgName
|
this.Organization = logindata.Organization
|
this.UserName = logindata.HUserNumber
|
this.PassWord = logindata.HPassWord
|
// this.UserName = logindata.UserName
|
// this.PassWord = logindata.PassWord
|
}
|
this.getOrganization()
|
this.getDataBases()
|
},
|
methods: {
|
async ApplyLanguagePack(lang, forceUpdate = false) {
|
// 读取语言包并加载
|
// let languagePack = await getLanguagePackJson(lang)
|
// this.$i18n.setLocaleMessage(lang, languagePack)
|
this.$i18n.locale = lang
|
},
|
onLanguageChangeHandler(e) {
|
//动态获取后端的语言包文件,并将语言包应用到全局
|
console.log('e: ', e.detail.value);
|
if (e.detail.value == 0) {
|
this.Language = '中文'
|
this.ApplyLanguagePack("zh-Hans")
|
// this.$i18n.locale = 'zh-Hans'
|
}
|
if (e.detail.value == 1) {
|
this.Language = 'English'
|
this.ApplyLanguagePack("en")
|
// this.$i18n.locale = 'en'
|
}
|
},
|
async InitOrgination() {
|
console.log("初始化组织")
|
await this.$nextTick(() => {
|
this.Organization = this.arrayOrganization[0]
|
this.HOrgName = this.HOrgNameList[0]
|
|
let org = uni.getStorageSync('Organization')
|
let orgName = uni.getStorageSync('OrganizationID')
|
let orgHas = Array.from(this.arrayOrganization).findIndex((e) => e == org)
|
if (org && (orgHas != -1)) {
|
this.Organization = org
|
this.HOrgName = orgName
|
}
|
})
|
},
|
confirmHandler() {
|
console.log(this.serverUrlName)
|
console.log(this.serverUrlandName[this.serverUrlName])
|
let url = this.serverUrlandName[this.serverUrlName];
|
if (url != undefined) {
|
uni.setStorageSync('serverUrl', url)
|
uni.setStorageSync('serverUrlName', this.serverUrlName)
|
this.serverUrl = url
|
this.changeApi = false
|
this.getOrganization()
|
this.$refs.popup.close()
|
} else {
|
uni.showToast({
|
title: '服务器名称错误请重新输入',
|
icon: 'none',
|
})
|
}
|
},
|
close() {
|
this.$refs.popup.close()
|
},
|
openServerSettingHandler() {
|
this.$refs.popup.open()
|
},
|
getDataBases() {
|
uni.request({
|
url: this.serverUrl + '/Web/GetDataBases',
|
success: (result) => {
|
console.log(result);
|
if (result.count == 1) {
|
for (var i = 0; i < res.data.data.length; i++) {
|
this.arrayDataBases[i] = result.data.data[i].name;
|
}
|
}
|
console.log(this.arrayDataBases);
|
this.$forceUpdate();
|
},
|
fail: (res) => {
|
console.log(res);
|
},
|
});
|
},
|
DataBasesChange(e) {
|
console.log(e.detail.value)
|
this.DataBases = this.arrayDataBases[e.detail.value]
|
uni.setStorageSync('DataBases', this.DataBases);
|
},
|
|
getOrganization() {
|
this.arrayOrganization = []
|
uni.request({
|
url: this.serverUrl + '/Web/GetOrganizations',
|
success: (res) => {
|
console.log(res.data.data);
|
for (var i = 0; i < res.data.data.length; i++) {
|
this.arrayOrganization[i] = res.data.data[i].Name
|
this.HOrgNameList[i] = res.data.data[i].ID
|
}
|
// this.Organization = res.data.data[0].Name
|
// this.HOrgName = res.data.data[0].ID
|
this.$forceUpdate();
|
this.InitOrgination()
|
},
|
fail: (res) => {
|
console.log(res);
|
uni.showToast({
|
title: '获取组织失败,请检查服务器地址',
|
icon: 'none'
|
})
|
},
|
});
|
},
|
OrganizationChange(e) {
|
// console.log(e.detail.value)
|
this.Organization = this.arrayOrganization[e.detail.value]
|
this.HOrgName = this.HOrgNameList[e.detail.value]
|
},
|
submit() {
|
if (!this.Organization) {
|
uni.showToast({
|
title: '请选择组织',
|
icon: 'none'
|
})
|
} else if (!this.UserName) {
|
uni.showToast({
|
title: '请输入用户名',
|
icon: 'none'
|
})
|
} else if (!this.PassWord) {
|
uni.showToast({
|
title: '请输入密码',
|
icon: 'none'
|
})
|
} else {
|
uni.showLoading({
|
title: '登录中...',
|
mask: true
|
})
|
var data = {
|
HUserNumber: this.UserName,
|
HPassWord: this.PassWord,
|
HStockOrgID: this.HOrgName,
|
HStockOrgName: this.Organization
|
}
|
|
// UserName: this.UserName,
|
// PassWord: this.PassWord,
|
// HOrgName: this.HOrgName,
|
// Organization: this.Organization
|
// }
|
uni.setStorageSync('loginData', JSON.stringify(data));
|
uni.request({
|
url: this.serverUrl + 'WEBSController/GetUser_Json',
|
method: 'GET',
|
data: data,
|
success: (res) => {
|
console.log(res)
|
uni.hideLoading()
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
if (res.data.count == 1) {
|
setLoginData(data)
|
setUserInfo(res.data.data[0])
|
uni.setStorageSync('HUserName', res.data.data[0].Czymc);
|
uni.setStorageSync('HBillerID', res.data.data[0].HK3UserID);
|
uni.setStorageSync('SourceFlag', false);
|
uni.setStorageSync('login', "login");
|
uni.setStorageSync('Organization', this.Organization);
|
uni.setStorageSync('OrganizationID', this.HOrgName);
|
//存储部门 职员 仓库 等信息
|
uni.setStorageSync('HDeptID', res.data.data[0].HDeptID); //部门
|
uni.setStorageSync('HDeptName', res.data.data[0].HDeptName);
|
uni.setStorageSync('HEmpID', res.data.data[0].HEmpID); //职员
|
uni.setStorageSync('HEmpName', res.data.data[0].HEmpName);
|
uni.setStorageSync('HSCWHID', res.data.data[0].HSCWHID); //调入仓库
|
uni.setStorageSync('HSCWHName', res.data.data[0].HSCWHName);
|
uni.setStorageSync('HWhID', res.data.data[0].HWhID);//对应仓库
|
uni.setStorageSync('HWhName', res.data.data[0].HWhName);
|
uni.setStorageSync('HWorkCenterID', res.data.data[0].HWorkCenterID);//工作中心
|
uni.setStorageSync('HWorkCenterName', res.data.data[0].HWorkCenterName);
|
uni.setStorageSync('HSecManagerID', res.data.data[0].HSecManagerID); //对应验收
|
uni.setStorageSync('HSecManagerName', res.data.data[0].HSecManagerName);
|
this.CommonUtils.setServerUrl(this.serverUrl)
|
this.WebSocketServices.createConnect(res.data.data[0].Czybm,res.data.data[0].Czymc);
|
uni.reLaunch({
|
url: '/pages/index/index'
|
})
|
}
|
},
|
fail: (res) => {
|
console.log(res);
|
uni.hideLoading()
|
uni.showToast({
|
title: '接口请求失败',
|
icon: 'none'
|
})
|
},
|
});
|
|
// uni.request({
|
// url: this.serverUrl + '/Web/GetUser',
|
// method: 'GET',
|
// data: data,
|
// success: (res) => {
|
// console.log(res)
|
// uni.hideLoading()
|
// uni.showToast({
|
// title: res.data.Message,
|
// icon: 'none'
|
// })
|
// if (res.data.count == 1) {
|
// setLoginData(data)
|
// setUserInfo(res.data.data[0])
|
// uni.setStorageSync('HUserName', res.data.data[0].Czymc);
|
// uni.setStorageSync('HBillerID', res.data.data[0].HK3UserID);
|
// uni.setStorageSync('SourceFlag', false);
|
// uni.setStorageSync('login', "login");
|
// uni.setStorageSync('Organization', this.Organization);
|
// uni.setStorageSync('OrganizationID', this.HOrgName);
|
// this.CommonUtils.setServerUrl(this.serverUrl)
|
// uni.reLaunch({
|
// url: '/pages/index/index'
|
// })
|
// }
|
// },
|
// fail: (res) => {
|
// console.log(res);
|
// uni.hideLoading()
|
// uni.showToast({
|
// title: '接口请求失败',
|
// icon: 'none'
|
// })
|
// },
|
// });
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.bg-img {
|
position: fixed;
|
width: 100%;
|
height: 100%;
|
top: 0;
|
left: 0;
|
z-index: -1;
|
}
|
|
.container {
|
width: 100%;
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
justify-content: center;
|
|
.title {
|
margin-top: 174rpx;
|
font-size: 47rpx;
|
font-weight: bold;
|
color: #FFFFFF;
|
}
|
|
.box {
|
width: 682rpx;
|
position: relative;
|
top: 120rpx;
|
display: flex;
|
justify-content: center;
|
|
.logo {
|
width: 155rpx;
|
height: 155rpx;
|
padding: 10rpx;
|
position: absolute;
|
z-index: 9;
|
background-color: rgba(255, 255, 255, 0.5);
|
border-radius: 100%;
|
|
image {
|
width: 100%;
|
height: 100%;
|
border-radius: 100%;
|
background-color: #f0f3f7;
|
}
|
}
|
|
.login {
|
width: 100%;
|
height: 520rpx;
|
position: absolute;
|
top: 90rpx;
|
z-index: 0;
|
background: #FFFFFF;
|
border-radius: 25rpx 0 25rpx 0;
|
box-shadow: 0 6rpx 24rpx 8rpx rgba(21, 99, 210, 0.14);
|
padding-top: 160rpx;
|
|
.item {
|
display: flex;
|
align-items: center;
|
justify-content: flex-end;
|
margin-right: 38rpx;
|
margin-bottom: 70rpx;
|
|
.left {
|
font-size: 34rpx;
|
font-weight: 400;
|
color: #3C3C3C;
|
}
|
|
.right {
|
width: 441rpx;
|
height: 68rpx;
|
background: #EBEBEB;
|
border-radius: 10rpx;
|
|
input {
|
height: 100%;
|
padding: 0 30rpx;
|
font-size: 30rpx;
|
}
|
}
|
}
|
|
// .api{
|
// margin-left: 30rpx;
|
// font-size: 27rpx;
|
// color: #888;
|
// }
|
// .apibtn{
|
// text-align: center;
|
// font-size: 27rpx;
|
// margin-top: 14rpx;
|
// color: #066fb8;
|
// text-decoration: underline; /* 添加下划线 */
|
// font-style: italic; /* 将字体变为斜体 */
|
// }
|
}
|
}
|
|
.btn {
|
width: 540rpx;
|
height: 92rpx;
|
line-height: 92rpx;
|
margin-top: 940rpx;
|
background: #78CEFD;
|
box-shadow: 0rpx 0rpx 44rpx 7rpx rgba(120, 206, 253, 0.3);
|
border-radius: 10rpx;
|
font-weight: 400;
|
color: #FEFEFE;
|
text-align: center;
|
font-size: 36rpx;
|
}
|
|
.apibtn {
|
margin-top: 50rpx;
|
background: #eec18e;
|
box-shadow: 0rpx 0rpx 44rpx 7rpx rgba(253, 186, 118, 0.3);
|
}
|
}
|
|
.popup-content {
|
box-sizing: border-box;
|
display: flex;
|
flex-direction: column;
|
gap: 30rpx;
|
|
.pop-item {
|
border: #EBEBEB 2rpx solid;
|
border-radius: 10rpx;
|
padding: 14rpx 8rpx;
|
}
|
|
>picker {
|
background-color: #EBEBEB;
|
}
|
}
|
</style>
|