create-meadminjs 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +0 -0
- package/bin/index.js +0 -0
- package/dist/cli.js +0 -1
- package/package.json +36 -38
- package/template/meadmin/README.md +12 -1
- package/template/meadmin/packageTemplate.json +5 -5
- package/template/meadmin/src/app/admin/controller/userFile.controller.ts +84 -84
- package/template/meadmin/src/app/index/controller/file.controller.ts +2 -54
- package/template/meadmin/src/app/index/middleware/index.middleware.ts +1 -1
- package/template/meadmin/src/config/config.default.ts +154 -154
- package/template/meadmin/src/configuration.ts +107 -107
- package/template/meadmin/src/entities/abstract/base.entity.ts +40 -1
- package/template/meadmin/src/fileManage/storage/local.ts +93 -93
- package/template/meadmin/src/logger.ts +24 -24
- package/template/meadmin/src/types/mwtsc.d.ts +9 -0
- package/template/meadmin/tsconfig.json +1 -1
- package/template/meadmin/view/admin/src/components/meVxeTable/index.vue +2 -2
- package/template/meadmin/view/admin/src/config/login.ts +1 -1
- package/template/meadmin/view/admin/src/layout/components/header/components/topBar/components/right/components/user.vue +2 -7
- package/template/meadmin/view/index/dist/assets/404-B7Oawy5R.js +1 -0
- package/template/meadmin/view/index/dist/assets/404-B7Oawy5R.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/404-B7Oawy5R.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/404-CozhfxlA.css +1 -0
- package/template/meadmin/view/index/dist/assets/404-CozhfxlA.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/404-CozhfxlA.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/404-DSkhiBHr.svg +339 -0
- package/template/meadmin/view/index/dist/assets/404-DSkhiBHr.svg.br +0 -0
- package/template/meadmin/view/index/dist/assets/404-DSkhiBHr.svg.gz +0 -0
- package/template/meadmin/view/index/dist/assets/avatar-CPvykNE-.jpg +0 -0
- package/template/meadmin/view/index/dist/assets/core-CY5zzX7u.css +1 -0
- package/template/meadmin/view/index/dist/assets/core-CY5zzX7u.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/core-CY5zzX7u.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/core-DYgtGCsy.js +36 -0
- package/template/meadmin/view/index/dist/assets/core-DYgtGCsy.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/core-DYgtGCsy.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/iconfont.1764811574696-C-d53NQO.woff +0 -0
- package/template/meadmin/view/index/dist/assets/iconfont.1764811574696-C396vfjy.ttf +0 -0
- package/template/meadmin/view/index/dist/assets/iconfont.1764834414498-BllfKX1O.ttf +0 -0
- package/template/meadmin/view/index/dist/assets/iconfont.1764834414498-D9epzWxu.woff +0 -0
- package/template/meadmin/view/index/dist/assets/index-B3PE5HQn.css +1 -0
- package/template/meadmin/view/index/dist/assets/index-B3PE5HQn.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-B3PE5HQn.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-B3e7_EsO.css +1 -0
- package/template/meadmin/view/index/dist/assets/index-B3e7_EsO.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-B3e7_EsO.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-BzGDrXWK.js +1 -0
- package/template/meadmin/view/index/dist/assets/index-BzGDrXWK.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-BzGDrXWK.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-D6Bdjbmj.css +1 -0
- package/template/meadmin/view/index/dist/assets/index-D6Bdjbmj.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-D6Bdjbmj.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-Dk1Rpy73.js +1 -0
- package/template/meadmin/view/index/dist/assets/index-Dk1Rpy73.js.br +2 -0
- package/template/meadmin/view/index/dist/assets/index-Dk1Rpy73.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-Dt87n6GJ.css +1 -0
- package/template/meadmin/view/index/dist/assets/index-Dt87n6GJ.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-Dt87n6GJ.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-DzU3RK7y.js +1 -0
- package/template/meadmin/view/index/dist/assets/index-DzU3RK7y.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-DzU3RK7y.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/index-eAIKfPTe.js +8 -0
- package/template/meadmin/view/index/dist/assets/index-eAIKfPTe.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/index-eAIKfPTe.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/meButton.vue_vue_type_script_setup_true_name_MeButton_lang-Chv--Mwp.js +1 -0
- package/template/meadmin/view/index/dist/assets/meButton.vue_vue_type_script_setup_true_name_MeButton_lang-Chv--Mwp.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/meButton.vue_vue_type_script_setup_true_name_MeButton_lang-Chv--Mwp.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-CwQ1B8_T.js +1 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-CwQ1B8_T.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-CwQ1B8_T.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-VeMBR6Vn.css +1 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-VeMBR6Vn.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/meUpAvatar-VeMBR6Vn.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/promiseError-2WriTuHu.css +1 -0
- package/template/meadmin/view/index/dist/assets/promiseError-2WriTuHu.css.br +0 -0
- package/template/meadmin/view/index/dist/assets/promiseError-2WriTuHu.css.gz +0 -0
- package/template/meadmin/view/index/dist/assets/promiseError-DE4bj2f8.js +1 -0
- package/template/meadmin/view/index/dist/assets/promiseError-DE4bj2f8.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/promiseError-DE4bj2f8.js.gz +0 -0
- package/template/meadmin/view/index/dist/assets/redirect-BvCSNyBL.js +1 -0
- package/template/meadmin/view/index/dist/assets/redirect-BvCSNyBL.js.br +0 -0
- package/template/meadmin/view/index/dist/assets/redirect-BvCSNyBL.js.gz +0 -0
- package/template/meadmin/view/index/dist/favicon.ico +0 -0
- package/template/meadmin/view/index/dist/index.html +25 -0
- package/template/meadmin/view/index/dist/index.html.br +0 -0
- package/template/meadmin/view/index/dist/index.html.gz +0 -0
- package/template/meadmin/view/index/dist/logo.png +0 -0
- package/template/meadmin/view/index/dist/logo.svg +1 -0
- package/template/meadmin/view/index/dist/logo.svg.br +0 -0
- package/template/meadmin/view/index/dist/logo.svg.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/404-B9UJ1mUk.js +71 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/404-B9UJ1mUk.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/404-B9UJ1mUk.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-DLA-WCC9.js +141 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-DLA-WCC9.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-DLA-WCC9.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-Dp0aaFR-.js +863 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-Dp0aaFR-.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-Dp0aaFR-.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-jfc9wRUh.js +712 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-jfc9wRUh.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/index-jfc9wRUh.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meButton-C6nJLVaV.js +63 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meButton-C6nJLVaV.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meButton-C6nJLVaV.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meUpAvatar-BitBSZhv.js +272 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meUpAvatar-BitBSZhv.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/meUpAvatar-BitBSZhv.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/promiseError-htSuzmaR.js +106 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/promiseError-htSuzmaR.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/promiseError-htSuzmaR.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/redirect-D73DvP_s.js +65 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/redirect-D73DvP_s.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/assets/redirect-D73DvP_s.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr/src/entry-server.js +1918 -0
- package/template/meadmin/view/index/dist/ssr/src/entry-server.js.br +0 -0
- package/template/meadmin/view/index/dist/ssr/src/entry-server.js.gz +0 -0
- package/template/meadmin/view/index/dist/ssr-manifest.json +16989 -0
- package/template/meadmin/view/index/src/app.ts +39 -39
- package/template/meadmin/view/index/src/components/meDialog/index.vue +3 -1
- package/template/meadmin/view/index/src/components/meVxeTable/index.vue +2 -2
- package/template/meadmin/view/index/src/components/service/meImageViewer.ts +6 -2
- package/template/meadmin/view/index/src/config/login.ts +1 -1
- package/template/meadmin/view/index/src/main.ts +1 -1
- package/template/meadmin/view/index/src/utils/cookies.ts +59 -59
- package/template/meadmin/view/index/src/utils/request.ts +2 -2
- package/template/meadmin/view/index/types/auto-imports.d.ts +0 -1
- package/template/meadmin/view/index/types/components.d.ts +2 -2
- package/template/meadmin/src/middleware/report.middleware.ts +0 -23
- package/template/meadmin/types/mwtsc.d.ts +0 -9
package/bin/cli.js
CHANGED
|
File without changes
|
package/bin/index.js
CHANGED
|
File without changes
|
package/dist/cli.js
CHANGED
package/package.json
CHANGED
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "create-meadminjs",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"author": "Yuntian001",
|
|
9
|
-
"bin": {
|
|
10
|
-
"create-meadminjs": "bin/index.js",
|
|
11
|
-
"cva": "bin/index.js",
|
|
12
|
-
"create-meadminjs-cli": "bin/cli.js"
|
|
13
|
-
},
|
|
14
|
-
"files": [
|
|
15
|
-
"bin",
|
|
16
|
-
"template",
|
|
17
|
-
"dist"
|
|
18
|
-
],
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "create-meadminjs",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"author": "Yuntian001",
|
|
9
|
+
"bin": {
|
|
10
|
+
"create-meadminjs": "bin/index.js",
|
|
11
|
+
"cva": "bin/index.js",
|
|
12
|
+
"create-meadminjs-cli": "bin/cli.js"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"bin",
|
|
16
|
+
"template",
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"keywords": [],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@sequelize/core": "7.0.0-alpha.47",
|
|
22
|
+
"@sequelize/postgres": "7.0.0-alpha.47",
|
|
23
|
+
"commander": "^14.0.0",
|
|
24
|
+
"cross-spawn": "^7.0.6",
|
|
25
|
+
"dotenv": "^16.6.1",
|
|
26
|
+
"prettier": "2.8.8"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"tsdown": "^0.20.1"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "tsdown --watch",
|
|
33
|
+
"build": "tsdown",
|
|
34
|
+
"typecheck": "tsc"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -32,10 +32,21 @@ Me-admin 是一个免费开源的后台解决方案,后端基于medwayjs ,前台
|
|
|
32
32
|
|
|
33
33
|
### 调试项目
|
|
34
34
|
|
|
35
|
-
在项目根目录执行 `pnpm dev`
|
|
35
|
+
- 在项目根目录执行 `pnpm dev`
|
|
36
|
+
- 后台访问 [http://127.0.0.1:7001/admin](http://127.0.0.1:7001/admin)
|
|
37
|
+
- 前台访问 [http://127.0.0.1:7001/](http://127.0.0.1:7001/)
|
|
36
38
|
|
|
37
39
|
### 打包项目
|
|
38
40
|
- pnpm build
|
|
39
41
|
|
|
42
|
+
### 默认账户
|
|
43
|
+
|
|
44
|
+
## 后台
|
|
45
|
+
默认账户 admin
|
|
46
|
+
默认密码 meAdmin#202507!P
|
|
47
|
+
|
|
48
|
+
## 前台
|
|
49
|
+
默认账户 test
|
|
50
|
+
默认密码 123456789
|
|
40
51
|
|
|
41
52
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"version": "1.0.
|
|
2
|
+
"name": "meadmin",
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"private": true,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@meadmin/cli": "^1.0.
|
|
9
|
-
"@meadmin/core": "^1.0.
|
|
10
|
-
"@meadmin/midway-vite-view": "^1.0.
|
|
8
|
+
"@meadmin/cli": "^1.0.3",
|
|
9
|
+
"@meadmin/core": "^1.0.2",
|
|
10
|
+
"@meadmin/midway-vite-view": "^1.0.2",
|
|
11
11
|
"@midwayjs/bootstrap": "^3.20.11",
|
|
12
12
|
"@midwayjs/busboy": "3.20.19",
|
|
13
13
|
"@midwayjs/cache-manager": "^3.20.11",
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { AdminPermission, ApiOperationResponse } from '@/decorators/index.js';
|
|
2
|
-
import { uploadStorage } from '@/fileManage/index.js';
|
|
3
|
-
import { UploadMiddleware, UploadStreamFileInfo } from '@midwayjs/busboy';
|
|
4
|
-
import { Body, Controller, Fields, Files, Get, Inject, Param, Post } from '@midwayjs/core';
|
|
5
|
-
import { ApiBody, BodyContentType } from '@midwayjs/swagger';
|
|
6
|
-
import { UserFile } from '../../../entities/userFile.entity.js';
|
|
7
|
-
import { UserFileQueryDto } from '../dto/userFileQuery.dto.js';
|
|
8
|
-
import { UserFileUpDto } from '../dto/userFileUp.dto.js';
|
|
9
|
-
import { UserFileUpdateDto } from '../dto/userFileUpdate.dto.js';
|
|
10
|
-
import { UserFileService } from '../service/userFile.service.js';
|
|
11
|
-
import { BaseController } from './base.controller.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* 为了防止防火墙禁止PUT、DELETE请求,方便传参,除详情外统一使用post请求。
|
|
15
|
-
* meadmin对controller做了装饰器继承封装,当以/开头时会使用当前controller前缀地址,不以/开头时会递归继承controller前缀地址
|
|
16
|
-
*/
|
|
17
|
-
@Controller('userFile')
|
|
18
|
-
export class UserFileController extends BaseController {
|
|
19
|
-
@Inject()
|
|
20
|
-
userFileService: UserFileService;
|
|
21
|
-
|
|
22
|
-
@Post('/upload', { middleware: [UploadMiddleware] })
|
|
23
|
-
@ApiBody({
|
|
24
|
-
contentType: BodyContentType.Multipart,
|
|
25
|
-
schema: {
|
|
26
|
-
type: UserFileUpDto,
|
|
27
|
-
},
|
|
28
|
-
})
|
|
29
|
-
@ApiOperationResponse({
|
|
30
|
-
responseType: File,
|
|
31
|
-
summary: '上传附件',
|
|
32
|
-
description: '如果data为{}代表分片上传成功,为Fule对象代表文件上传完成(可能已存在秒传成功)',
|
|
33
|
-
})
|
|
34
|
-
async upload(@Files() files: Array<UploadStreamFileInfo>, @Fields() params: UserFileUpDto) {
|
|
35
|
-
const file = files[0]; //只获取一个文件,不支持多文件数组
|
|
36
|
-
const res = await uploadStorage.localStorage('index').upload(file, params);
|
|
37
|
-
return this.success(res ? await this.userFileService.create(res) : {});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
41
|
-
@Post('/')
|
|
42
|
-
@ApiOperationResponse({
|
|
43
|
-
responsePage: UserFile,
|
|
44
|
-
summary: '获取用户附件表(前台)列表',
|
|
45
|
-
})
|
|
46
|
-
@AdminPermission('UserFileList')
|
|
47
|
-
async list(@Body() queryDto: UserFileQueryDto) {
|
|
48
|
-
return this.success(await this.userFileService.list(queryDto));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
52
|
-
@Get('/info/:id')
|
|
53
|
-
@ApiOperationResponse({
|
|
54
|
-
responseType: UserFile,
|
|
55
|
-
summary: '根据id获取用户附件表(前台)详情',
|
|
56
|
-
})
|
|
57
|
-
@AdminPermission('UserFileEdit')
|
|
58
|
-
async findOne(@Param('id') id: string) {
|
|
59
|
-
const entity = await this.userFileService.findOne(id);
|
|
60
|
-
return this.success(entity);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
64
|
-
@Post('/up/:id')
|
|
65
|
-
@ApiOperationResponse({
|
|
66
|
-
responseType: UserFile,
|
|
67
|
-
summary: '根据id更新用户附件表(前台)详情',
|
|
68
|
-
})
|
|
69
|
-
@AdminPermission('UserFileEdit')
|
|
70
|
-
async update(@Param('id') id: string, @Body() updateDto: UserFileUpdateDto) {
|
|
71
|
-
return this.success(await this.userFileService.update(id, updateDto));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
75
|
-
@Post('/del/:id')
|
|
76
|
-
@ApiOperationResponse({
|
|
77
|
-
summary: '根据id删除用户附件表(前台)信息',
|
|
78
|
-
})
|
|
79
|
-
@AdminPermission('UserFileDel')
|
|
80
|
-
async delete(@Param('id') id: string) {
|
|
81
|
-
await this.userFileService.remove(id);
|
|
82
|
-
return this.success();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
import { AdminPermission, ApiOperationResponse } from '@/decorators/index.js';
|
|
2
|
+
import { uploadStorage } from '@/fileManage/index.js';
|
|
3
|
+
import { UploadMiddleware, UploadStreamFileInfo } from '@midwayjs/busboy';
|
|
4
|
+
import { Body, Controller, Fields, Files, Get, Inject, Param, Post } from '@midwayjs/core';
|
|
5
|
+
import { ApiBody, BodyContentType } from '@midwayjs/swagger';
|
|
6
|
+
import { UserFile } from '../../../entities/userFile.entity.js';
|
|
7
|
+
import { UserFileQueryDto } from '../dto/userFileQuery.dto.js';
|
|
8
|
+
import { UserFileUpDto } from '../dto/userFileUp.dto.js';
|
|
9
|
+
import { UserFileUpdateDto } from '../dto/userFileUpdate.dto.js';
|
|
10
|
+
import { UserFileService } from '../service/userFile.service.js';
|
|
11
|
+
import { BaseController } from './base.controller.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 为了防止防火墙禁止PUT、DELETE请求,方便传参,除详情外统一使用post请求。
|
|
15
|
+
* meadmin对controller做了装饰器继承封装,当以/开头时会使用当前controller前缀地址,不以/开头时会递归继承controller前缀地址
|
|
16
|
+
*/
|
|
17
|
+
@Controller('userFile')
|
|
18
|
+
export class UserFileController extends BaseController {
|
|
19
|
+
@Inject()
|
|
20
|
+
userFileService: UserFileService;
|
|
21
|
+
|
|
22
|
+
@Post('/upload', { middleware: [UploadMiddleware] })
|
|
23
|
+
@ApiBody({
|
|
24
|
+
contentType: BodyContentType.Multipart,
|
|
25
|
+
schema: {
|
|
26
|
+
type: UserFileUpDto,
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
@ApiOperationResponse({
|
|
30
|
+
responseType: File,
|
|
31
|
+
summary: '上传附件',
|
|
32
|
+
description: '如果data为{}代表分片上传成功,为Fule对象代表文件上传完成(可能已存在秒传成功)',
|
|
33
|
+
})
|
|
34
|
+
async upload(@Files() files: Array<UploadStreamFileInfo>, @Fields() params: UserFileUpDto) {
|
|
35
|
+
const file = files[0]; //只获取一个文件,不支持多文件数组
|
|
36
|
+
const res = await uploadStorage.localStorage('index').upload(file, params);
|
|
37
|
+
return this.success(res ? await this.userFileService.create(res) : {});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
41
|
+
@Post('/')
|
|
42
|
+
@ApiOperationResponse({
|
|
43
|
+
responsePage: UserFile,
|
|
44
|
+
summary: '获取用户附件表(前台)列表',
|
|
45
|
+
})
|
|
46
|
+
@AdminPermission('UserFileList')
|
|
47
|
+
async list(@Body() queryDto: UserFileQueryDto) {
|
|
48
|
+
return this.success(await this.userFileService.list(queryDto));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
52
|
+
@Get('/info/:id')
|
|
53
|
+
@ApiOperationResponse({
|
|
54
|
+
responseType: UserFile,
|
|
55
|
+
summary: '根据id获取用户附件表(前台)详情',
|
|
56
|
+
})
|
|
57
|
+
@AdminPermission('UserFileEdit')
|
|
58
|
+
async findOne(@Param('id') id: string) {
|
|
59
|
+
const entity = await this.userFileService.findOne(id);
|
|
60
|
+
return this.success(entity);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
64
|
+
@Post('/up/:id')
|
|
65
|
+
@ApiOperationResponse({
|
|
66
|
+
responseType: UserFile,
|
|
67
|
+
summary: '根据id更新用户附件表(前台)详情',
|
|
68
|
+
})
|
|
69
|
+
@AdminPermission('UserFileEdit')
|
|
70
|
+
async update(@Param('id') id: string, @Body() updateDto: UserFileUpdateDto) {
|
|
71
|
+
return this.success(await this.userFileService.update(id, updateDto));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
75
|
+
@Post('/del/:id')
|
|
76
|
+
@ApiOperationResponse({
|
|
77
|
+
summary: '根据id删除用户附件表(前台)信息',
|
|
78
|
+
})
|
|
79
|
+
@AdminPermission('UserFileDel')
|
|
80
|
+
async delete(@Param('id') id: string) {
|
|
81
|
+
await this.userFileService.remove(id);
|
|
82
|
+
return this.success();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { ApiOperationResponse } from '@/decorators/index.js';
|
|
1
|
+
import { ApiOperationResponse, IndexPermission } from '@/decorators/index.js';
|
|
2
2
|
import { uploadStorage } from '@/fileManage/index.js';
|
|
3
3
|
import { UploadMiddleware, UploadOptions, UploadStreamFileInfo } from '@midwayjs/busboy';
|
|
4
4
|
import { Body, Config, Controller, Fields, Files, Get, Inject, Param, Post } from '@midwayjs/core';
|
|
5
5
|
import { Context } from '@midwayjs/koa';
|
|
6
6
|
import { ApiBody, BodyContentType } from '@midwayjs/swagger';
|
|
7
7
|
import { File } from '../../../entities/file.entity.js';
|
|
8
|
-
import { FileCreateDto } from '../dto/fileCreate.dto.js';
|
|
9
8
|
import { FileQueryDto } from '../dto/fileQuery.dto.js';
|
|
10
9
|
import { FileUpDto } from '../dto/fileUp.dto.js';
|
|
11
|
-
import { FileUpdateDto } from '../dto/fileUpdate.dto.js';
|
|
12
10
|
import { FileService } from '../service/file.service.js';
|
|
13
11
|
import { BaseController } from './base.controller.js';
|
|
14
12
|
|
|
@@ -52,65 +50,15 @@ export class FileController extends BaseController {
|
|
|
52
50
|
return this.success(res ? await this.fileService.create(res) : {});
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
56
|
-
@Post('/add')
|
|
57
|
-
@ApiOperationResponse({
|
|
58
|
-
responseType: File,
|
|
59
|
-
summary: '添加附件信息',
|
|
60
|
-
})
|
|
61
|
-
async add(@Body() createDto: FileCreateDto) {
|
|
62
|
-
return this.success(await this.fileService.create(createDto));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
66
|
-
@Post('/')
|
|
67
|
-
@ApiOperationResponse({
|
|
68
|
-
responsePage: File,
|
|
69
|
-
summary: '获取附件列表',
|
|
70
|
-
})
|
|
71
|
-
async list(@Body() queryDto: FileQueryDto) {
|
|
72
|
-
return this.success(await this.fileService.list(queryDto));
|
|
73
|
-
}
|
|
74
|
-
|
|
75
53
|
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
76
54
|
@Post('/my')
|
|
77
55
|
@ApiOperationResponse({
|
|
78
56
|
responsePage: File,
|
|
79
57
|
summary: '获取我的附件列表',
|
|
80
58
|
})
|
|
59
|
+
@IndexPermission()
|
|
81
60
|
async my(@Body() queryDto: FileQueryDto) {
|
|
82
61
|
queryDto.createdUserId = this.ctx.userInfo.id;
|
|
83
62
|
return this.success(await this.fileService.list(queryDto));
|
|
84
63
|
}
|
|
85
|
-
|
|
86
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
87
|
-
@Get('/info/:id')
|
|
88
|
-
@ApiOperationResponse({
|
|
89
|
-
responseType: File,
|
|
90
|
-
summary: '根据id获取附件详情',
|
|
91
|
-
})
|
|
92
|
-
async findOne(@Param('id') id: string) {
|
|
93
|
-
const entity = await this.fileService.findOne(id);
|
|
94
|
-
return this.success(entity);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
98
|
-
@Post('/up/:id')
|
|
99
|
-
@ApiOperationResponse({
|
|
100
|
-
responseType: File,
|
|
101
|
-
summary: '根据id更新附件详情',
|
|
102
|
-
})
|
|
103
|
-
async update(@Param('id') id: string, @Body() updateDto: FileUpdateDto) {
|
|
104
|
-
return this.success(await this.fileService.update(id, updateDto));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
//接口方法必须加async 方法的接口装饰器值必须/开头
|
|
108
|
-
@Post('/del/:id')
|
|
109
|
-
@ApiOperationResponse({
|
|
110
|
-
summary: '根据id删除附件信息',
|
|
111
|
-
})
|
|
112
|
-
async delete(@Param('id') id: string) {
|
|
113
|
-
await this.fileService.remove(id);
|
|
114
|
-
return this.success();
|
|
115
|
-
}
|
|
116
64
|
}
|