diff --git a/back/services/cronView.ts b/back/services/cronView.ts index db0cd47b..51a6f6bc 100644 --- a/back/services/cronView.ts +++ b/back/services/cronView.ts @@ -1,13 +1,20 @@ import { Service, Inject } from 'typedi'; import winston from 'winston'; import { CrontabView, CrontabViewModel } from '../data/cronView'; +import { initEnvPosition } from '../data/env'; @Service() export default class CronViewService { constructor(@Inject('logger') private logger: winston.Logger) {} public async create(payload: CrontabView): Promise { - const tab = new CrontabView(payload); + let position = initEnvPosition; + const views = await this.list(); + if (views && views.length > 0 && views[views.length - 1].position) { + position = views[views.length - 1].position as number; + } + position = position / 2; + const tab = new CrontabView({ ...payload, position }); const doc = await this.insert(tab); return doc; } @@ -32,7 +39,10 @@ export default class CronViewService { public async list(): Promise { try { - const result = await CrontabViewModel.findAll({}); + const result = await CrontabViewModel.findAll({ + where: {}, + order: [['position', 'DESC']], + }); return result; } catch (error) { throw error; diff --git a/src/pages/crontab/index.less b/src/pages/crontab/index.less index 881aefdd..c0d38834 100644 --- a/src/pages/crontab/index.less +++ b/src/pages/crontab/index.less @@ -104,6 +104,7 @@ .crontab-view { .ant-tabs-nav-wrap { + min-width: 200px; flex: unset !important; } @@ -154,3 +155,11 @@ flex: 1; } } + +tr.drop-over-downward td { + border-bottom: 2px dashed #1890ff; +} + +tr.drop-over-upward td { + border-top: 2px dashed #1890ff; +} diff --git a/src/pages/crontab/viewManageModal.tsx b/src/pages/crontab/viewManageModal.tsx index a0f9b61e..f1a6dcb8 100644 --- a/src/pages/crontab/viewManageModal.tsx +++ b/src/pages/crontab/viewManageModal.tsx @@ -187,8 +187,8 @@ const ViewManageModal = ({ } const dragRow = list[dragIndex]; request - .put(`${config.apiPrefix}envs/${dragRow.id}/move`, { - data: { fromIndex: dragIndex, toIndex: hoverIndex }, + .put(`${config.apiPrefix}crons/views/move`, { + data: { fromIndex: dragIndex, toIndex: hoverIndex, id: dragRow.id }, }) .then((data: any) => { if (data.code === 200) {