mirror of
https://github.com/fumiama/paper-manager.git
synced 2026-06-08 17:40:23 +08:00
add frontend/vben from vben-admin-thin
This commit is contained in:
16
frontend/vben/src/api/demo/account.ts
Normal file
16
frontend/vben/src/api/demo/account.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { GetAccountInfoModel } from './model/accountModel'
|
||||
|
||||
enum Api {
|
||||
ACCOUNT_INFO = '/account/getAccountInfo',
|
||||
SESSION_TIMEOUT = '/user/sessionTimeout',
|
||||
TOKEN_EXPIRED = '/user/tokenExpired',
|
||||
}
|
||||
|
||||
// Get personal center-basic settings
|
||||
|
||||
export const accountInfoApi = () => defHttp.get<GetAccountInfoModel>({ url: Api.ACCOUNT_INFO })
|
||||
|
||||
export const sessionTimeoutApi = () => defHttp.post<void>({ url: Api.SESSION_TIMEOUT })
|
||||
|
||||
export const tokenExpiredApi = () => defHttp.post<void>({ url: Api.TOKEN_EXPIRED })
|
||||
9
frontend/vben/src/api/demo/cascader.ts
Normal file
9
frontend/vben/src/api/demo/cascader.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { AreaModel, AreaParams } from '/@/api/demo/model/areaModel'
|
||||
|
||||
enum Api {
|
||||
AREA_RECORD = '/cascader/getAreaRecord',
|
||||
}
|
||||
|
||||
export const areaRecord = (data: AreaParams) =>
|
||||
defHttp.post<AreaModel>({ url: Api.AREA_RECORD, data })
|
||||
12
frontend/vben/src/api/demo/error.ts
Normal file
12
frontend/vben/src/api/demo/error.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
|
||||
enum Api {
|
||||
// The address does not exist
|
||||
Error = '/error',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Trigger ajax error
|
||||
*/
|
||||
|
||||
export const fireErrorApi = () => defHttp.get({ url: Api.Error })
|
||||
7
frontend/vben/src/api/demo/model/accountModel.ts
Normal file
7
frontend/vben/src/api/demo/model/accountModel.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export interface GetAccountInfoModel {
|
||||
email: string
|
||||
name: string
|
||||
introduction: string
|
||||
phone: string
|
||||
address: string
|
||||
}
|
||||
12
frontend/vben/src/api/demo/model/areaModel.ts
Normal file
12
frontend/vben/src/api/demo/model/areaModel.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export interface AreaModel {
|
||||
id: string
|
||||
code: string
|
||||
parentCode: string
|
||||
name: string
|
||||
levelType: number
|
||||
[key: string]: string | number
|
||||
}
|
||||
|
||||
export interface AreaParams {
|
||||
parentCode: string
|
||||
}
|
||||
15
frontend/vben/src/api/demo/model/optionsModel.ts
Normal file
15
frontend/vben/src/api/demo/model/optionsModel.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { BasicFetchResult } from '/@/api/model/baseModel'
|
||||
|
||||
export interface DemoOptionsItem {
|
||||
label: string
|
||||
value: string
|
||||
}
|
||||
|
||||
export interface selectParams {
|
||||
id: number | string
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Request list return value
|
||||
*/
|
||||
export type DemoOptionsGetResultModel = BasicFetchResult<DemoOptionsItem>
|
||||
74
frontend/vben/src/api/demo/model/systemModel.ts
Normal file
74
frontend/vben/src/api/demo/model/systemModel.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'
|
||||
|
||||
export type AccountParams = BasicPageParams & {
|
||||
account?: string
|
||||
nickname?: string
|
||||
}
|
||||
|
||||
export type RoleParams = {
|
||||
roleName?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
export type RolePageParams = BasicPageParams & RoleParams
|
||||
|
||||
export type DeptParams = {
|
||||
deptName?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
export type MenuParams = {
|
||||
menuName?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
export interface AccountListItem {
|
||||
id: string
|
||||
account: string
|
||||
email: string
|
||||
nickname: string
|
||||
role: number
|
||||
createTime: string
|
||||
remark: string
|
||||
status: number
|
||||
}
|
||||
|
||||
export interface DeptListItem {
|
||||
id: string
|
||||
orderNo: string
|
||||
createTime: string
|
||||
remark: string
|
||||
status: number
|
||||
}
|
||||
|
||||
export interface MenuListItem {
|
||||
id: string
|
||||
orderNo: string
|
||||
createTime: string
|
||||
status: number
|
||||
icon: string
|
||||
component: string
|
||||
permission: string
|
||||
}
|
||||
|
||||
export interface RoleListItem {
|
||||
id: string
|
||||
roleName: string
|
||||
roleValue: string
|
||||
status: number
|
||||
orderNo: string
|
||||
createTime: string
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Request list return value
|
||||
*/
|
||||
export type AccountListGetResultModel = BasicFetchResult<AccountListItem>
|
||||
|
||||
export type DeptListGetResultModel = BasicFetchResult<DeptListItem>
|
||||
|
||||
export type MenuListGetResultModel = BasicFetchResult<MenuListItem>
|
||||
|
||||
export type RolePageListGetResultModel = BasicFetchResult<RoleListItem>
|
||||
|
||||
export type RoleListGetResultModel = RoleListItem[]
|
||||
20
frontend/vben/src/api/demo/model/tableModel.ts
Normal file
20
frontend/vben/src/api/demo/model/tableModel.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'
|
||||
/**
|
||||
* @description: Request list interface parameters
|
||||
*/
|
||||
export type DemoParams = BasicPageParams
|
||||
|
||||
export interface DemoListItem {
|
||||
id: string
|
||||
beginTime: string
|
||||
endTime: string
|
||||
address: string
|
||||
name: string
|
||||
no: number
|
||||
status: number
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Request list return value
|
||||
*/
|
||||
export type DemoListGetResultModel = BasicFetchResult<DemoListItem>
|
||||
11
frontend/vben/src/api/demo/select.ts
Normal file
11
frontend/vben/src/api/demo/select.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { DemoOptionsItem, selectParams } from './model/optionsModel'
|
||||
enum Api {
|
||||
OPTIONS_LIST = '/select/getDemoOptions',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get sample options value
|
||||
*/
|
||||
export const optionsListApi = (params?: selectParams) =>
|
||||
defHttp.get<DemoOptionsItem[]>({ url: Api.OPTIONS_LIST, params })
|
||||
44
frontend/vben/src/api/demo/system.ts
Normal file
44
frontend/vben/src/api/demo/system.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import {
|
||||
AccountParams,
|
||||
DeptListItem,
|
||||
MenuParams,
|
||||
RoleParams,
|
||||
RolePageParams,
|
||||
MenuListGetResultModel,
|
||||
DeptListGetResultModel,
|
||||
AccountListGetResultModel,
|
||||
RolePageListGetResultModel,
|
||||
RoleListGetResultModel,
|
||||
} from './model/systemModel'
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
|
||||
enum Api {
|
||||
AccountList = '/system/getAccountList',
|
||||
IsAccountExist = '/system/accountExist',
|
||||
DeptList = '/system/getDeptList',
|
||||
setRoleStatus = '/system/setRoleStatus',
|
||||
MenuList = '/system/getMenuList',
|
||||
RolePageList = '/system/getRoleListByPage',
|
||||
GetAllRoleList = '/system/getAllRoleList',
|
||||
}
|
||||
|
||||
export const getAccountList = (params: AccountParams) =>
|
||||
defHttp.get<AccountListGetResultModel>({ url: Api.AccountList, params })
|
||||
|
||||
export const getDeptList = (params?: DeptListItem) =>
|
||||
defHttp.get<DeptListGetResultModel>({ url: Api.DeptList, params })
|
||||
|
||||
export const getMenuList = (params?: MenuParams) =>
|
||||
defHttp.get<MenuListGetResultModel>({ url: Api.MenuList, params })
|
||||
|
||||
export const getRoleListByPage = (params?: RolePageParams) =>
|
||||
defHttp.get<RolePageListGetResultModel>({ url: Api.RolePageList, params })
|
||||
|
||||
export const getAllRoleList = (params?: RoleParams) =>
|
||||
defHttp.get<RoleListGetResultModel>({ url: Api.GetAllRoleList, params })
|
||||
|
||||
export const setRoleStatus = (id: number, status: string) =>
|
||||
defHttp.post({ url: Api.setRoleStatus, params: { id, status } })
|
||||
|
||||
export const isAccountExist = (account: string) =>
|
||||
defHttp.post({ url: Api.IsAccountExist, params: { account } }, { errorMessageMode: 'none' })
|
||||
20
frontend/vben/src/api/demo/table.ts
Normal file
20
frontend/vben/src/api/demo/table.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { DemoParams, DemoListGetResultModel } from './model/tableModel'
|
||||
|
||||
enum Api {
|
||||
DEMO_LIST = '/table/getDemoList',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get sample list value
|
||||
*/
|
||||
|
||||
export const demoListApi = (params: DemoParams) =>
|
||||
defHttp.get<DemoListGetResultModel>({
|
||||
url: Api.DEMO_LIST,
|
||||
params,
|
||||
headers: {
|
||||
// @ts-ignore
|
||||
ignoreCancelToken: true,
|
||||
},
|
||||
})
|
||||
11
frontend/vben/src/api/demo/tree.ts
Normal file
11
frontend/vben/src/api/demo/tree.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
|
||||
enum Api {
|
||||
TREE_OPTIONS_LIST = '/tree/getDemoOptions',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get sample options value
|
||||
*/
|
||||
export const treeOptionsListApi = (params?: Recordable) =>
|
||||
defHttp.get<Recordable[]>({ url: Api.TREE_OPTIONS_LIST, params })
|
||||
9
frontend/vben/src/api/model/baseModel.ts
Normal file
9
frontend/vben/src/api/model/baseModel.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
export interface BasicPageParams {
|
||||
page: number
|
||||
pageSize: number
|
||||
}
|
||||
|
||||
export interface BasicFetchResult<T> {
|
||||
items: T[]
|
||||
total: number
|
||||
}
|
||||
14
frontend/vben/src/api/sys/menu.ts
Normal file
14
frontend/vben/src/api/sys/menu.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { getMenuListResultModel } from './model/menuModel'
|
||||
|
||||
enum Api {
|
||||
GetMenuList = '/getMenuList',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get user menu based on id
|
||||
*/
|
||||
|
||||
export const getMenuList = () => {
|
||||
return defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList })
|
||||
}
|
||||
16
frontend/vben/src/api/sys/model/menuModel.ts
Normal file
16
frontend/vben/src/api/sys/model/menuModel.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import type { RouteMeta } from 'vue-router'
|
||||
export interface RouteItem {
|
||||
path: string
|
||||
component: any
|
||||
meta: RouteMeta
|
||||
name?: string
|
||||
alias?: string | string[]
|
||||
redirect?: string
|
||||
caseSensitive?: boolean
|
||||
children?: RouteItem[]
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get menu return value
|
||||
*/
|
||||
export type getMenuListResultModel = RouteItem[]
|
||||
5
frontend/vben/src/api/sys/model/uploadModel.ts
Normal file
5
frontend/vben/src/api/sys/model/uploadModel.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface UploadApiResult {
|
||||
message: string
|
||||
code: number
|
||||
url: string
|
||||
}
|
||||
38
frontend/vben/src/api/sys/model/userModel.ts
Normal file
38
frontend/vben/src/api/sys/model/userModel.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @description: Login interface parameters
|
||||
*/
|
||||
export interface LoginParams {
|
||||
username: string
|
||||
password: string
|
||||
}
|
||||
|
||||
export interface RoleInfo {
|
||||
roleName: string
|
||||
value: string
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Login interface return value
|
||||
*/
|
||||
export interface LoginResultModel {
|
||||
userId: string | number
|
||||
token: string
|
||||
role: RoleInfo
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get user information return value
|
||||
*/
|
||||
export interface GetUserInfoModel {
|
||||
roles: RoleInfo[]
|
||||
// 用户id
|
||||
userId: string | number
|
||||
// 用户名
|
||||
username: string
|
||||
// 真实名字
|
||||
realName: string
|
||||
// 头像
|
||||
avatar: string
|
||||
// 介绍
|
||||
desc?: string
|
||||
}
|
||||
55
frontend/vben/src/api/sys/user.ts
Normal file
55
frontend/vben/src/api/sys/user.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { defHttp } from '/@/utils/http/axios'
|
||||
import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel'
|
||||
|
||||
import { ErrorMessageMode } from '/#/axios'
|
||||
|
||||
enum Api {
|
||||
Login = '/login',
|
||||
Logout = '/logout',
|
||||
GetUserInfo = '/getUserInfo',
|
||||
GetPermCode = '/getPermCode',
|
||||
TestRetry = '/testRetry',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: user login api
|
||||
*/
|
||||
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
|
||||
return defHttp.post<LoginResultModel>(
|
||||
{
|
||||
url: Api.Login,
|
||||
params,
|
||||
},
|
||||
{
|
||||
errorMessageMode: mode,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getUserInfo
|
||||
*/
|
||||
export function getUserInfo() {
|
||||
return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo }, { errorMessageMode: 'none' })
|
||||
}
|
||||
|
||||
export function getPermCode() {
|
||||
return defHttp.get<string[]>({ url: Api.GetPermCode })
|
||||
}
|
||||
|
||||
export function doLogout() {
|
||||
return defHttp.get({ url: Api.Logout })
|
||||
}
|
||||
|
||||
export function testRetry() {
|
||||
return defHttp.get(
|
||||
{ url: Api.TestRetry },
|
||||
{
|
||||
retryRequest: {
|
||||
isOpenRetry: true,
|
||||
count: 5,
|
||||
waitTime: 1000,
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user