guolufei123 4 rokov pred
rodič
commit
b8c552070b

+ 1 - 0
front-vue/package.json

@@ -41,6 +41,7 @@
     "clipboard": "2.0.6",
     "core-js": "3.8.1",
     "echarts": "4.9.0",
+    "element-resize-detector": "^1.2.3",
     "element-ui": "2.15.6",
     "file-saver": "2.0.4",
     "fuse.js": "6.4.3",

BIN
front-vue/src/assets/images/code1_1.png


BIN
front-vue/src/assets/images/code1_2.gif


BIN
front-vue/src/assets/images/code1_3.gif


BIN
front-vue/src/assets/images/icon_scanning.png


BIN
front-vue/src/assets/images/lgo.png


BIN
front-vue/src/assets/images/logi_bg1.jpg


BIN
front-vue/src/assets/images/login_bg1.jpg


BIN
front-vue/src/assets/images/login_bg1.png


BIN
front-vue/src/assets/images/login_bg2.png


BIN
front-vue/src/assets/images/login_icon1.png


BIN
front-vue/src/assets/images/login_icon2.png


BIN
front-vue/src/assets/images/login_icon3.png


BIN
front-vue/src/assets/images/login_icon4.png


BIN
front-vue/src/assets/images/login_img.png


BIN
front-vue/src/assets/images/login_logo.png


BIN
front-vue/src/assets/images/logo_name.png


+ 0 - 1
front-vue/src/layout/components/Sidebar/Logo.vue

@@ -15,7 +15,6 @@
 
 <script>
 import logoImg from '@/assets/images/logo1.png'
