<template> <!-- <div style="height: 100vh; overflow: auto"> --> <div> <!-- <button class="filters__open-btn--top btn buttonshow" id="buttonshow" @click="showfilter" > <svg data-v-46e9fe5b="" data-testid="chevron-double-lg-left-icon" class="s12 icon-chevron-double-lg-left" > <use data-v-46e9fe5b="" href="/assets/img/icons.d6ff8c17.svg#chevron-double-lg-left" ></use> </svg> </button> --> <div class="button-change"> <switch-component @change-mode="topRepeatInListMode = !topRepeatInListMode" name="top-repeat" ></switch-component> <!-- "critions" --> <div v-if="entity_type != getEntityTypeId('answer')" class="record-problem" > <a v-can="'issues_create'" title="ثبت مساله" href="ثبت مساله" class="text__14 text__blue button" @click.prevent="openIssueModal" >ثبت {{ getEntityName(entity_type) }}</a > </div> </div> <div v-if="topRepeatInListMode"> <div ref="filterdiv" class="jahat__sidebar scroll-needed hide" id="showDiv" :class="{ expanded: !isSidebarCollapsed }" > <ul class="sidebar-menu sidebar-menu--simple buttonhide"> <li> <a href="javascript:void(0)" @click.prevent="updateListSpecial(1)" class="text__14" >{{ entitiesTitle }} جدید</a > </li> <li> <a href="javascript:void(0)" @click.prevent="updateListSpecial(2)" class="text__14" >{{ entitiesTitle }} ویرایشی</a > </li> <li> <a href="javascript:void(0)" @click.prevent="updateListSpecial(3)" class="text__14" >{{ entitiesTitle }} تولیدی من</a > </li> <li> <a href="javascript:void(0)" @click.prevent="updateListSpecial(4)" class="text__14" >{{ entitiesTitle }} مشارکتی من</a > </li> <button type="bu" @click.prevent="hidefilter" class="text__14 btn btnHide" id="btnHide" > <svg data-v-46e9fe5b="" data-testid="chevron-double-lg-left-icon" class="s12 icon-chevron-double-lg-left" > <use data-v-46e9fe5b="" href="/assets/img/icons.d6ff8c17.svg#chevron-double-lg-left" ></use> </svg> بستن </button> </ul> </div> <div class="jahat__content-container" :class="{ expanded: !isSidebarCollapsed }" > <!-- <div v-if="entity_type == getEntityTypeId('issue')" class="jahat__fixed-btn" > <a v-can="'issues_create'" title="ثبت مساله" href="ثبت مساله" class="text__14 text__blue button" @click.prevent="openIssueModal" >ثبت مساله</a > </div> --> <the-content-loading v-if="fetchingData"></the-content-loading> <div v-if="canView"> <div v-if="!fetchingData"> <EntityContent v-if="pagination.total" :creationFilters="creationFilters" :subjectFilters="subjectFilters" @add-filter="updateListAfterFilterAdded" @remove-filter="updateListAfterFilterRemoved" @delete-entity="deleteEntity" @edit-entity="editEntity" @open-subject-modal="openSubjectModal" :type="listType" :entities="listEntity" class="entity-content" :class="{ 'chart-and-list-mode': topRepeatInListMode }" /> <no-data v-else> <p class="text-center p-3">مسئله ای ثبت نشده است.</p> </no-data> </div> </div> <no-data v-else> <p class="text-center p-3"> <span class="tavasi tavasi-warning-circle"></span> عدم دسترسی </p> </no-data> <jahat-pagination v-if="pagination.total" :paginationInfo="pagination" @page-changed="pageChanged" @page-limit-changed="pageLimitChanged" @sort-changed="sortChanged" > </jahat-pagination> <jahat-modal @close-modal="closeModal" :showHeaderCloseButton="true" v-if="showModal" title="ایجاد مسئله" > <problem-modal v-if="showIssueModal" :data="entity" @close-modal="closeModal" @problem-added="closeModal" > </problem-modal> <subject-form v-if="showSubjectModal" @update-list="closeModal" @delete-item="updateListSpecial" projectTagsName="jahat" ></subject-form> </jahat-modal> </div> </div> <div v-else> <ChartContent :class="{ 'chart-and-list-mode': topRepeatInListMode }" class="ChartContent" ></ChartContent> </div> </div> </template> <script> import { mapState, mapActions } from "pinia"; import { entityMixin } from "~/jahat/mixins/entityMixin"; import { commonMixin } from "~/jahat/mixins/commonMixin"; import repoApi from "~/apis/repoApi"; // import { propertyModalMixin } from "~/jahat/mixins/propertyModalMixin"; export default { mixins: [entityMixin, commonMixin], mounted() { this.checkPermissions({ permission: `${this.$route.name}_list`, _this: this, }) .then(() => { this.entity_type = this.$route.meta.entityType === undefined ? 1 : this.$route.meta.entityType; this.entitiesTitle = this.getEntityTitle(this.entity_type); this.getList(this.entity_type); this.canView = true; }) .catch(() => { this.canView = false; }); }, watch: { $route: { handler(newRoute, oldRoute) { this.checkPermissions({ permission: `${newRoute.name}_list`, _this: this, }) .then(() => { this.entity_type = this.$route.meta.entityType === undefined ? 1 : this.$route.meta.entityType; this.entitiesTitle = this.getEntityTitle(this.entity_type); if (oldRoute.name != newRoute.name) { newRoute.query.page = undefined; history.pushState({}, document.title, newRoute.path); // this.$router.replace({ query: {...this.$route.query, page: undefined}}) this.resetPagination(); } this.fetchingData = false; this.getList(this.entity_type); this.canView = true; }) .catch(() => { this.canView = false; }); }, nested: true, // immediate: true, }, }, data() { return { topRepeatInListMode: true, subjectFilters: new Map(), creationFilters: new Map(), showSubjectModal: false, showIssueModal: false, canView: true, // modal: "answer-modal", entity_type: 1, entitiesTitle: "مسائل", listType: 1, listEntity: [], entity: {}, modal: undefined, modal_title: null, modal_data: { entity: {}, keyName: "", index: -1, }, showfilters: 2, }; }, computed: { ...mapState(["schemasGetter", "isSidebarCollapsed"]), }, methods: { ...mapActions(["checkPermissions"]), ...mapActions("list", [ "SET_SELECTED_PROJECT", "SET_LIST_ID", "SET_LIST", "SET_SELECTED_ITEM", ]), //mehdi showfilter() { this.$refs.filterdiv.classList.add("show"); this.$refs.filterdiv.classList.remove("hide"); document.getElementById("buttonshow").style.display = "none"; document.getElementById("btnHide").style.display = "inline-block"; // document.getElementById("showDiv").style.display = "inline-block"; }, hidefilter() { this.$refs.filterdiv.classList.remove("show"); this.$refs.filterdiv.classList.add("hide"); document.getElementById("buttonshow").style.display = "inline-block"; document.getElementById("btnHide").style.display = "none"; }, //mehdi openSubjectModal(entity) { this.showSubjectModal = true; this.entity = entity._source; this.SET_SELECTED_ITEM(this.entity); this.beforeShowModal(); }, openIssueModal() { this.showIssueModal = true; this.entity = { title: "", description: "", // weight: 0, }; // console.log(this.entity); this.beforeShowModal(); }, deleteEntity(entity) { this.mySwalConfirm({ title: "هشدار!!!", html: `از حذف این مورد اطمینان دارید؟ `, icon: "warning", }).then((result) => { setTimeout(() => { this.updateListSpecial(1); }, 1000); if (result.isConfirmed) { let url = repoApi.entity.delete_jahat; url = url.replace("{{entity_id}}", entity._id); this.httpService .postRequest(url) .then((res) => { this.getList(this.entity_type); this.mySwalToast({ html: res.data.message, icon: "success", }); // this.getListSpecial(this.entity_type, this.listType); // this.updateListSpecial() }) .catch((err) => { // this.mySwalToast({ // title: "خطا!!!", // html: err.message, // icon: "error", // }); }); } }); }, editEntity(entity) { this.showIssueModal = true; this.entity = entity._source; this.beforeShowModal(); }, openModal(modal, 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_title = ev.target?.title ?? 'بدون عنوان'; this.beforeShowModal(); }, beforeShowModal() { this.showModal = true; setTimeout(() => { $("#jahat-modal").modal( { backdrop: "static", keyboard: false }, "show" ); }, 500); }, closeModal() { $("#jahat-modal").modal("hide"); setTimeout(() => { this.showModal = false; this.showSubjectModal = false; this.showIssueModal = false; this.updateListSpecial(1); }, 500); }, updateListAfterFilterAdded(filter, filterObject = "subjectFilters") { if (!this[filterObject].has(filter.id)) { this[filterObject].set(filter.id, filter); this.getList(this.entity_type); } this.updateListSpecial(); }, updateListAfterFilterRemoved(filter, filterObject = "subjectFilters") { if (this[filterObject].has(filter.id)) { this[filterObject].delete(filter.id); this.getList(this.entity_type); } }, updateListSpecial(listType = 0) { this.listType = listType; if (listType == 0) this.getList(this.entity_type); else this.getListSpecial(this.entity_type, listType); }, // addToList(input) { // let e = {}; // e._source = { ...input.item }; // this.listEntity.unshift(e); // this.paginationInfo.total += 1; // }, }, }; </script> <style scoped lang="scss"> .showBtn { display: none; } .btn-hide { display: none; } .jahat__sidebar { top: 55px; padding-right: 100px; } .btnHide { display: none; } .btnHide svg { transform: rotate(180deg); } .jahat__fixed-btn { // top: calc(var(--headerHeight) + 7px); // left: 8em } .button-change { left: 1em; width: 100%; height: 40px; position: absolute; top: 6em; display: flex; justify-content: flex-end; align-items: center; // margin-top: 0rem; // z-index: 9; // background-color: white; // padding: 2rem; div { margin: 0 10px; } } @media only screen and (min-width: 768px) and (max-width: 991.98px) { .buttonshow { position: fixed; color: inherit; right: 5px; top: 65px; width: 50px; height: 50px; z-index: 999999; } .btnHide { position: absolute; display: inline-block; left: 0px; } .btnHide svg { transform: rotate(180deg); } .m1 { background-color: red; } .hide { transform: translateX(80%); display: none; } .show { transform: translateX(0); } #showDiv { top: 55px; } .titelAnswerText { max-width: 150px; } } @media only screen and (min-width: 576px) and (max-width: 767.98px) { .buttonshow { position: fixed; color: inherit; right: 5px; top: 65px; width: 50px; height: 50px; z-index: 999999; } .btnHide { position: absolute; display: inline-block; left: 0px; } .btnHide svg { transform: rotate(180deg); } .hide { transform: translateX(80%); display: none; } .show { transform: translateX(0); } #showDiv { top: 55px; } .titelAnswerText { max-width: 150px; } } @media (max-width: 575.98px) { .button-change { left: 0em; top: 8em; } .buttonshow { position: fixed; color: inherit; right: 5px; top: 95px; width: 50px; height: 50px; z-index: 999999; } .button-change { margin-top: 2rem; } .btnHide { position: absolute; display: inline-block; left: 0px; } .m1 { background-color: red; } .hide { display: none; } .show { transform: translateX(0); } #showDiv { top: 95px; } .titelAnswer { display: none; } .jahat-header__pagination { top: 0px !important; position: relative !important ; } .jahat__sidebar { top: 108px !important; } } </style> <!-- <style lang="scss"> // @media only screen and (max-width: 575.98px) { // .jahat__content-container { // .problem-detail { // .problem-detail__section { // .problem-slider { // .flickity { // .flickity-viewport { // .flickity-slider { // // .jahat-system .problem-slider__cell { // // width: 100% !important; // // } // // .jahat-system .problem-files--answer .problem-files__cell { // // width: 100% !important; // // } // // .flickity-slider .problem-files__cell .is-selected { // // width: 100% !important; // // } // .problem-slider__cell{ // width: 100%; // } // .problem-files__cell { // width: 100% !important; // // height: 170px; // } // .problem-slider__pic { // img { // width: 95%; // } // } // } // } // } // } // .problem-section__content{ // .problem-files{ // .flickity { // .flickity-viewport { // .flickity-slider { // .problem-slider__cell{ // width: 100%; // } // .problem-files__cell { // width: 100% !important; // // height: 170px; // } // .problem-slider__pic { // img { // width: 95%; // } // } // } // } // } // } // } // } // } // } // } </style> -->