Files
2024-11-18 18:56:14 +03:30

365 lines
11 KiB
Vue

<template>
<CSidebar
fixed
:minimize="minimize"
:show="show"
@update:show="(value) => $store.commit('admin/set', ['sidebarShow', value])"
>
<CSidebarBrand class="d-md-down-none">
<a href="/" target="_blank">
<span style="color: #fff">پرتال خبری</span>
</a>
</CSidebarBrand>
<!-- <CRenderFunction flat :content-to-render="$options.nav"/> -->
<!-- sidebar content -->
<CSidebarNav>
<CSidebarNavItem
name="صفحه اصلی"
:to="{ name: 'admin' }"
font-icon="fal fa-home"
/>
<CSidebarNavItem
name="مدیریت کاربران"
:to="{ name: 'admin-users' }"
v-if="hasPermission('superAdmin')"
fontIcon="fal fa-users"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت صفحات"
:to="{ name: 'admin-pages' }"
v-if="hasPermission('categories')"
fontIcon="fal fa-file"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت عملکرد"
:to="{ name: 'admin-pdfManagement' }"
v-if="hasPermission('categories')"
fontIcon="fal fa-file"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت پرونده خبری"
:to="{ name: 'admin-newsFile' }"
v-if="hasPermission('newsFile')"
font-icon="fal fa-cabinet-filing"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت اخبار"
:to="{ name: 'admin-news' }"
v-if="hasPermission('news')"
font-icon="fal fa-newspaper"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت چند رسانه ای ها"
v-if="hasPermission('gallery')"
:to="{ name: 'admin-gallery' }"
font-icon="fal fa-images"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت نظرسنجی ها"
:to="{ name: 'admin-polls', query: { page: 1 } }"
font-icon="fal fa-poll-people"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت انتخابات"
:exact="false"
:to="{ name: 'admin-elections' }"
v-if="hasPermission('elections')"
font-icon="fal fa-box-ballot"
/>
<CSidebarNavItem
name="مدیریت نشست ها"
:exact="false"
:to="{ name: 'admin-sessions' }"
v-if="hasPermission('superAdmin')"
font-icon="fal fa-solid fa-user"
/>
<CSidebarNavDropdown
name="میز خدمت"
:show="Boolean(unreadMeetingReq)"
v-if="hasPermission('superAdmin')"
font-icon="fal fa-browser"
>
<CSidebarNavItem
name="درخواست های ملاقات با استاندار"
:exact="false"
:badge="
unreadMeetingReq
? { text: unreadMeetingReq, color: 'danger' }
: null
"
:to="{ name: 'admin-meeting' }"
/>
</CSidebarNavDropdown>
<!-- <CSidebarNavItem
name="مدیریت محتوا"
v-if="hasPermission('contents')"
:to="{ name: 'admin-contents' }"
icon="cil-speedometer"
/> -->
<CSidebarNavDropdown
name="مدیریت پیام ها"
:show="Boolean(unreadContactMessages + unreadNewsMessages)"
v-if="
hasPermission('comment-News') || hasPermission('comment-ContactUs')
"
fontIcon="fal fa-envelope"
>
<CSidebarNavItem
v-if="hasPermission('comment-News')"
name="کامنت های اخبار"
:exact="false"
:badge="
unreadNewsMessages
? {
text: unreadNewsMessages,
color: 'danger',
}
: null
"
:to="{
name: 'admin-comments-type',
params: { type: 'News' },
}"
/>
<CSidebarNavItem
v-if="hasPermission('comment-ContactUs')"
name="پیام های تماس با ما"
:exact="false"
:badge="
unreadContactMessages
? {
text: unreadContactMessages,
color: 'danger',
}
: null
"
:to="{
name: 'admin-comments-type',
params: { type: 'ContactUs' },
}"
/>
</CSidebarNavDropdown>
<CSidebarNavDropdown
name="تنظیمات"
v-if="hasPermission('superAdmin')"
fontIcon="fal fa-cog"
>
<CSidebarNavItem
name="اخباری روی صفحه اصلی"
:to="{
name: 'admin-homePageNews',
query: { portal: 'ostandari' },
}"
/>
<CSidebarNavItem
name="مدیریت پیوندها"
:to="{ name: 'admin-links' }"
:exact="false"
/>
<CSidebarNavItem
name="استاندار"
:to="{
name: 'admin-contents-details',
params: { details: 'manager' },
}"
/>
<CSidebarNavItem
name="مدیریت اسلایدر"
:to="{ name: 'admin-slider' }"
:exact="false"
/>
<CSidebarNavItem
name="عکس شعار سال"
:to="{ name: 'admin-yearBanner' }"
/>
<CSidebarNavItem
name="دکمه ستاد انتخابات"
:to="{ name: 'admin-electionBtn' }"
/>
<CSidebarNavItem
name="آدرس ایمیل و شبکه های اجتماعی"
:to="{ name: 'admin-socialLinks' }"
/>
<CSidebarNavItem
name="مدیریت مناسبت ها"
:to="{ name: 'admin-occasion' }"
:exact="false"
/>
<CSidebarNavItem
name="مدیریت روز شمار"
:to="{ name: 'admin-counterDay' }"
/>
<CSidebarNavItem
name="پشتیبان گیری از سایت"
:to="{ name: 'admin-backup' }"
/>
</CSidebarNavDropdown>
<CSidebarNavDropdown
name="مدیریت صفحات خاص"
v-if="hasPermission('contents')"
fontIcon="fal fa-file-alt"
>
<CSidebarNavItem
name="صفحه اصلی"
:to="{
name: 'admin-homePageManagement',
query: { portal: 'ostandari' },
}"
/>
<CSidebarNavItem
name="صفحه عملکرد"
:to="{
name: 'admin-contents-details',
params: { details: 'performance' },
}"
/>
<CSidebarNavItem
name="صفحه سیمای استان"
:to="{
name: 'admin-contents-details',
params: { details: 'sima' },
}"
/>
<CSidebarNavItem
name="صفحه درباره ما"
:to="{
name: 'admin-contents-details',
params: { details: 'aboutus' },
}"
/>
<!-- <CSidebarNavItem-->
<!-- name="صفحه خدمات"-->
<!-- :to="{ name: 'admin-contents-details' , params : {details : 'services'} }"-->
<!-- />-->
<!-- <CSidebarNavItem-->
<!-- name="صفحه شرایط استفاده"-->
<!-- :to="{ name: 'admin-contents-details' , params : {details : 'terms'} }"-->
<!-- />-->
<CSidebarNavItem
name="صفحه حفظ حریم خصوصی"
:to="{
name: 'admin-contents-details',
params: { details: 'privacy' },
}"
/>
<!-- <CSidebarNavItem-->
<!-- name="صفحه کوکی ها"-->
<!-- :to="{ name: 'admin-contents-details' , params : {details : 'cookies'} }"-->
<!-- />-->
<!-- <CSidebarNavItem-->
<!-- name="صفحه امکانات"-->
<!-- :to="{ name: 'admin-contents-details' , params : {details : 'facilities'} }"-->
<!-- />-->
<!-- <CSidebarNavItem-->
<!-- name="صفحه آرایی"-->
<!-- :to="{ name: 'admin-contents-details' , params : {details : 'layout'} }"-->
<!-- />-->
<CSidebarNavItem
name="سوالات متداول"
:to="{
name: 'admin-contents-details',
params: { details: 'faq' },
}"
/>
<CSidebarNavItem
name="صفحه قوانین و مقررات"
:to="{
name: 'admin-contents-details',
params: { details: 'rules' },
}"
/>
<CSidebarNavItem
name="صفحه نقشه سایت"
:to="{
name: 'admin-contents-details',
params: { details: 'sitemap' },
}"
/>
</CSidebarNavDropdown>
</CSidebarNav>
<!-- sidebar content -->
<CSidebarMinimizer
class="d-md-down-none"
@click.native="$store.commit('admin/set', ['sidebarMinimize', !minimize])"
/>
</CSidebar>
</template>
<script>
// import nav from './_nav';
import unreadNewsMessages from "./../../mixins/unreadNewsMessages";
import unreadContactMessages from "./../../mixins/unreadContactMessages";
import unreadMeetingReq from "../../mixins/unreadMeetingReq";
export default {
name: "TheSidebar",
// nav,
data() {
return {
errlogOutMessage:
"مشکلی هنگام خروج از سیسیتم بوجود امده لطفا دوباره تلاش کنید",
};
},
mixins: [unreadNewsMessages, unreadContactMessages, unreadMeetingReq],
computed: {
show() {
return this.$store.state.admin.sidebarShow;
},
minimize() {
return this.$store.state.admin.sidebarMinimize;
},
unreadNewsMessages() {
return this.$store.state.admin.unreadNewsMessagesCount;
},
unreadContactMessages() {
return this.$store.state.admin.unreadContactMessagesCount;
},
unreadMeetingReq() {
return this.$store.state.admin.unreadMeetingReqCount;
},
},
methods: {
hasPermission(permission) {
if (this.$auth.loggedIn) {
if (this.$auth.user.permissions.includes("superAdmin")) {
return true;
} else if (this.$auth.user.permissions.includes(permission)) {
return true;
} else {
return false;
}
} else return false;
},
async logOut() {
await this.$auth.logout();
this.$router.push({ name: "admin-login" });
},
},
};
</script>