Skip to content

Commit 7a62de3

Browse files
committed
2.0.0
1 parent 1ae5372 commit 7a62de3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1988
-2930
lines changed

.env

-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,3 @@ VITE_GLOB_APP_TITLE = AdminPro
66

77
# spa shortname
88
VITE_GLOB_APP_SHORT_NAME = AdminPro
9-
10-
# 生产环境 开启mock
11-
VITE_GLOB_PROD_MOCK = true

.env.development

+9-9
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ VITE_PORT = 8001
44
# 网站根目录
55
VITE_PUBLIC_PATH = /
66

7-
# 是否开启mock
7+
# 是否开启 mock
88
VITE_USE_MOCK = true
99

10-
# 网站前缀
11-
VITE_BASE_URL = /
10+
# 是否开启控制台打印 mock 请求信息
11+
VITE_LOGGER_MOCK = true
1212

1313
# 是否删除console
1414
VITE_DROP_CONSOLE = true
@@ -20,11 +20,11 @@ VITE_DROP_CONSOLE = true
2020
# API 接口地址
2121
VITE_GLOB_API_URL =
2222

23-
# 图片上传地址
24-
VITE_GLOB_UPLOAD_URL=
25-
26-
# 图片前缀地址
27-
VITE_GLOB_IMG_URL=
28-
2923
# 接口前缀
3024
VITE_GLOB_API_URL_PREFIX = /api
25+
26+
# 文件上传地址
27+
VITE_GLOB_UPLOAD_URL=
28+
29+
# 文件前缀地址
30+
VITE_GLOB_FILE_URL=

.env.production

+3-6
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,21 @@ VITE_USE_MOCK = true
44
# 网站根目录
55
VITE_PUBLIC_PATH = /
66

7-
# 网站前缀
8-
VITE_BASE_URL = /
9-
107
# 是否删除console
118
VITE_DROP_CONSOLE = true
129

1310
# API
1411
VITE_GLOB_API_URL =
1512

13+
# 接口前缀
14+
VITE_GLOB_API_URL_PREFIX = /api
15+
1616
# 图片上传地址
1717
VITE_GLOB_UPLOAD_URL=
1818

1919
# 图片前缀地址
2020
VITE_GLOB_IMG_URL=
2121

22-
# 接口前缀
23-
VITE_GLOB_API_URL_PREFIX = /api
24-
2522
# 是否启用gzip压缩或brotli压缩
2623
# 可选: gzip | brotli | none
2724
# 如果你需要多种形式,你可以用','来分隔

CHANGELOG.md

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# CHANGELOG
22

3+
## 2.0.0
4+
5+
- 新增 `alova` 请求库
6+
- 新增 `@faker-js/faker` 可配合 `mock` 数据模拟
7+
- 新增 `VITE_USE_MOCK` 环境变量-开启 `mock`
8+
- 新增 `demo` 实例,新增/编辑角色
9+
- 移除 `axios` 请求封装,使用 `alova` 代替
10+
- 移除 `vite-plugin-mock` 使用 `@alova/mock` 代替
11+
- 移除 `VITE_GLOB_PROD_MOCK` 环境变量
12+
- 变更 `VITE_GLOB_IMG_URL` 环境变量变更成 `VITE_GLOB_FILE_URL`
13+
- 优化 `BasicTable` 组件相关样式
14+
- 优化 `TS` 类型定义
15+
- 依赖升级
16+
317
## 1.9.2
418

519
- 升级 `vite``5.x` 版本

build/vite/plugin/index.ts

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
import type { Plugin,PluginOption } from 'vite';
1+
import type { Plugin, PluginOption } from 'vite';
22
import Components from 'unplugin-vue-components/vite';
33
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
44

55
import vue from '@vitejs/plugin-vue';
66
import vueJsx from '@vitejs/plugin-vue-jsx';
77