-import back from '@/assets/images/logi_bg1.jpg'
 import {listSscDomain } from "@/api/login";
 import variables from '@/assets/styles/variables.scss'
 export default {

+ 304 - 92
front-vue/src/views/login.vue

@@ -1,74 +1,121 @@
 <template>
-    <div class="backdrop" :style="{backgroundImage: 'url('+(this.BackgroundImg  ? this.BackgroundImg : this.baseImg)+')'}">
+    <div class="backdrop">
         <el-container>
-            <el-header style="display:block;position:relative;margin:auto;">
-                <!-- logo -->
-                <img :src="this.logo ? this.logo  : this.baseLogo" alt="" class="rightulliimg" />
-            </el-header>
+            <!-- logo -->
+            <img class="zap-logo" src="../assets/images/login_logo.png" alt="">
              <el-main>
                 <!-- 中间部分 -->
                 <div class="login">
+                    <div class="login-left">
+                        <img class="login-name" src="../assets/images/logo_name.png" alt="">
+                        <img class="login-illustration" src="../assets/images/login_img.png" alt="">
+                    </div>
                     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-                        <el-tabs v-model="activeName" style="margin-left: -61px;margin-top:-45px" @tab-click="changeLoginType">
-                            <el-tab-pane label="账号密码登录" name="login_password">
-                                <el-form-item prop="username">
-                                    <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
-                                        <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
-                                    </el-input>
-                                </el-form-item>
-                                <el-form-item prop="password">
-                                    <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin" style="  width: 260px; ">
-                                        <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-                                    </el-input>
-                                </el-form-item>
-                                <el-form-item prop="code">
-                                    <el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 53%;" @keyup.enter.native="handleLogin">
-                                        <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-                                    </el-input>
-                                    <div class="login-code">
-                                        <img :src="codeUrl" @click="getCode" class="login-code-img" />
+                        <template v-if="!scanningLogin">
+                            <div class="zap-2dcode">
+                                <img class="zap-2dcode__text" src="../assets/images/code1_1.png" alt="">
+                                <img class="zap-2dcode__img" src="../assets/images/code1_2.gif" alt="" @click="scanningLogin=true">
+                            </div>
+                            <el-tabs v-model="activeName" class="zap-tabs" @tab-click="changeLoginType">
+                                <el-tab-pane label="密码登录" name="login_password">
+                                    <el-form-item prop="username">
+                                        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
+                                            <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+                                        </el-input>
+                                    </el-form-item>
+                                    <el-form-item prop="password">
+                                        <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin">
+                                            <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+                                        </el-input>
+                                    </el-form-item>
+                                    <el-form-item prop="code">
+                                        <el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 53%;" @keyup.enter.native="handleLogin">
+                                            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+                                        </el-input>
+                                        <div class="login-code">
+                                            <img :src="codeUrl" @click="getCode" class="login-code-img" />
+                                        </div>
+                                    </el-form-item>
+                                    <el-checkbox v-model="loginForm.rememberMe">记住密码</el-checkbox>
+                                    <el-form-item style="width:100%;">
+                                        <el-button :loading="loading" class="zap-button" size="medium" type="primary" @click.native.prevent="handleLogin">
+                                            <span v-if="!loading">登 录</span>
+                                            <span v-else>登 录 中...</span>
+                                        </el-button>
+                                    </el-form-item>
+                                    <el-form-item>
+                                        <div class="zap-agreement">
+                                            <span class="zap-agreement__text">登录视为同意并遵守</span>
+                                            <div class="zap-agreement__link">
+                                                <span>《招采云链服务平台会员注册协议》</span>
+                                                <span>《招采云链服务平台隐私政策》</span>
+                                            </div>
+                                        </div>
+                                    </el-form-item>
+                                    <!-- <el-divider class="divider_left"><span style="font-size:10px;word-break: keep-all;">第三方快捷登录</span></el-divider>
+                                    <el-form-item style="width:100%;">
+                                        <img :src="wxSrc" @mouseover="changeImg" @mouseleave="returnImg" @click="getWeChatImg" style="width:30px;margin-left: 77px;">
+                                    </el-form-item> -->
+                                </el-tab-pane>
+                                <el-tab-pane label="验证码登录" name="login_shortMessage">
+                                    <el-form-item prop="username">
+                                        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="手机号">
+                                            <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+                                        </el-input>
+                                    </el-form-item>
+                                    <el-form-item prop="code">
+                                        <el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 53%;" @keyup.enter.native="handleLogin">
+                                            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+                                        </el-input>
+                                        <div class="login-code">
+                                            <img :src="codeUrl" @click="getCode" class="login-code-img" />
+                                        </div>
+                                    </el-form-item>
+                                    <el-form-item prop="cade">
+                                        <el-input v-model="loginForm.shortMessageCode" type="text"  maxlength="" auto-complete="off" placeholder="请输入验证码" id="" onkeydown="enterHandler(event)">
+                                            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+                                            <el-button class="zap-code-button" slot="suffix" @click="sendMessage" :disabled="sendShortMessageBtn">{{codeBtnWord}}</el-button>
+                                        </el-input>
+                                    </el-form-item>
+                                    <el-form-item style="width:100%;">
+                                        <el-button :loading="loading"  class="zap-button" size="medium" type="primary" @click.native.prevent="handleLogin">
+                                            <span v-if="!loading">登 录</span>
+                                            <span v-else>登 录 中...</span>
+                                        </el-button>
+                                    </el-form-item>
+                                    <el-form-item>
+                                        <div class="zap-agreement">
+                                            <span class="zap-agreement__text">登录视为同意并遵守</span>
+                                            <div class="zap-agreement__link">
+                                                <span>《招采云链服务平台会员注册协议》</span>
+                                                <span>《招采云链服务平台隐私政策》</span>
+                                            </div>
+                                        </div>
+                                    </el-form-item>
+                                </el-tab-pane>
+                            </el-tabs>
+                        </template>
+                        <!-- 手机扫码 -->
+                        <div v-else class="zap-scanning">
+                             <div class="zap-2dcode">
+                                <img class="zap-2dcode__img" src="../assets/images/code1_3.gif" alt="" @click="scanningLogin=false">
+                            </div>
+                            <div class="zap-scanning__title">手机扫码</div>
+                            <img class="zap-scanning__img" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201804%2F28%2F20180428114906_ulvqd.jpg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634225094&t=7acfc568424bf9781f535cd543cc258f" alt="">
+                            <div class="zap-scanning__bottom">
+                                <img class="zap-scanning__icon" src="../assets/images/icon_scanning.png" alt="">
+                                <div class="zap-scanning__text">打开<span class="zap-scanning__color">微信</span>扫码登录</div>
+                            </div>
+                            <el-form-item>
+                                <div class="zap-agreement" style="padding-top: 52px;padding-left: 60px;">
+                                    <span class="zap-agreement__text">登录视为同意并遵守</span>
+                                    <div class="zap-agreement__link">
+                                        <span>《招采云链服务平台会员注册协议》</span>
+                                        <span>《招采云链服务平台隐私政策》</span>
                                     </div>
-                                </el-form-item>
-                                <el-checkbox v-model="loginForm.rememberMe">记住密码</el-checkbox>
-                                <el-form-item style="width:100%;">
-                                    <el-button :loading="loading" size="medium" type="primary" @click.native.prevent="handleLogin" style="width: 190px;border-radius: 50px;margin-left:10%">
-                                        <span v-if="!loading">登 录</span>
-                                        <span v-else>登 录 中...</span>
-                                    </el-button>
-                                </el-form-item>
-                                <el-divider class="divider_left"><span style="font-size:10px;word-break: keep-all;">第三方快捷登录</span></el-divider>
-                                <el-form-item style="width:100%;">
-                                    <img :src="wxSrc" @mouseover="changeImg" @mouseleave="returnImg" @click="getWeChatImg" style="width:30px;margin-left: 77px;">
-                                </el-form-item>
-                            </el-tab-pane>
-                            <el-tab-pane label="手机验证码" name="login_shortMessage">
-                                <el-form-item prop="username">
-                                    <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="手机号">
-                                        <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
-                                    </el-input>
-                                </el-form-item>
-                                <el-form-item prop="code">
-                                    <el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 53%;" @keyup.enter.native="handleLogin">
-                                        <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-                                    </el-input>
-                                    <div class="login-code">
-                                        <img :src="codeUrl" @click="getCode" class="login-code-img" />
-                                    </div>
-                                </el-form-item>
-                                <el-form-item prop="cade">
-                                    <el-input v-model="loginForm.shortMessageCode" type="text"  maxlength="" auto-complete="off" placeholder="短信验证码" id="" onkeydown="enterHandler(event)" style="  width: 120px; ">
-                                        <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-                                    </el-input>
-                                 <el-button @click="sendMessage" :disabled="sendShortMessageBtn">{{codeBtnWord}}</el-button>
-                                </el-form-item>
-
-                                <el-button :loading="loading" size="medium" type="primary" @click.native.prevent="handleLogin" style="width: 190px;border-radius: 50px;margin-left:10%;margin-top:10%">
-                                    <span v-if="!loading">登 录</span>
-                                    <span v-else>登 录 中...</span>
-                                </el-button>
-                            </el-tab-pane>
-                        </el-tabs>
-
+                                </div>
+                            </el-form-item>
+                        </div>
                     </el-form>
                     <!--  底部  -->
                 </div>
@@ -104,10 +151,11 @@ export default {
         return {
             //默认背景图
             activeName: "login_password",
-            baseImg: require('../assets/images/logi_bg1.jpg'),
-            BackgroundImg : require('../assets/images/logi_bg1.jpg'),
+            baseImg: require('../assets/images/login_img.png'),
+            BackgroundImg : require('../assets/images/login_img.png'),
+            scanningLogin: false, // 是否扫码登陆
             logo: '',
-            baseLogo: require('../assets/images/lgo.png'),
+            // baseLogo: require('../assets/images/lgo.png'),
             codeUrl: "",
             cookiePassword: "",
             loginForm: {
@@ -344,61 +392,67 @@ export default {
 }
 // 中间背景图
 .login-form {
+    margin-left: 75px;
     border-radius: 6px;
-    width: 935px;
-    height: 434px;
-    padding: 73px 138px 103px 597px;
-    background-image: url("../assets/images/login_bg2.png");
     background-size: 935px 434px;
     background-repeat: no-repeat;
     margin-top: 40px;
     // 输入框大小
     .el-input {
-        height: 40px;
+        height: 55px;
         width: 100%;
+        background-image: linear-gradient(
+            #fdfdfd, 
+            #fdfdfd), 
+        linear-gradient(
+            #e7f0ff, 
+            #e7f0ff);
+        background-blend-mode: normal, 
+            normal;
         input {
-            height: 40px;
+            height: 55px;
             width: 100%;
+            font-size: 18px;
         }
     }
     .input-icon {
-        height: 39px;
-        width: 14px;
-        margin-left: 2px;
+        height: 53px;
+        width: 22px;
+        margin-left: 14px;
+        margin-right: 14px
+    }
+    .el-input--prefix .el-input__inner{
+        padding-left: 50px;
     }
 }
 .login-tip {
     font-size: 13px;
     text-align: center;
 }
+.el-form-item--medium .el-form-item__content{
+    display: flex;
+    align-items: center;
+}
 // 验证码
 .login-code {
-    width: 33%;
-    height: 38px;
-    float: right;
-        margin-right: 6%;
-
+    height: 55px;
     img {
         cursor: pointer;
         vertical-align: middle;
     }
 }
 .login-code-img {
-    height: 38px;
+    flex: 1;
+    height: 55px;
+    margin-left: 8px;
 }
 // 大背景图
 .backdrop {
-
-    background-repeat: no-repeat;
-    background-size: 1536px 752px;
-    background-size: cover;
+    padding-top: 100px;
+    background-color: #ebf3ff;
     width: 100%;
-    height: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    background-position: right top;
-    background-attachment: fixed;
+    min-height: 100%;
+   text-align: center;
 }
 .rightulliimg{
     width: 860px;
@@ -410,4 +464,162 @@ export default {
     background-color: #EEEEEE;
     color: #CCCCCC;
 }
+
+// 内部供应链
+.zap-tabs{
+    width: 410px;
+    height: 550px;
+    padding: 10px 48px 46px;
+    box-sizing: border-box;
+    background-image: linear-gradient(
+		#ffffff, 
+		#ffffff), 
+	linear-gradient(
+		#f3f3f3, 
+		#f3f3f3);
+    .el-tabs__nav-wrap{
+        padding: 0 12px;
+    }
+    .el-tabs__nav-wrap::after{
+        height: 0;
+    }
+    .el-tabs__nav{
+        width: 100%;
+    }
+    .el-tabs__item{
+        height: 56px;
+        line-height: 56px;
+        font-size: 24px;
+        color: #333333;   
+        &:nth-of-type(3){
+            padding-left: 30px;
+        }
+    }
+    .el-tabs__item.is-active{
+        color: #0056eb;
+    }
+    .el-tabs__active-bar{
+        background-color: #0056eb;
+    }
+}
+.login-left{
+    width: 704px;
+    .login-name{
+        width: 100%;
+    }
+    .login-illustration{
+        width: 515px;
+    }
+}
+.zap-logo{
+    position: absolute;
+    top: 25px;
+    left: 45px;
+    width: 210px;
+    height: 60px;
+}
+.zap-2dcode{
+    display: flex;
+    justify-content: flex-end;
+    align-items: center;
+    padding-top: 10px;
+    padding-right: 10px;
+    font-size: 0;
+    background-color: #ffffff;
+}
+.zap-2dcode__text{
+    width: 113px;
+    height: 28px;
+}
+.zap-2dcode__img{
+    width: 60px;
+    height: 61px;
+    cursor: pointer;
+}
+.zap-button{
+    margin-top: 25px;
+    width: 100%;
+    height: 55px;
+    font-size: 18px;
+    border-radius: 0;
+    background-image: linear-gradient(
+		#0056eb, 
+		#0056eb), 
+	linear-gradient(
+		#e7f0ff, 
+		#e7f0ff);
+	background-blend-mode: normal, 
+		normal;
+}
+.zap-agreement{
+    display: flex;
+    align-items: top;
+    margin-top: 8px;
+    line-height: 18px;
+    font-size: 12px;
+}
+.zap-agreement__text{
+    color: #666666;
+}
+.zap-agreement__link{
+    display: flex;
+    flex-direction: column;
+    color: #389cf4;
+    cursor: pointer;
+}
+.zap-code-button{
+    padding: 0 16px;
+    line-height: 55px;
+    font-size: 18px;
+    color: #23b24b;
+    border: none;
+    background-color: transparent;
+}
+.el-button.is-disabled, .el-button.is-disabled:hover, .el-button.is-disabled:focus{
+    background-color: transparent;
+}
+// 扫码登录
+.zap-scanning{
+    width: 410px;
+    height: 550px;
+    background-image: linear-gradient(
+		#ffffff, 
+		#ffffff), 
+	linear-gradient(
+		#f3f3f3, 
+		#f3f3f3);
+	background-blend-mode: normal, 
+		normal;
+    box-sizing: border-box;
+}
+.zap-scanning__title{
+    padding: 0 60px;
+    font-size: 24px;
+    color: #333333;
+}
+.zap-scanning__img{
+    display: block;
+    width: 220px;
+    height: 220px;
+    margin: 40px auto 0;
+    object-fit: cover;
+}
+.zap-scanning__bottom{
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-top: 18px;
+    font-size: 14px;
+}
+.zap-scanning__icon{
+    width: 22px;
+    height: 22px;
+    margin-right: 10px;
+}
+.zap-scanning__text{
+    color: #333333;
+}
+.zap-scanning__color{
+    color: #23b24b;
+}
 </style>

+ 4 - 4
front-vue/src/views/register.vue

@@ -3,7 +3,7 @@
         <el-container>
             <el-header style="display:block;position:relative;margin:auto;">
                 <!-- logo -->
-                <img :src="this.baseLogo" alt="" class="rightulliimg" />
+                <!-- <img :src="this.baseLogo" alt="" class="rightulliimg" /> -->
             </el-header>
              <el-main>
                 <!-- 中间部分 -->
@@ -72,8 +72,8 @@ export default {
                     },
                 ]
             },
-            baseLogo: require('../assets/images/lgo.png'),
-            baseImg: require('../assets/images/logi_bg1.jpg'),
+            // baseLogo: require('../assets/images/lgo.png'),
+            baseImg: require('../assets/images/login_img.png'),
         };
     },
     created() {
@@ -165,7 +165,7 @@ export default {
     width: 935px;
     height: 434px;
     padding: 73px 138px 103px 597px;
-    background-image: url("../assets/images/login_bg2.png");
+    // background-image: url("../assets/images/login_bg2.png");
     background-size: 935px 434px;
     background-repeat: no-repeat;
     margin-top: 40px;

+ 1 - 1
front-vue/vue.config.js

@@ -34,7 +34,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://192.168.0.127:8081`,
+        target: `http://47.94.193.84:8081`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''