export default { data: function () { return { current_tab: undefined, new_datas: false, model: { name: "", rate: "", select: "", default_currency: 0, enabled: 1 }, error_field: {}, create_tax_text: true, button_loading: false, } }, methods: { onAddItem() { this.new_datas = true; this.current_tab = undefined; this.error_field = {}; 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; } }, onEditItem(item, index) { this.new_datas = false; this.current_tab = index; this.error_field = {}; 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; this.model.select = item.code ? item.code : ''; } }, onCancelItem() { this.current_tab = undefined; }, 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; }, onSuccessMessage(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: "error_outline", type, }); this.button_loading = false; this.onDataChange(); }, onDeleteItemMessage(event) { let type = event.success ? 'success' : 'danger'; let timeout = 5000; if (event.important) { timeout = 0; } this.$notify({ message: event.message, timeout: timeout, icon: "error_outline", type, }); this.onDataChange(); }, onSubmitEvent(form_method, form_url, plus_data, form_list, form_id) { const formData = new FormData(this.$refs["form"]); const data = {}; this.button_loading = true; for (let [key, val] of formData.entries()) { Object.assign(data, { [key]: val, }); } if (plus_data == 'type') { Object.assign(data, { ['type']: 'normal', }); } if (data.default_currency == 1) { data.rate = 1; } data.enabled = 1; 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; }); } 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 }); } if (form_method == 'PATCH') { form_list.forEach(item => { if (data.default_currency == 1) { item.default = 0; item.default_currency = 0; } 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; } }); } } this.onSuccessMessage(response); }, this) .catch(error => { this.onFailError(error); }, this); }, onEjetItem(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 = ""; document.body.classList.remove("overflow-hidden"); this.onDeleteItemMessage(event); }, onFailErrorGet(field_name) { if (this.error_field[field_name]) { return this.error_field[field_name][0]; } this.button_loading = false; }, onFailError(error) { this.error_field = error.response.data.errors; this.button_loading = false; } } }