From 64d15d8c26baae5bdff0dcfbcfdd4f13d219041c Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期四, 26 九月 2024 14:54:18 +0800
Subject: [PATCH] 修改注册功能url

---
 src/views/login/components/login-form.vue |  153 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 134 insertions(+), 19 deletions(-)

diff --git a/src/views/login/components/login-form.vue b/src/views/login/components/login-form.vue
index 8d4c702..7f5afed 100644
--- a/src/views/login/components/login-form.vue
+++ b/src/views/login/components/login-form.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="login-form-wrapper">
     <div class="login-form-title">{{ $t('login.form.title') }}</div>
-<!--    <div class="login-form-sub-title">{{ $t('login.form.title') }}</div>-->
+    <!--    <div class="login-form-sub-title">{{ $t('login.form.title') }}</div>-->
     <div class="login-form-error-msg">{{ errorMessage }}</div>
     <a-form
       ref="loginForm"
@@ -12,14 +12,11 @@
     >
       <a-form-item
         field="email"
-        :rules="[{ required: true, message: '璇疯緭鍏ラ偖绠�' }]"
+        :rules="[{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕' }]"
         :validate-trigger="['change', 'blur']"
         hide-label
       >
-        <a-input
-          v-model="userInfo.email"
-          placeholder="璇疯緭鍏ラ偖绠�"
-        >
+        <a-input v-model="userInfo.email" placeholder="璇疯緭鍏ョ敤鎴峰悕">
           <template #prefix>
             <icon-user />
           </template>
@@ -43,43 +40,99 @@
       </a-form-item>
       <a-space :size="16" direction="vertical">
         <div class="login-form-password-actions">
-          <a-checkbox
+          <!-- <a-checkbox
             checked="rememberPassword"
             :model-value="loginConfig.rememberPassword"
             @change="setRememberPassword as any"
           >
             {{ $t('login.form.rememberPassword') }}
-          </a-checkbox>
-          <a-link>{{ $t('login.form.forgetPassword') }}</a-link>
+          </a-checkbox> -->
+          <!-- <a-link>{{ $t("login.form.forgetPassword") }}</a-link> -->
         </div>
         <a-button type="primary" html-type="submit" long :loading="loading">
           {{ $t('login.form.login') }}
         </a-button>
-        <a-button type="text" long class="login-form-register-btn">
+        <div class="container">
+          娌℃湁璐︽埛锛�
+          <button class="register-button" @click="showRegisterModal = true">
+            <span>
+              娉ㄥ唽
+            </span>
+          </button>
+        </div>
+        <!-- <a-button type="text" long class="login-form-register-btn">
           {{ $t('login.form.register') }}
-        </a-button>
+        </a-button> -->
       </a-space>
     </a-form>
   </div>
+  <a-modal
+    v-model:visible="showRegisterModal"
+    title="娉ㄥ唽璐︽埛"
+    @ok="handleRegister()"
+    @cancel="showRegisterModal = false"
+  >
+    <a-form
+      ref="registerForm"
+      :model="registerInfo"
+      class="register-form"
+      layout="vertical"
+    >
+      <a-form-item field="loginName" :rules="[{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕!' }]" hide-label>
+        <a-input v-model="registerInfo.loginName" placeholder="璇疯緭鍏ョ敤鎴峰悕">
+        </a-input>
+      </a-form-item>
+
+      <a-form-item field="email" :rules="[{ required: true, message: '璇疯緭鍏ラ偖绠�!' }]" hide-label>
+        <a-input v-model="registerInfo.email" placeholder="璇疯緭鍏ラ偖绠�">
+        </a-input>
+      </a-form-item>
+
+      <a-form-item field="userName" :rules="[{ required: true, message: '璇疯緭鍏ュ鍚�!' }]" hide-label>
+        <a-input v-model="registerInfo.userName" placeholder="璇疯緭鍏ュ鍚�">
+        </a-input>
+      </a-form-item>
+
+      <a-form-item field="phoneNumber" :rules="[{ required: true, message: '璇疯緭鍏ョ數璇濆彿鐮�!' }]" hide-label>
+        <a-input v-model="registerInfo.phoneNumber" placeholder="璇疯緭鍏ョ數璇濆彿鐮�">
+        </a-input>
+      </a-form-item>
+
+      <a-form-item field="psw" :rules="[{ required: true, message: '璇疯緭鍏ュ瘑鐮�!' }]" hide-label>
+        <a-input-password v-model="registerInfo.psw" placeholder="璇疯緭鍏ュ瘑鐮�">
+        </a-input-password>
+      </a-form-item>
+
+      <a-space direction="vertical" size="large">
+        <a-select :style="{width:'320px'}" placeholder="閫夋嫨Tenant"  v-model="registerInfo.selectedTenant" allow-create>
+          <a-option :value="registerInfo.loginName">{{ registerInfo.loginName }}</a-option>
+          <a-option>1</a-option>
+          <a-option>2</a-option>
+        </a-select>
+      </a-space>
+    </a-form>
+  </a-modal>
 </template>
 
 <script lang="ts" setup>
