Commit 28897b6b by pangchong

feat: 提交

parent cd1f4c91
<template> <template>
<a-config-provider :locale="localeVal"> <a-config-provider :locale="localeVal">
<router-view/> <a-spin :loading="loading" :tip="loadText" class="w-full h-full">
<global-setting/> <router-view />
</a-config-provider> </a-spin>
<global-setting />
</a-config-provider>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import enUS from '@arco-design/web-vue/es/locale/lang/en-us' import enUS from '@arco-design/web-vue/es/locale/lang/en-us'
import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn' import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn'
import GlobalSetting from '@/components/global-setting/index.vue' import GlobalSetting from '@/components/global-setting/index.vue'
import useLocale from '@/hooks/locale' import useLocale from '@/hooks/locale'
import useAppStore from '@/store/app/index' import useAppStore from '@/store/app/index'
import { activedTheme } from '../project.ui.config'
import {activedTheme} from '../project.ui.config'
import config from '../project.app.config' import config from '../project.app.config'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import {wsShouldOpen} from "AnyR/states/coreState"; import { wsShouldOpen } from 'AnyR/states/coreState'
import { storeToRefs } from 'pinia'
const {changeTheme} = useAppStore() const { loading, loadText } = storeToRefs(useAppStore())
const { changeTheme } = useAppStore()
// 国际化 // 国际化
const {currentLocale} = useLocale() const { currentLocale } = useLocale()
const localeVal = computed(() => { const localeVal = computed(() => {
switch (currentLocale.value) { switch (currentLocale.value) {
case 'zh-CN': case 'zh-CN':
return zhCN return zhCN
case 'en-US': case 'en-US':
return enUS return enUS
default: default:
return zhCN return zhCN
} }
}) })
const userStore = useUserStore() const userStore = useUserStore()
onMounted(() => { onMounted(() => {
if (userStore.token) { if (userStore.token) {
changeTheme(activedTheme.value) changeTheme(activedTheme.value)
} }
}) })
watch(activedTheme, (newVal) => { watch(activedTheme, (newVal) => {
changeTheme(newVal) changeTheme(newVal)
}) })
const router = useRouter() const router = useRouter()
...@@ -50,30 +51,30 @@ const router = useRouter() ...@@ -50,30 +51,30 @@ const router = useRouter()
// @ts-ignore // @ts-ignore
//全局前置守卫 //全局前置守卫
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
const userStore = useUserStore() const userStore = useUserStore()
const token = userStore.token const token = userStore.token
if (token) { if (token) {
wsShouldOpen.value = true; wsShouldOpen.value = true
// 登录 // 登录
if (to.name == 'Login') { if (to.name == 'Login') {
next({path: './'}) next({ path: './' })
} else { } else {
next() next()
} }
} else {
//未登录
if (to.name == 'Login') {
next()
} else { } else {
next({name: 'Login'}) //未登录
if (to.name == 'Login') {
next()
} else {
next({ name: 'Login' })
}
} }
}
}) })
//全局后置守卫 //全局后置守卫
router.afterEach(async (to) => { router.afterEach(async (to) => {
// 动态标题 // 动态标题
let pageTitle = !to.meta.hideBaseTitle ? config.baseTitle + ' - ' : '' let pageTitle = !to.meta.hideBaseTitle ? config.baseTitle + ' - ' : ''
if (to.meta.title != '') pageTitle += to.meta.title if (to.meta.title != '') pageTitle += to.meta.title
window.document.title = pageTitle window.document.title = pageTitle
}) })
</script> </script>
...@@ -6,6 +6,7 @@ import qs from 'qs' ...@@ -6,6 +6,7 @@ import qs from 'qs'
import { createAlovaMockAdapter } from '@alova/mock' import { createAlovaMockAdapter } from '@alova/mock'
import mock from './mock' import mock from './mock'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import { Message } from '@arco-design/web-vue'
// 创建模拟请求适配器 // 创建模拟请求适配器
const mockAdapter = createAlovaMockAdapter([mock], { const mockAdapter = createAlovaMockAdapter([mock], {
...@@ -50,10 +51,17 @@ export const alova = createAlova({ ...@@ -50,10 +51,17 @@ export const alova = createAlova({
return await response.blob() return await response.blob()
} }
const json = await response.json() const json = await response.json()
if (json.code === 200) { if ([402].includes(json.code)) {
return json['data'] Message.error(json.message)
const userStore = useUserStore()
userStore.handleLogOut()
return Promise.reject(new Error(json.message))
} else { } else {
return json if (json.code === 200) {
return json['data']
} else {
return json
}
} }
}, },
// 请求错误时将会进入该拦截器 // 请求错误时将会进入该拦截器
......
import { computed } from 'vue'; import { computed } from 'vue'
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n'
import { Message } from '@arco-design/web-vue'; import { Message } from '@arco-design/web-vue'
export default function useLocale() { export default function useLocale() {
const i18 = useI18n(); const i18 = useI18n()
const currentLocale = computed(() => { const currentLocale = computed(() => {
return i18.locale.value; return i18.locale.value
}); })
const changeLocale = (value: string) => { const changeLocale = (value: string) => {
if (i18.locale.value === value) { if (i18.locale.value === value) {
return; return
}
i18.locale.value = value
localStorage.setItem('arco-locale', value)
Message.success(i18.t('action.locale'))
}
return {
currentLocale,
changeLocale
} }
i18.locale.value = value;
localStorage.setItem('arco-locale', value);
Message.success(i18.t('action.locale'));
};
return {
currentLocale,
changeLocale,
};
} }
...@@ -6,7 +6,9 @@ import { changeTailwindTheme } from '@/configs/tailwind.ui.config' ...@@ -6,7 +6,9 @@ import { changeTailwindTheme } from '@/configs/tailwind.ui.config'
const useAppStore = defineStore('app', { const useAppStore = defineStore('app', {
state: (): AppState => { state: (): AppState => {
return { return {
theme: 'light' theme: 'light',
loading: false,
loadText: '加载中...'
} }
}, },
......
export interface AppState { export interface AppState {
theme: string; theme: string
loading: boolean
loadText: string
} }
...@@ -77,7 +77,7 @@ const searchParams = reactive({ ...@@ -77,7 +77,7 @@ const searchParams = reactive({
const getUserListGroup = computed(() => { const getUserListGroup = computed(() => {
return userList.value return userList.value
?.sort((a, b) => a.videoGroup - b.videoGroup) ?.sort((a, b) => a.videoGroup - b.videoGroup)
.reduce((result: any, item) => { ?.reduce((result: any, item) => {
const groupName = videoGroup[item.videoGroup] const groupName = videoGroup[item.videoGroup]
if (!result[groupName]) { if (!result[groupName]) {
result[groupName] = [] result[groupName] = []
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!-- 搜索条件 --> <!-- 搜索条件 -->
<div class="flex items-center justify-between mb-4 px-4"> <div class="flex items-center justify-between mb-4 px-4">
<range-pickey v-model:start-date="beginTime" v-model:end-date="endTime"></range-pickey> <range-pickey v-model:start-date="beginTime" v-model:end-date="endTime"></range-pickey>
<a-input-search placeholder="搜索" class="w-[240px]"></a-input-search> <a-input-search placeholder="搜索" class="w-[240px]" v-model="keyword"></a-input-search>
</div> </div>
<!-- table展示 --> <!-- table展示 -->
<div class="flex-auto overflow-y-auto px-4"> <div class="flex-auto overflow-y-auto px-4">
...@@ -31,6 +31,7 @@ import { storeToRefs } from 'pinia' ...@@ -31,6 +31,7 @@ import { storeToRefs } from 'pinia'
const beginTime = ref('') const beginTime = ref('')
const endTime = ref('') const endTime = ref('')
const keyword = ref('')
//当前联系人 //当前联系人
const { chooseUser } = storeToRefs(useContactsStore()) const { chooseUser } = storeToRefs(useContactsStore())
//表格搜索 //表格搜索
...@@ -48,6 +49,9 @@ const getEventList = (pageIndex: number, pageSize: number) => { ...@@ -48,6 +49,9 @@ const getEventList = (pageIndex: number, pageSize: number) => {
if (endTime.value) { if (endTime.value) {
params.endTime = endTime.value params.endTime = endTime.value
} }
if (keyword.value) {
params.keyword = keyword.value
}
return alova.Post<any>('/call/getEventList', params) return alova.Post<any>('/call/getEventList', params)
} }
const { const {
......
...@@ -39,7 +39,7 @@ const { userList } = storeToRefs(useContactsStore()) ...@@ -39,7 +39,7 @@ const { userList } = storeToRefs(useContactsStore())
const getUserListGroup = computed(() => { const getUserListGroup = computed(() => {
return cloneDeep(userList.value) return cloneDeep(userList.value)
?.sort((a, b) => a.videoGroup - b.videoGroup) ?.sort((a, b) => a.videoGroup - b.videoGroup)
.reduce((result: any, item) => { ?.reduce((result: any, item) => {
const groupName = videoGroup[item.videoGroup] const groupName = videoGroup[item.videoGroup]
if (!result[groupName]) { if (!result[groupName]) {
result[groupName] = [] result[groupName] = []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment