92 lines
2.5 KiB
JavaScript
92 lines
2.5 KiB
JavaScript
// import HttpService from "~/services/httpService";
|
|
import { mapState, mapActions } from "pinia";
|
|
import { useEntityStore } from "@search/stores/entityStore";
|
|
import { useSearchStore } from "@search/stores/searchStore";
|
|
|
|
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(useSearchStore, ["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;
|
|
},
|
|
},
|
|
};
|