This commit is contained in:
hrx 2025-10-29 17:23:44 +08:00
parent 02d1371928
commit 057f564f1d
5 changed files with 793 additions and 731 deletions

View File

@ -35,10 +35,10 @@
<!-- 用户区域登录/注册按钮和用户下拉菜单 -->
<div class="user-area">
<!-- 中英互译 -->
<div class="language-toggle" @click="toggleLanguage">
<!-- <div class="language-toggle" @click="toggleLanguage">
<span class="iconfont icon-ditu_diqiu_o"></span>
<span class="language-text">{{ language === 'zh' ? 'English' : '中文' }}</span>
</div>
</div> -->
<!-- AI -->
<i class="iconfont icon-AIzhushou functions" @click="handleAIClick"></i>
<!-- 客服 -->

View File

@ -534,7 +534,7 @@ export default {
&.active {
background-color: #e6f7ff;
border-color: #1890ff;
border-color: #1890ff; /* 激活状态下的边框颜色 */
color: #1890ff;
}
}
@ -552,4 +552,5 @@ export default {
flex-direction: column;
}
</style>

View File

@ -68,7 +68,7 @@
</span>
<el-input ref="vcode" v-model="loginForm.vcode" placeholder="请输入验证码" name="vcode" type="text" />
</el-form-item>
<el-button type="primary" :disabled="isDisabled" size="mini" style="height:50px;margin-left:10px" @click="getCode">{{SendCode_text}}</el-button>
<el-button type="primary" :disabled="isDisabled" size="mini" style="height: 50px; margin-left: 10px" @click="getCode">{{SendCode_text}}</el-button>
</div>
<el-button type="text" @click="resetPassword()" style="margin-left: 80%;margin-top: -15px">忘记密码?</el-button>
@ -719,11 +719,11 @@ $light_gray: #eee;
font-size: 24px;
margin-top: 100px !important;
}
.a24Style {
//display: flex;
//justify-content: flex-end;
//align-items: center;
}
// .a24Style {
// //display: flex;
// //justify-content: flex-end;
// //align-items: center;
// }
.userInput .el-input__inner {
background-color: white;
}

View File