88
import { configHtmlPlugin } from './html';
9-
import { configMockPlugin } from './mock';
109
import { configCompressPlugin } from './compress';
1110

12-
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean, prodMock) {
13-
const { VITE_USE_MOCK, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;
11+
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
12+
const { VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;
1413

1514
const vitePlugins: (Plugin | Plugin[] | PluginOption[])[] = [
1615
// have to
@@ -28,9 +27,6 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean, prodMock)
2827
// vite-plugin-html
2928
vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
3029

31-
// vite-plugin-mock
32-
VITE_USE_MOCK && vitePlugins.push(configMockPlugin(isBuild, prodMock));
33-
3430
if (isBuild) {
3531
// rollup-plugin-gzip
3632
vitePlugins.push(

build/vite/plugin/mock.ts

-19
This file was deleted.

mock/_createProductionServer.ts

-22
This file was deleted.

mock/dashboard/console.ts

+27-27
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,44 @@
1-
import { Random } from 'mockjs';
1+
import { defineMock } from '@alova/mock';
2+
import { faker } from '@faker-js/faker';
23
import { resultSuccess } from '../_util';
34

4-
const consoleInfo = {
5+
function getRandom(options) {
6+
return Number(faker.commerce.price(options));
7+
}
8+
9+
const result = {
510
//访问量
611
visits: {
7-
dayVisits: Random.float(10000, 99999, 2, 2),
8-
rise: Random.float(10, 99),
9-
decline: Random.float(10, 99),
10-
amount: Random.float(99999, 999999, 3, 5),
12+
dayVisits: getRandom({ min: 10000, max: 99999, dec: 2 }),
13+
rise: getRandom({ min: 10000, max: 99999, dec: 0 }),
14+
decline: getRandom({ min: 10000, max: 99999, dec: 0 }),
15+
amount: getRandom({ min: 10000, max: 99999, dec: 2 }),
1116
},
1217
//销售额
1318
saleroom: {
14-
weekSaleroom: Random.float(10000, 99999, 2, 2),
15-
amount: Random.float(99999, 999999, 2, 2),
16-
degree: Random.float(10, 99),
19+
weekSaleroom: getRandom({ min: 10000, max: 99999, dec: 2 }),
20+
amount: getRandom({ min: 10000, max: 99999, dec: 2 }),
21+
degree: getRandom({ min: 10000, max: 99999, dec: 0 }),
1722
},
1823
//订单量
1924
orderLarge: {
20-
weekLarge: Random.float(10000, 99999, 2, 2),
21-
rise: Random.float(10, 99),
22-
decline: Random.float(10, 99),
23-
amount: Random.float(99999, 999999, 2, 2),
25+
weekLarge: getRandom({ min: 10000, max: 99999, dec: 2 }),
26+
rise: getRandom({ min: 10000, max: 99999, dec: 0 }),
27+
decline: getRandom({ min: 10000, max: 99999, dec: 0 }),
28+
amount: getRandom({ min: 10000, max: 99999, dec: 2 }),
2429
},
2530
//成交额度
2631
volume: {
27-
weekLarge: Random.float(10000, 99999, 2, 2),
28-
rise: Random.float(10, 99),
29-
decline: Random.float(10, 99),
30-
amount: Random.float(99999, 999999, 2, 2),
32+
weekLarge: getRandom({ min: 10000, max: 99999, dec: 2 }),
33+
rise: getRandom({ min: 10000, max: 99999, dec: 0 }),
34+
decline: getRandom({ min: 10000, max: 99999, dec: 0 }),
35+
amount: getRandom({ min: 10000, max: 99999, dec: 2 }),
3136
},
3237
};
3338

34-
export default [
35-
//主控台 卡片数据
36-
{
37-
url: '/api/dashboard/console',
38-
timeout: 1000,
39-
method: 'get',
40-
response: () => {
41-
return resultSuccess(consoleInfo);
42-
},
39+
export default defineMock({
40+
// 主控台数据
41+
'/api/dashboard/console': () => {
42+
return resultSuccess(result);
4343
},
44-
];
44+
});

mock/system/menu.ts

+20-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
1+
import { defineMock } from '@alova/mock';
12
import { resultSuccess } from '../_util';
23

4+
export interface ListDate {
5+
label: string;
6+
key: string;
7+
type: number;
8+
subtitle: string;
9+
openType: number;
10+
auth: string;
11+
path: string;
12+
children?: ListDate[];
13+
}
14+
315
const menuList = () => {
4-
const result: any[] = [
16+
const result: ListDate[] = [
517
{
618
label: 'Dashboard',
719
key: 'dashboard',
@@ -74,16 +86,11 @@ const menuList = () => {
7486
return result;
7587
};
7688

77-
export default [
78-
{
79-
url: '/api/menu/list',
80-
timeout: 1000,
81-
method: 'get',
82-
response: () => {
83-
const list = menuList();
84-
return resultSuccess({
85-
list,
86-
});
87-
},
89+
export default defineMock({
90+
'/api/menu/list': () => {
91+
const list = menuList();
92+
return resultSuccess({
93+
list,
94+
});
8895
},
89-
];
96+
});

mock/system/role.ts

+24-24
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
import { defineMock } from '@alova/mock';
2+
import { faker } from '@faker-js/faker';
13
import { resultSuccess, doCustomTimes } from '../_util';
2-
4+
import dayjs from 'dayjs';
35
function getMenuKeys() {
46
const keys = ['dashboard', 'console', 'workplace', 'basic-form', 'step-form', 'detail'];
57
const newKeys = [];
68
doCustomTimes(parseInt(Math.random() * 6), () => {
79
const key = keys[Math.floor(Math.random() * keys.length)];
8-
newKeys.push(key);
10+
newKeys.push(key as never);
911
});
1012
return Array.from(new Set(newKeys));
1113
}
@@ -14,32 +16,30 @@ const roleList = (pageSize) => {
1416
const result: any[] = [];
1517
doCustomTimes(pageSize, () => {
1618
result.push({
17-
id: '@integer(10,100)',
18-
name: '@cname()',
19-
explain: '@cname()',
20-
isDefault: '@boolean()',
19+
id: faker.string.numeric(4),
20+
name: faker.person.firstName(),
21+
explain: faker.lorem.sentence({ min: 2, max: 4 }),
22+
isDefault: faker.helpers.arrayElement([true, false]),
2123
menu_keys: getMenuKeys(),
22-
create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
23-
'status|1': ['normal', 'enable', 'disable'],
24+
create_date: dayjs(faker.date.anytime()).format('YYYY-MM-DD HH:mm'),
25+
status: faker.helpers.arrayElement(['normal', 'enable', 'disable']),
2426
});
2527
});
2628
return result;
2729
};
2830

29-
export default [
30-
{
31-
url: '/api/role/list',
32-
timeout: 1000,
33-
method: 'get',
34-
response: ({ query }) => {
35-
const { page = 1, pageSize = 10 } = query;
36-
const list = roleList(Number(pageSize));
37-
return resultSuccess({
38-
page: Number(page),
39-
pageSize: Number(pageSize),
40-
pageCount: 60,
41-
list,
42-
});
43-
},
31+
export default defineMock({
32+
'/api/role/list': ({ query }) => {
33+
const { page = 1, pageSize = 10, name } = query;
34+
const list = roleList(Number(pageSize));
35+
// 并非真实,只是为了模拟搜索结果
36+
const count = name ? 30 : 60;
37+
return resultSuccess({
38+
page: Number(page),
39+
pageSize: Number(pageSize),
40+
pageCount: count,
41+
itemCount: count * Number(pageSize),
42+
list,
43+
});
4444
},
45-
];
45+
});

0 commit comments

Comments
 (0)