added chat 2
This commit is contained in:
@@ -20,6 +20,23 @@
|
||||
<div class="header-actions flex shrink-0 items-center gap-2">
|
||||
<SmsCreditWidget variant="desktop" class="header-actions__credit min-w-0" />
|
||||
<div class="header-actions__fixed flex shrink-0 items-center gap-3">
|
||||
<button
|
||||
v-if="supportChatEnabled"
|
||||
type="button"
|
||||
class="flex cursor-pointer items-center justify-center rounded-full border-0 bg-transparent text-[var(--admin-text-secondary)] transition-colors hover:opacity-80"
|
||||
aria-label="چت پشتیبانی"
|
||||
@click="goToSupport"
|
||||
>
|
||||
<a-badge
|
||||
:count="totalUnreadCount"
|
||||
:overflow-count="99"
|
||||
:show-zero="false"
|
||||
>
|
||||
<span class="inline-flex items-center justify-center">
|
||||
<Icon icon="vuesax-linear:messages-2" size="22" />
|
||||
</span>
|
||||
</a-badge>
|
||||
</button>
|
||||
<ADropdown placement="bottomLeft" class="ml-5">
|
||||
<a class="ant-dropdown-link" @click.prevent>
|
||||
<!-- Hover me-->
|
||||
@@ -158,19 +175,29 @@ import { inputRules, inputLenRules } from '@/utils/inputRules'
|
||||
import type { User } from '@/model/user'
|
||||
import { createUser, updateMyInformation, updateUser } from '@/api/user'
|
||||
import { message } from 'ant-design-vue/es'
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { onMounted, ref, computed } from 'vue'
|
||||
import type { FormInstance } from 'ant-design-vue'
|
||||
import { cloneDeep } from 'lodash'
|
||||
import { useWindowSize } from '@vueuse/core'
|
||||
import {getConfigApp} from "@/utils/config";
|
||||
import ThemeMenuSection from '@core/components/ThemeMenuSection.vue'
|
||||
import { useAdminTheme } from '@core/composable/useAdminTheme'
|
||||
import { useAdminChatService } from '@/utils/adminChat'
|
||||
import { supportChatMenuEnabledSetting } from '@/utils/config'
|
||||
const { prefixCls } = usePrefix('basic-header')
|
||||
const layoutStore = useLayoutStore()
|
||||
const store = useStaticApiListsStore()
|
||||
const userStore = useUserStore()
|
||||
const settingsStore = useSettingsStore()
|
||||
const { menuTheme } = useAdminTheme()
|
||||
const router = useRouter()
|
||||
const { totalUnreadCount } = useAdminChatService()
|
||||
|
||||
const supportChatEnabled = computed(() => supportChatMenuEnabledSetting.value)
|
||||
|
||||
function goToSupport() {
|
||||
router.push({ name: 'supportMain' })
|
||||
}
|
||||
|
||||
const { width } = useWindowSize()
|
||||
//my info modal
|
||||
|
||||
@@ -36,6 +36,7 @@ import BaseMenuItem from '@core/layouts/composnts/BaseMenuItem.vue'
|
||||
import type { RouteRecordName, RouteRecordRaw } from 'vue-router'
|
||||
import { useRouterStore } from '@core/stores/router'
|
||||
import { useAdminTheme } from '@core/composable/useAdminTheme'
|
||||
import { supportChatMenuEnabledSetting } from '@/utils/config'
|
||||
|
||||
const { prefixCls } = usePrefix('basic-menu')
|
||||
const layoutStore = useLayoutStore()
|
||||
@@ -68,10 +69,18 @@ function walkInRoutes(routes: RouteRecordRaw[]) {
|
||||
walkInRoutes(routerStore.routes)
|
||||
selectedKeys.value = path
|
||||
|
||||
function isSupportMenuRoute(item: RouteRecordRaw): boolean {
|
||||
return item.name === 'support' || item.meta?.permissionsKey === 'support'
|
||||
}
|
||||
|
||||
const menu: ComputedRef<RouteRecordRaw[]> = computed(() => {
|
||||
return sortBy(routerStore.routes, (item) => {
|
||||
return item.meta?.order
|
||||
}).filter((item) => !item.meta?.hideMenu)
|
||||
}).filter((item) => {
|
||||
if (item.meta?.hideMenu) return false
|
||||
if (isSupportMenuRoute(item)) return supportChatMenuEnabledSetting.value
|
||||
return true
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user