From 00bc4bef42e545e313ac75fe4a567ddcee5ea9f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=9F=E8=B1=86=E5=93=A5?= Date: Mon, 7 Nov 2022 11:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8restful?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/menu.ts | 12 ++++++------ src/api/role.ts | 26 ++++++++++---------------- src/api/user.ts | 11 ++++++++++- src/utils/index.ts | 21 +++++++++++++++++++++ src/utils/request.ts | 21 +++++++++++---------- src/views/help/chat/index.vue | 22 +++++++++++----------- src/views/system/menu/index.vue | 2 ++ src/views/system/user/index.vue | 16 ++++++++++++++++ 8 files changed, 87 insertions(+), 44 deletions(-) diff --git a/src/api/menu.ts b/src/api/menu.ts index c612318..348154e 100644 --- a/src/api/menu.ts +++ b/src/api/menu.ts @@ -2,10 +2,10 @@ import { Menu } from '../types/menu' import request, { QuickResponseData } from '../utils/request' const Api = { - list: '/api/menu/getList', - add: '/api/menu/add', - update: '/api/menu/update', - delete: '/api/menu/delete', + list: '/api/v1/menu', + add: '/api/v1/menu', + update: '/api/v1/menu', + delete: '/api/v1/menu', } export const getMenuList = (): Promise>> => { return request>>({ @@ -23,14 +23,14 @@ export const addMenu = (data: Menu) => { export const updateMenu = (data: Menu) => { return request({ url: Api.update, - method: 'POST', + method: 'PUT', data, }) } export const deleteMenu = (id: string) => { return request({ url: Api.delete, - method: 'POST', + method: 'DELETE', data: { id, }, diff --git a/src/api/role.ts b/src/api/role.ts index b885836..debbcdc 100644 --- a/src/api/role.ts +++ b/src/api/role.ts @@ -4,12 +4,12 @@ import { Role } from '../types/role' import request, { QuickResponseData } from '../utils/request' const Api = { - menuList: '/api/role/getMenuPermission', - userList: '/api/role/getUserPermission', - list: '/api/role/getList', - add: '/api/role/add', - update: '/api/role/update', - delete: '/api/role/delete', + menuList: '/api/v1/auth/getMenuListByRoleId', + userList: '/api/v1/auth/getUserListByRoleId', + list: '/api/v1/role/getRoleList', + add: '/api/v1/role', + update: '/api/v1/role', + delete: '/api/v1/role', assignPermission: '/api/role/assignPermission', assignUser: '/api/role/assignUser', } @@ -17,22 +17,16 @@ export const getMenuPermission = ( roleId: string ): Promise>> => { return request>>({ - url: Api.menuList, + url: `${Api.menuList}/${roleId}`, method: 'GET', - params: { - id: roleId, - }, }) } export const getUserPermission = ( roleId: string ): Promise>> => { return request>>({ - url: Api.userList, + url: `${Api.userList}/${roleId}`, method: 'GET', - params: { - id: roleId, - }, }) } @@ -53,14 +47,14 @@ export const addRole = (data: Role) => { export const updateRole = (data: Role) => { return request({ url: Api.update, - method: 'POST', + method: 'PUT', data, }) } export const deleteRole = (id: string) => { return request({ url: Api.delete, - method: 'POST', + method: 'DELETE', data: { id, }, diff --git a/src/api/user.ts b/src/api/user.ts index ca2b148..36c30be 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -3,6 +3,7 @@ import { ChangePassword, User } from '../types/user' import request, { QuickResponseData } from '../utils/request' const Api = { + export: '/api/v1/user/exportUser', pageList: '/api/v1/user', list: '/api/v1/user/getUserList', detail: '/api/v1/user', @@ -17,7 +18,15 @@ const Api = { enabled: '/api/user/enabled', disable: '/api/user/disable', } - +export const exportUser = (): // params: object +Promise> => { + return request>>({ + url: Api.export, + method: 'GET', + responseType: 'arraybuffer', + // params, + }) +} export const getUserPageList = ( params: object ): Promise>> => { diff --git a/src/utils/index.ts b/src/utils/index.ts index 0c9217f..6deb199 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -180,3 +180,24 @@ export const listToTree = (data, pId, options) => { }) return arr } + +// 导出文件:请求参数增参数responseType: 'blob' +export const exportFile = (file: any, fileName: string, type: string) => { + const blob = new Blob([file], { type }) + const link = document.createElement('a') + const href = window.URL.createObjectURL(blob) + link.href = href + link.download = `${fileName}.xlsx` + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + window.URL.revokeObjectURL(href) // 释放掉blob对象 +} + +export const downloadExcel = (file: any, fileName: string) => { + exportFile(file, fileName, 'application/vnd.ms-excel') +} + +export const downloadWord = (file: any, fileName: string) => { + exportFile(file, fileName, 'application/msword') +} diff --git a/src/utils/request.ts b/src/utils/request.ts index d48f7db..c6fb5fb 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,5 +1,6 @@ import { ElMessage, ElMessageBox } from 'element-plus' import axios, { AxiosInstance, AxiosRequestConfig } from 'axios' +import { useRouter } from 'vue-router' import { useLoginStore } from '@/store/modules/login' export interface QuickResponseData { @@ -9,6 +10,7 @@ export interface QuickResponseData { total: number } +const router = useRouter() const baseURL = import.meta.env.VITE_APP_BASE_URL const quickRequest: AxiosInstance = axios.create({ baseURL, @@ -41,6 +43,10 @@ quickRequest.interceptors.response.use( (res) => { console.info('response', res) const { data: resultData } = res + debugger + if (res.config.url === '/api/v1/user/exportUser') { + return resultData + } const { code, data, message } = resultData as QuickResponseData if (code === 1) { ElMessage.error(message) @@ -63,19 +69,14 @@ quickRequest.interceptors.response.use( const { status } = response if (status === 401) { ElMessageBox.confirm('登录过期,请重新登录', '警告', { - confirmButtonText: '去登录', + confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', + }).then(() => { + localStorage.clear() + sessionStorage.clear() + router.push('/login') }) - .then(() => { - // 确定 - - localStorage.clear() - sessionStorage.clear() - }) - .catch(() => { - // 取消 - }) } else { ElMessage.error(error) } diff --git a/src/views/help/chat/index.vue b/src/views/help/chat/index.vue index a11966f..c30ede0 100644 --- a/src/views/help/chat/index.vue +++ b/src/views/help/chat/index.vue @@ -3,16 +3,16 @@ import { io } from 'socket.io-client' import { onMounted } from 'vue' -let wsClinet: any = null +let client: any = null onMounted(() => { - wsClinet = io('http://localhost:3000') - wsClinet.emit('events', (res: any) => { - console.log('res', res) - }) - wsClinet.emit('events', (res: any) => { - console.log('res', res) - }) + client = io('http://localhost:3000') + // client.emit('events', (res: any) => { + // console.log('res', res) + // }) + // client.emit('events', (res: any) => { + // console.log('res', res) + // }) }) // client.on('connect', () => { // console.log('socket connect success') @@ -23,9 +23,9 @@ onMounted(() => { // console.log('开始登录', content) // client.emit('events', content) // }) -// client.on('message', (data) => { -// console.log('message', data) -// }) +client.on('message', (data: any) => { + console.log('message', data) +})