Commit 28897b6b by pangchong

feat: 提交

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