Procházet zdrojové kódy

修改左上角标题变白色,标题取自接口获取,修复菜单搜索。去掉语言切换和大小切换等

yanglzh před 3 roky
rodič
revize
21d0d7adee

+ 17 - 3
src/layout/logo/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="layout-logo" v-if="setShowLogo" @click="onThemeConfigChange">
 		<img :src="logoMini" class="layout-logo-medium-img" />
-		<span>{{ getThemeConfig.globalTitle }}</span>
+		<span>{{ sysinfo.systemName }}</span>
 	</div>
 	<div class="layout-logo-size" v-else @click="onThemeConfigChange">
 		<img :src="logoMini" class="layout-logo-size-img" />
@@ -16,6 +16,19 @@ import logoMini from '/@/assets/logo-mini.svg';
 
 export default defineComponent({
 	name: 'layoutLogo',
+	data() {
+		return {
+			sysinfo: {
+				buildVersion: '',
+				systemName: '',
+				buildTime: '',
+				systemCopyright: '',
+			},
+		};
+	},
+	created() {
+		this.sysinfo = JSON.parse(localStorage.sysinfo || '{}');
+	},
 	setup() {
 		const store = useStore();
 		// 获取布局配置信息
@@ -50,7 +63,8 @@ export default defineComponent({
 	align-items: center;
 	justify-content: center;
 	box-shadow: rgb(0 21 41 / 2%) 0px 1px 4px;
-	color: var(--el-color-primary);
+	// color: var(--el-color-primary);
+	color: #ffff;
 	font-size: 20px;
 	cursor: pointer;
 	animation: logoAnimation 0.3s ease-in-out;
@@ -61,7 +75,7 @@ export default defineComponent({
 	}
 	&-medium-img {
 		width: 35px;
-    padding-right: 5px;
+		padding-right: 5px;
 	}
 }
 .layout-logo-size {

+ 4 - 4
src/layout/navBars/breadcrumb/search.vue

@@ -17,7 +17,7 @@
 				<template #default="{ item }">
 					<div>
 						<SvgIcon :name="item.meta?.icon" class="mr5" />
-						{{ item.meta?.title.indexOf('.')>0?$t(item.meta?.title):item.meta?.title }}
+						{{ item.meta?.title.indexOf('.') > 0 ? $t(item.meta?.title) : item.meta?.title }}
 					</div>
 				</template>
 			</el-autocomplete>
@@ -26,7 +26,7 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, defineComponent, ref, nextTick } from 'vue';
+import { reactive, toRefs, defineComponent, ref } from 'vue';
 import { useRouter } from 'vue-router';
 import { useI18n } from 'vue-i18n';
 import { useStore } from '/@/store/index';
@@ -61,9 +61,9 @@ export default defineComponent({
 			state.menuQuery = '';
 			state.isShowSearch = true;
 			initTageView();
-			nextTick(() => {
+			setTimeout(() => {
 				layoutMenuAutocompleteRef.value.focus();
-			});
+			}, 0);
 		};
 		// 搜索弹窗关闭
 		const closeSearch = () => {

+ 71 - 67
src/layout/navBars/breadcrumb/user.vue

@@ -1,70 +1,74 @@
 <template>
-  <div class="layout-navbars-breadcrumb-user" :style="{ flex: layoutUserFlexNum }">
-    <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange">
-      <div class="layout-navbars-breadcrumb-user-icon">
-        <i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i>
-      </div>
-      <template #dropdown>
-        <el-dropdown-menu>
-          <el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item>
-          <el-dropdown-item command="default" :disabled="disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item>
-          <el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item>
-        </el-dropdown-menu>
-      </template>
-    </el-dropdown>
-    <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange">
-      <div class="layout-navbars-breadcrumb-user-icon">
-        <i class="iconfont" :class="disabledI18n === 'en' ? 'icon-fuhao-yingwen' : 'icon-fuhao-zhongwen'" :title="$t('message.user.title1')"></i>
-      </div>
-      <template #dropdown>
-        <el-dropdown-menu>
-          <el-dropdown-item command="zh-cn" :disabled="disabledI18n === 'zh-cn'">简体中文</el-dropdown-item>
-          <el-dropdown-item command="en" :disabled="disabledI18n === 'en'">English</el-dropdown-item>
-          <el-dropdown-item command="zh-tw" :disabled="disabledI18n === 'zh-tw'">繁體中文</el-dropdown-item>
-        </el-dropdown-menu>
-      </template>
-    </el-dropdown>
-    <div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick">
-      <el-icon :title="$t('message.user.title2')">
-        <ele-Search />
-      </el-icon>
-    </div>
-    <div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick">
-      <i class="icon-skin iconfont" :title="$t('message.user.title3')"></i>
-    </div>
-    <div class="layout-navbars-breadcrumb-user-icon">
-      <el-popover placement="bottom" trigger="click" :width="300">
-        <template #reference>
-          <el-badge :is-dot="true">
-            <el-icon :title="$t('message.user.title4')">
-              <ele-Bell />
-            </el-icon>
-          </el-badge>
-        </template>
-        <UserNews />
-      </el-popover>
-    </div>
-    <div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick">
-      <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>
-    </div>
-    <el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
-      <span class="layout-navbars-breadcrumb-user-link">
-        <img :src="getUserInfos.avatar" class="layout-navbars-breadcrumb-user-link-photo mr5" />
-        {{ getUserInfos.userName === '' ? 'common' : getUserInfos.userName }}
-        <el-icon class="el-icon--right">
-          <ele-ArrowDown />
-        </el-icon>
-      </span>
-      <template #dropdown>
-        <el-dropdown-menu>
-          <el-dropdown-item command="/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item>
-          <el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item>
-          <el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item>
-        </el-dropdown-menu>
-      </template>
-    </el-dropdown>
-    <Search ref="searchRef" />
-  </div>
+	<div class="layout-navbars-breadcrumb-user" :style="{ flex: layoutUserFlexNum }">
+		<!-- <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange">
+			<div class="layout-navbars-breadcrumb-user-icon">
+				<i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i>
+			</div>
+			<template #dropdown>
+				<el-dropdown-menu>
+					<el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item>
+					<el-dropdown-item command="default" :disabled="disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item>
+					<el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item>
+				</el-dropdown-menu>
+			</template>
+		</el-dropdown> -->
+		<!-- <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange">
+			<div class="layout-navbars-breadcrumb-user-icon">
+				<i class="iconfont" :class="disabledI18n === 'en' ? 'icon-fuhao-yingwen' : 'icon-fuhao-zhongwen'" :title="$t('message.user.title1')"></i>
+			</div>
+			<template #dropdown>
+				<el-dropdown-menu>
+					<el-dropdown-item command="zh-cn" :disabled="disabledI18n === 'zh-cn'">简体中文</el-dropdown-item>
+					<el-dropdown-item command="en" :disabled="disabledI18n === 'en'">English</el-dropdown-item>
+					<el-dropdown-item command="zh-tw" :disabled="disabledI18n === 'zh-tw'">繁體中文</el-dropdown-item>
+				</el-dropdown-menu>
+			</template>
+		</el-dropdown> -->
+		<div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick">
+			<el-icon :title="$t('message.user.title2')">
+				<ele-Search />
+			</el-icon>
+		</div>
+		<div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick">
+			<i class="icon-skin iconfont" :title="$t('message.user.title3')"></i>
+		</div>
+		<div class="layout-navbars-breadcrumb-user-icon">
+			<el-popover placement="bottom" trigger="click" :width="300">
+				<template #reference>
+					<el-badge :is-dot="true">
+						<el-icon :title="$t('message.user.title4')">
+							<ele-Bell />
+						</el-icon>
+					</el-badge>
+				</template>
+				<UserNews />
+			</el-popover>
+		</div>
+		<div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick">
+			<i
+				class="iconfont"
+				:title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')"
+				:class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"
+			></i>
+		</div>
+		<el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
+			<span class="layout-navbars-breadcrumb-user-link">
+				<img :src="getUserInfos.avatar" class="layout-navbars-breadcrumb-user-link-photo mr5" />
+				{{ getUserInfos.userName === '' ? 'common' : getUserInfos.userName }}
+				<el-icon class="el-icon--right">
+					<ele-ArrowDown />
+				</el-icon>
+			</span>
+			<template #dropdown>
+				<el-dropdown-menu>
+					<el-dropdown-item command="/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item>
+					<el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item>
+					<el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item>
+				</el-dropdown-menu>
+			</template>
+		</el-dropdown>
+		<Search ref="searchRef" />
+	</div>
 </template>
 
 <script lang="ts">
@@ -155,13 +159,13 @@ export default defineComponent({
 					},
 				})
 					.then(async () => {
+						await api.login.logout();
 						Session.clear(); // 清除缓存/token等
 						await resetRoute(); // 删除/重置路由
 						ElMessage.success(t('message.user.logOutSuccess'));
 						setTimeout(() => {
 							window.location.href = ''; // 去登录页
 						}, 500);
-						api.login.logout();
 					})
 					.catch(() => {});
 			} else if (path === 'wareHouse') {