akaunting/resources/assets/js/mixins/wizardAction.js

207 lines
6.5 KiB
JavaScript
Raw Normal View History

2021-05-21 14:13:09 +03:00
2021-05-20 15:18:43 +03:00
export default {
data: function () {
return {
2021-05-28 15:45:19 +03:00
current_tab: undefined,
new_datas: false,
2021-05-20 15:18:43 +03:00
model: {
name: "",
rate: "",
select: "",
default_currency: 0,
2021-05-20 15:18:43 +03:00
enabled: 1
},
2021-05-28 14:16:40 +03:00
error_field: {},
2022-06-01 10:15:55 +03:00
create_tax_text: true,
button_loading: false,
2021-05-20 15:18:43 +03:00
}
},
2021-05-20 15:18:43 +03:00
methods: {
2021-05-28 15:45:19 +03:00
onAddItem() {
this.new_datas = true;
this.current_tab = undefined;
2021-05-24 10:48:58 +03:00
this.error_field = {};
2021-05-21 13:56:01 +03:00
2021-05-20 15:18:43 +03:00
if (this.model) {
this.model.name = '';
this.model.rate = '';
this.model.select = '';
this.model.default = 0;
this.model.default_currency = 0;
this.model.enabled = 1;
2021-05-20 15:18:43 +03:00
}
},
2021-05-28 15:45:19 +03:00
onEditItem(item, index) {
this.new_datas = false;
this.current_tab = index;
2021-05-24 10:48:58 +03:00
this.error_field = {};
2021-05-21 13:56:01 +03:00
2021-05-20 15:18:43 +03:00
if (this.model) {
this.model.name = item.name ? item.name : '';
this.model.rate = item.rate ? item.rate : '';
this.model.enabled = 1;
this.model.default = item.default ? item.default : 0;
this.model.default_currency = item.default ? item.default : 0;
2021-05-20 15:18:43 +03:00
this.model.select = item.code ? item.code : '';
}
},
2021-05-27 19:35:19 +03:00
2021-05-28 15:45:19 +03:00
onCancelItem() {
this.current_tab = undefined;
2021-05-26 18:45:39 +03:00
},
2021-05-27 19:35:19 +03:00
2021-05-28 15:45:19 +03:00
onDataChange() {
this.new_datas = false;
this.current_tab = undefined;
this.model.name = '';
this.model.rate = '';
this.model.select = '';
this.model.default = 0;
this.model.default_currency = 0;
this.model.enabled = 1;
},
2021-05-27 19:35:19 +03:00
2021-05-28 15:45:19 +03:00
onSuccessMessage(response) {
let type = response.data.success ? 'success' : 'error';
let timeout = 1000;
2021-05-27 19:35:19 +03:00
if (response.data.important) {
timeout = 0;
}
this.$notify({
message: response.data.message,
timeout: timeout,
2022-06-01 10:15:55 +03:00
icon: "error_outline",
type,
});
2022-06-01 10:15:55 +03:00
this.button_loading = false;
2021-05-28 15:45:19 +03:00
this.onDataChange();
},
2021-05-27 19:35:19 +03:00
2021-05-28 15:45:19 +03:00
onDeleteItemMessage(event) {
let type = event.success ? 'success' : 'danger';
let timeout = 5000;
2021-05-27 19:35:19 +03:00
if (event.important) {
timeout = 0;
}
this.$notify({
message: event.message,
timeout: timeout,
icon: "error_outline",
type,
});
2021-05-28 15:45:19 +03:00
this.onDataChange();
},
2021-05-27 19:35:19 +03:00
2021-05-29 08:15:18 +03:00
onSubmitEvent(form_method, form_url, plus_data, form_list, form_id) {
2021-05-20 15:18:43 +03:00
const formData = new FormData(this.$refs["form"]);
const data = {};
2022-06-01 10:15:55 +03:00
this.button_loading = true;
2021-05-20 15:18:43 +03:00
for (let [key, val] of formData.entries()) {
Object.assign(data, {
[key]: val,
});
}
2021-06-03 10:57:45 +03:00
if (plus_data == 'type') {
Object.assign(data, {
['type']: 'normal',
});
2021-05-20 15:18:43 +03:00
}
if (data.default_currency == 1) {
data.rate = 1;
}
data.enabled = 1;
2021-05-20 15:18:43 +03:00
window.axios({
method: form_method,
url: form_url,
data: data,
})
.then(response => {
if (form_list.length != undefined) {
if (form_method == 'POST') {
if (data.default_currency == 1) {
form_list.forEach(item => {
item.default = 0;
item.default_currency = 0;
});
}
2021-05-29 08:15:18 +03:00
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',
"default": response.data.data.default ? response.data.data.default : 0,
"default_currency": response.data.data.default ? response.data.data.default : 0
2021-05-29 08:15:18 +03:00
});
}
if (form_method == 'PATCH') {
2021-05-29 08:15:18 +03:00
form_list.forEach(item => {
if (data.default_currency == 1) {
item.default = 0;
item.default_currency = 0;
}
2021-05-29 08:15:18 +03:00
if (item.id == form_id) {
item.name = response.data.data.name;
item.code = response.data.data.code;
item.rate = response.data.data.rate;
item.default = response.data.data.default ? response.data.data.default : 0;
item.default_currency = response.data.data.default ? response.data.data.default : 0;
2021-05-29 08:15:18 +03:00
}
});
}
2021-05-27 19:35:19 +03:00
}
2021-05-28 15:45:19 +03:00
this.onSuccessMessage(response);
2021-05-27 19:35:19 +03:00
}, this)
.catch(error => {
2021-05-29 08:15:18 +03:00
this.onFailError(error);
2021-05-27 19:35:19 +03:00
}, this);
},
2021-05-28 15:45:19 +03:00
onEjetItem(event, form_list, event_id) {
2021-05-21 14:34:05 +03:00
form_list.forEach(function (item, index) {
if (item.id == event_id) {
form_list.splice(index, 1);
return;
2021-05-21 14:34:05 +03:00
}
}, this);
2021-05-27 19:35:19 +03:00
this.component = "";
document.body.classList.remove("overflow-hidden");
this.onDeleteItemMessage(event);
2021-05-21 14:34:05 +03:00
},
2021-05-27 19:35:19 +03:00
2021-05-24 10:48:58 +03:00
onFailErrorGet(field_name) {
if (this.error_field[field_name]) {
2021-05-24 10:48:58 +03:00
return this.error_field[field_name][0];
}
2022-06-07 15:53:42 +03:00
this.button_loading = false;
2021-05-24 10:48:58 +03:00
},
2021-05-27 19:35:19 +03:00
2021-05-21 13:56:01 +03:00
onFailError(error) {
2021-05-21 16:46:58 +03:00
this.error_field = error.response.data.errors;
2022-06-01 10:15:55 +03:00
this.button_loading = false;
2021-05-21 13:56:01 +03:00
}
2021-05-24 10:48:58 +03:00
}
2021-05-20 15:18:43 +03:00
}