@ -1,15 +1,13 @@
<template>
<div @keyup.enter.native="handleLogin('loginForm')" class="main-box" style="position: relative">
<div class="ad-dialog" v-if="adShow">
<div
class="showAdImg"
style=""></div>
<div class="showAdImg" style=""></div>
</div>
<!-- 登录-->
<img src="../../assets/kyy/login-bg.png" alt="">
<img @click="goHomePage" style="cursor: pointer" class="logo-top1" :src="logoImg" alt="" v-if="isLogo&&isShow">
<img @click="goHomePage" style="cursor: pointer" class="logo-top1" :src="logoImg" alt="" v-if="isLogo && isShow">
<img @click="goHomePage" style="cursor: pointer" class="logo-top" src="../../assets/kyy/LOGONew.png" alt=""
v-else-if="isShow">
v-else-if="isShow">
<!-- <div-->
<!-- style="position:absolute;top:15px;cursor: pointer;left: 15px;height: 100px!important;width: 250px!important;display: flex"-->
@ -21,75 +19,68 @@
<!-- style="margin-left: 8px;display:flex;justify-content:center;align-items:center;font-weight:700;color:#0052a4;margin-top: 53px">opencomputing</span>-->
<!-- </div>-->
<div class="login-form" v-if="showWxCode"
style="display:flex;align-items:center;justify-content:center;"
id="login_containera"></div>
<div class="login-form" v-if="showWxCode" style="display:flex;align-items:center;justify-content:center;"
id="login_containera"></div>
<div v-else class="login-form">
<!-- <div style="width: 535px;height: 85px;">-->
<div style="width: 100% ;height: 85px;" v-if="false">
<before-login
style="margin-top: 15px;width: 100%!important;"
v-if="isShowSaleProduct"></before-login>
<before-login style="margin-top: 15px;width: 100%!important;" v-if="isShowSaleProduct"></before-login>
</div>
<!-- </div>-->
<div v-if="true" class="main-content-box"
style="display: flex;flex-direction: column;justify-content: center;align-items: center;margin-top: 25px">
style="display: flex;flex-direction: column;justify-content: center;align-items: center;margin-top: 25px">
<span class="login-text">登录</span>
<div class="login-container login-form-style">
<div class="login-type">
<span :class="{activeType:loginType==='0'}" @click="changeLoginType('0')">账号登录</span>
<span :class="{activeType:loginType==='1'}" @click="changeLoginType('1')">手机号登录</span>
<span :class="{ activeType: loginType === '0' }" @click="changeLoginType('0')">账号登录</span>
<span :class="{ activeType: loginType === '1' }" @click="changeLoginType('1')">手机号登录</span>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<!-- <el-tab-pane label="" name="first"> -->
<el-form ref="loginForm" :model="loginForm" :rules="rules" class="login-form-l" autocomplete="on"
label-position="left">
label-position="left">
<el-form-item prop="username" style="background-color: white; border: 1px solid #d9d9d9;width: 300px;">
<div class="user-input">
<span class="svg-container icon-box">
<!-- <svg-icon icon-class="Icon-user2icon" />-->
<img src="../../assets/kyy/用户.svg" alt="">
</span>
<el-input id="uesr-name-id" ref="username" v-model="loginForm.username"
placeholder="请输入用户名/手机号" name="username" type="text" class="userInput"/>
<el-input id="uesr-name-id" ref="username" v-model="loginForm.username" placeholder="请输入用户名/手机号"
name="username" type="text" class="userInput" />
</div>
</el-form-item>
<el-tooltip v-if="loginType==='0'" v-model="capsTooltip" style="margin-bottom: 7px"
content="Caps lock is On" placement="right"
manual>
<el-tooltip v-if="loginType === '0'" v-model="capsTooltip" style="margin-bottom: 7px"
content="Caps lock is On" placement="right" manual>
<el-form-item prop="password" class="password-mobile"
style="background-color: white; border: 1px solid #d9d9d9;width: 300px;">
style="background-color: white; border: 1px solid #d9d9d9;width: 300px;">
<div class="user-input">
<span class="svg-container icon-box" style="padding: 2px;color: #9699a0;">
<!-- <svg-icon icon-class="password" />-->
<img src="./svg/密码.svg" style="color: #6c7079" alt="">
</span>
<el-input id="passwordId" :key="passwordType" ref="password" v-model="loginForm.password"
:type="passwordType" placeholder="请输入密码" name="password"
@keyup.native="checkCapslock" @blur="capsTooltip = false"
@keyup.enter.native="handleLogin"/>
:type="passwordType" placeholder="请输入密码" name="password" @keyup.native="checkCapslock"
@blur="capsTooltip = false" @keyup.enter.native="handleLogin" />
<span class="show-pwd" @click="showPwd">
<svg-icon style="margin-right: 10px;cursor: pointer" :icon-class="
passwordType === 'password' ? 'eye' : 'eye-open'
"/>
<svg-icon style="margin-right: 10px;cursor: pointer" :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'
" />
</span>
</div>
</el-form-item>
</el-tooltip>
<div v-else style="display:flex;margin-top:20px;"
v-show="loginForm.username!=='admin'&&loginForm.password!=='admin'">
v-show="loginForm.username !== 'admin' && loginForm.password !== 'admin'">
<el-form-item prop="" class="invitecode" style="background-color: white; border: 1px solid #d9d9d9;">
<div class="user-input">
<span class="svg-container icon-box">
<img src="./svg/密码.svg" style="color: #6c7079;width: 19px;height: 17px;" alt="">
<img src="./svg/密码.svg" style="color: #6c7079;width: 19px;height: 17px;" alt="">
</span>
<el-input ref="vcode" v-model="loginForm.vcode" placeholder="请输入验证码" name="vcode"
type="text"/>
<el-input ref="vcode" v-model="loginForm.vcode" placeholder="请输入验证码" name="vcode" type="text" />
</div>
</el-form-item>
<span :disabled="isDisabled" class="getCodeStyleNew" style="height:40px;margin-left:10px"
@click="getCode">{{ SendCode_text }}
@click="getCode">{{ SendCode_text }}
</span>
</div>
@ -98,21 +89,21 @@
<!-- </div>-->
<div style="display:flex;">
<el-button @keyup.enter.native="handleLogin('loginForm')" :loading="loading" type="primary"
style="width: 300px;margin-top: 30px;margin-bottom: 10px" class="login-btn"
@click.native.prevent="handleLogin('loginForm')">立即登录
style="width: 300px;margin-top: 30px;margin-bottom: 10px" class="login-btn"
@click.native.prevent="handleLogin('loginForm')">立即登录
</el-button>
</div>
<div style="display:flex;margin-bottom: 30px">
<el-button style="width: 300px;margin-top: 10px;color: #1890ff" class="login-btn"
@click.native.prevent="wxBtn">微信登录
@click.native.prevent="wxBtn">微信登录
</el-button>
</div>
<div class="two-btn">
<span type="text" class="forget-password" @click="resetPassword()">忘记密码?
</span>
<span :loading="loading" type="primary" class="go-register"
style="width: 127px; margin-bottom: 30px; margin-left: 0px" @click.native.prevent="handleRegister"
@click="handleRegister">没有账号<span class="go-register-btn">去注册</span>
style="width: 127px; margin-bottom: 30px; margin-left: 0px" @click.native.prevent="handleRegister"
@click="handleRegister">没有账号<span class="go-register-btn">去注册</span>
</span>
</div>
</el-form>
@ -124,18 +115,18 @@
<el-form ref="form" :model="form" label-width="100px" :rules="forms">
<el-form-item label="用户名:" prop="username" class="rePassword" style="background-color: white">
<el-input v-model="form.username" class="name-input" placeholder="请先输入用户名/手机号"
style="background-color: white;border:1px solid #d9d9d9;border-radius: 3px;"></el-input>
style="background-color: white;border:1px solid #d9d9d9;border-radius: 3px;"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="password" style="background-color: white">
<el-input v-model="form.password" style="border:1px solid #d9d9d9;border-radius: 3px"
placeholder="请输入新密码"></el-input>
placeholder="请输入新密码"></el-input>
</el-form-item>
<el-form-item label="验证码:" prop="vcode" style="background-color: white">
<div style="display: flex; flex-direction: row">
<el-input style="border:1px solid #d9d9d9;border-radius: 3px" ref="vcode" v-model="form.vcode"
placeholder="请输入验证码" name="vcode" type="text"/>
placeholder="请输入验证码" name="vcode" type="text" />
<el-button type="primary" size="mini" style="height: 40px; margin-left: 10px" :disabled="isDisabled1"
@click="getCode1">{{ SendCode_text1 }}
@click="getCode1">{{ SendCode_text1 }}
</el-button>
</div>
</el-form-item>
@ -164,14 +155,15 @@
<div class="message-footer">
<div class="item">
<span v-if="JSON.stringify(logoInfoNew)!=='{}'" class="goPAge"
@click="goPloic">京公网安备{{ logoInfoNew.home.publicsecurity }}</span>
<span v-if="JSON.stringify(logoInfoNew)!=='{}'" class="goPAge" @click="goIPC">京ICP备{{logoInfoNew.home.license}}</span>
<span v-if="JSON.stringify(logoInfoNew)!=='{}'">增值电信业务经营许可证{{logoInfoNew.home.businesslicense}}</span>
<span v-if="JSON.stringify(logoInfoNew)!=='{}'">邮箱{{logoInfoNew.home.email}}</span>
<span v-if="JSON.stringify(logoInfoNew) !== '{}'" class="goPAge" @click="goPloic">京公网安备{{
logoInfoNew.home.publicsecurity }}</span>
<span v-if="JSON.stringify(logoInfoNew) !== '{}'" class="goPAge"
@click="goIPC">京ICP备{{ logoInfoNew.home.license }}</span>
<span v-if="JSON.stringify(logoInfoNew) !== '{}'">增值电信业务经营许可证{{ logoInfoNew.home.businesslicense }}</span>
<span v-if="JSON.stringify(logoInfoNew) !== '{}'">邮箱{{ logoInfoNew.home.email }}</span>
</div>
<div class="item">
<span v-if="JSON.stringify(logoInfoNew)!=='{}'">电话{{logoInfoNew.home.mobile}}</span>
<span v-if="JSON.stringify(logoInfoNew) !== '{}'">电话{{ logoInfoNew.home.mobile }}</span>
</div>
</div>
</div>
@ -189,19 +181,19 @@ import {
retrieveCodeAPI,
} from "@/api/login";
import store from "@/store";
import {JSEncrypt} from "jsencrypt";
import { JSEncrypt } from "jsencrypt";
import BeforeLogin from "@/views/beforeLogin/index.vue";
import promotionalInvitationCode from "@/views/customer/promotionalInvitationCode"
import {mapState} from "vuex";
import { mapState } from "vuex";
import axios from "axios";
import './js/wxLogin.js'
import {Message} from "element-ui";
import router, {resetRouter} from "@/router";
import {reqNewHomeFestival} from "@/api/newHome";
import { Message } from "element-ui";
import router, { resetRouter } from "@/router";
import { reqNewHomeFestival } from "@/api/newHome";
import { getHomePath } from '@/views/setting/tools'
export default {
name: "indexNew",
components: {BeforeLogin, promotionalInvitationCode},
components: { BeforeLogin, promotionalInvitationCode },
data() {
return {
wechat_openid: '',
@ -231,9 +223,9 @@ export default {
},
activeName: 'first',
rules: {
username: [{required: true, message: "请输入用户名/手机号", trigger: "blur"}],
password: [{required: true, message: "请输入密码", trigger: "blur"}],
code: [{required: true, message: "请输入验证码", trigger: "blur"}],
username: [{ required: true, message: "请输入用户名/手机号", trigger: "blur" }],
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
code: [{ required: true, message: "请输入验证码", trigger: "blur" }],
},
capsTooltip: false,
passwordType: "password",
@ -245,9 +237,9 @@ export default {
codeid: "",
},
forms: {
username: [{required: true, message: "请输入姓名", trigger: "blur"}],
password: [{required: true, message: "请输入密码", trigger: "blur"}],
vcode: [{required: true, message: "请输入验证码", trigger: "blur"}],
username: [{ required: true, message: "请输入姓名", trigger: "blur" }],
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
vcode: [{ required: true, message: "请输入验证码", trigger: "blur" }],
},
isLogo: false,
isShowSaleProduct: false,
@ -286,7 +278,7 @@ export default {
window.addEventListener('message', (event) => {
// this.$message.success("event.data.type",event)
if (event.data.type === 'wx_login_success') {
const {code} = event.data
const { code } = event.data
console.log(event.data)
// code
this.$message.success("code", code)
@ -296,9 +288,9 @@ export default {
// this.audioElement = new Audio('https://www.opencomputing.cn/dev/idfile?path=/batch_upload/phone-ring.mp3');
// //
// this.audioElement.loop = true;
// if (window.location.href.includes("ncmatch")) {
// this.$store.commit('login/setLogoutUrl',window.location.href)
// }
// if (window.location.href.includes("ncmatch")) {
// this.$store.commit('login/setLogoutUrl',window.location.href)
// }
},
methods: {
@ -343,13 +335,13 @@ export default {
this.getCodeTimer = setInterval(async () => {
try {
const res = await reqGetCodeAPI({state: this.wxState});
const res = await reqGetCodeAPI({ state: this.wxState });
if (!res.status) return;
clearInterval(this.getCodeTimer); //
this.showWxCode = true;
const response = await loginUserAPI({wechatCode: res.code});
const response = await loginUserAPI({ wechatCode: res.code });
console.log("response:", response);
if (response.status) {
@ -361,7 +353,7 @@ export default {
return;
}
const {data, admin, user, userId, org_type} = response;
const { data, admin, user, userId, org_type } = response;
//
localStorage.setItem("user_info", JSON.stringify(user));
@ -404,7 +396,7 @@ export default {
} else if (response.roles.includes("运维")) {
this.$router.push("/operationAndMaintenance/workOrderProcessing");
} else {
this.$router.push({path: "/"});
this.$router.push({ path: "/" });
}
} else if (response.action === "redirect") {
this.open2(response.msg)
@ -686,7 +678,7 @@ export default {
}
},
getCode() { //
getCodeAPI({username: this.loginForm.username}).then((res) => {
getCodeAPI({ username: this.loginForm.username }).then((res) => {
console.log(res);
if (res.status) {
this.loginForm.codeid = res.codeid;
@ -729,7 +721,7 @@ export default {
});
},
getCode1() {
retrieveCodeAPI({username: this.form.username}).then((res) => {
retrieveCodeAPI({ username: this.form.username }).then((res) => {
if (res.status == true) {
this.form.id = res.userid;
this.form.codeid = res.codeid;
@ -765,7 +757,7 @@ export default {
console.log(tab, event);
},
checkCapslock(e) {
const {key} = e;
const { key } = e;
this.capsTooltip = key && key.length === 1 && key >= "A" && key <= "Z";
},
handleLogin(formName) { //
@ -838,7 +830,7 @@ export default {
sessionStorage.setItem("username", res['user'].username);//,,
if (res.admin === 1) {
console.log("走了admin", res)
this.$router.push({path: "/"});
this.$router.push({ path: "/" });
} else if (
sessionStorage.getItem("org_type") == "2" ||
sessionStorage.getItem("org_type") == "3"
@ -870,7 +862,7 @@ export default {
} else if (res.roles.includes('运维')) {
this.$router.push('/operationAndMaintenance/workOrderProcessing');
} else {
this.$router.push({path: "/"});
this.$router.push({ path: "/" });
}
this.$message({
message: "登录成功~",
@ -928,7 +920,7 @@ export default {
handleRegister() {
console.log("注册按钮被点击了")
//
this.$router.push({name: "registrationPage"});
this.$router.push({ name: "registrationPage" });
},
cancelReset() {
this.dialogVisible = false;
@ -979,10 +971,12 @@ export default {
$cursor: black;
$light_gray: #eee;
$dark_gray: #889aa4;
.main-box {
position: relative;
width: 100vw;
height: 100vh;
//border:1px solid red;
img {
width: 100%;
@ -1051,6 +1045,7 @@ $dark_gray: #889aa4;
.login-form-style {
background-color: transparent;
//padding-top: 70px;
.el-input {
input {
@ -1193,7 +1188,7 @@ $dark_gray: #889aa4;
}
.logo-top1 {
width: 220px !important;
width: 260px !important;
height: 80px !important;
position: absolute;
top: 3%;
@ -1209,6 +1204,7 @@ $dark_gray: #889aa4;
//border: 5px solid red !important;
//width: 95% !important;
}
.login-form {
width: 90% !important;
//border: 5px solid red !important;
@ -1216,6 +1212,7 @@ $dark_gray: #889aa4;
top: 13%;
right: 5%;
}
.go-register {
padding-right: 10px;
//border:1px solid red;

File diff suppressed because it is too large Load Diff