mirror of
https://github.com/continew-org/continew-admin-ui.git
synced 2025-09-18 08:57:08 +08:00
first commit
This commit is contained in:
9
src/mock/_base.ts
Normal file
9
src/mock/_base.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { MockMethod } from 'vite-plugin-mock'
|
||||
|
||||
/** 前缀 */
|
||||
const prefix = '/mock'
|
||||
|
||||
/** 提供类型函数 */
|
||||
export function defineMock(option: MockMethod[]) {
|
||||
return option.map((i) => ({ ...i, url: prefix + i.url }))
|
||||
}
|
2
src/mock/_data/_type.ts
Normal file
2
src/mock/_data/_type.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
/** 省市区数据类型 */
|
||||
export type MockAreaItem = { label: string; code: string; children?: MockAreaItem[] }
|
15840
src/mock/_data/area.ts
Normal file
15840
src/mock/_data/area.ts
Normal file
File diff suppressed because it is too large
Load Diff
27
src/mock/_utils.ts
Normal file
27
src/mock/_utils.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import Mock from 'mockjs'
|
||||
import { random } from 'xe-utils'
|
||||
|
||||
/** 返回成功数据 */
|
||||
export const resultSuccess = (data: unknown) => {
|
||||
return Mock.mock({
|
||||
code: 200,
|
||||
data,
|
||||
msg: '请求成功',
|
||||
success: true
|
||||
})
|
||||
}
|
||||
|
||||
/** 返回失败数据 */
|
||||
export const resultError = (data: unknown, msg: string, code = 500) => {
|
||||
return Mock.mock({
|
||||
code,
|
||||
data,
|
||||
msg,
|
||||
success: false
|
||||
})
|
||||
}
|
||||
|
||||
/** 获取 50-300ms 的随机延时 */
|
||||
export const getDelayTime = () => {
|
||||
return random(50, 300)
|
||||
}
|
24
src/mock/area/index.ts
Normal file
24
src/mock/area/index.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { defineMock } from '../_base'
|
||||
import { resultSuccess, getDelayTime } from '../_utils'
|
||||
import { findTree } from 'xe-utils'
|
||||
import areaData from '../_data/area'
|
||||
|
||||
export default defineMock([
|
||||
{
|
||||
url: '/area/list',
|
||||
method: 'get',
|
||||
timeout: getDelayTime(),
|
||||
response: ({ query }) => {
|
||||
const { type, code } = query
|
||||
if (type === 'province') {
|
||||
const data = areaData.map((i) => ({ label: i.label, code: i.code }))
|
||||
return resultSuccess(data)
|
||||
}
|
||||
if (type === 'city' || type === 'area') {
|
||||
const parent = findTree(areaData, (i) => i.code === code)
|
||||
const data = parent?.item?.children?.map((i) => ({ label: i.label, code: i.code }))
|
||||
return resultSuccess(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
])
|
7
src/mock/index.ts
Normal file
7
src/mock/index.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
|
||||
|
||||
import area from './area'
|
||||
|
||||
export function setupProdMockServer() {
|
||||
createProdMockServer([...area])
|
||||
}
|
Reference in New Issue
Block a user