first commit

This commit is contained in:
2024-04-08 21:34:02 +08:00
commit a41a7f32ab
223 changed files with 44629 additions and 0 deletions

9
src/mock/_base.ts Normal file
View 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
View File

@@ -0,0 +1,2 @@
/** 省市区数据类型 */
export type MockAreaItem = { label: string; code: string; children?: MockAreaItem[] }

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
View 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
View 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
View File

@@ -0,0 +1,7 @@
import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
import area from './area'
export function setupProdMockServer() {
createProdMockServer([...area])
}