HomeAccounting

Форк
0
176 строк · 5.3 Кб
1
import template from './template.html';
2

3
export default {
4
    name: "events-control",
5
    template: template,
6
    props: {
7
        showEventControl: {
8
            type: Boolean,
9
            default: true,
10
        },
11
    },
12
    data: () => ({
13
        headers: [
14
            {
15
                text: 'ID',
16
                align: 'left',
17
                sortable: false,
18
                value: 'id'
19
            },
20
            { text: 'Заголовок', value: 'head', align: 'right' },
21
            { text: 'Сообщение', value: 'message', align: 'right' },
22
            { text: 'Выполнено', value: 'completed', align: 'right' },
23
            { text: 'Дата', value: 'date_notif', align: 'right' },
24
            { text: 'Управление', value: '', align: 'right'},
25
        ],
26
        search: '',
27
        loadingDataTable: false,
28
        pagination: {'sortBy': 'date_notif', 'descending': true, 'rowsPerPage': -1},
29
        dataTables: [],
30

31
        eventsFormShow: false,
32
        eventsFormTitle: 'Новое напоминание',
33
        eventFormType: 'create',
34
        eventFormData: {
35
            id: null,
36
            type_event: 1,
37
            head: '',
38
            message: '',
39
            completed: 0,
40
            date_notif: null,
41
            time_notif: null,
42
            dateTimeNotif: null,
43
        },
44

45
        dateNotificationPicker: false,
46
        timeNotificationPicker: false,
47
    }),
48
    methods: {
49
        getEvents() {
50

51
            this.$store.commit('setPreloader', true);
52

53
            axios.get('/pa/event-list')
54
                .then(response=> {
55
                    this.dataTables = response.data;
56

57
                    this.$store.commit('setPreloader', false);
58

59
                })
60
                .catch(error => {
61
                    this.$store.commit('AlertError', error.message);
62
                });
63

64
        },
65
        isMobile() {
66
            let mobile_getter = this.$store.getters.mobile;
67

68
            let mobile = false;
69

70
            if(mobile_getter !== null) {
71
                mobile = true;
72
            }
73
            return mobile;
74
        },
75
        createEventForm() {
76

77
            this.eventFormData = {
78
                id: null,
79
                type_event: 1,
80
                head: '',
81
                message: '',
82
                completed: 0,
83
                date_notif: null,
84
                time_notif: null,
85
                dateTimeNotif: null,
86
            };
87

88
            this.eventsFormTitle = 'Новое напоминание';
89
            this.eventFormType = 'create';
90
            this.eventsFormShow = true;
91
        },
92
        editEventForm(object) {
93

94
            this.eventFormData = {
95
                id: object.id,
96
                type_event: object.type_event,
97
                head: object.head,
98
                message: object.message,
99
                completed: object.completed,
100
                date_notif: this.separateDateTime(object.date_notif)[0],
101
                time_notif: this.separateDateTime(object.date_notif)[1],
102
                dateTimeNotif: object.date_notif,
103
            };
104

105
            this.eventsFormTitle = 'Редактировать напоминание';
106
            this.eventFormType = 'update';
107
            this.eventsFormShow = true;
108
        },
109
        separateDateTime(dateTime) {
110
            return dateTime.split(' ');
111
        },
112
        deleteEvent(object) {
113
            let confirm = window.confirm('Вы действительно хотите удалить элемент?');
114

115
            if(confirm === true) {
116
                this.eventFormType = 'delete';
117
                this.eventFormData.id = object.id
118
                this.eventSave();
119
            }
120

121
        },
122
        eventSave() {
123
            let url = '/pa/events';
124
            let method = '';
125

126
            if(this.eventFormType === 'create') {
127
                method = 'post';
128
            }
129
            else if(this.eventFormType === 'update') {
130
                method = 'put';
131
            }
132
            else if(this.eventFormType === 'delete') {
133
                method = 'delete';
134
            }
135

136
            axios({
137
                method: method,
138
                url: url,
139
                data:
140
                    {
141
                        event_id: this.eventFormData.id,
142
                        type_event: this.eventFormData.type_event,
143
                        head: this.eventFormData.head,
144
                        message: this.eventFormData.message,
145
                        completed: this.eventFormData.completed,
146
                        date: this.dateTimeNotif,
147
                    }
148
            })
149
                .then(response=> {
150
                    if(response.data.status == 200) {
151
                        this.eventsFormShow = false;
152
                        this.getEvents();
153
                    }
154
                    else {
155
                        this.$store.commit('AlertError', 'Ошибка получения данных с сервера');
156
                    }
157

158
                })
159
                .catch(error => {
160
                    this.$store.commit('AlertError', error.message);
161
                });
162
        },
163
    },
164
    computed: {
165
        dateTimeNotif() {
166

167
            let dateTime = this.eventFormData.date_notif + ' ' + this.eventFormData.time_notif;
168
            this.eventFormData.dateTimeNotif = dateTime;
169
            return dateTime;
170

171
        },
172
    },
173
    mounted() {
174
      this.getEvents();
175
    },
176
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.