-  import { ref, reactive } from 'vue';
+  import { reactive, ref } from 'vue';
   import { useRouter } from 'vue-router';
   import { Message } from '@arco-design/web-vue';
   import { ValidatedError } from '@arco-design/web-vue/es/form/interface';
   import { useI18n } from 'vue-i18n';
   import { useStorage } from '@vueuse/core';
-  import { useUserStore } from '@/store';
+  import { useUserStore, userModelState } from '@/store';
   import useLoading from '@/hooks/loading';
   import type { LoginData } from '@/api/user';
   import { rsaPsw } from '@/utils/ras';
+  import axios from 'axios';
 
   const router = useRouter();
   const { t } = useI18n();
   const errorMessage = ref('');
   const { loading, setLoading } = useLoading();
   const userStore = useUserStore();
+  const modelStore = userModelState();
 
   const loginConfig = useStorage('login-config', {
     rememberPassword: true,
@@ -103,27 +156,29 @@
       setLoading(true);
       try {
         const rsaPassWord = rsaPsw(values.password) as string;
-        console.log(values,'鐧诲綍淇℃伅');
-        await userStore.login({
+        console.log(values, '鐧诲綍淇℃伅');
+        let goto = await userStore.login({
           email: values.email,
           password: rsaPassWord,
         } as LoginData);
         const { redirect, ...othersQuery } = router.currentRoute.value.query;
         router.push({
-          name: 'knowledgeLib',
+          name: goto,
           query: {
             ...othersQuery,
           },
         });
-        Message.success(t('娆㈣繋鍥炴潵'));
+
+        const url = window.location.origin;
+        localStorage.setItem('httpUrl', url);
+        modelStore.getHrefUrl(url);
+        Message.success(t('鐧诲綍鎴愬姛'));
         const { rememberPassword } = loginConfig.value;
         const { email, password } = values;
         // 瀹為檯鐢熶骇鐜闇�瑕佽繘琛屽姞瀵嗗瓨鍌ㄣ��
         // The actual production environment requires encrypted storage.
         loginConfig.value.email = rememberPassword ? email : '';
         loginConfig.value.password = rememberPassword ? password : '';
-
-
       } catch (err) {
         errorMessage.value = (err as Error).message;
       } finally {
@@ -134,6 +189,45 @@
   const setRememberPassword = (value: boolean) => {
     loginConfig.value.rememberPassword = value;
   };
+
+  const showRegisterModal = ref(false);
+  const registerInfo = reactive({
+    createTime: '',
+    deptName: '',
+    email: '',
+    loginName: '',
+    nickName: '',
+    phoneNumber: '',
+    psw: '',
+    role: '',
+    status: '',
+    userId: '',
+    userName: '',
+  });
+
+  const handleRegister = async () => {
+    const user = {
+      createTime: registerInfo.createTime,
+      deptName: registerInfo.deptName,
+      email: registerInfo.email,
+      loginName: registerInfo.loginName,
+      nickName: registerInfo.nickName,
+      phoneNumber: registerInfo.phoneNumber,
+      psw: registerInfo.psw,
+      role: registerInfo.role,
+      status: registerInfo.status,
+      userId: registerInfo.userId,
+      userName: registerInfo.userName,
+    };
+    try {
+      const response = await axios.post('base/system/sign_in', { user });
+      console.log('娉ㄥ唽鎴愬姛锛�', response.data);
+      showRegisterModal.value = false;
+    } catch (error) {
+      console.error('娉ㄥ唽澶辫触锛�', error);
+    }
+  };
+
 </script>
 
 <style lang="less" scoped>
@@ -170,4 +264,25 @@
       color: var(--color-text-3) !important;
     }
   }
+  .container {
+    text-align: right;
+    padding: 1px;
+  }
+  .register-button {
+    display: inline-block;
+    padding: 5px 10px;
+    font-size: 13px;
+    color: #ffffff;
+    background-color: #3573f8;
+    border: none;
+    border-radius: 3px;
+    cursor: pointer;
+    transition: background-color 0.3s;
+  }
+  .register-button:hover {
+    background-color: #63a1ef;
+  }
+  .register-form {
+    width: 100%;
+  }
 </style>

--
Gitblit v1.8.0