多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.5 KiB

import BasePage from '../../Base';
import { CalendarPage } from './index';
export class CalendarMonthPage extends BasePage {
readonly parent: CalendarPage;
constructor(parent: CalendarPage) {
super(parent.rootPage);
this.parent = parent;
}
get() {
return this.rootPage.getByTestId('nc-calendar-month-view');
}
getRecordContainer() {
return this.get().getByTestId('nc-calendar-month-record-container');
}
async dragAndDrop({ record, to }: { record: string; to: { rowIndex: number; columnIndex: number } }) {
const recordContainer = this.getRecordContainer();
const recordCard = recordContainer.getByTestId(`nc-calendar-month-record-${record}`);
const toDay = this.get()
.getByTestId('nc-calendar-month-week')
.nth(to.rowIndex)
.getByTestId('nc-calendar-month-day')
.nth(to.columnIndex);
const cord = await toDay.boundingBox();
await recordCard.hover();
await this.rootPage.mouse.down();
await this.rootPage.waitForTimeout(500);
await this.rootPage.mouse.move(cord.x + cord.width / 2, cord.y + cord.height / 2, { steps: 10 });
await this.rootPage.mouse.up();
}
async selectDate({ rowIndex, columnIndex }: { rowIndex: number; columnIndex: number }) {
const week = this.get().getByTestId('nc-calendar-month-week');
const day = week.nth(rowIndex).getByTestId('nc-calendar-month-day').nth(columnIndex);
await day.click({
force: true,
position: {
x: 0,
y: 1,
},
});
}
}