Pārlūkot izejas kodu

处理登录时,获取租户ID

ZaiZai 2 gadi atpakaļ
vecāks
revīzija
635f4d4af5
3 mainītis faili ar 45 papildinājumiem un 2 dzēšanām
  1. 9 0
      src/api/modules/user.js
  2. 5 0
      src/utils/tools.js
  3. 31 2
      src/views/login/index.vue

+ 9 - 0
src/api/modules/user.js

@@ -86,3 +86,12 @@ export const loginByToken = (form, msg = true) => httpApi({
     method: 'post',
     params: form
 }, msg);
+
+//获取租户ID
+export const getTenantID = (domain, msg = true) => httpApi({
+    url: '/api/blade-system/tenant/info',
+    method: 'get',
+    params: {
+        domain
+    }
+}, msg);

+ 5 - 0
src/utils/tools.js

@@ -67,3 +67,8 @@ export const dateFormat = (date, format) => {
     }
     return '';
 }
+
+//获取当前域名
+export const getTopUrl = () => {
+    return window.location.href.split('/#/')[0];
+}

+ 31 - 2
src/views/login/index.vue

@@ -22,6 +22,9 @@
                 <div v-if="account" class="form-box mt-4">
                     <el-form ref="formRef" :model="formValue" :rules="formRules" label-position="left" label-width="0px"
                              size="large">
+                        <el-form-item prop="tenantId" v-if="tenantMode">
+                            <el-input v-model="formValue.tenantId" clearable placeholder="租户ID"/>
+                        </el-form-item>
                         <el-form-item prop="username">
                             <el-input v-model="formValue.username" clearable placeholder="账号"/>
                         </el-form-item>
@@ -65,28 +68,41 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {ref, onMounted} from "vue";
 import router from '~src/router/index';
 import {useAppStore} from "~src/store";
 import {useAppLogin} from "~sto/user";
-import {formValidate} from "js-fast-way"
+import {formValidate, getToObjVal} from "js-fast-way"
 import HcPicVue from './components/pic.vue'
 import HcHomeBg from './components/home-bg.vue'
+import {getTenantID} from "~api/user";
+import {getTopUrl} from "~uti/tools";
 
 const userStore = useAppStore()
 userStore.clearStoreData() //先清理下缓存
 
 //切换登录类型
 const account = ref(true)
+const tenantMode = ref(true)
+
 const accountClick = () => {
     account.value = !account.value;
 }
 
+onMounted(() => {
+    getTenantIdApi()
+})
+
 //表单
 const formRef = ref(null);
 const checkbox = ref(false)
 const formValue = ref({tenantId: "000000", username: '', password: '', type: "account"})
 const formRules = {
+    tenantId: {
+        required: true,
+        message: "请输入租户ID",
+        trigger: "blur"
+    },
     username: {
         required: true,
         message: "请输入账号",
@@ -104,6 +120,19 @@ const passwordKeyUp = (e) => {
     }
 }
 
+//获取租户id
+const getTenantIdApi = async () => {
+    const {error, code, data} = await getTenantID(getTopUrl())
+    const res = getToObjVal(data)
+    if (!error && code === 200 && res) {
+        tenantMode.value = false
+        formValue.value.tenantId = res.tenantId
+    } else {
+        tenantMode.value = true
+        formValue.value.tenantId = "000000"
+    }
+}
+
 //登录
 const loading = ref(false)
 const formValidateClick = async () => {