2021-05-21 16:46:58 +03:00

175 lines
5.2 KiB
JavaScript
Vendored

export default {
data: function () {
return {
currentTab: undefined,
newDatas: false,
model: {
name: "",
rate: "",
select: "",
enabled: 1
},
error_field: {}
}
},
methods: {
addItem() {
this.newDatas = true;
this.currentTab = undefined;
this.error_field = '';
if (this.model) {
this.model.name = '';
this.model.rate = '';
this.model.select = '';
}
},
handeClickEdit(item, index) {
this.newDatas = false;
this.currentTab = index;
this.error_field = '';
if (this.model) {
this.model.name = item.name ? item.name : '';
this.model.rate = item.rate ? item.rate : '';
this.model.select = item.code ? item.code : '';
}
},
dataHandleEvent() {
this.newDatas = false;
this.currentTab = undefined;
this.model.name = '';
this.model.rate = '';
this.model.select = '';
this.model.enabled = 1;
},
onSuccessEvent(response) {
let type = response.data.success ? 'success' : 'error';
let timeout = 1000;
if (response.data.important) {
timeout = 0;
}
this.$notify({
message: response.data.message,
timeout: timeout,
icon: "fas fa-bell",
type,
});
this.dataHandleEvent();
},
onSuccessDelete(event) {
let type = event.success ? 'success' : 'error';
let timeout = 1000;
if (event.important) {
timeout = 0;
}
this.$notify({
message: event.message,
timeout: timeout,
icon: "fas fa-bell",
type,
});
this.dataHandleEvent();
},
onEditEvent(form_method, form_url, plus_data, form_list, form_id) {
const formData = new FormData(this.$refs["form"]);
const data = {};
for (let [key, val] of formData.entries()) {
Object.assign(data, {
[key]: val,
['type']: 'normal'
});
}
if (!plus_data || plus_data == undefined) {
delete data.type;
}
window.axios({
method: form_method,
url: form_url,
data: data,
})
.then(response => {
if (form_list.length) {
form_list.forEach(item => {
if (item.id == form_id) {
item.name = response.data.data.name;
item.code = response.data.data.code;
item.rate = response.data.data.rate;
item.type = plus_data == undefined ? 'normal' : ''
}
});
}
this.onSuccessEvent(response);
}, this)
.catch(error => {
this.onFailError(error)
}, this);
},
onSubmitEvent(form_method, form_url, plus_data, form_list) {
const formData = new FormData(this.$refs["form"]);
const data = {};
for (let [key, val] of formData.entries()) {
Object.assign(data, {
[key]: val,
['type']: 'normal'
});
}
if (!plus_data || plus_data == undefined) {
delete data.type;
}
window.axios({
method: form_method,
url: form_url,
data: data,
})
.then(response => {
form_list.push({
"id": response.data.data.id,
"name": response.data.data.name,
"code": response.data.data.code,
"rate": response.data.data.rate,
"enabled": response.data.data.enabled != undefined ? response.data.data.enabled : 'true'
});
this.onSuccessEvent(response);
}, this)
.catch(error => {
this.onFailError(error)
}, this);
},
onDeleteEvent(event, form_list, event_id) {
form_list.forEach(function (item, index) {
if (item.id == event_id) {
form_list.splice(index, 1);
return;
}
}, this);
this.component = "";
this.onSuccessDelete(event);
},
onFailError(error) {
this.error_field = error.response.data.errors;
}
},
}