浏览代码

优化代码。修复登录页编辑器报错提示等

yanglzh 3 年之前
父节点
当前提交
087b14c8c6

+ 0 - 13
src/api/login/index.ts

@@ -1,13 +0,0 @@
-import { get, post } from '/@/utils/request';
-
-// 登录api接口
-export const login = (data: object) => post('/login', data)
-
-// 获取登录用户信息
-export const currentUser = () => get('/system/user/currentUser')
-
-// 获取验证码
-export const captcha = () => get('/captcha')
-
-// 退出登录
-export const signOut = (data: object) => post('/user/signOut', data)

+ 9 - 3
src/api/system/index.ts

@@ -1,11 +1,17 @@
 import { get, post, del, put } from '/@/utils/request';
 
 export default {
+  login: {
+    login: (data: object) => post('/login', data),
+    currentUser: () => get('/system/user/currentUser'),
+    captcha: () => get('/captcha'),
+    logout: () => post('/loginOut'),
+  },
   api: {
     getList: (params?: object) => get('/system/api/GetAll', params),
-    add: (data: object) => post('/system/api/ApiAdd', data),
-    del: (id: number) => del('/system/api/apiDel', { id }),
-    edit: (data: object) => put('/system/api/apiEdit', data),
+    add: (data: object) => post('/system/api/add', data),
+    del: (id: number) => del('/system/api/del', { id }),
+    edit: (data: object) => put('/system/api/edit', data),
   },
   menu: {
     getList: (params: object) => get('/system/menu/tree', params),

+ 68 - 70
src/layout/navBars/breadcrumb/user.vue

@@ -1,74 +1,70 @@
 <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">
@@ -83,6 +79,7 @@ import other from '/@/utils/other';
 import { Session, Local } from '/@/utils/storage';
 import UserNews from '/@/layout/navBars/breadcrumb/userNews.vue';
 import Search from '/@/layout/navBars/breadcrumb/search.vue';
+import api from '/@/api/system';
 export default defineComponent({
 	name: 'layoutBreadcrumbUser',
 	components: { UserNews, Search },
@@ -164,6 +161,7 @@ export default defineComponent({
 						setTimeout(() => {
 							window.location.href = ''; // 去登录页
 						}, 500);
+						api.login.logout();
 					})
 					.catch(() => {});
 			} else if (path === 'wareHouse') {

+ 2 - 2
src/router/backEnd.ts

@@ -3,7 +3,7 @@ import { Session } from '/@/utils/storage';
 import { NextLoading } from '/@/utils/loading';
 import { setAddRoute, setFilterMenuAndCacheTagsViewRoutes } from '/@/router/index';
 import { demoRoutes, dynamicRoutes } from '/@/router/route';
-import { currentUser } from '/@/api/login';
+import api from '/@/api/system';
 
 
 
@@ -56,7 +56,7 @@ export async function initBackEndControlRoutes() {
  * @returns 返回后端路由菜单数据
  */
 export async function getBackEndControlRoutes() {
-	return currentUser().then((res: any) => {
+	return api.login.currentUser().then((res: any) => {
 		Session.set('userMenu', res || [])
 		// Session.set('permissions',res.data.permissions)
 		// store.dispatch('userInfos/setPermissions',res.data.permissions)

+ 8 - 9
src/views/login/component/account.vue

@@ -57,17 +57,15 @@ import { initBackEndControlRoutes } from '/@/router/backEnd';
 import { useStore } from '/@/store/index';
 import { Session } from '/@/utils/storage';
 import { formatAxis } from '/@/utils/formatTime';
-import { login, captcha } from '/@/api/login';
-import * as api from '/@/api/login';
+import api from '/@/api/system';
 export default defineComponent({
 	name: 'loginAccount',
 	setup() {
-		console.log('setup');
 		const { t } = useI18n();
 		const store = useStore();
 		const route = useRoute();
 		const router = useRouter();
-		const { proxy } = <any>getCurrentInstance();
+		const { proxy } = getCurrentInstance() as any;
 		const state = reactive({
 			isShowPassword: false,
 			ruleForm: {
@@ -95,7 +93,7 @@ export default defineComponent({
 		});
 
 		const getCaptcha = () => {
-			captcha().then((res: any) => {
+			api.login.captcha().then((res: any) => {
 				state.captchaSrc = res.img;
 				state.ruleForm.VerifyKey = res.key;
 			});
@@ -108,7 +106,8 @@ export default defineComponent({
 				.validate((valid: boolean) => {
 					if (valid) {
 						state.loading.signIn = true;
-						login(state.ruleForm)
+						api.login
+							.login(state.ruleForm)
 							.then(async (res: any) => {
 								const userInfos = res.userInfo;
 								userInfos.avatar = proxy.getUpFileUrl(userInfos.avatar);
@@ -130,7 +129,7 @@ export default defineComponent({
 		};
 		// 获取登录用户信息
 		const currentUser = async () => {
-			api.currentUser().then(async (res) => {
+			api.login.currentUser().then(async (res: any) => {
 				// 设置用户菜单
 				Session.set('userMenu', res);
 				store.dispatch('requestOldRoutes/setBackEndControlRoutes', res);
@@ -160,8 +159,8 @@ export default defineComponent({
 			// 如果是复制粘贴的路径,非首页/登录页,那么登录成功后重定向到对应的路径中
 			if (route.query?.redirect) {
 				router.push({
-					path: <string>route.query?.redirect,
-					query: Object.keys(<string>route.query?.params).length > 0 ? JSON.parse(<string>route.query?.params) : '',
+					path: route.query?.redirect as string,
+					query: Object.keys(route.query?.params as string).length > 0 ? JSON.parse(route.query?.params as string) : '',
 				});
 			} else {
 				router.push('/');

+ 1 - 1
src/views/system/api/index.vue

@@ -63,7 +63,7 @@ const onDel = (row: ApiRow) => {
 		cancelButtonText: '取消',
 		type: 'warning',
 	}).then(async () => {
-		await api.menu.btn.del(row.id as number);
+		await api.api.del(row.id as number);
 		ElMessage.success('删除成功');
 		getList();
 	});