فهرست منبع

Merge branch 'master' of http://www.sysuimars.cn:3000/feiniao/feiniao-pc-vue

wangsisi 1 ماه پیش
والد
کامیت
0f5d943d30
2فایلهای تغییر یافته به همراه193 افزوده شده و 0 حذف شده
  1. 5 0
      src/router/globalRoutes.js
  2. 188 0
      src/views/AuthenticLogin.vue

+ 5 - 0
src/router/globalRoutes.js

@@ -13,6 +13,11 @@ export default [
         component: () => import("@/views/Login.vue"),
     },
     {
+        path: "/authentic_login",
+        name: "AuthenticLogin",
+        component: () => import("@/views/AuthenticLogin.vue"),
+    },
+    {
         path: "/404",
         name: "404",
         component: () => import("@/views/404.vue"),

+ 188 - 0
src/views/AuthenticLogin.vue

@@ -0,0 +1,188 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-01-11 11:14:26
+ * @LastEditTime: 2022-04-28 18:35:39
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: \vue3-element-admin\src\views\Login.vue
+-->
+<template>
+  <div class="backdrop-layer">
+    <div class="head">
+      <div class="logo"></div>
+      <div class="title">飞鸟确权平台
+
+      </div>
+    </div>
+    <div class="ve_container">
+      <el-card style="height: 300px" :body-style="{ background: '#ffffff' }">
+        <h1>用户登录</h1>
+        <transition name="el-fade-in-linear">
+          <el-form
+              :model="form"
+              :rules="rules"
+              v-show="!success"
+              class="ve_form"
+              ref="ref_form"
+              :inline="false"
+              @keyup.enter="onSubmit"
+          >
+            <el-form-item prop="phone">
+              <el-input
+                  size="large"
+                  v-model.trim="phone"
+                  placeholder="用户名"
+              >
+                <template #prepend>
+                  <el-icon :size="20"><Iphone /></el-icon>
+                </template>
+              </el-input>
+            </el-form-item>
+            <el-form-item prop="code">
+              <el-input
+                  size="large"
+                  v-model.trim="code"
+                  placeholder="验证码"
+              >
+                <template #prepend>
+                  <el-icon :size="20"><Key /></el-icon>
+                </template>
+              </el-input>
+            </el-form-item>
+            <el-form-item>
+              <div style="width: 50%;float: left;text-align: left;"><el-checkbox >记住密码</el-checkbox></div>
+              <div style="width: 50%;float: left;">
+                <el-button
+                    class="ve_submit"
+                    type="primary"
+                    @click="onSubmit"
+                >
+                  登录
+                </el-button>
+              </div>
+            </el-form-item>
+          </el-form>
+        </transition>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import {SET_TOKEN, SET_UNAME, SET_USER_INFO} from "@/store/modules/app/type";
+import Common from "@/components/Common";
+import { ref, reactive, toRefs } from "vue";
+import { useStore } from "vuex";
+import { useRouter } from "vue-router";
+
+const rules = {
+  phone: [{ required: true, message: "请输入用户名", trigger: "blur" }]
+};
+
+// const rules = {
+//   phone: [{ required: true, message: "请输入用户名", trigger: "blur" }]
+//   ,
+//   code: [{ required: true, message: "请输入验证码", trigger: "blur" }
+//   ],
+// };
+
+const store = useStore();
+const router = useRouter();
+const form = reactive({
+  "code": "",
+  "phone": "13797066447"
+});
+const { phone, code } = toRefs(form);
+const ref_form = ref(null);
+const success = ref(false);
+sessionStorage.clear();
+store.commit(`app/${SET_TOKEN}`, "");
+router.options.isAddDynamicMenuRoutes = false;
+
+
+const onSubmit = () => {
+    ref_form.value.validate(async (valid) => {
+        if (valid) {
+            const res = await VE_API.system.phoneLogin(form);
+            if (res.code == 0) {
+                const { token, userName, djiCloudToken } = res.data;
+                store.commit(`app/${SET_TOKEN}`, token);
+                store.commit(`app/djiCloudToken`, djiCloudToken);
+                store.commit(`app/${SET_UNAME}`, userName);
+                res.data["token"] = undefined
+                res.data["x-auth-token"] = undefined
+                res.data["pwd"] = undefined
+                store.commit(`app/${SET_USER_INFO}`, JSON.stringify(res.data));
+                success.value = true;
+                // router.push({ name: "Home" });
+                router.push({ name: "Authentic" });
+            }
+        } else {
+            return;
+        }
+    });
+};
+</script>
+
+<style lang="scss" scoped>
+.ve_container {
+  position: absolute;
+  z-index: 1;
+  width: 400px;
+  top: calc(50%);
+  left: calc(50% - 250px);
+  transform: translateY(-50%);
+  transition: all 1s;
+  min-height: 273px;
+  text-align: center;
+  h1 {
+    font-size: 24px;
+    transition: all 1s;
+    font-weight: normal;
+    text-align: left;
+    margin-bottom: 36px;
+  }
+  .ve_form {
+    .ve_submit {
+      width: 100%;
+      height: 45px;
+      background: #0BC678;
+    }
+  }
+}
+.backdrop-layer{
+  position: absolute;
+  top: 0px;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  background: url(@/assets/login_bg.jpg) no-repeat;
+  background-size:100% 100%;
+  z-index: 1;
+  overflow: hidden;
+}
+.head{
+  position: absolute;
+  left: 300px;
+  top: 100px;
+  display: flex;
+  align-items: center;
+  padding: 50px;
+  .title{
+    font-size: 30px;
+    font-weight: bold;
+    color:#006600;
+    float: left;
+    line-height: 50px;
+    margin-left: 20px;
+  }
+  .logo{
+    width: calc(167px * 0.5);
+    height: calc(245px * 0.5);
+    background: url(@/assets/img/logo-verticle.png) no-repeat;
+    background-size:100% 100%;
+    float: left;
+    z-index: 1000;
+  }
+}
+</style>