Bladeren bron

更新租户

ZaiZai 2 jaren geleden
bovenliggende
commit
79dc28940f
6 gewijzigde bestanden met toevoegingen van 88 en 4 verwijderingen
  1. BIN
      src/assets/login/bg.png
  2. BIN
      src/assets/logo/logo.png
  3. 25 0
      src/store/index.js
  4. 10 0
      src/utils/utils.js
  5. 1 1
      src/views/home/index/index.vue
  6. 52 3
      src/views/login/index.vue

BIN
src/assets/login/bg.png


BIN
src/assets/logo/logo.png


+ 25 - 0
src/store/index.js

@@ -1,11 +1,15 @@
 import {defineStore} from 'pinia'
 import pinia from "~src/store/init"
 import appConfig from '~src/config/app';
+import logopng from "~src/assets/logo/logo.png";
 import {getStoreValue, setStoreValue, clearStoreAll} from '~src/utils/storage'
 import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '~src/api/util/auth'
 
 export const useAppStore = defineStore('main', {
     state: () => ({
+        //系统信息
+        title: getStoreValue('title') || appConfig.title,
+        appLogo: getStoreValue('appLogo') || logopng,
         //主题信息
         theme: getStoreValue('theme') || appConfig.theme,    //用户可选择类型:auto,light, dark
         themeVal: getStoreValue('themeVal') || '',           //实际主题:light, dark
@@ -13,6 +17,7 @@ export const useAppStore = defineStore('main', {
         //用户信息
         token: getStoreValue('token') || '',
         refreshToken: getStoreValue('refreshToken') || '',
+        tenantId: getStoreValue('tenantId') || '',
         userInfo: getStoreValue('userInfo') || {},
         //菜单信息
         menus: getStoreValue('menus') || [],
@@ -24,6 +29,9 @@ export const useAppStore = defineStore('main', {
         barMenuName: '', //当前菜单名称
     }),
     getters: {
+        //系统信息
+        getTitle: state => state.title,
+        getAppLogo: state => state.appLogo,
         //主题信息
         getTheme: state => state.theme,
         getThemeVal: state => state.themeVal,
@@ -31,6 +39,7 @@ export const useAppStore = defineStore('main', {
         //用户信息
         getToken: state => state.token,
         getRefreshToken: state => state.refreshToken,
+        getTenantId: state => state.tenantId,
         getUserInfo: state => state.userInfo,
         //菜单信息
         getMenus: state => state.menus,
@@ -41,6 +50,15 @@ export const useAppStore = defineStore('main', {
         getDragModalSortTop: state => state.dragModalSortTop,
     },
     actions: {
+        //系统信息
+        setTitle(value) {
+            this.title = value
+            setStoreValue('title', value)
+        },
+        setAppLogo(value) {
+            this.appLogo = value
+            setStoreValue('appLogo', value)
+        },
         //主题信息
         setTheme(value) {
             this.theme = value
@@ -65,6 +83,10 @@ export const useAppStore = defineStore('main', {
             setRefreshToken(value)
             setStoreValue('refreshToken', value)
         },
+        setTenantId(value) {
+            this.tenantId = value
+            setStoreValue('tenantId', value)
+        },
         setUserInfo(value) {
             this.userInfo = value
             setStoreValue('userInfo', value)
@@ -96,8 +118,11 @@ export const useAppStore = defineStore('main', {
         //清除缓存和token
         clearStoreData() {
             //清除状态
+            this.title = null
+            this.appLogo = logopng
             this.token = null
             this.refreshToken = null
+            this.tenantId = null
             this.userInfo = null
             this.menus = null
             this.buttons = null

+ 10 - 0
src/utils/utils.js

@@ -0,0 +1,10 @@
+//获取当前域名
+export const getTopUrl = () => {
+    return window.location.href.split('/#/')[0];
+}
+
+//设置系统名称
+export const setAppName = (name) => {
+    const title = window.document.title;
+    window.document.title = `${title}${name?' - ' + name:''}`;
+}

+ 1 - 1
src/views/home/index/index.vue

@@ -164,7 +164,7 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {onMounted, ref} from "vue";
 import BarLabelRotation from "~com/echarts/BarLabelRotation.vue";
 
 const tableColumn = [

+ 52 - 3
src/views/login/index.vue

@@ -6,7 +6,7 @@
         <div class="login-container">
             <div class="hc-login-sign">
                 <div class="logo-img">
-                    <img :src="logo" alt="">
+                    <img id="app-logo" :src="appLogoPng" alt="">
                 </div>
                 <div class="login-title">项目内控管理系统</div>
                 <div class="sign-list">
@@ -36,18 +36,67 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {ref, onMounted, nextTick} from "vue";
 import loginBg from "~src/assets/login/bg.jpg";
 import logo from "~src/assets/logo/logo.png";
 import router from '~src/router/index';
 import {useAppStore} from "~src/store";
 import {useAppLogin} from "~sto/user";
-import {formValidate} from "js-fast-way"
+import {formValidate, getObjVal, setImageColorStyle} from "js-fast-way"
 import website from '~src/config/index'
+import {getTenantID} from "~api/user";
+import {getTopUrl, setAppName} from "~uti/utils";
 
 const userStore = useAppStore()
 userStore.clearStoreData() //先清理下缓存
 
+const appLogoPng = ref(logo)
+
+onMounted(() => {
+    getTenantIdApi()
+    setAppImageColor()
+})
+
+//获取租户id
+const getTenantIdApi = async () => {
+    const {error, code, data} = await getTenantID(getTopUrl())
+    const res = getObjVal(data)
+    if (!error && code === 200 && res) {
+        const {tenantAvatar, tenantAvatarText, tenantTitle, tenantId} = res
+        //设置标题
+        userStore.setTitle(tenantTitle)
+        setAppName(tenantTitle)
+
+        //设置logo图标
+        const logoIconValue = tenantAvatar ? tenantAvatar : logo
+        appLogoPng.value = logoIconValue
+        userStore.setAppLogo(logoIconValue)
+
+        //设置租户ID
+        formValue.value.tenantId = tenantId
+        userStore.setTenantId(tenantId)
+    } else {
+        //设置标题
+        userStore.setTitle(website.title)
+        setAppName(website.title)
+
+        //设置logo图标
+        appLogoPng.value = logo
+        userStore.setAppLogo(logo)
+
+        //设置租户ID
+        formValue.value.tenantId = website.tenantId
+        userStore.setTenantId(website.tenantId)
+    }
+    nextTick(() => {
+        setAppImageColor()
+    })
+}
+
+const setAppImageColor = () => {
+    setImageColorStyle('app-logo', '#ffffff')
+}
+
 //表单
 const formRef = ref(null);
 const checkbox = ref(false)