An open API service indexing awesome lists of open source software.

https://github.com/innovation-system/vuetify-week-scheduler

Simple week scheduler component.
https://github.com/innovation-system/vuetify-week-scheduler

scheduler vue vuetify week week-scheduler

Last synced: 8 months ago
JSON representation

Simple week scheduler component.

Awesome Lists containing this project

README

          

# Vuetify Week Scheduler

![GitHub package.json version](https://img.shields.io/github/package-json/v/innovation-system/vuetify-week-scheduler)
[![ci](https://github.com/innovation-system/vuetify-week-scheduler/actions/workflows/ci.yml/badge.svg)](https://github.com/innovation-system/vuetify-week-scheduler/actions/workflows/ci.yml)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.png)](https://opensource.org/licenses/mit-license.php)

[![NPM Downloads](https://img.shields.io/npm/dm/@innovation-system/vuetify-week-scheduler.svg?style=flat)](https://www.npmjs.com/package/@innovation-system/vuetify-week-scheduler)

> A simple component to manage weekly events

Inspired by [jquery-schedule](https://github.com/Yehzuna/jquery-schedule).

## For Vue 3

See [Vuetify Week Scheduler V3](https://github.com/innovation-system/vuetify-week-scheduler-v3).

## Installation

### NPM

```bash
npm install @innovation-system/vuetify-week-scheduler --save
```

### Yarn

```bash
yarn add @innovation-system/vuetify-week-scheduler
```

## Demo

Checkout a demo [here](https://innovation-system.github.io/vuetify-week-scheduler/).

Demo source code is [here](/dev/)

## Usage

Import component

```javascript
import VueWeekScheduler from "@innovation-system/vuetify-week-scheduler";
```

And add to parent component

```javascript
export default {
components: {
VueWeekScheduler,
},
// ... data, methods, mounted (), etc.
};
```

## Props

### `config`

- Type: `object`
- Defaults:

```javascript
{
hour: 24, // hour format, 24/12
days: 7, // number of days, 7/5
periodDuration: 15, // event duration inteval 15/30/60
periodTitle: "", // event default title
periodBackgroundColor: "#F44336FF", // event default color
periodBorderColor: "transparent", // event default border color
periodTextColor: "#000", // event default text color
periodRemoveButton: "Remove", // label of event remove button
periodDuplicateButton: "Duplicate", // label of event duplicate button
daysList: [ // list of days labels
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
],
colors: [ // list of event's possible colors
"#F44336",
"#FF9800",
"#FFEB3B",
"#8BC34A",
"#4CAF50",
"#00BCD4",
"#2196F3",
],
inputType: "text" // usually set as text or number
}
```

### `value`

- Type: `array`
- Required: `true`

Array of events, two-way binding with (`v-model`). The format of events is:

```js
[
{
"day": 0,
"periods": [
{
"start": "00:00",
"end": "09:00",
"title": 15,
"backgroundColor": "#FF0000FF"
},
{
"start": "09:00",
"end": "20:00",
"title": 22,
"backgroundColor": "#008000FF"
}
]
},
{
"day": 1,
"periods": []
}
...
```

### `editable`

- Type: `boolean`
- Default: `false`

Whether or not the component permits to add/edit events

## Events

### `edit(obj)`

In desktop devices this event is emitted when user right clicks on double clicks on an event, in touch devices this is emitted when user long press on an event.

```javascript
obj: {
day: number, // the day index
index: number // the period index
}
```

### `error(err)`

- `err` error throwed during initialization