// import HttpService from "~/services/httpService"; import { mapState, mapActions } from "pinia"; import { useEntityStore } from "~/stores/entityStore"; import { useListStore } from "~/stores/listStore"; export default { // mounted() { // this.httpService = new HttpService( // import.meta.env.VITE_REPO_BASE_URL + this.$route.meta.slug // ); // }, data() { return { // httpService: undefined, showModal: false, modal: undefined, modal_title: null, modal_data: { entity: {}, keyName: "", index: -1, tabKey: "", }, errors: {}, }; }, computed: { ...mapState(useEntityStore, ["activeTabGetter"]), }, methods: { ...mapActions(useListStore, ["SET_SELECTED_ITEM"]), openModal({ ev, modal, modalTitle, property = null, index = -1 }) { this.modal = modal; this.modal_data.entity = this.entity; this.modal_data.index = index; this.modal_data.keyName = property; this.modal_data.tabKey = this.activeTabGetter?.key; if (modalTitle) { this.modal_title = modalTitle; } else { this.modal_title = ev.target?.title ?? "بدون عنوان"; } this.SET_SELECTED_ITEM(this.entity); this.beforeShowModal(); }, beforeShowModal() { this.showModal = true; // setTimeout(() => { // $("#jahat-modal").modal( // { backdrop: "static", keyboard: false }, // "show" // ); // }, 500); }, closeModal() { // $("#jahat-modal").modal("hide"); this.$emit("close-modal"); // setTimeout(() => { this.showModal = false; this.render++; // this.getEntity(); // }, 500); }, updateOrNewProperty(item) { if (item.entity) this.entity = item.entity; else { // این حالت دیگه نباید لازم باشه ... چون حالت بالا پیش فرض از بک فرستاده می شود let index = item.index; let key = item.keyName; let value = item.data[key]; if (key in this.entity) { if (this.entity[key] instanceof Array) { if (index > -1 && index < this.entity[key].length) this.entity[key][index] = value; else this.entity[key].push(value); } else this.entity[key] = value; } else this.entity[key] = value; } this.closeModal(); }, getComponent() { return this.modal; }, }, };