2025-06-30 10:21:25 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<view class="wrap">
|
|
|
|
|
|
<!-- 首页背景图片 -->
|
|
|
|
|
|
<!-- <image src="/static/aidex/login/login-bg.png" class="logo"></image> -->
|
|
|
|
|
|
<view class="logo">
|
2025-07-11 16:57:09 +08:00
|
|
|
|
<view class="EnglishFont">
|
2025-12-26 11:26:40 +08:00
|
|
|
|
ZETA CLOUD
|
2025-07-11 16:57:09 +08:00
|
|
|
|
</view>
|
2025-06-30 10:21:25 +08:00
|
|
|
|
</view>
|
2026-03-09 14:50:40 +08:00
|
|
|
|
<image src="/static/aidex/login/bg-logo1.png" class="center-logo"></image>
|
2025-06-30 10:21:25 +08:00
|
|
|
|
|
|
|
|
|
|
<!--首页用户密码输入框 -->
|
|
|
|
|
|
|
|
|
|
|
|
<view class="EnglishFont">
|
2025-07-11 16:57:09 +08:00
|
|
|
|
Welcome to Zetatech!
|
2025-06-30 10:21:25 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<u-select v-model="langShow" :list="Langlist" @confirm="changeLanguage"></u-select>
|
|
|
|
|
|
|
2025-12-26 11:26:40 +08:00
|
|
|
|
<!-- <u-radio-group v-model="StationValue" @change="radioGroupChange" active-color="#009C77">
|
2025-06-30 10:21:25 +08:00
|
|
|
|
<u-radio @change="radioChange" v-for="(item, index) in $t('homePage.home.stationType')" :key="index" :name="item.name">
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
</u-radio>
|
2025-12-26 11:26:40 +08:00
|
|
|
|
</u-radio-group> -->
|
2025-06-30 10:21:25 +08:00
|
|
|
|
|
|
|
|
|
|
<view class="user-card">
|
|
|
|
|
|
<view class="list">
|
|
|
|
|
|
|
|
|
|
|
|
<view class="zhanghao">
|
|
|
|
|
|
{{ $t('homePage.home.account') }}
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="list-call-user">
|
|
|
|
|
|
<input class="u-input" type="text" v-model="username" maxlength="32" :placeholder="$t('homePage.home.placeAccount')" />
|
|
|
|
|
|
<image class="u-icon-delete" src="/static/aidex/login/user-delete.png" @click="clearUser" style="z-index: 0;">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view class="zhanghao">
|
|
|
|
|
|
{{ $t('homePage.home.password') }}
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="list-call-password">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="u-input" type="text" v-model="password" maxlength="32" :placeholder="$t('homePage.home.placePassword')" :password="!showPassword" />
|
|
|
|
|
|
<image class="u-icon-right" :src="'/static/aidex/login/eye_' +
|
|
|
|
|
|
(showPassword ? 'open' : 'close') +
|
|
|
|
|
|
'.png'" style="z-index: infinity;" @click="showPass()"></image>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 登录按钮 -->
|
|
|
|
|
|
|
|
|
|
|
|
<view class="button" @click="submit('app')"><text>{{ $t('homePage.home.login') }}</text></view>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<view class="shouquan">
|
|
|
|
|
|
<u-checkbox v-model="checked" shape="circle" active-color="#009C77"></u-checkbox>
|
|
|
|
|
|
<view class="yonghuxieyi">
|
|
|
|
|
|
{{ $t('homePage.home.ydty') }}
|
|
|
|
|
|
<span class="xieyi" @click="openMsg">《{{ $t('homePage.home.yhxy') }}》</span>
|
|
|
|
|
|
{{ $t('homePage.home.and') }}
|
|
|
|
|
|
<span class="xieyi" @click="openMsg">《{{ $t('homePage.home.yszc') }}》</span>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view style="margin-top: 60rpx;display: flex;align-items: center;">
|
|
|
|
|
|
<view class="Line">
|
|
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view style="margin-left:10rpx;margin-right: 10rpx;color: grey;">
|
|
|
|
|
|
{{ $t('homePage.home.lang') }}
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="Line2">
|
|
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view style="margin-top: 10rpx;display: flex;align-items: center;" @click="langShow = true">
|
2025-07-01 16:59:10 +08:00
|
|
|
|
<u-icon name="/static/aidex/images/lang.png" size="50" color="#009c77" style="margin-right: 10rpx;"></u-icon>
|
|
|
|
|
|
<view style="color: #009c77">{{ langValue === 'zh_CN' ? 'ZH' : 'EN' }}</view>
|
2025-06-30 10:21:25 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 新增游客登录按钮 -->
|
|
|
|
|
|
<view class="guest-button" @click="guestLogin">
|
|
|
|
|
|
<text>{{ $t('homePage.home.guestLogin') }}</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<messageModel v-if="showMsg" @submit="agree" @quit="quit" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import {
|
|
|
|
|
|
encryptPsd,
|
|
|
|
|
|
JSEncryptData
|
|
|
|
|
|
} from "@/common/common.js"
|
|
|
|
|
|
import messageModel from './components/dialog.vue'
|
|
|
|
|
|
import config from '@/common/config.js'
|
2026-03-09 15:02:49 +08:00
|
|
|
|
import { Langlist } from '@/common/lang.js'
|
2025-06-30 10:21:25 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
components: { messageModel },
|
|
|
|
|
|
data () {
|
|
|
|
|
|
return {
|
2026-03-09 15:02:49 +08:00
|
|
|
|
Langlist:Langlist,
|
2025-06-30 10:21:25 +08:00
|
|
|
|
phoneNo: "",
|
|
|
|
|
|
username: "",
|
|
|
|
|
|
password: "",
|
|
|
|
|
|
loginType: "app",
|
|
|
|
|
|
langShow: false,
|
|
|
|
|
|
showPassword: false,
|
|
|
|
|
|
remember: true,
|
|
|
|
|
|
isValidCodeLogin: false,
|
|
|
|
|
|
validCode: "",
|
|
|
|
|
|
imgValidCodeSrc: null,
|
|
|
|
|
|
list: [{
|
|
|
|
|
|
name: "用户名",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "手机号",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
current: 0,
|
|
|
|
|
|
activeColor: "#007aff",
|
|
|
|
|
|
show: false,
|
|
|
|
|
|
showDialog: false,
|
|
|
|
|
|
newFileData: {},
|
|
|
|
|
|
newVersion: null,
|
|
|
|
|
|
isShowProgress: false,
|
|
|
|
|
|
progress: 0,
|
|
|
|
|
|
innerVer: null,
|
|
|
|
|
|
versionCode: null,
|
|
|
|
|
|
message: '',
|
|
|
|
|
|
checked: false,
|
|
|
|
|
|
showMsg: false,
|
|
|
|
|
|
Stationlist: this.$t('homePage.home.stationType'),
|
|
|
|
|
|
// u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
|
2025-12-26 11:26:40 +08:00
|
|
|
|
StationValue: 'en_US',
|
2025-06-30 10:21:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad () {
|
|
|
|
|
|
this.username = uni.getStorageSync('username')
|
|
|
|
|
|
this.password = uni.getStorageSync('password')
|
|
|
|
|
|
},
|
|
|
|
|
|
computed: {
|
|
|
|
|
|
userName () {
|
|
|
|
|
|
return this.vuex_username
|
|
|
|
|
|
},
|
|
|
|
|
|
userPassword () {
|
|
|
|
|
|
return this.vuex_password
|
|
|
|
|
|
},
|
|
|
|
|
|
langValue () {
|
|
|
|
|
|
return this.vuex_language
|
|
|
|
|
|
},
|
|
|
|
|
|
language () {
|
|
|
|
|
|
return this.vuex_language
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
language: {
|
|
|
|
|
|
immediate: true,
|
|
|
|
|
|
deep: true,
|
|
|
|
|
|
handler (val) {
|
|
|
|
|
|
if (val === 'zh_CN') {
|
|
|
|
|
|
if (this.StationValue === 'China Station' || this.StationValue === '') {
|
|
|
|
|
|
this.StationValue = '中国站'
|
|
|
|
|
|
} else if (this.StationValue === 'Overseas Station') {
|
|
|
|
|
|
this.StationValue = '海外站'
|
|
|
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
|
|
|
if (this.StationValue === '中国站' || this.StationValue === '') {
|
|
|
|
|
|
this.StationValue = 'China Station'
|
|
|
|
|
|
} else if (this.StationValue === '海外站') {
|
|
|
|
|
|
this.StationValue = 'Overseas Station'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
StationValue: {
|
|
|
|
|
|
immediate: true,
|
|
|
|
|
|
deep: true,
|
|
|
|
|
|
async handler (val) {
|
|
|
|
|
|
// console.log(123,this.vuex_stationValue)
|
|
|
|
|
|
this.StationValue = this.vuex_stationValue
|
|
|
|
|
|
// this.$u.vuex("vuex_stationValue", val);
|
|
|
|
|
|
if (val === '海外站' || val === 'Overseas Station') {
|
|
|
|
|
|
this.$u.http.setConfig({
|
2025-11-07 15:23:08 +08:00
|
|
|
|
// baseUrl: 'http://1.95.170.86:8002/api',
|
|
|
|
|
|
baseUrl: 'https://zetatech.zzkj-cloud.com/api'
|
2025-06-30 10:21:25 +08:00
|
|
|
|
});
|
|
|
|
|
|
} else if (val === '中国站' || val === 'China Station') {
|
|
|
|
|
|
this.$u.http.setConfig({
|
2025-12-26 11:26:40 +08:00
|
|
|
|
// baseUrl: 'http://1.95.170.86:8002/api'
|
|
|
|
|
|
baseUrl: 'https://zetatech.zzkj-cloud.com/api'
|
|
|
|
|
|
// baseUrl: 'https://zzkj-cloud.com/api'
|
2025-06-30 10:21:25 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
const res = await this.$u.api.GetLanguageConfig('zh')
|
|
|
|
|
|
const res2 = await this.$u.api.GetLanguageConfig('en')
|
2026-01-30 09:35:52 +08:00
|
|
|
|
const res3 = await this.$u.api.GetLanguageConfig('fr')
|
|
|
|
|
|
const res4 = await this.$u.api.GetLanguageConfig('es')
|
|
|
|
|
|
const res5 = await this.$u.api.GetLanguageConfig('ar')
|
|
|
|
|
|
const res6 = await this.$u.api.GetLanguageConfig('de')
|
|
|
|
|
|
const res7 = await this.$u.api.GetLanguageConfig('pl')
|
2025-06-30 10:21:25 +08:00
|
|
|
|
const result = JSON.parse(res.data[0].content)
|
|
|
|
|
|
const result2 = JSON.parse(res2.data[0].content)
|
2026-01-30 09:35:52 +08:00
|
|
|
|
const result3 = JSON.parse(res3.data[0].content)
|
|
|
|
|
|
const result4 = JSON.parse(res4.data[0].content)
|
|
|
|
|
|
const result5 = JSON.parse(res5.data[0].content)
|
|
|
|
|
|
const result6 = JSON.parse(res6.data[0].content)
|
|
|
|
|
|
const result7 = JSON.parse(res7.data[0].content)
|
2025-06-30 10:21:25 +08:00
|
|
|
|
this.$i18n.mergeLocaleMessage('en_US', result2) //添加英文
|
|
|
|
|
|
this.$i18n.mergeLocaleMessage('zh_CN', result) //添加中文
|
2026-01-30 09:35:52 +08:00
|
|
|
|
this.$i18n.mergeLocaleMessage('fr_FR', result3) //添加法语
|
|
|
|
|
|
this.$i18n.mergeLocaleMessage('es_ES', result4) //添加西班牙语
|
|
|
|
|
|
this.$i18n.mergeLocaleMessage('ar_EG', result5) //添加阿拉伯语
|
|
|
|
|
|
this.$i18n.mergeLocaleMessage('de_DE', result6) //添加德语
|
|
|
|
|
|
this.$i18n.mergeLocaleMessage('pl_PL', result7) //添加波兰语
|
2025-06-30 10:21:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
radioGroupChange () {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
// 新增游客登录方法
|
|
|
|
|
|
guestLogin() {
|
|
|
|
|
|
const encryptData = encryptPsd('666666')
|
|
|
|
|
|
const publicData = JSEncryptData(
|
|
|
|
|
|
encryptData.iv,
|
|
|
|
|
|
encryptData.key
|
|
|
|
|
|
)
|
|
|
|
|
|
const params = {
|
2025-07-11 16:57:09 +08:00
|
|
|
|
username: 'zzdemo',
|
2025-06-30 10:21:25 +08:00
|
|
|
|
password: encryptData.password,
|
|
|
|
|
|
type: "app",
|
|
|
|
|
|
aesKey: publicData.keyData,
|
|
|
|
|
|
iv: publicData.ivData,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.$u.api
|
|
|
|
|
|
.login(params)
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
this.$u.vuex("vuex_token", res.data.accessToken)
|
|
|
|
|
|
this.getMenuList()
|
|
|
|
|
|
this.$u.vuex("vuex_iv", encryptData.iv)
|
|
|
|
|
|
this.$u.vuex("vuex_psdkey", encryptData.key)
|
|
|
|
|
|
this.getAllDict()
|
|
|
|
|
|
this.getStationByUser()
|
|
|
|
|
|
this.getProvinceStation()
|
|
|
|
|
|
uni.setStorageSync('username', this.username)
|
|
|
|
|
|
uni.setStorageSync('password', this.password)
|
|
|
|
|
|
const timer = setTimeout(() => {
|
|
|
|
|
|
uni.reLaunch({
|
|
|
|
|
|
url: "/pages/tabbar/dashboard"
|
|
|
|
|
|
})
|
|
|
|
|
|
clearTimeout(timer)
|
|
|
|
|
|
}, 500)
|
|
|
|
|
|
if (res.isValidCodeLogin) {
|
|
|
|
|
|
this.isValidCodeLogin = true
|
|
|
|
|
|
this.refreshImgValidCode()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
openMsg () {
|
|
|
|
|
|
this.showMsg = true
|
|
|
|
|
|
},
|
|
|
|
|
|
agree () {
|
|
|
|
|
|
this.checked = true
|
|
|
|
|
|
this.showMsg = false
|
|
|
|
|
|
},
|
|
|
|
|
|
quit () {
|
|
|
|
|
|
this.showMsg = false
|
|
|
|
|
|
this.checked = false
|
|
|
|
|
|
},
|
|
|
|
|
|
changeLanguage (val) {
|
2026-03-09 15:02:49 +08:00
|
|
|
|
this.$u.vuex("vuex_language", val[0].prop);
|
|
|
|
|
|
this.$i18n.locale = val[0].prop
|
2025-06-30 10:21:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
uploadFile () {
|
|
|
|
|
|
this.isShowProgress = true;
|
|
|
|
|
|
const downloadTask = uni.downloadFile({
|
|
|
|
|
|
|
|
|
|
|
|
url: this.newFileData.url,
|
|
|
|
|
|
success: (downloadResult) => {
|
|
|
|
|
|
if (downloadResult.statusCode === 200) {
|
|
|
|
|
|
plus.runtime.openFile(downloadResult.tempFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
downloadTask.onProgressUpdate((res) => {
|
|
|
|
|
|
if (res.progress > 0) {
|
|
|
|
|
|
this.isShowProgress = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.progress = res.progress;
|
|
|
|
|
|
if (res.totalBytesWritten === res.totalBytesExpectedToWrite) {
|
|
|
|
|
|
this.isShowProgress = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
showPass () {
|
|
|
|
|
|
this.showPassword = !this.showPassword
|
|
|
|
|
|
},
|
|
|
|
|
|
zfbLogin () {
|
|
|
|
|
|
this.loginType = "currentPhone"
|
|
|
|
|
|
},
|
|
|
|
|
|
qiehuanLogin () {
|
|
|
|
|
|
this.loginType = "other"
|
|
|
|
|
|
},
|
|
|
|
|
|
onClickItem (index) {
|
|
|
|
|
|
this.current = index
|
|
|
|
|
|
},
|
|
|
|
|
|
refreshImgValidCode (e) {
|
|
|
|
|
|
if (this.vuex_token == "") {
|
|
|
|
|
|
this.$u.api.index().then((res) => {
|
|
|
|
|
|
this.imgValidCodeSrc =
|
|
|
|
|
|
this.vuex_config.baseUrl +
|
|
|
|
|
|
"/validCode?__sid=" +
|
|
|
|
|
|
res.sessionid +
|
|
|
|
|
|
"&t=" +
|
|
|
|
|
|
new Date().getTime()
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.imgValidCodeSrc =
|
|
|
|
|
|
this.vuex_config.baseUrl +
|
|
|
|
|
|
"/validCode?__sid=" +
|
|
|
|
|
|
this.vuex_token +
|
|
|
|
|
|
"&t=" +
|
|
|
|
|
|
new Date().getTime()
|
|
|
|
|
|
}
|
|
|
|
|
|
this.validCode = ""
|
|
|
|
|
|
},
|
|
|
|
|
|
nextStep () {
|
|
|
|
|
|
//验证码登录下一步
|
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
|
title: "正在获取验证码",
|
|
|
|
|
|
mask: true,
|
|
|
|
|
|
})
|
|
|
|
|
|
this.$u.api
|
|
|
|
|
|
.sendCode({
|
|
|
|
|
|
phoneNo: this.phoneNo,
|
|
|
|
|
|
validCodeType: "2",
|
|
|
|
|
|
})
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
if (res.code == "200") {
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
uni.hideLoading()
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/sys/login/code?phoneNo=" + this.phoneNo,
|
|
|
|
|
|
})
|
|
|
|
|
|
}, 500)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$u.toast(res.msg)
|
|
|
|
|
|
uni.hideLoading()
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/sys/login/code?phoneNo=" + this.phoneNo,
|
|
|
|
|
|
})
|
|
|
|
|
|
}, 500)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
submit (loginType) {
|
|
|
|
|
|
if (this.checked) {
|
|
|
|
|
|
this.$u.vuex("vuex_username", this.username)
|
|
|
|
|
|
this.$u.vuex("vuex_password", this.password)
|
|
|
|
|
|
if (this.username.length == 0) {
|
|
|
|
|
|
this.$u.toast(this.$t('homePage.home.placeAccount'))
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.password.length == 0) {
|
|
|
|
|
|
this.$u.toast(this.$t('homePage.home.placePassword'))
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
const encryptData = encryptPsd(this.password)
|
|
|
|
|
|
const publicData = JSEncryptData(
|
|
|
|
|
|
encryptData.iv,
|
|
|
|
|
|
encryptData.key
|
|
|
|
|
|
)
|
|
|
|
|
|
const params = {
|
|
|
|
|
|
username: this.username.trim(),
|
|
|
|
|
|
password: encryptData.password,
|
|
|
|
|
|
type: "app",
|
|
|
|
|
|
aesKey: publicData.keyData,
|
|
|
|
|
|
iv: publicData.ivData,
|
|
|
|
|
|
}
|
|
|
|
|
|
this.$u.api
|
|
|
|
|
|
.login(params)
|
2026-03-09 15:05:23 +08:00
|
|
|
|
.then((res) => {
|
2025-06-30 10:21:25 +08:00
|
|
|
|
this.$u.vuex("vuex_token", res.data.accessToken)
|
|
|
|
|
|
this.getMenuList()
|
|
|
|
|
|
this.$u.vuex("vuex_iv", encryptData.iv)
|
|
|
|
|
|
this.$u.vuex("vuex_psdkey", encryptData.key)
|
|
|
|
|
|
this.getAllDict()
|
|
|
|
|
|
this.getStationByUser()
|
|
|
|
|
|
this.getProvinceStation()
|
|
|
|
|
|
uni.setStorageSync('username', this.username)
|
|
|
|
|
|
uni.setStorageSync('password', this.password)
|
|
|
|
|
|
const timer = setTimeout(() => {
|
|
|
|
|
|
uni.reLaunch({
|
|
|
|
|
|
url: "/pages/tabbar/dashboard"
|
|
|
|
|
|
})
|
|
|
|
|
|
clearTimeout(timer)
|
|
|
|
|
|
}, 500)
|
|
|
|
|
|
if (res.isValidCodeLogin) {
|
|
|
|
|
|
this.isValidCodeLogin = true
|
|
|
|
|
|
this.refreshImgValidCode()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$u.toast(this.$t('homePage.home.checkFirst'))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
getAllDict () {
|
|
|
|
|
|
this.$u.api.getAllDict().then((res) => {
|
|
|
|
|
|
const {
|
|
|
|
|
|
data
|
|
|
|
|
|
} = res
|
|
|
|
|
|
const dicts = {}
|
|
|
|
|
|
data.forEach((element) => {
|
|
|
|
|
|
dicts[element.type] = element.list
|
|
|
|
|
|
})
|
|
|
|
|
|
this.$u.vuex("vuex_dicts", dicts)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
getMenuList () {
|
|
|
|
|
|
this.$u.api.getMenuList().then((res) => {
|
|
|
|
|
|
this.$u.vuex("vuex_menu", res.data.menuList)
|
|
|
|
|
|
this.$u.vuex("vuex_user", res.data)
|
|
|
|
|
|
this.$u.vuex("vuex_permissions", res.data.powerList)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
getStationByUser () {
|
|
|
|
|
|
this.$u.api.getStationByUser().then((res) => {
|
|
|
|
|
|
this.$u.vuex("vuex_station", res.data)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
getProvinceStation () {
|
|
|
|
|
|
this.$u.api.alarm.GetNewStationlist().then((res) => {
|
|
|
|
|
|
this.$u.vuex("vuex_provinceStation", res.data.list)
|
|
|
|
|
|
this.$u.vuex("vuex_currentStation", res.data.list[0].list[0].list[0])
|
2025-12-26 11:26:40 +08:00
|
|
|
|
this.$u.vuex("vuex_inverterFlag", res.data.list[0].list[0].list[0].inverterFlag)
|
2025-06-30 10:21:25 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
wxLogin (res) {
|
|
|
|
|
|
this.$u.toast(this.$t('homePage.home.noLogin'))
|
|
|
|
|
|
},
|
|
|
|
|
|
qqLogin () {
|
|
|
|
|
|
this.$u.toast("QQ 登录")
|
|
|
|
|
|
},
|
|
|
|
|
|
// 清空用户输入框
|
|
|
|
|
|
clearUser () {
|
|
|
|
|
|
this.username = ""
|
|
|
|
|
|
},
|
|
|
|
|
|
// 打开模态框
|
|
|
|
|
|
mobileReg () {
|
|
|
|
|
|
this.show = true
|
|
|
|
|
|
},
|
|
|
|
|
|
// 关闭模态框
|
|
|
|
|
|
closeCard () {
|
|
|
|
|
|
this.show = false
|
|
|
|
|
|
},
|
|
|
|
|
|
async radioChange (val) {
|
|
|
|
|
|
this.$u.vuex("vuex_stationValue", val)
|
|
|
|
|
|
console.log(val);
|
|
|
|
|
|
// if (val === '海外站' || )
|
|
|
|
|
|
// this.stationType = this.$t('homePage.home.stationType')[0].name
|
|
|
|
|
|
|
|
|
|
|
|
// config.baseUrl = 'http://192.168.100.244/api'
|
|
|
|
|
|
// 更新请求拦截器中的baseUrl配置
|
|
|
|
|
|
// this.$u.http.setConfig({
|
|
|
|
|
|
// baseUrl: 'http://192.168.100.244/api'
|
|
|
|
|
|
// });
|
|
|
|
|
|
// console.log(val, config);
|
|
|
|
|
|
// const res = await this.$u.api.GetLanguageConfig('zh')
|
|
|
|
|
|
// const res2 = await this.$u.api.GetLanguageConfig('en')
|
|
|
|
|
|
// const result = JSON.parse(res.data[0].content)
|
|
|
|
|
|
// const result2 = JSON.parse(res2.data[0].content)
|
|
|
|
|
|
// this.$i18n.mergeLocaleMessage('en_US', result2) //添加英文
|
|
|
|
|
|
// this.$i18n.mergeLocaleMessage('zh_CN', result) //添加中文
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
|
@import "index.scss";
|
|
|
|
|
|
|
|
|
|
|
|
.progress-container {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
z-index: 99;
|
|
|
|
|
|
background: rgba(0, 0, 0, 0.2);
|
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
.progress-box {
|
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
|
padding: 30rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.text {
|
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.Line {
|
|
|
|
|
|
width: 80rpx;
|
|
|
|
|
|
height: 1px;
|
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
|
-244deg,
|
|
|
|
|
|
rgba(165, 165, 165, 0) 0%,
|
|
|
|
|
|
rgba(165, 165, 165, 1) 50%
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.Line2 {
|
|
|
|
|
|
width: 80rpx;
|
|
|
|
|
|
height: 1px;
|
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
|
244deg,
|
|
|
|
|
|
rgba(165, 165, 165, 0) 0%,
|
|
|
|
|
|
rgba(165, 165, 165, 1) 50%
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.shouquan {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-top: 10rpx;
|
|
|
|
|
|
padding: 0rpx 75rpx 0px 75rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.yonghuxieyi {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
color: #383f43;
|
|
|
|
|
|
|
|
|
|
|
|
.xieyi {
|
|
|
|
|
|
color: #009c77;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 新增游客登录按钮样式 */
|
|
|
|
|
|
.guest-button {
|
|
|
|
|
|
width: 600rpx;
|
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
|
line-height: 80rpx;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
margin: 30rpx auto 0;
|
|
|
|
|
|
color: #009C77;
|
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|