From c7f3fd5215399b37d0511b3bd555150ff1b13507 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期一, 29 四月 2024 10:39:30 +0800
Subject: [PATCH] fix:回退原先版本

---
 src/views/login/loginView.vue |   64 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 8 deletions(-)

diff --git a/src/views/login/loginView.vue b/src/views/login/loginView.vue
index c6d28f7..7716227 100644
--- a/src/views/login/loginView.vue
+++ b/src/views/login/loginView.vue
@@ -4,7 +4,7 @@
       <div class="card-top">
         <img src="@/assets/images/logo.png" />
       </div>
-      <p>鏅鸿兘鎶ュ伐绯荤粺</p>
+      <p>鏅鸿兘璐ㄦ绯荤粺</p>
       <div class="card_bottom">
         <el-form ref="ruleFormRef" :model="ruleForm" status-icon :rules="rules" label-width="25%" class="demo-ruleForm">
           <el-form-item label="" prop="accountNumber">
@@ -19,9 +19,14 @@
               autocomplete="off"
             />
           </el-form-item>
-          <!-- <el-form-item label="纭瀵嗙爜" prop="checkPass">
-            <el-input v-model="ruleForm.checkPass" type="password" autocomplete="off" />
-          </el-form-item> -->
+          <el-form-item label="" prop="code">
+            <el-input v-model="ruleForm.code" placeholder="楠岃瘉鐮�" autocomplete="off" style="width: 70%">
+              <template #append>
+                <img class="login-code" :src="captcha" @click="getCaptchaData" />
+              </template>
+            </el-input>
+            <!-- <img class="login-code" :src="captcha" @click="getCaptchaData" /> -->
+          </el-form-item>
           <el-form-item>
             <el-button type="primary" @click="submitForm(ruleFormRef)">鐧诲綍</el-button>
           </el-form-item>
@@ -32,8 +37,12 @@
 </template>
 
 <script setup lang="ts">
-import { ref, reactive } from 'vue'
+import { ref, reactive, onMounted } from 'vue'
 import type { FormInstance, FormRules } from 'element-plus'
+import { getCaptcha, login } from '@/api'
+import { setToken, getToken } from '@/common/utils/index'
+import { ElMessage } from 'element-plus'
+import { useRouter } from 'vue-router'
 
 const ruleFormRef = ref<FormInstance>()
 
@@ -65,7 +74,22 @@
 const ruleForm = reactive({
   pass: '',
   // checkPass: '',
-  accountNumber: ''
+  accountNumber: '',
+  code: ''
+})
+
+const captcha = ref('')
+const captchaId = ref('')
+
+const getCaptchaData = () => {
+  getCaptcha().then((rsp: any) => {
+    captcha.value = rsp?.data?.picPath
+    captchaId.value = rsp?.data?.captchaId
+  })
+}
+onMounted(() => {
+  // 鑾峰彇楠岃瘉鐮�
+  getCaptchaData()
 })
 
 const rules = reactive<FormRules<typeof ruleForm>>({
@@ -74,11 +98,29 @@
   accountNumber: [{ validator: checkAge, trigger: 'blur' }]
 })
 
+const router = useRouter()
+
 const submitForm = (formEl: FormInstance | undefined) => {
   if (!formEl) return
   formEl.validate((valid) => {
     if (valid) {
-      console.log('submit!')
+      login({
+        username: ruleForm.accountNumber,
+        password: ruleForm.pass,
+        captcha: ruleForm.code,
+        captchaId: captchaId.value
+      }).then((rsp: any) => {
+        console.log(rsp)
+        setToken(rsp?.data?.token)
+        ElMessage({
+          message: '鐧诲綍鎴愬姛锛�',
+          type: 'success'
+        })
+        ruleForm.accountNumber = ''
+        ruleForm.pass = ''
+        ruleForm.code = ''
+        router.push('/')
+      })
     } else {
       console.log('error submit!')
       return false
@@ -143,7 +185,13 @@
     }
   }
 }
-
+.login-code {
+  height: 40px - 2px;
+  display: block;
+  margin: 0px -20px;
+  border-top-right-radius: 2px;
+  border-bottom-right-radius: 2px;
+}
 ::v-deep .el-form-item__content {
   display: flex;
   align-items: center;

--
Gitblit v1.8.0