365 lines
11 KiB
Vue
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>
|