From 211cd7469ebc7df813ffd320c90f64fd1c2f1aee Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期三, 09 二月 2022 10:55:20 +0800
Subject: [PATCH] 备份还原ui新
---
src/pages/index/App.vue | 898 ++++++++++++++++++++++-------------------------------------
1 files changed, 334 insertions(+), 564 deletions(-)
diff --git a/src/pages/index/App.vue b/src/pages/index/App.vue
index 6754bff..44594c8 100644
--- a/src/pages/index/App.vue
+++ b/src/pages/index/App.vue
@@ -1,564 +1,334 @@
-<template>
- <!-- <div class v-loading="vLoading" :style="`width: ${currentWidth}px;height:${currentHeight}px`">
- <div class="web-site">
- <a href="http://www.smartai.com" target="_blank">www.smartai.com</a>
- </div>
-
- <lang-select class="lang-select"/>
- <licence />
- <div class="right-bg" style>
- <particle-network />
- </div>
- <div class="left-bg">
- <div class="login-logo">
- <img src="/images/login-logo.png" alt width="105px" height="105px" />
- </div>
- <div class="login-com">
- <span>{{ $t('login.company') }}</span>
- </div>
- <div class="login-form">
- <el-form
- :model="user"
- status-icon
- :rules="nullRule"
- :validate-on-rule-change="false"
- ref="ruleForm"
- class="demo-ruleForm"
- >
- <el-form-item prop="loginName">
- <el-input v-model="user.loginName" style="width:280px" :placeholder="$t('placeholder.enterUsername')">
- <i slot="prefix" class="iconfont iconyonghu1"></i>
- </el-input>
- </el-form-item>
- <el-form-item prop="password">
- <el-input
- show-password
- @keyup.enter.native="systemLogin()"
- v-model="user.password"
- autocomplete="off"
- style="width:280px"
- :placeholder="$t('placeholder.enterPassword')"
- >
- <i slot="prefix" class="iconfont iconmima"></i>
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button ref="submit" type="warning" @click="systemLogin()" style="width:280px">{{ $t('button.login') }}</el-button>
- </el-form-item>
- </el-form>
- </div>
- <p class="gradient-text gradient-text-one">
- 鈥斺��
- <b>SmartAI</b> {{ $t('login.aios') }} 鈥斺��
- </p>
- <p
- class="gradient-text gradient-text-one"
- style="letter-spacing: 1.8px;font-size:15px;"
- >V1.0.0</p>
- </div>
- </div> -->
- <div class="login">
- <div class="title">
- <div class="en">Smart AI</div>
- <div class="ch">浜哄伐鏅鸿兘鎿嶄綔绯荤粺</div>
- </div>
-
- <div class="left_footer">
- <img class="logo" src="/images/login/LOGO.png" alt="" />
- <div class="web">www.smartai.com</div>
- </div>
-
- <div
- class="login-form"
- :style="{ background: backgroundColor }"
- :class="{ empty: !user.loginName && !user.password }"
- >
- <img class="logo" src="/images/login/OS.png" alt="" />
-
- <el-form
- :model="user"
- status-icon
- :rules="nullRule"
- :validate-on-rule-change="false"
- ref="ruleForm"
- class="demo-ruleForm"
- >
- <el-form-item prop="loginName">
- <el-input
- v-model="user.loginName"
- :placeholder="$t('placeholder.enterUsername')"
- >
- <i slot="prefix" class="iconfont icon"></i>
- </el-input>
- </el-form-item>
- <el-form-item prop="password">
- <el-input
- show-password
- @keyup.enter.native="systemLogin()"
- v-model="user.password"
- autocomplete="off"
- :placeholder="$t('placeholder.enterPassword')"
- >
- <i slot="prefix" class="iconfont icon"></i>
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button ref="submit" type="warning" @click="systemLogin()">{{
- $t("button.login")
- }}</el-button>
- </el-form-item>
- </el-form>
- </div>
- </div>
-</template>
-
-<script>
-import { tologin, getLoginUserData, getServerName } from "./api.ts";
-import ParticleNetwork from "./ParticleNetwork";
-import Licence from "@/components/licence";
-import LangSelect from "@/components/langSelect";
-import { getMenuListData } from "@/api/utils";
-
-export default {
- name: "login-pgae",
- metaInfo: {
- title: "鐧诲綍椤�",
- },
- components: {
- // ParticleNetwork,
- // Licence,
- // LangSelect
- },
- computed: {
- rules() {
- return {
- loginName: [
- {
- required: true,
- message: this.$t("placeholder.enterUsername"),
- trigger: "change",
- },
- ],
- password: [
- {
- required: true,
- message: this.$t("placeholder.enterPassword"),
- trigger: "change",
- },
- ],
- };
- },
- },
- data: () => ({
- serverTitle: "",
- user: {
- loginName: "",
- password: "",
- rememberMe: false,
- },
- nullRule: {},
-
- loading: "",
- vLoading: false,
- currentHeight: 1057,
- currentWidth: 1920,
- backgroundColor: "",
- backgroundList: [
- "#2A2344",
- "#342344",
- "#000000",
- "#233044",
- "#0B252E",
- "#150051",
- "#110040",
- ],
- }),
- created() {
- this.getServerName();
- this.getScreenHeight();
- this.backgroundColor =
- this.backgroundList[
- Math.floor(Math.random() * this.backgroundList.length)
- ];
- },
- mounted() {
- // 鑷姩鐧诲綍鎺ュ彛
- this.loginRobot();
- },
- watch: {},
- beforeDestroy() {
- window.onresize = null;
- },
- methods: {
- loginRobot() {
- // 瑙f瀽璺敱鍙傛暟锛屽苟缂撳瓨
- let user = this.getQueryVariable("username");
- let passwd = this.getQueryVariable("password");
- if (user.length && passwd.length) {
- sessionStorage.setItem(
- "autoLogin",
- JSON.stringify({ username: user, passwd: passwd })
- );
-
- this.user.loginName = user;
- this.user.password = passwd;
- this.systemLogin();
- return;
- }
-
- // 鐧婚檰瓒呮椂鍚庣殑閲嶆柊鐧婚檰
- let sessionInfo = sessionStorage.getItem("autoLogin");
- if (sessionInfo) {
- let authority = JSON.parse(sessionInfo);
- this.user.loginName = authority.username;
- this.user.password = authority.passwd;
- this.systemLogin();
- }
- },
- systemLogin() {
- this.nullRule = this.rules;
- this.$nextTick(() => {
- this.$refs["ruleForm"].validate((valid) => {
- if (valid) {
- this.loading = this.$loading({
- lock: true,
- text: "Loading",
- spinner: "el-icon-loading",
- background: "rgba(0, 0, 0, 0.7)",
- });
- this.testLogin();
- } else {
- this.nullRule = {};
- }
- });
- this.nullRule = {};
- });
- },
- async testLogin() {
- // location.assign("/view/desktop/")
- tologin({ username: this.user.loginName, password: this.user.password })
- .then((json) => {
- const loginedInfo = {
- access_token: json.token_type + " " + json.access_token,
- refresh_token: json.refresh_token,
- };
- sessionStorage.setItem("expires_in", json.expires_in);
- sessionStorage.setItem("loginedInfo", JSON.stringify(loginedInfo));
- this.loading.close();
- this.getLoginUserData();
- })
- .catch((err) => {
- this.loading.close();
- this.$notify({
- title: "鎻愮ず",
- type: "error",
- message: err.msg,
- });
- this.$refs.pwd.focus();
- });
- },
- async getLoginUserData() {
- let res = await getLoginUserData();
- if (res.success) {
- sessionStorage.setItem("userInfo", JSON.stringify(res.data));
- this.$notify.success("鐧诲綍鎴愬姛锛�");
- // 鑾峰彇鏉冮檺
- await this.getMenuList();
- location.assign("/view/desktop/");
- return res.data;
- } else {
- this.$notify.error("鐧诲綍澶辫触锛�");
- }
- },
-
- getScreenHeight() {
- this.currentHeight = document.documentElement.clientHeight;
- this.currentWidth = document.documentElement.clientWidth;
- window.onresize = () => {
- this.currentHeight = document.documentElement.clientHeight;
- this.currentWidth = document.documentElement.clientWidth;
- this.$forceUpdate();
- };
- },
- async getServerName() {
- let res = await getServerName();
- if (res && res.success) {
- this.serverTitle = res.data.serverName;
- window.document.title = res.data.serverName
- ? res.data.serverName
- : "SmartAI";
- sessionStorage.setItem("title", res.data.serverName);
- }
- },
- async getMenuList() {
- let results = await getMenuListData({});
- if (results && results.success) {
- /* 瀛樺偍鏉冮檺 */
- let buttonAuthoritys = results.data;
- if (results && results.length && this.$route.query.is_login) {
- this.$router.replace(results[0].url);
- }
- sessionStorage.setItem(
- "buttonAuthoritys",
- "," + buttonAuthoritys + ","
- );
- sessionStorage.setItem("menuInfo", JSON.stringify(results));
- } else {
- this.$toast({
- type: "error",
- message: "鑿滃崟鑾峰彇澶辫触",
- });
- }
- },
- getQueryVariable(variable) {
- var query = window.location.search.substring(1);
- var vars = query.split("&");
- for (var i = 0; i < vars.length; i++) {
- var pair = vars[i].split("=");
- if (pair[0] == variable) {
- return pair[1];
- }
- }
- return false;
- },
- },
-};
-</script>
-<style lang="scss">
-.login {
- height: 100%;
- position: relative;
- background-image: url("/images/login/鑳屾櫙鍥�.png");
-
- .title {
- position: absolute;
- top: 345px;
- left: 301px;
- color: #fff;
- text-align: center;
-
- .en {
- font-size: 120px;
- }
-
- .ch {
- font-size: 48px;
- letter-spacing: 9px;
- }
- }
-
- .left_footer {
- position: absolute;
- display: flex;
- justify-content: start;
- align-items: center;
- left: 358px;
- bottom: 40px;
-
- .logo {
- width: 136px;
- margin-right: 30px;
- }
-
- .web {
- font-size: 24px;
- font-weight: 700;
- color: rgba(255, 255, 255, 0.7);
- }
- }
-
- .login-form {
- position: absolute;
- width: 780px;
- height: 1000px;
- right: 40px;
- top: 40px;
- padding: 0 90px;
- box-sizing: border-box;
-
- background: #2a2344;
- opacity: 0.95;
- box-shadow: -4px 0px 10px rgba(0, 0, 0, 0.25);
- border-radius: 56px;
-
- .logo {
- margin-top: 100px;
- margin-bottom: 16px;
- }
-
- .el-form-item {
- background: rgba(0, 0, 0, 0);
- }
-
- .el-form-item:nth-child(2) {
- margin-top: 60px;
- margin-bottom: 80px;
- }
-
- .el-button {
- width: 600px;
- height: 60px;
- background: #4e94ff;
- border-radius: 30px;
- border: none;
- }
-
- .el-input {
- width: 100%;
- background: rgba(0, 0, 0, 0);
- }
-
- input {
- width: 100%;
- height: 56px;
- background: rgba(255, 255, 255, 0.1) !important;
- border: 1px solid #4e94ff;
- box-sizing: border-box;
- border-radius: 28px;
- color: #fff;
- caret-color: #fff; //鍏夋爣棰滆壊
- padding-left: 100px;
- padding-right: 50px;
- font-weight: 700;
- }
-
- input:-webkit-autofill,
- textarea:-webkit-autofill,
- select:-webkit-autofill {
- -webkit-text-fill-color: #ededed !important;
- -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
- background-color: transparent;
- background-image: none;
- transition: background-color 50000s ease-in-out 0s; //鑳屾櫙鑹查�忔槑 鐢熸晥鏃堕暱 杩囨浮鏁堟灉 鍚敤鏃跺欢杩熺殑鏃堕棿
- }
-
- .el-form-item__error {
- top: 110%;
- left: 80px;
- }
-
- .icon {
- font-size: 32px;
- color: rgb(80, 151, 255);
- }
-
- .el-input__prefix {
- padding: 0 20px;
- height: 40px;
- left: 5px;
- top: 8px;
- border-right: 1px solid #4e94ff;
- }
-
- .el-input__suffix {
- right: 20px;
- }
-
- .el-icon-circle-close {
- display: none;
- }
- }
-
- .login-form.empty {
- input {
- border-color: #999;
- color: #bbb;
- }
-
- .el-button {
- background-color: #999;
- color: #fff;
- }
-
- .icon {
- color: #fff;
- }
-
- .el-input__prefix {
- border-color: #d4d6d9;
- }
- }
-}
-
-// .right-bg {
-// position: fixed;
-// top: 0;
-// left: 0;
-// background-image: url("/images/login-net.png");
-
-// width: 100%;
-// height: 100%;
-// min-width: 1000px;
-// z-index: -10;
-// zoom: 1;
-// background-color: #fff;
-// background-repeat: no-repeat;
-// background-size: cover;
-// -webkit-background-size: cover;
-// -o-background-size: cover;
-// background-position: center 0;
-// }
-// .web-site {
-// position: absolute;
-// top: 55px;
-// left: 41px;
-// font-family: PingFangSC-Medium;
-// font-size: 20px;
-// color: #6170e1;
-// letter-spacing: 6.15px;
-// }
-// .lang-select {
-// float: right;
-// color: white !important;
-// font-size: 14px;
-// margin: 13px;
-// cursor: pointer;
-// }
-// .left-bg {
-// position: absolute;
-// top: 29%;
-// right: 18%;
-// width: 390px;
-// height: 426px;
-// background: rgba(146, 208, 255, 0.23);
-// border-radius: 4px;
-// text-align: center;
-// .login-logo {
-// margin-top: -53px;
-// }
-
-// .login-com {
-// font-family: PingFangSC-Medium;
-// font-size: 22px;
-// color: #ffffff;
-// letter-spacing: 0.44px;
-// margin: 15px;
-// }
-// .login-form {
-// margin: 40px 10px;
-// }
-// .gradient-text {
-// line-height: 36px;
-// font-size: 17px;
-// font-family: -webkit-pictograph;
-// font-weight: bolder;
-// position: relative;
-// b {
-// font-size: 20px;
-// }
-// }
-// .gradient-text-one {
-// background-image: linear-gradient(to right, #51feff 5%, #ff8725 100%);
-// -webkit-background-clip: text;
-// -webkit-text-fill-color: transparent;
-// }
-
-// .el-input__prefix {
-// left: 8px;
-// }
-
-// .el-form-item__error {
-// left: 54px;
-// }
-// }
-</style>
+<template>
+ <div class="init" v-if="!isWhite">
+ <img class="img-test" onerror="console.log('缃戠粶鏁呴殰')" />
+ <div class="content">
+ <div class="title">娆㈣繋娉ㄥ唽Smart AI 浜哄伐鏅鸿兘鎿嶄綔绯荤粺</div>
+ <el-steps :active="active" finish-status="success" :align-center="true">
+ <el-step title="鍒涘缓璐﹀彿"></el-step>
+ <el-step title="閰嶇疆缃戠粶"></el-step>
+ <el-step title="娉ㄥ唽淇℃伅"></el-step>
+ </el-steps>
+
+ <el-carousel
+ ref="carousel"
+ trigger="click"
+ :loop="false"
+ :autoplay="false"
+ :initial-index="active"
+ >
+ <el-carousel-item>
+ <formAccount ref="form0"></formAccount>
+ </el-carousel-item>
+ <el-carousel-item>
+ <formNet ref="form1"></formNet>
+ </el-carousel-item>
+ <el-carousel-item>
+ <formInfo ref="form2"></formInfo>
+ </el-carousel-item>
+ </el-carousel>
+
+ <div class="control">
+ <div class="pre" @click="preForm" v-if="active != 0">涓婁竴姝�</div>
+ <div class="next" @click="nextForm" v-if="active == 0">涓嬩竴姝�</div>
+ <div class="next" @click="nextFormNot" v-if="active == 1">璺宠繃</div>
+ <div class="next" @click="nextForm" v-if="active == 1 && !isNet">
+ 涓嬩竴姝�
+ </div>
+ <div class="next" @click="nextForm" v-if="active == 2">瀹屾垚</div>
+ </div>
+ </div>
+ </div>
+ <div class="white" v-else></div>
+</template>
+
+<script>
+import formAccount from "@/pages/index/components/formAccount";
+import formNet from "@/pages/index/components/formNet";
+import formInfo from "@/pages/index/components/formInfo";
+import {
+ getInitInfo,
+ savePassword,
+ initNetwork,
+ saveRegInfo,
+ getRegInfo,
+ isOnNet,
+} from "./api";
+
+export default {
+ created() {
+ window.addEventListener("keydown", (event) => {
+ if (event.keyCode === 9) {
+ console.log("tabfalse13");
+ event.preventDefault();
+ }
+ });
+ },
+ mounted() {
+ this.getInitInfo();
+ let message = "缃戠粶姝e父";
+
+ function onLine(callback) {
+ var img = new Image();
+ //涓存椂鍒ゆ柇缃戠粶鏄惁閫氱晠
+ img.src = "http://apps.smartai.com/img/icon_logo.f78688b5.png";
+ img.onload = function () {
+ console.log("11111");
+ if (callback) callback(true);
+ };
+ img.onerror = function () {
+ console.log("22222");
+ if (callback) callback(false);
+ };
+ }
+
+ onLine((flag) => {
+ let message = "";
+ if (flag) {
+ this.isNet = true;
+ message = "宸叉湁缃戠粶";
+ } else {
+ //缃戠粶鏂綉鏁堟灉鍥惧嚭鏉ュ悗锛屽皢姝ゅ湴鏀逛负璺宠浆璺緞鍒版晥鏋滃浘涓�
+ message = "鏈厤缃綉缁�";
+ this.$notify({
+ message: message,
+ });
+ }
+ });
+ },
+ data() {
+ return {
+ active: 0,
+ formData: {},
+ isWhite: true,
+ isNet: false,
+ };
+ },
+ components: {
+ formAccount,
+ formNet,
+ formInfo,
+ },
+ methods: {
+ preForm() {
+ if (this.active == 0) {
+ return;
+ }
+ this.active--;
+ this.$refs["carousel"].prev();
+ },
+ async nextForm() {
+ if (this.active == 2) {
+ const data = this.$refs[`form${this.active}`].getFormData();
+ await saveRegInfo(data);
+ location.assign("/view/login/");
+ return;
+ }
+
+ if (this.active == 0) {
+ const data = this.$refs[`form${this.active}`].getFormData();
+ if (!data) {
+ return false;
+ }
+ const res1 = await savePassword(data);
+ console.log(data);
+ this.active++;
+ this.$refs["carousel"].next();
+ }
+
+ if (this.active == 1) {
+ const data = this.$refs[`form${this.active}`].getFormData();
+ initNetwork(data);
+ this.active++;
+ this.$refs["carousel"].next();
+ }
+ },
+ nextFormNot() {
+ this.active++;
+ this.$refs["carousel"].next();
+ },
+ async getInitInfo() {
+ const res = await getInitInfo().catch((err) => {
+ this.isWhite = false;
+ });
+
+ console.log(res);
+
+ if (res.data && res.data.initPwd && !res.data.initRegInfo) {
+ const res1 = await getRegInfo();
+ this.active = 1;
+ console.log(res1);
+ setTimeout(() => {
+ this.$refs["carousel"].setActiveItem(1);
+ }, 0);
+ }
+
+ if (res.data && res.data.initPwd && res.data.initRegInfo) {
+ location.assign("/view/login/");
+ return;
+ }
+
+ this.isWhite = false;
+ },
+ },
+ destroyed() {
+ window.removeEventListener("keydown", (event) => {
+ console.log(event.value);
+ event.preventDefault();
+ });
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.init {
+ background-image: url("/images/init/鑳屾櫙鍥�.png");
+ background-size: cover;
+ background-attachment: fixed;
+ color: #fff;
+ user-select: none;
+ height: 100%;
+ min-width: 1000px;
+ overflow: hidden;
+ min-height: 760px;
+ .content {
+ margin: 0 auto;
+ width: 1000px;
+ padding-top: calc(6.4vh);
+
+ .title {
+ font-size: 28px;
+ font-weight: 700;
+ margin-bottom: 50px;
+ letter-spacing: 5px;
+ }
+
+ .el-steps ::v-deep {
+ margin-left: 22px;
+ text-align: left;
+
+ .el-step__icon {
+ width: 48px;
+ height: 48px;
+ }
+
+ .el-step__line {
+ left: 210px;
+ right: -110px;
+ border: 0.5px solid #fff;
+ border-bottom: none;
+ border-top: none;
+ opacity: 0.1;
+ top: 22px;
+ }
+
+ .is-success .el-step__icon {
+ background: none;
+ border: 2px solid rgba(255, 255, 255, 0.3);
+
+ .el-icon-check::before {
+ color: #fff;
+ font-size: 24px;
+ font-weight: 700;
+ }
+ }
+
+ .is-process .el-step__icon {
+ background-color: rgba(255, 255, 255, 0.3);
+ border: none;
+
+ .el-step__icon-inner {
+ color: #fff;
+ font-size: 24px;
+ font-weight: 700;
+ }
+ }
+
+ .is-wait .el-step__icon {
+ border: 2px solid rgba(255, 255, 255);
+ opacity: 0.5;
+ background: none;
+
+ .el-step__icon-inner {
+ color: #fff;
+ font-size: 24px;
+ font-weight: 700;
+ }
+ }
+
+ .el-step__main {
+ margin-top: 20px;
+ .is-success,
+ .is-process {
+ font-size: 16px;
+ color: #fff;
+ font-weight: normal;
+ }
+
+ .is-wait {
+ font-size: 16px;
+ color: #fff;
+ font-weight: normal;
+ opacity: 0.5;
+ }
+ }
+ }
+
+ .formAccount {
+ margin-left: 200px;
+ width: 550px;
+ }
+
+ .formNet,
+ .formInfo {
+ margin-left: 200px;
+ width: 550px;
+ }
+
+ .control {
+ margin: 0 auto;
+ line-height: 40px;
+ margin-top: calc(3.2vh);
+
+ .pre {
+ margin: 10px auto;
+ cursor: pointer;
+ width: 260px;
+ height: 40px;
+ border: 2px solid rgba(255, 255, 255, 0.3);
+ border-radius: 20px;
+ font-weight: bold;
+ color: #ffffff;
+ }
+
+ .next {
+ margin: 10px auto;
+ cursor: pointer;
+ width: 260px;
+ height: 40px;
+ background: rgba(255, 255, 255, 0.3);
+ border-radius: 20px;
+ font-weight: bold;
+ color: #ffffff;
+ }
+ }
+ }
+
+ ::v-deep .el-carousel__indicators {
+ display: none;
+ }
+
+ ::v-deep .el-carousel__container button {
+ display: none;
+ }
+
+ ::v-deep .el-carousel__container {
+ margin-top: calc(5.74vh);
+ height: 290px !important;
+ }
+}
+
+.white {
+ height: 100%;
+ background-color: #fff;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.8.0