@nger/fk-upload 1.0.135 → 1.0.137

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.
@@ -6,6 +6,11 @@ export declare class TaskManageController {
6
6
  private db;
7
7
  private config;
8
8
  constructor(db: Db, config: Config);
9
- taskManage(): Promise<JSX.Element>;
9
+ toUrl(query: any): string;
10
+ createPages(total: number, query: any): {
11
+ index: number;
12
+ link: string;
13
+ }[];
14
+ taskManage(query: any): Promise<JSX.Element>;
10
15
  staticTaskManage(ctx: Context): any;
11
16
  }
@@ -18,8 +18,10 @@ function getStatusTitle(status) {
18
18
  return 'uploading';
19
19
  case 2:
20
20
  return 'effecting';
21
- default:
21
+ case 3:
22
22
  return 'finish';
23
+ default:
24
+ return 'unknow';
23
25
  }
24
26
  }
25
27
  let TaskManageController = class TaskManageController {
@@ -29,8 +31,54 @@ let TaskManageController = class TaskManageController {
29
31
  this.db = db;
30
32
  this.config = config;
31
33
  }
32
- async taskManage() {
33
- const tasks = await this.db.manager.find(entities_1.FkDownloadTaskEntity, { where: {}, order: { createDate: "DESC" }, take: 50 });
34
+ toUrl(query) {
35
+ return Object.keys(query).map(key => `${key}=${decodeURIComponent(query[key])}`).join('&');
36
+ }
37
+ createPages(total, query) {
38
+ const list = [];
39
+ for (let i = 0; i < total; i++) {
40
+ list.push({
41
+ index: i + 1,
42
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({
43
+ ...query,
44
+ page: i + 1
45
+ })}`
46
+ });
47
+ }
48
+ return list;
49
+ }
50
+ async taskManage(query) {
51
+ const where = {};
52
+ let page = 1;
53
+ let psize = 20;
54
+ if (query && typeof query.status !== 'undefined') {
55
+ where.status = Number(query.status);
56
+ }
57
+ if (query && typeof query.isBigFile !== 'undefined') {
58
+ where.isBigFile = Boolean(Number(query.isBigFile));
59
+ }
60
+ if (query && typeof query.page !== 'undefined') {
61
+ page = Number(query.page);
62
+ }
63
+ if (query && typeof query.psize !== 'undefined') {
64
+ psize = Number(query.psize);
65
+ }
66
+ const take = psize;
67
+ const skip = (page - 1) * psize;
68
+ const tasks = await this.db.manager.find(entities_1.FkDownloadTaskEntity, { where, order: { createDate: "DESC" }, take, skip });
69
+ const count = await this.db.manager.count(entities_1.FkDownloadTaskEntity, { where });
70
+ const totalPage = Math.ceil(count / psize);
71
+ const pre = {
72
+ ...query,
73
+ page: page - 1 > 0 ? page - 1 : 1
74
+ };
75
+ const preUrl = `/@nger/fk-upload/task-manage?${this.toUrl(pre)}`;
76
+ const next = {
77
+ ...query,
78
+ page: page + 1 < totalPage ? page + 1 : totalPage
79
+ };
80
+ const nextUrl = `/@nger/fk-upload/task-manage?${this.toUrl(next)}`;
81
+ const pages = this.createPages(totalPage, query);
34
82
  return react_1.default.createElement(component_1.Nav, { active: 2 },
35
83
  react_1.default.createElement("script", { dangerouslySetInnerHTML: {
36
84
  __html: `
@@ -47,7 +95,8 @@ let TaskManageController = class TaskManageController {
47
95
  react_1.default.createElement("td", null, "\u5927\u5C0F"),
48
96
  react_1.default.createElement("td", null, "\u4E0B\u8F7D"),
49
97
  react_1.default.createElement("td", null, "\u4E0A\u4F20"),
50
- react_1.default.createElement("td", { width: '240px' }, "\u8FDE\u63A5"))),
98
+ react_1.default.createElement("td", { width: '240px' }, "\u8FDE\u63A5"),
99
+ react_1.default.createElement("td", null, "operation"))),
51
100
  react_1.default.createElement("tbody", null, tasks.map((task, key) => {
52
101
  return react_1.default.createElement("tr", { key: key },
53
102
  react_1.default.createElement("td", null, task.filename),
@@ -55,8 +104,18 @@ let TaskManageController = class TaskManageController {
55
104
  react_1.default.createElement("td", { id: task.filename + '-total' }, task.totalSize),
56
105
  react_1.default.createElement("td", { id: task.filename + '-size' }, task.size),
57
106
  react_1.default.createElement("td", { id: task.filename + '-upload-size' }, task.uploadSize),
58
- react_1.default.createElement("td", { id: task.filename + '-upload-url' }, task.uploadUrl));
59
- }))))),
107
+ react_1.default.createElement("td", { id: task.filename + '-upload-url' },
108
+ react_1.default.createElement("a", { href: task.uploadUrl }, "download")),
109
+ react_1.default.createElement("td", { id: task.filename + '-operation-td' }));
110
+ }))),
111
+ react_1.default.createElement("nav", null,
112
+ react_1.default.createElement("ul", { className: "pagination" },
113
+ react_1.default.createElement("li", { className: "page-item" },
114
+ react_1.default.createElement("a", { className: "page-link", href: preUrl }, "Previous")),
115
+ pages.map(page => react_1.default.createElement("li", { className: "page-item" },
116
+ react_1.default.createElement("a", { className: "page-link", href: page.link }, page.index))),
117
+ react_1.default.createElement("li", { className: "page-item" },
118
+ react_1.default.createElement("a", { className: "page-link", href: nextUrl }, "Next")))))),
60
119
  react_1.default.createElement("script", { src: "/@nger/fk-upload/static/task-manage.js?t=" + new Date().getTime() }));
61
120
  }
62
121
  staticTaskManage(ctx) {
@@ -72,8 +131,9 @@ let TaskManageController = class TaskManageController {
72
131
  };
73
132
  tslib_1.__decorate([
74
133
  (0, http_1.Get)('task-manage'),
134
+ tslib_1.__param(0, (0, http_1.Query)()),
75
135
  tslib_1.__metadata("design:type", Function),
76
- tslib_1.__metadata("design:paramtypes", []),
136
+ tslib_1.__metadata("design:paramtypes", [Object]),
77
137
  tslib_1.__metadata("design:returntype", Promise)
78
138
  ], TaskManageController.prototype, "taskManage", null);
79
139
  tslib_1.__decorate([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nger/fk-upload",
3
- "version": "1.0.135",
3
+ "version": "1.0.137",
4
4
  "description": "",
5
5
  "main": "dist/core.js",
6
6
  "types": "dist/core.d.ts",