238 lines
7.3 KiB
Vue
238 lines
7.3 KiB
Vue
<template>
|
|
<div class="user-aside">
|
|
<ul>
|
|
<template v-if="userContactConfirmed && user.isAgent">
|
|
<div class="seprator">
|
|
<div class="txt">
|
|
<span>امکانات نمایندگی</span>
|
|
</div>
|
|
<div class="line"></div>
|
|
</div>
|
|
<nuxt-link
|
|
:to="{ name: 'account-agents-inbox', query: { type: 'ttl' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-agents-inbox') && 'active'"
|
|
>
|
|
<a>
|
|
<b v-if="agentInbox" class="badge">{{ agentInbox }}</b>
|
|
<i v-else class="fal fa-inbox"></i>
|
|
<span>صندوق ورودی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link
|
|
:to="{ name: 'account-agents-pieces', query: { type: 'temp' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-agents-pieces') && 'active'"
|
|
>
|
|
<a>
|
|
<i class="fas fa-wrench"></i>
|
|
<span>درخواست قطعه</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link
|
|
:to="{ name: 'account-agents-ops', query: { type: 'temp' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-agents-ops') && 'active'"
|
|
>
|
|
<a>
|
|
<i class="fas fa-backpack"></i>
|
|
<span>درخواست قطعه داغی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link
|
|
:to="{ name: 'account-agents-buffer', query: { type: 'temp' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-agents-buffer') && 'active'"
|
|
>
|
|
<a>
|
|
<i class="fab fa-buffer"></i>
|
|
<span>درخواست کالای بافر</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link
|
|
:to="{ name: 'account-agents-guaranteeReports', query: { type: 'temp' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-agents-guaranteeReports') && 'active'"
|
|
>
|
|
<a>
|
|
<i class="fas fa-file-chart-line"></i>
|
|
<span>ارسال گزارش عملکرد</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link :to="{ name: 'account-agents-reports' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-file-chart-pie"></i>
|
|
<span>گزارشات</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link :to="{ name: 'account-agents-announcements' }" tag="li">
|
|
<a class="relativePos">
|
|
<b v-if="newAgentAnnosCount" class="badge">{{ newAgentAnnosCount }}</b>
|
|
<i v-else class="fas fa-bullhorn"></i>
|
|
<span>اطلاعیه ها</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link :to="{ name: 'account-agents-edit-info' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-edit"></i>
|
|
<span>ویرایش اطلاعات نمایندگی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<nuxt-link :to="{ name: 'account-agents-file-upload' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-edit"></i>
|
|
<span>ویرایش مدارک نمایندگی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<div class="seprator">
|
|
<div class="txt">
|
|
<span>امکانات کاربری</span>
|
|
</div>
|
|
<div class="line"></div>
|
|
</div>
|
|
</template>
|
|
|
|
<nuxt-link :to="{ name: 'account' }" tag="li" exact class="username">
|
|
<a>
|
|
<i class="fas fa-user"></i>
|
|
<span class="singleLineTxt" :title="fullName">{{ fullName }}</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<template v-if="userContactConfirmed">
|
|
<nuxt-link :to="{ name: 'account-post' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-shipping-fast"></i>
|
|
<span>ارسال کالا</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-drafts' }" tag="li">
|
|
<a>
|
|
<b v-if="draftsCount" class="badge">{{ draftsCount }}</b>
|
|
<i v-else class="fas fa-mail-bulk"></i>
|
|
<span>پیش نویس ها</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link
|
|
:to="{ name: 'account-guarantee', query: { type: 'ttl' } }"
|
|
tag="li"
|
|
:class="$route.name.includes('account-guarantee') && 'active'"
|
|
>
|
|
<a>
|
|
<i class="fal fa-list"></i>
|
|
<span>لیست گارانتی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-history' }" tag="li">
|
|
<a>
|
|
<i class="fal fa-book"></i>
|
|
<span>مانده معین مشتری</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-addTicket' }" tag="li" exact>
|
|
<a>
|
|
<i class="fal fa-plus"></i>
|
|
<span>افزودن تیکت</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-tickets' }" tag="li">
|
|
<a class="relativePos">
|
|
<b v-if="unreadTickets" class="badge">{{ unreadTickets }}</b>
|
|
<i v-else class="fal fa-envelope"></i>
|
|
<span>تیکت ها</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-announcements' }" tag="li">
|
|
<a class="relativePos">
|
|
<b v-if="newUserAnnosCount" class="badge">{{ newUserAnnosCount }}</b>
|
|
<i v-else class="fas fa-bell"></i>
|
|
<span>اعلانات</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-survey' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-chart-bar"></i>
|
|
<span>نظر سنجی</span>
|
|
</a>
|
|
</nuxt-link>
|
|
<nuxt-link :to="{ name: 'account-profile' }" tag="li">
|
|
<a>
|
|
<i class="fal fa-user-edit"></i>
|
|
<span>ویرایش پروفایل</span>
|
|
</a>
|
|
</nuxt-link>
|
|
</template>
|
|
|
|
<nuxt-link v-if="!user.email_confirmed || !user.mobile_confirmed" :to="{ name: 'account-verify' }" tag="li">
|
|
<a>
|
|
<i class="fas fa-badge-check"></i>
|
|
<span>تایید اطلاعات</span>
|
|
</a>
|
|
</nuxt-link>
|
|
|
|
<li>
|
|
<a @click="logOut">
|
|
<i class="fal fa-sign-out-alt"></i>
|
|
<span>خروج</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState } from 'vuex'
|
|
export default {
|
|
computed: {
|
|
...mapState({
|
|
unreadTickets: state => state.front.unreadTickets,
|
|
draftsCount: state => state.front.draftsCount,
|
|
agentInbox: state => state.front.agentInbox,
|
|
newUserAnnosCount: state => state.front.newUserAnnosCount,
|
|
newAgentAnnosCount: state => state.front.newAgentAnnosCount
|
|
}),
|
|
user() {
|
|
return this.$auth.user
|
|
},
|
|
fullName() {
|
|
return this.user.first_name + ' ' + this.user.last_name
|
|
},
|
|
userContactConfirmed() {
|
|
return this.user.email_confirmed
|
|
}
|
|
},
|
|
methods: {
|
|
logOut() {
|
|
this.$confirm('میخواهید از حساب کاربری خارج شوید؟', 'هشدار', {
|
|
confirmButtonText: 'بله',
|
|
cancelButtonText: 'لغو',
|
|
type: 'warning'
|
|
})
|
|
.then(async () => {
|
|
try {
|
|
await this.$auth.logout()
|
|
location.reload()
|
|
} catch (e) {
|
|
console.log(e.response.data)
|
|
}
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: 'warning',
|
|
message: 'عملیات لغو شد'
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|