From 1e3e48e3deacb44e9de1097dbf8d6c42aac71835 Mon Sep 17 00:00:00 2001 From: heyujie <516346543@qq.com> Date: 星期五, 10 十二月 2021 20:30:45 +0800 Subject: [PATCH] 对比库管理2 --- src/pages/index/App.vue | 464 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 250 insertions(+), 214 deletions(-) diff --git a/src/pages/index/App.vue b/src/pages/index/App.vue index 11e0516..21e780b 100644 --- a/src/pages/index/App.vue +++ b/src/pages/index/App.vue @@ -1,101 +1,96 @@ <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> - <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 class="init" v-if="!isWhite"> + <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" + height="480px" + :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">涓婁竴姝�</div> + <div class="next" @click="nextForm" v-if="active == 0">涓嬩竴姝�</div> + <div class="next" @click="nextForm" v-if="active == 1">璺宠繃</div> + <div class="next" @click="nextForm" v-if="active == 2">瀹屾垚</div> </div> - <div class="login-com"> - <span>鍖椾含璐濇�濈鎶�鏈湁闄愬叕鍙�</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="璇疯緭鍏ョ敤鎴峰悕"> - <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="璇疯緭鍏ュ瘑鐮�" - > - <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">鐧诲綍</el-button> - </el-form-item> - </el-form> - </div> - <p class="gradient-text gradient-text-one">鈥斺�斺�� {{serverTitle || 'SmartAI 鈥� ReID'}} 鈥斺�斺��</p> </div> </div> + <div class="white" v-else></div> </template> <script> -import { tologin, getLoginUserData, getServerName } from './api.ts' -import ParticleNetwork from './ParticleNetwork' -import Licence from '@/components/licence' -import { getMenuListData, findButtonAuthoritys, findInArr } from "@/api/utils"; +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, +} from "./api"; export default { - name: 'login-pgae', - metaInfo: { - title: '鐧诲綍椤�' + created() { + this.getInitInfo(); + }, + data() { + return { + active: 0, + formData: {}, + isWhite: true, + }; }, components: { - ParticleNetwork, - Licence - }, - data: () => ({ - serverTitle: "", - user: { - loginName: '', - password: '', - rememberMe: false - }, - nullRule: {}, - rules: { - loginName: [ - { required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'change' } - ], - password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'change' }] - }, - loading: '', - vLoading: false, - currentHeight: 1057, - currentWidth: 1920 - }), - created() { - this.getServerName() - this.getScreenHeight() - }, - mounted() { - console.log(this.serverTitle) - }, - watch: {}, - beforeDestroy() { - window.onresize = null + 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("/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); + } + }, systemLogin() { this.nullRule = this.rules this.$nextTick(() => { @@ -108,7 +103,6 @@ background: 'rgba(0, 0, 0, 0.7)' }) this.testLogin() - // return false } else { this.nullRule = {} } @@ -117,9 +111,9 @@ }) }, async testLogin() { + // location.assign("/view/desktop/") tologin({ username: this.user.loginName, password: this.user.password }) .then(json => { - // console.log(json, "鐧诲綍璇锋眰"); const loginedInfo = { access_token: json.token_type + ' ' + json.access_token, refresh_token: json.refresh_token @@ -130,155 +124,197 @@ this.getLoginUserData() }) .catch(err => { - // console.log(err, "鐧诲綍鎶ラ敊"); this.loading.close() this.$notify({ title: '鎻愮ず', type: 'error', - message: err + message: err.msg }) this.$refs.pwd.focus() }) }, async getLoginUserData() { - let json = await getLoginUserData() - if (!json.error) { - // this.loading.close() - sessionStorage.setItem('userInfo', JSON.stringify(json)) - this.$notify({ - title: '鎻愮ず', - type: 'success', - message: '鐧诲綍鎴愬姛锛�' - }) - + 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 json + return res.data } else { - this.$notify({ - title: '鎻愮ず', - type: 'error', - message: '鐧诲綍澶辫触锛�' - }) - // this.loading.close() + this.$notify.error("鐧诲綍澶辫触锛�") } - }, - getScreenHeight() { - this.currentHeight = document.documentElement.clientHeight - this.currentWidth = document.documentElement.clientWidth - // console.log(this.currentHeight, "褰撳墠绐楀彛澶у皬"); - window.onresize = () => { - this.currentHeight = document.documentElement.clientHeight - this.currentWidth = document.documentElement.clientWidth - // console.log(this.currentHeight, "褰撳墠绐楀彛澶у皬2", this.currentWidth); - this.$forceUpdate() - } + this.active++; + this.$refs["carousel"].next(); }, - async getServerName() { - let res = await getServerName() - if (res && res.success) { - console.log(res.data.serverName) - this.serverTitle = res.data.serverName - window.document.title = res.data.serverName - ? res.data.serverName - : 'SmartAI' - sessionStorage.setItem('title', res.data.serverName) + async getInitInfo() { + const res = await getInitInfo(); + + if (res.data.initPwd && !res.data.initRegInfo) { + const res1 = await getRegInfo(); + this.active = 1; + this.$refs["carousel"].setActiveItem(1); } - }, - async getMenuList() { - let results = await getMenuListData({}); - if (results && results.success) { - /* 瀛樺偍鏉冮檺 */ - let buttonAuthoritys = results.data; - // console.log(this.$route.query.is_loginsss) - 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: "鑿滃崟鑾峰彇澶辫触" - }); + + if (res.data.initPwd && res.data.initRegInfo) { + location.assign("/login"); + return; } + + this.isWhite = false; }, }, -} +}; </script> -<style lang="scss"> -.right-bg { - position: fixed; - top: 0; - left: 0; - background-image: url("/images/login-net.png"); - width: 100%; +<style lang="scss" scoped> +.init { height: 100%; - min-width: 1000px; - z-index: -10; - zoom: 1; + background-image: url("/images/init/鑳屾櫙鍥�.png"); + color: #fff; + user-select: none; + + .content { + margin: 0 auto; + width: 1000px; + padding-top: 80px; + + .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-top: 157px; + margin-left: 200px; + width: 550px; + } + + .formNet, + .formInfo { + margin-top: 90px; + margin-left: 200px; + width: 550px; + } + + .control { + position: fixed; + display: flex; + justify-content: center; + align-items: center; + bottom: 258px; + left: 0; + right: 0; + line-height: 40px; + .pre { + margin-right: 20px; + cursor: pointer; + width: 260px; + height: 40px; + border: 2px solid rgba(255, 255, 255, 0.3); + border-radius: 20px; + font-weight: bold; + color: #ffffff; + } + + .next { + 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; + } +} + +.white { + height: 100%; 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; -} -.left-bg { - position: absolute; - top: 30%; - right: 18%; - width: 390px; - height: 402px; - 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; - // margin: 24px 10px 40px 10px; - } - .gradient-text { - line-height: 50px; - font-size: 20px; - font-family: -webkit-pictograph; - font-weight: bolder; - position: relative; - } - .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> +</style> \ No newline at end of file -- Gitblit v1.8.0