|
@@ -1,11 +1,11 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <el-container id="home" v-loading="loading">
|
|
|
|
|
|
|
+ <el-container class="home" v-loading="loading">
|
|
|
<el-aside width="auto">
|
|
<el-aside width="auto">
|
|
|
- <nav-menu></nav-menu>
|
|
|
|
|
|
|
+ <!-- <nav-menu></nav-menu>-->
|
|
|
</el-aside>
|
|
</el-aside>
|
|
|
<el-container>
|
|
<el-container>
|
|
|
<el-header>
|
|
<el-header>
|
|
|
- <el-row :gutter="10">
|
|
|
|
|
|
|
+ <el-row>
|
|
|
<el-col :span="2">
|
|
<el-col :span="2">
|
|
|
<div class="btn-control" @click="ChangeCollapse">
|
|
<div class="btn-control" @click="ChangeCollapse">
|
|
|
<el-icon v-show="!isCollapse"><Fold /></el-icon>
|
|
<el-icon v-show="!isCollapse"><Fold /></el-icon>
|
|
@@ -13,56 +13,43 @@
|
|
|
</div>
|
|
</div>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="22" class="tool-box">
|
|
<el-col :span="22" class="tool-box">
|
|
|
- <!-- <el-button-->
|
|
|
|
|
- <!-- v-if="isQAlist"-->
|
|
|
|
|
- <!-- plain-->
|
|
|
|
|
- <!-- round-->
|
|
|
|
|
- <!-- size="small"-->
|
|
|
|
|
- <!-- type="primary"-->
|
|
|
|
|
- <!-- icon="el-icon-chat-line-round"-->
|
|
|
|
|
- <!-- style="margin-right: 20px"-->
|
|
|
|
|
- <!-- @click="openQA"-->
|
|
|
|
|
- <!-- >-->
|
|
|
|
|
- <!-- {{ 'Q&A' }}-->
|
|
|
|
|
- <!-- </el-button>-->
|
|
|
|
|
- <el-dropdown trigger="click" class="language">
|
|
|
|
|
- <span class="el-dropdown-link">
|
|
|
|
|
- <span>{{ langName }}</span
|
|
|
|
|
- ><el-icon><ArrowDown /></el-icon>
|
|
|
|
|
- </span>
|
|
|
|
|
- <template #dropdown>
|
|
|
|
|
- <el-dropdown-menu>
|
|
|
|
|
- <el-dropdown-item @click="SwitchLanguage('cn')">中文简体</el-dropdown-item>
|
|
|
|
|
- <el-dropdown-item @click="SwitchLanguage('en')">English</el-dropdown-item>
|
|
|
|
|
- </el-dropdown-menu>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-dropdown>
|
|
|
|
|
- <el-dropdown v-if="info.roteCode == 'ROLE_SALE'" trigger="click" class="role-switch">
|
|
|
|
|
- <span class="el-dropdown-link">
|
|
|
|
|
- <span>{{ currentRoleName }}</span>
|
|
|
|
|
- <el-icon><ArrowDown /></el-icon>
|
|
|
|
|
- </span>
|
|
|
|
|
|
|
+ <!-- 多语言-->
|
|
|
|
|
+ <el-dropdown trigger="click" class="language" @command="chooseLang">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <img v-if="currentFlag" :src="currentFlag" alt="flag" class="flag-icon" />
|
|
|
|
|
+ <span class="el-dropdown-link">
|
|
|
|
|
+ <span>{{ langList[langName]?.name || langName }}</span>
|
|
|
|
|
+ <el-icon><ArrowDown /></el-icon>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
<template #dropdown>
|
|
<template #dropdown>
|
|
|
- <el-dropdown-menu>
|
|
|
|
|
|
|
+ <el-dropdown-menu class="language-dropdown">
|
|
|
<el-dropdown-item
|
|
<el-dropdown-item
|
|
|
- v-for="item in attachList"
|
|
|
|
|
- :key="item.id"
|
|
|
|
|
- :class="{ 'is-active': item.id === currentAttachId }"
|
|
|
|
|
- @click="switchRole(item)"
|
|
|
|
|
|
|
+ v-for="lang in languageOptions"
|
|
|
|
|
+ :key="lang.code"
|
|
|
|
|
+ :command="lang.code"
|
|
|
|
|
+ :class="{ 'is-active': lang.code === langName }"
|
|
|
>
|
|
>
|
|
|
- {{ item.name }}
|
|
|
|
|
- <i v-if="item.id === currentAttachId" class="el-icon-check"></i>
|
|
|
|
|
|
|
+ <div class="language-option">
|
|
|
|
|
+ <span>{{ lang.name }}</span>
|
|
|
|
|
+ </div>
|
|
|
</el-dropdown-item>
|
|
</el-dropdown-item>
|
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
|
|
|
+ <!-- 暗黑模式-->
|
|
|
|
|
+ <div class="opt-dark" @click="changeDark">
|
|
|
|
|
+ <i v-show="!themeConfig.isDark" class="bi bi-sun-fill sun-color"></i>
|
|
|
|
|
+ <i v-show="themeConfig.isDark" class="bi bi-moon-fill moon-color"></i>
|
|
|
|
|
+ </div>
|
|
|
<el-icon class="crm-cursor" style="font-size: 20px; margin-left: 20px">
|
|
<el-icon class="crm-cursor" style="font-size: 20px; margin-left: 20px">
|
|
|
<Bell />
|
|
<Bell />
|
|
|
</el-icon>
|
|
</el-icon>
|
|
|
<i class="crm-cursor iconquanping iconfont icon" @click="fullScreen"></i>
|
|
<i class="crm-cursor iconquanping iconfont icon" @click="fullScreen"></i>
|
|
|
<el-dropdown trigger="click" class="username crm-cursor">
|
|
<el-dropdown trigger="click" class="username crm-cursor">
|
|
|
<span class="el-dropdown-link">
|
|
<span class="el-dropdown-link">
|
|
|
- <span>{{ user.name || 'UserName' }}</span
|
|
|
|
|
|
|
+ <span>{{ user?.name || 'UserName' }}</span
|
|
|
><el-icon><ArrowDown /></el-icon>
|
|
><el-icon><ArrowDown /></el-icon>
|
|
|
</span>
|
|
</span>
|
|
|
<template #dropdown>
|
|
<template #dropdown>
|
|
@@ -72,10 +59,6 @@
|
|
|
{{ $t('Label.UpdatePwd') }}
|
|
{{ $t('Label.UpdatePwd') }}
|
|
|
</span>
|
|
</span>
|
|
|
</el-dropdown-item>
|
|
</el-dropdown-item>
|
|
|
- <!-- 商户个人信息,商户管理员可以看到,可以修改-->
|
|
|
|
|
- <el-dropdown-item v-if="isShopManager" @click="goShopInfo">
|
|
|
|
|
- Info
|
|
|
|
|
- </el-dropdown-item>
|
|
|
|
|
<el-dropdown-item @click="beforeLogout"> Logout </el-dropdown-item>
|
|
<el-dropdown-item @click="beforeLogout"> Logout </el-dropdown-item>
|
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
|
</template>
|
|
</template>
|
|
@@ -84,21 +67,21 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-header>
|
|
</el-header>
|
|
|
<el-main>
|
|
<el-main>
|
|
|
- <el-row class="tool">
|
|
|
|
|
- <el-col :span="16">
|
|
|
|
|
- <bread-crumb></bread-crumb>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
- <span>
|
|
|
|
|
- {{ $t('Home1.Time') }}
|
|
|
|
|
- </span>
|
|
|
|
|
- <span class="crm-cursor" @click="toReload">{{ time }}</span>
|
|
|
|
|
- <el-icon class="crm-cursor el-icon-refresh-right" @click="toReload">
|
|
|
|
|
- <RefreshRight />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <tab-menu></tab-menu>
|
|
|
|
|
|
|
+<!-- <el-row class="tool">-->
|
|
|
|
|
+<!-- <el-col :span="16">-->
|
|
|
|
|
+<!-- <bread-crumb></bread-crumb>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+<!-- <el-col :span="8">-->
|
|
|
|
|
+<!-- <span>-->
|
|
|
|
|
+<!-- {{ $t('Home1.Time') }}-->
|
|
|
|
|
+<!-- </span>-->
|
|
|
|
|
+<!-- <span class="crm-cursor" @click="toReload">{{ time }}</span>-->
|
|
|
|
|
+<!-- <el-icon class="crm-cursor el-icon-refresh-right" @click="toReload">-->
|
|
|
|
|
+<!-- <RefreshRight />-->
|
|
|
|
|
+<!-- </el-icon>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+<!-- </el-row>-->
|
|
|
|
|
+<!-- <tab-menu></tab-menu>-->
|
|
|
<div class="container">
|
|
<div class="container">
|
|
|
<router-view />
|
|
<router-view />
|
|
|
</div>
|
|
</div>
|
|
@@ -184,19 +167,25 @@
|
|
|
import NavMenu from '@/components/NavMenu.vue'
|
|
import NavMenu from '@/components/NavMenu.vue'
|
|
|
import BreadCrumb from '@/components/BreadCrumb.vue'
|
|
import BreadCrumb from '@/components/BreadCrumb.vue'
|
|
|
import TabMenu from '@/components/TabMenu.vue'
|
|
import TabMenu from '@/components/TabMenu.vue'
|
|
|
- // import QaList from './global/QAList'
|
|
|
|
|
- // import QaAdd from './global/QAAdd'
|
|
|
|
|
import Service from '@/service/login'
|
|
import Service from '@/service/login'
|
|
|
import Config from '@/config/index'
|
|
import Config from '@/config/index'
|
|
|
import { safeGetUser, safeGetDisplay } from '@/utils/safeJson'
|
|
import { safeGetUser, safeGetDisplay } from '@/utils/safeJson'
|
|
|
import { filterByShowTrue } from '@/utils/utils'
|
|
import { filterByShowTrue } from '@/utils/utils'
|
|
|
- import pigeon from '@/lib/pigeon'
|
|
|
|
|
|
|
+ import { langList, languageOptions } from '@/utils/const/langues'
|
|
|
|
|
+ import { useSettingStore } from '@/store/modules/setting'
|
|
|
|
|
+
|
|
|
|
|
+ // 计算当前国旗图标
|
|
|
|
|
+ const currentFlag = computed(() => {
|
|
|
|
|
+ const lang = langList[langName.value]
|
|
|
|
|
+ return lang ? lang.flag : '/src/assets/images/lang_EN.jpg'
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
const { Code } = Config
|
|
const { Code } = Config
|
|
|
const { t, locale } = useI18n()
|
|
const { t, locale } = useI18n()
|
|
|
// 引入注入的全局
|
|
// 引入注入的全局
|
|
|
const session = inject('session')
|
|
const session = inject('session')
|
|
|
const reload = inject('reload')
|
|
const reload = inject('reload')
|
|
|
|
|
+ const pigeon = inject('pigeon')
|
|
|
|
|
|
|
|
// Vue 相关
|
|
// Vue 相关
|
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
@@ -207,6 +196,7 @@
|
|
|
const info = ref({})
|
|
const info = ref({})
|
|
|
const loading = ref(false)
|
|
const loading = ref(false)
|
|
|
const dialogCheck = ref(false)
|
|
const dialogCheck = ref(false)
|
|
|
|
|
+
|
|
|
const dialogCheck_form = reactive({
|
|
const dialogCheck_form = reactive({
|
|
|
oldPassword: '',
|
|
oldPassword: '',
|
|
|
newPassword: '',
|
|
newPassword: '',
|
|
@@ -218,22 +208,15 @@
|
|
|
window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
|
|
window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- const dialogCheckQA = ref(false)
|
|
|
|
|
- const qaType = ref(1)
|
|
|
|
|
- const myId = ref('')
|
|
|
|
|
const type = ref('')
|
|
const type = ref('')
|
|
|
const isQAlist = ref(false)
|
|
const isQAlist = ref(false)
|
|
|
const attachList = ref([])
|
|
const attachList = ref([])
|
|
|
const currentAttachId = ref(null)
|
|
const currentAttachId = ref(null)
|
|
|
|
|
|
|
|
const dialogCheckFormRef = ref(null)
|
|
const dialogCheckFormRef = ref(null)
|
|
|
-
|
|
|
|
|
- // 语言映射
|
|
|
|
|
- const langs = {
|
|
|
|
|
- cn: '中文简体',
|
|
|
|
|
- en: 'English',
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ const SettingStore = useSettingStore()
|
|
|
|
|
+ // 设置信息
|
|
|
|
|
+ const themeConfig = computed(() => SettingStore.themeConfig)
|
|
|
// 计算属性
|
|
// 计算属性
|
|
|
const user = computed(() => safeGetUser(session))
|
|
const user = computed(() => safeGetUser(session))
|
|
|
const expire = computed(() => store.state.home.expire)
|
|
const expire = computed(() => store.state.home.expire)
|
|
@@ -282,51 +265,23 @@
|
|
|
session.Set('display', JSON.stringify(display), true)
|
|
session.Set('display', JSON.stringify(display), true)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // QA相关方法
|
|
|
|
|
- const openQA = () => {
|
|
|
|
|
- dialogCheckQA.value = true
|
|
|
|
|
- qaType.value = 1
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const toNew = (val) => {
|
|
|
|
|
- const link = window.location.href
|
|
|
|
|
- if (link.indexOf('system/qa/add') > -1) {
|
|
|
|
|
- router.push({ path: '/system/qa/list' }).catch((arr) => arr)
|
|
|
|
|
- }
|
|
|
|
|
- dialogCheckQA.value = true
|
|
|
|
|
- myId.value = -1
|
|
|
|
|
- type.value = 'add'
|
|
|
|
|
- qaType.value = val
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const cancelQa = () => {
|
|
|
|
|
- qaType.value = 1
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const toUpdate = (id) => {
|
|
|
|
|
- const link = window.location.href
|
|
|
|
|
- if (link.indexOf('system/qa/add') > -1) {
|
|
|
|
|
- router.push({ path: '/system/qa/list' }).catch((arr) => arr)
|
|
|
|
|
- }
|
|
|
|
|
- dialogCheckQA.value = true
|
|
|
|
|
- myId.value = id
|
|
|
|
|
- type.value = 'update'
|
|
|
|
|
- qaType.value = 2
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const toCheck = (id) => {
|
|
|
|
|
- dialogCheckQA.value = true
|
|
|
|
|
- myId.value = id
|
|
|
|
|
- type.value = 'check'
|
|
|
|
|
- qaType.value = 2
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const isQAlistGet = () => {
|
|
|
|
|
- const display = safeGetDisplay(session)
|
|
|
|
|
- if (display && display['R-System-QAList-Search'] && display['R-System-QAList-Search'].show) {
|
|
|
|
|
- isQAlist.value = true
|
|
|
|
|
- } else {
|
|
|
|
|
- isQAlist.value = false
|
|
|
|
|
|
|
+ const chooseLang = async (key) => {
|
|
|
|
|
+ console.log(key, langName.value)
|
|
|
|
|
+ console.log(2)
|
|
|
|
|
+ if (key !== langName.value) {
|
|
|
|
|
+ locale.value = key
|
|
|
|
|
+ langName.value = key
|
|
|
|
|
+ session.Set('lang', key)
|
|
|
|
|
+ axios.defaults.headers.common['Language'] = sessionStorage.getItem('lang')
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ // 使用注入的reload方法或刷新页面
|
|
|
|
|
+ if (reload) {
|
|
|
|
|
+ reload()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果没有注入reload方法,可以手动刷新或更新组件
|
|
|
|
|
+ window.location.reload()
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -429,26 +384,6 @@
|
|
|
store.commit('SetCollapse', isCollapse.value)
|
|
store.commit('SetCollapse', isCollapse.value)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 语言切换
|
|
|
|
|
- const SwitchLanguage = (lang) => {
|
|
|
|
|
- if (lang !== session.Get('lang')) {
|
|
|
|
|
- switchLang(lang)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const switchLang = async (lang) => {
|
|
|
|
|
- // 这里需要根据实际情况处理i18n
|
|
|
|
|
- locale.value = lang
|
|
|
|
|
- // 如果是使用 vue-i18n@next,可能需要通过 useI18n() 来处理
|
|
|
|
|
- langName.value = langs[lang]
|
|
|
|
|
- session.Set('lang', lang)
|
|
|
|
|
- store.commit('ChangeLanguage', lang)
|
|
|
|
|
- axios.defaults.headers.common['Language'] = lang
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- // reload()
|
|
|
|
|
- }, 800)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// 修改密码
|
|
// 修改密码
|
|
|
const updatePwd = () => {
|
|
const updatePwd = () => {
|
|
|
console.log('updatePwd')
|
|
console.log('updatePwd')
|
|
@@ -490,20 +425,20 @@
|
|
|
// 角色相关
|
|
// 角色相关
|
|
|
const getAttachList = async () => {
|
|
const getAttachList = async () => {
|
|
|
try {
|
|
try {
|
|
|
- const res = await Service.getUserAttachs({})
|
|
|
|
|
- if (res.code == Code.StatusOK) {
|
|
|
|
|
- attachList.value = res.data || []
|
|
|
|
|
- if (attachList.value.length > 0) {
|
|
|
|
|
- const userData = user.value
|
|
|
|
|
- if (userData && userData.id) {
|
|
|
|
|
- currentAttachId.value = userData.id
|
|
|
|
|
- } else if (!currentAttachId.value) {
|
|
|
|
|
- currentAttachId.value = attachList.value[0].id
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- pigeon.MessageError(res.msg)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // const res = await Service.getUserAttachs({})
|
|
|
|
|
+ // if (res.code == Code.StatusOK) {
|
|
|
|
|
+ // attachList.value = res.data || []
|
|
|
|
|
+ // if (attachList.value.length > 0) {
|
|
|
|
|
+ // const userData = user.value
|
|
|
|
|
+ // if (userData && userData.id) {
|
|
|
|
|
+ // currentAttachId.value = userData.id
|
|
|
|
|
+ // } else if (!currentAttachId.value) {
|
|
|
|
|
+ // currentAttachId.value = attachList.value[0].id
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // pigeon.MessageError(res.msg)
|
|
|
|
|
+ // }
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error('获取角色列表失败:', error)
|
|
console.error('获取角色列表失败:', error)
|
|
|
}
|
|
}
|
|
@@ -584,7 +519,7 @@
|
|
|
const lang = session.Get('lang') || 'cn'
|
|
const lang = session.Get('lang') || 'cn'
|
|
|
// 这里需要根据实际情况处理i18n
|
|
// 这里需要根据实际情况处理i18n
|
|
|
locale.value = lang
|
|
locale.value = lang
|
|
|
- langName.value = langs[lang]
|
|
|
|
|
|
|
+ langName.value = lang
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 响应式布局
|
|
// 响应式布局
|
|
@@ -607,6 +542,17 @@
|
|
|
screenWidth.value = width
|
|
screenWidth.value = width
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ // 切换暗黑模式
|
|
|
|
|
+ const changeDark = () => {
|
|
|
|
|
+ const body = document.documentElement as HTMLElement
|
|
|
|
|
+ console.log(themeConfig.value.isDark)
|
|
|
|
|
+ themeConfig.value.isDark = !themeConfig.value.isDark
|
|
|
|
|
+ if (themeConfig.value.isDark) {
|
|
|
|
|
+ body.setAttribute('class', 'dark')
|
|
|
|
|
+ } else {
|
|
|
|
|
+ body.setAttribute('class', '')
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// 生命周期
|
|
// 生命周期
|
|
|
onBeforeMount(() => {
|
|
onBeforeMount(() => {
|
|
@@ -629,7 +575,6 @@
|
|
|
ListenResize()
|
|
ListenResize()
|
|
|
resize()
|
|
resize()
|
|
|
getDate()
|
|
getDate()
|
|
|
- isQAlistGet()
|
|
|
|
|
getAttachList()
|
|
getAttachList()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
@@ -666,14 +611,14 @@
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
- #home {
|
|
|
|
|
|
|
+ .home {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
|
|
|
|
|
.el-header {
|
|
.el-header {
|
|
|
height: 60px;
|
|
height: 60px;
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- color: #333;
|
|
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ color: var(--text-color);
|
|
|
line-height: 60px;
|
|
line-height: 60px;
|
|
|
|
|
|
|
|
.btn-control {
|
|
.btn-control {
|
|
@@ -700,22 +645,37 @@
|
|
|
margin-left: 20px;
|
|
margin-left: 20px;
|
|
|
}
|
|
}
|
|
|
.language {
|
|
.language {
|
|
|
- .el-dropdown-link {
|
|
|
|
|
- background-color: rgba(247, 247, 250, 1);
|
|
|
|
|
- border: none;
|
|
|
|
|
- border-radius: 30px;
|
|
|
|
|
- padding: 6px 20px;
|
|
|
|
|
|
|
+ width: 120px;
|
|
|
|
|
+ height: 30px;
|
|
|
|
|
+ border-radius: 15px;
|
|
|
|
|
+ background-color: #e6ebf3;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .language-selector {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+ .menu {
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+
|
|
|
|
|
+ .el-icon {
|
|
|
|
|
+ margin-left: 4px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .role-switch {
|
|
|
|
|
|
|
+ .opt-dark {
|
|
|
margin-left: 20px;
|
|
margin-left: 20px;
|
|
|
- .el-dropdown-link {
|
|
|
|
|
- background-color: rgba(247, 247, 250, 1);
|
|
|
|
|
- border: none;
|
|
|
|
|
- border-radius: 30px;
|
|
|
|
|
- padding: 6px 20px;
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ .sun-color {
|
|
|
|
|
+ color: #feaf37;
|
|
|
|
|
+ }
|
|
|
|
|
+ .moon-color {
|
|
|
|
|
+ color: yellow;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -731,7 +691,7 @@
|
|
|
.el-main {
|
|
.el-main {
|
|
|
padding: 15px;
|
|
padding: 15px;
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
- background-color: #f5f5f5;
|
|
|
|
|
|
|
+ background-color: var(--el-bg-color);
|
|
|
|
|
|
|
|
.tool {
|
|
.tool {
|
|
|
margin-bottom: 15px;
|
|
margin-bottom: 15px;
|
|
@@ -753,7 +713,19 @@
|
|
|
body > .el-container {
|
|
body > .el-container {
|
|
|
margin-bottom: 40px;
|
|
margin-bottom: 40px;
|
|
|
}
|
|
}
|
|
|
|
|
+ .flag-icon {
|
|
|
|
|
+ width: 15px;
|
|
|
|
|
+ height: 10px;
|
|
|
|
|
+ margin: 0 4px;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ .dark{
|
|
|
|
|
+ .home .el-header .tool-box .language{
|
|
|
|
|
+ background-color: #102047;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
</style>
|
|
</style>
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
|
.dialog_header_qa.dialog_header_w.el-dialog {
|
|
.dialog_header_qa.dialog_header_w.el-dialog {
|