修改框架样式
After Width: | Height: | Size: 234 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 1.8 MiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 146 KiB |
|
@ -362,4 +362,5 @@ a {
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: top center;
|
background-position: top center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
background-color: #e4ecf5;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
.aui-container {
|
.aui-container {
|
||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
box-shadow: 0 4px 8px 1px rgba(0, 0, 0, 0.2);
|
// box-shadow: 0 4px 8px 1px rgba(0, 0, 0, 0.2);
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
|
@ -20,8 +20,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-form {
|
.aui-form {
|
||||||
width: 100%;
|
width: 90%;
|
||||||
background: #eee;
|
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -moz-box;
|
display: -moz-box;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
|
@ -30,18 +29,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-image {
|
.aui-image {
|
||||||
padding: 180px 80px;
|
|
||||||
flex-basis: 60%;
|
flex-basis: 60%;
|
||||||
-webkit-flex-basis: 60%;
|
-webkit-flex-basis: 60%;
|
||||||
background-color: #0198cd;
|
|
||||||
background-image: url(../icon/jeecg_ad.png);
|
|
||||||
background-size: cover;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-image-text {
|
.aui-image-text {
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
width: 100%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-formBox {
|
.aui-formBox {
|
||||||
|
@ -51,13 +46,15 @@
|
||||||
padding: 30px 20px;
|
padding: 30px 20px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
box-shadow: 2px 9px 49px -17px rgba(0, 0, 0, 0.1);
|
box-shadow: 2px 9px 49px -17px rgba(0, 0, 0, 0.1);
|
||||||
|
height: 400px;
|
||||||
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-logo {
|
.aui-logo {
|
||||||
width: 180px;
|
width: 180px;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 2%;
|
top: 8%;
|
||||||
left: 8%;
|
left: 8%;
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
}
|
}
|
||||||
|
@ -239,6 +236,7 @@
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-clear-left {
|
.aui-clear-left {
|
||||||
|
@ -325,12 +323,13 @@
|
||||||
|
|
||||||
.aui-inputClear {
|
.aui-inputClear {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-bottom: 1px solid #cccccc;
|
// border-bottom: 1px solid #cccccc;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
background: #fff;
|
background: #f4f5f9;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aui-inputClear .icon {
|
.aui-inputClear .icon {
|
||||||
|
@ -350,8 +349,8 @@
|
||||||
|
|
||||||
.aui-code {
|
.aui-code {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 8px;
|
right: -4px;
|
||||||
bottom: 0;
|
bottom: 4px;
|
||||||
width: 115px;
|
width: 115px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* @Description: logo component
|
* @Description: logo component
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="anticon" :class="getAppLogoClass" @click="goHome">
|
<div class="anticon" :class="getAppLogoClass" @click="goHome" style="background: #e3f6fc;text-align: center;">
|
||||||
<img src="../../../assets/images/logo.png" />
|
<img src="../../../assets/images/logo.png" />
|
||||||
<div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
|
<div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
|
||||||
{{ shortTitle }}
|
{{ shortTitle }}
|
||||||
|
@ -41,6 +41,7 @@
|
||||||
|
|
||||||
const go = useGo();
|
const go = useGo();
|
||||||
|
|
||||||
|
// const getAppLogoClass = [ "jeecg-app-logo", "light", { "collapsed-show-title": false } ]
|
||||||
const getAppLogoClass = computed(() => [prefixCls, props.theme, { 'collapsed-show-title': unref(getCollapsedShowTitle) }]);
|
const getAppLogoClass = computed(() => [prefixCls, props.theme, { 'collapsed-show-title': unref(getCollapsedShowTitle) }]);
|
||||||
|
|
||||||
const getTitleClass = computed(() => [
|
const getTitleClass = computed(() => [
|
||||||
|
@ -90,4 +91,8 @@
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.advisoryClass{
|
||||||
|
background-image: url(/@/assets/images/bj.png);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -192,4 +192,32 @@
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
@import './index.less';
|
@import './index.less';
|
||||||
|
|
||||||
|
.jeecg-menu-item-active:not(.jeecg-menu-submenu) {
|
||||||
|
color: white !important;
|
||||||
|
background-color: #1890ff !important;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 0px 20px 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jeecg-menu-vertical .jeecg-menu-item:hover, .jeecg-menu-vertical .jeecg-menu-submenu-title:hover {
|
||||||
|
color: #fff !important;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #c9cacc;
|
||||||
|
margin: 10px 20px 0 20px;
|
||||||
|
}
|
||||||
|
.jeecg-menu-light.jeecg-menu-vertical .jeecg-menu-item-active.jeecg-menu-submenu {
|
||||||
|
color: #606266 !important;
|
||||||
|
background: #f0f0f0;
|
||||||
|
|
||||||
|
}
|
||||||
|
.jeecg-menu-vertical .jeecg-menu-item, .jeecg-menu-vertical .jeecg-menu-submenu-title {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -6,9 +6,47 @@
|
||||||
// &.ant-btn-success:not(.ant-btn-link),
|
// &.ant-btn-success:not(.ant-btn-link),
|
||||||
// &.ant-btn-error:not(.ant-btn-link),
|
// &.ant-btn-error:not(.ant-btn-link),
|
||||||
// &.ant-btn-warning:not(.ant-btn-link),
|
// &.ant-btn-warning:not(.ant-btn-link),
|
||||||
// &.ant-btn-primary:not(.ant-btn-link) {
|
&.ant-btn-primary:not(.ant-btn-link) {
|
||||||
// box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
|
// box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
|
||||||
// }
|
// background: linear-gradient(to right, #1ea1fb, #017de9);
|
||||||
|
|
||||||
|
// align-items: center;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: linear-gradient(to right,#1ea0fa , #017de9);
|
||||||
|
// border: 1px solid #fff;
|
||||||
|
// color: #fff;
|
||||||
|
// position: relative; /* needed for pseudo-element */
|
||||||
|
overflow: hidden; /* clip the animated stripe */
|
||||||
|
border: 0px;
|
||||||
|
color: white;
|
||||||
|
// height: 34px;
|
||||||
|
}
|
||||||
|
&.ant-btn-primary:not(.ant-btn-link)::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -100%;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
transparent 0%,
|
||||||
|
rgba(255,255,255,0.4) 50%,
|
||||||
|
transparent 100%
|
||||||
|
);
|
||||||
|
transform: skewX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ant-btn-primary:not(.ant-btn-link):hover::before {
|
||||||
|
animation: light-sweep 1.5s forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes light-sweep {
|
||||||
|
to {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// &-group {
|
// &-group {
|
||||||
// .ant-btn:not(:first-child) {
|
// .ant-btn:not(:first-child) {
|
||||||
// bottom: 1px;
|
// bottom: 1px;
|
||||||
|
@ -321,3 +359,52 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.ant-btn-default {
|
||||||
|
border-radius: 8px !important;
|
||||||
|
color: white;
|
||||||
|
background: linear-gradient(to right,#1ea0fa , #017de9);
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
:where(.css-dev-only-do-not-override-9m98ij).ant-btn-default:not(:disabled):hover {
|
||||||
|
color: white;
|
||||||
|
border-color: white;
|
||||||
|
}
|
||||||
|
&.ant-btn-default:not(.ant-btn-link) {
|
||||||
|
border-radius: 8px;
|
||||||
|
color: white;
|
||||||
|
background: linear-gradient(to right,#1ea0fa , #017de9);
|
||||||
|
overflow: hidden; /* clip the animated stripe */
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
&.ant-btn-default:not(:disabled):hover {
|
||||||
|
color: white;
|
||||||
|
border-color: #40a9ff;
|
||||||
|
}
|
||||||
|
&.ant-btn-default:not(.ant-btn-link)::before {
|
||||||
|
content: '';
|
||||||
|
color: white;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -100%;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
transparent 0%,
|
||||||
|
rgba(255,255,255,0.4) 50%,
|
||||||
|
transparent 100%
|
||||||
|
);
|
||||||
|
transform: skewX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ant-btn-default:not(.ant-btn-link):hover::before {
|
||||||
|
animation: light-sweep 1.5s forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes light-sweep {
|
||||||
|
to {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<Header :class="getHeaderClass">
|
<Header :class="getHeaderClass" style="background-image: url('/devops/src/assets/images/bj.png');">
|
||||||
<!-- left start -->
|
<!-- left start -->
|
||||||
<div :class="`${prefixCls}-left`" >
|
<div :class="`${prefixCls}-left`" >
|
||||||
<!-- logo -->
|
<!-- logo -->
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
/>
|
/>
|
||||||
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
|
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
|
||||||
<!-- 欢迎语 -->
|
<!-- 欢迎语 -->
|
||||||
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> {{t('layout.header.welcomeIn')}} {{ title }} </span>
|
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile" style="background: #e3f6fc !important;" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> {{t('layout.header.welcomeIn')}} {{ title }} </span>
|
||||||
</div>
|
</div>
|
||||||
<!-- left end -->
|
<!-- left end -->
|
||||||
|
|
||||||
|
@ -26,17 +26,17 @@
|
||||||
<!-- <AppSearch :class="`${prefixCls}-action__item `" v-if="getShowSearch" /> -->
|
<!-- <AppSearch :class="`${prefixCls}-action__item `" v-if="getShowSearch" /> -->
|
||||||
|
|
||||||
<ErrorAction v-if="getUseErrorHandle" :class="`${prefixCls}-action__item error-action`" />
|
<ErrorAction v-if="getUseErrorHandle" :class="`${prefixCls}-action__item error-action`" />
|
||||||
|
<a-divider type="vertical" v-if="getUseErrorHandle" />
|
||||||
<Notify v-if="getShowNotice" :class="`${prefixCls}-action__item notify-item`" />
|
<Notify v-if="getShowNotice" :class="`${prefixCls}-action__item notify-item`" />
|
||||||
|
<a-divider type="vertical" v-if="getShowNotice" />
|
||||||
<FullScreen v-if="getShowFullScreen" :class="`${prefixCls}-action__item fullscreen-item`" />
|
<FullScreen v-if="getShowFullScreen" :class="`${prefixCls}-action__item fullscreen-item`" />
|
||||||
|
<a-divider type="vertical" v-if="getShowFullScreen" />
|
||||||
<LockScreen v-if="getUseLockPage" />
|
<LockScreen v-if="getUseLockPage" />
|
||||||
|
<a-divider type="vertical" v-if="getUseLockPage" />
|
||||||
<!-- <AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" /> -->
|
<!-- <AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" /> -->
|
||||||
|
|
||||||
<UserDropDown :theme="getHeaderTheme" />
|
<UserDropDown :theme="getHeaderTheme" />
|
||||||
|
<a-divider type="vertical" />
|
||||||
<SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" />
|
<SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" />
|
||||||
<!-- ai助手 -->
|
<!-- ai助手 -->
|
||||||
<!-- <Aide></Aide> -->
|
<!-- <Aide></Aide> -->
|
||||||
|
@ -257,4 +257,8 @@
|
||||||
}
|
}
|
||||||
//update-end---author:scott ---date::2022-09-30 for:默认隐藏顶部菜单面包屑--------------
|
//update-end---author:scott ---date::2022-09-30 for:默认隐藏顶部菜单面包屑--------------
|
||||||
}
|
}
|
||||||
|
.jeecg-layout-header--light {
|
||||||
|
border-bottom: 0px;
|
||||||
|
border-left: 0px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<LayoutHeader fixed v-if="getShowFullHeaderRef" />
|
<LayoutHeader fixed v-if="getShowFullHeaderRef" />
|
||||||
<Layout :class="[layoutClass]">
|
<Layout :class="[layoutClass]">
|
||||||
<LayoutSideBar v-if="getShowSidebar || getIsMobile" />
|
<LayoutSideBar v-if="getShowSidebar || getIsMobile" />
|
||||||
<Layout :class="`${prefixCls}-main`">
|
<Layout :class="`${prefixCls}-main`" style="background-image: url('/devops/src/assets/images/bj.png');">
|
||||||
<LayoutMultipleHeader />
|
<LayoutMultipleHeader />
|
||||||
<LayoutContent />
|
<LayoutContent />
|
||||||
<LayoutFooter />
|
<LayoutFooter />
|
||||||
|
|
|
@ -15,182 +15,75 @@ import { primaryColor } from '../../build/config/themeConfig';
|
||||||
|
|
||||||
// ! 改动后需要清空浏览器缓存
|
// ! 改动后需要清空浏览器缓存
|
||||||
const setting: ProjectConfig = {
|
const setting: ProjectConfig = {
|
||||||
// 是否显示SettingButton
|
"showSettingButton": true,
|
||||||
showSettingButton: true,
|
"showDarkModeToggle": true,
|
||||||
|
"settingButtonPosition": "auto",
|
||||||
// 是否显示主题切换按钮
|
"permissionMode": "BACK",
|
||||||
showDarkModeToggle: true,
|
"permissionCacheType": 1,
|
||||||
|
"sessionTimeoutProcessing": 0,
|
||||||
// 设置按钮位置 可选项
|
"themeColor": "#1890FF",
|
||||||
// SettingButtonPositionEnum.AUTO: 自动选择
|
"grayMode": false,
|
||||||
// SettingButtonPositionEnum.HEADER: 位于头部
|
"colorWeak": false,
|
||||||
// SettingButtonPositionEnum.FIXED: 固定在右侧
|
"fullContent": false,
|
||||||
settingButtonPosition: SettingButtonPositionEnum.AUTO,
|
"contentMode": "full",
|
||||||
|
"showLogo": true,
|
||||||
// 权限模式,默认前端角色权限模式
|
"showFooter": false,
|
||||||
// ROUTE_MAPPING: 前端模式(菜单由路由生成,默认)
|
"headerSetting": {
|
||||||
// ROLE:前端模式(菜单路由分开)
|
"bgColor": "#ffffff",
|
||||||
// BACK:后台模式
|
"fixed": true,
|
||||||
permissionMode: PermissionModeEnum.BACK,
|
"show": true,
|
||||||
|
"theme": "light",
|
||||||
// 权限缓存存放位置。默认存放于localStorage
|
"useLockPage": false,
|
||||||
permissionCacheType: CacheTypeEnum.LOCAL,
|
"showFullScreen": false,
|
||||||
|
"showDoc": false,
|
||||||
// 会话超时处理方案
|
"showNotice": true,
|
||||||
// SessionTimeoutProcessingEnum.ROUTE_JUMP: 路由跳转到登录页
|
"showSearch": true
|
||||||
// SessionTimeoutProcessingEnum.PAGE_COVERAGE: 生成登录弹窗,覆盖当前页面
|
|
||||||
sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP,
|
|
||||||
|
|
||||||
// 项目主题色
|
|
||||||
themeColor: primaryColor,
|
|
||||||
|
|
||||||
// 网站灰色模式,用于可能悼念的日期开启
|
|
||||||
grayMode: false,
|
|
||||||
|
|
||||||
// 色弱模式
|
|
||||||
colorWeak: false,
|
|
||||||
|
|
||||||
// 是否取消菜单,顶部,多标签页显示, 用于可能内嵌在别的系统内
|
|
||||||
fullContent: false,
|
|
||||||
|
|
||||||
// 主题内容宽度
|
|
||||||
contentMode: ContentEnum.FULL,
|
|
||||||
|
|
||||||
// 是否显示logo
|
|
||||||
showLogo: true,
|
|
||||||
|
|
||||||
// 是否显示底部信息 copyright
|
|
||||||
showFooter: false,
|
|
||||||
|
|
||||||
// 头部配置
|
|
||||||
headerSetting: {
|
|
||||||
// 背景色
|
|
||||||
bgColor: HEADER_PRESET_BG_COLOR_LIST[4],
|
|
||||||
// 固定头部
|
|
||||||
fixed: true,
|
|
||||||
// 是否显示顶部
|
|
||||||
show: true,
|
|
||||||
// 主题
|
|
||||||
theme: ThemeEnum.LIGHT,
|
|
||||||
// 开启锁屏功能
|
|
||||||
useLockPage: false,
|
|
||||||
// 显示全屏按钮
|
|
||||||
showFullScreen: false,
|
|
||||||
// 显示官网按钮
|
|
||||||
showDoc: false,
|
|
||||||
// 显示消息中心按钮
|
|
||||||
showNotice: true,
|
|
||||||
// 显示菜单搜索按钮
|
|
||||||
showSearch: true,
|
|
||||||
},
|
},
|
||||||
|
"menuSetting": {
|
||||||
// 菜单配置
|
"bgColor": "#ffffff",
|
||||||
menuSetting: {
|
"fixed": true,
|
||||||
// 背景色
|
"collapsed": false,
|
||||||
bgColor: SIDE_BAR_BG_COLOR_LIST[0],
|
"collapsedShowTitle": false,
|
||||||
// 是否固定住左侧菜单
|
"canDrag": false,
|
||||||
fixed: true,
|
"show": true,
|
||||||
// 菜单折叠
|
"hidden": false,
|
||||||
collapsed: false,
|
"menuWidth": 210,
|
||||||
// 折叠菜单时候是否显示菜单名
|
"mode": "inline",
|
||||||
collapsedShowTitle: false,
|
"type": "sidebar",
|
||||||
// 是否可拖拽
|
"theme": "light",
|
||||||
// Only limited to the opening of the left menu, the mouse has a drag bar on the right side of the menu
|
"isThemeBright": false,
|
||||||
canDrag: false,
|
"split": false,
|
||||||
// Whether to show no dom
|
"topMenuAlign": "center",
|
||||||
show: true,
|
"trigger": "HEADER",
|
||||||
// Whether to show dom
|
"accordion": true,
|
||||||
hidden: false,
|
"closeMixSidebarOnChange": false,
|
||||||
// 菜单宽度
|
"mixSideTrigger": "click",
|
||||||
menuWidth: 210,
|
"mixSideFixed": false
|
||||||
// 菜单模式
|
|
||||||
mode: MenuModeEnum.INLINE,
|
|
||||||
// 菜单类型
|
|
||||||
type: MenuTypeEnum.SIDEBAR,
|
|
||||||
// 菜单主题
|
|
||||||
theme: ThemeEnum.DARK,
|
|
||||||
// update-begin--author:liaozhiyang---date:20241203---for:【issues/7522】解决menuSetting ts警告
|
|
||||||
// 左侧导航栏文字颜色调整区分彩色和暗黑 (不对应配置)
|
|
||||||
isThemeBright: false,
|
|
||||||
// update-end--author:liaozhiyang---date:20241203---for:【issues/7522】解决menuSetting ts警告
|
|
||||||
// 分割菜单
|
|
||||||
split: false,
|
|
||||||
// 顶部菜单布局
|
|
||||||
topMenuAlign: 'center',
|
|
||||||
// 折叠触发器的位置
|
|
||||||
trigger: TriggerEnum.HEADER,
|
|
||||||
// 手风琴模式,只展示一个菜单
|
|
||||||
accordion: true,
|
|
||||||
// 在路由切换的时候关闭左侧混合菜单展开菜单
|
|
||||||
closeMixSidebarOnChange: false,
|
|
||||||
// 左侧混合菜单模块切换触发方式 ‘click’ |'hover'
|
|
||||||
mixSideTrigger: MixSidebarTriggerEnum.CLICK,
|
|
||||||
// 是否固定左侧混合菜单
|
|
||||||
mixSideFixed: false,
|
|
||||||
},
|
},
|
||||||
|
"multiTabsSetting": {
|
||||||
// 多标签
|
"cache": false,
|
||||||
multiTabsSetting: {
|
"show": false,
|
||||||
// 刷新后是否保留已经打开的标签页
|
"canDrag": true,
|
||||||
cache: false,
|
"showQuick": true,
|
||||||
// 开启
|
"showRedo": true,
|
||||||
show: true,
|
"showFold": true,
|
||||||
// 是否可以拖拽
|
"theme": "card"
|
||||||
canDrag: true,
|
|
||||||
// 开启快速操作
|
|
||||||
showQuick: true,
|
|
||||||
// 是否显示刷新按钮
|
|
||||||
showRedo: true,
|
|
||||||
// 是否显示折叠按钮
|
|
||||||
showFold: true,
|
|
||||||
// 标签页样式
|
|
||||||
theme: TabsThemeEnum.CARD,
|
|
||||||
},
|
},
|
||||||
|
"transitionSetting": {
|
||||||
// 动画配置
|
"enable": true,
|
||||||
transitionSetting: {
|
"basicTransition": "fade-slide",
|
||||||
// 是否开启切换动画
|
"openPageLoading": true,
|
||||||
// The disabled state will also disable pageLoading
|
"openNProgress": true
|
||||||
enable: true,
|
|
||||||
|
|
||||||
// 动画名 Route basic switching animation
|
|
||||||
basicTransition: RouterTransitionEnum.FADE_SIDE,
|
|
||||||
|
|
||||||
// 是否打开页面切换loading
|
|
||||||
// Only open when enable=true
|
|
||||||
openPageLoading: true,
|
|
||||||
|
|
||||||
//是否打开页面切换顶部进度条
|
|
||||||
openNProgress: true,
|
|
||||||
},
|
},
|
||||||
|
"openKeepAlive": false,
|
||||||
// 是否开启KeepAlive缓存 开发时候最好关闭,不然每次都需要清除缓存
|
"lockTime": 0,
|
||||||
openKeepAlive: true,
|
"showBreadCrumb": false,
|
||||||
|
"showBreadCrumbIcon": true,
|
||||||
// 自动锁屏时间,为0不锁屏。 单位分钟 默认1个小时
|
"useErrorHandle": false,
|
||||||
lockTime: 0,
|
"useOpenBackTop": true,
|
||||||
|
"canEmbedIFramePage": true,
|
||||||
// 显示面包屑
|
"closeMessageOnSwitch": true,
|
||||||
showBreadCrumb: false,
|
"removeAllHttpPending": false
|
||||||
|
|
||||||
// 显示面包屑图标
|
|
||||||
showBreadCrumbIcon: true,
|
|
||||||
|
|
||||||
// 是否使用全局错误捕获
|
|
||||||
useErrorHandle: false,
|
|
||||||
|
|
||||||
// 是否开启回到顶部
|
|
||||||
useOpenBackTop: true,
|
|
||||||
|
|
||||||
// 是否可以嵌入iframe页面
|
|
||||||
canEmbedIFramePage: true,
|
|
||||||
|
|
||||||
// 切换界面的时候是否删除未关闭的message及notify
|
|
||||||
closeMessageOnSwitch: true,
|
|
||||||
|
|
||||||
// 切换界面的时候是否取消已经发送但是未响应的http请求。
|
|
||||||
// 如果开启,想对单独接口覆盖。可以在单独接口设置
|
|
||||||
removeAllHttpPending: false,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default setting;
|
export default setting;
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="prefixCls" class="login-background-img">
|
<div :class="prefixCls" class="login-background-img">
|
||||||
<AppLocalePicker class="absolute top-4 right-4 enter-x xl:text-gray-600" :showText="false"/>
|
|
||||||
<AppDarkModeToggle class="absolute top-3 right-7 enter-x" />
|
|
||||||
<div class="aui-logo" v-if="!getIsMobile">
|
<div class="aui-logo" v-if="!getIsMobile">
|
||||||
<div>
|
<div>
|
||||||
<h3>
|
<h3>
|
||||||
|
@ -12,7 +10,7 @@
|
||||||
<div v-else class="aui-phone-logo">
|
<div v-else class="aui-phone-logo">
|
||||||
<img :src="logoImg" alt="jeecg" />
|
<img :src="logoImg" alt="jeecg" />
|
||||||
</div>
|
</div>
|
||||||
<div v-show="type === 'login'">
|
<div >
|
||||||
<div class="aui-content">
|
<div class="aui-content">
|
||||||
<div class="aui-container">
|
<div class="aui-container">
|
||||||
<div class="aui-form">
|
<div class="aui-form">
|
||||||
|
@ -24,34 +22,54 @@
|
||||||
<div class="aui-formBox">
|
<div class="aui-formBox">
|
||||||
<div class="aui-formWell">
|
<div class="aui-formWell">
|
||||||
<div class="aui-flex aui-form-nav investment_title">
|
<div class="aui-flex aui-form-nav investment_title">
|
||||||
<div class="aui-flex-box" :class="activeIndex === 'accountLogin' ? 'activeNav on' : ''" @click="loginClick('accountLogin')"
|
<div class="aui-flex-box">账号登录
|
||||||
>{{ t('sys.login.signInFormTitle') }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<a-divider />
|
||||||
<div class="aui-form-box" style="height: 180px">
|
<div class="aui-form-box" style="height: 180px">
|
||||||
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
|
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
|
||||||
<div class="aui-account">
|
<div class="aui-account">
|
||||||
<div class="aui-inputClear">
|
<div class="aui-inputClear">
|
||||||
<i class="icon icon-code"></i>
|
<a-row>
|
||||||
|
<a-col :span="2">
|
||||||
|
<span style="margin-top: 10px;display: block;"><img :src="icon1Img" alt="账号" style="width: 20px;" /></span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="20">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-input class="fix-auto-fill" :placeholder="t('sys.login.userName')" v-model:value="formData.username" />
|
<a-input class="fix-auto-fill" :placeholder="`请输入`+t('sys.login.userName')" v-model:value="formData.username" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="aui-inputClear">
|
<div class="aui-inputClear">
|
||||||
<i class="icon icon-password"></i>
|
<a-row>
|
||||||
|
<a-col :span="2">
|
||||||
|
<span style="margin-top: 10px;display: block;"><img :src="icon2Img" alt="密码" style="width: 20px;" /></span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="20">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-input class="fix-auto-fill" type="password" :placeholder="t('sys.login.password')" v-model:value="formData.password" />
|
<a-input class="fix-auto-fill" type="password" :placeholder="`请输入`+t('sys.login.password')" v-model:value="formData.password" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="aui-inputClear">
|
<div class="aui-inputClear">
|
||||||
<i class="icon icon-code"></i>
|
<a-row>
|
||||||
|
<a-col :span="2">
|
||||||
|
<span style="margin-top: 10px;display: block;"><img :src="icon3Img" alt="验证码" style="width: 20px;" /></span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="19">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-input class="fix-auto-fill" type="text" :placeholder="t('sys.login.inputCode')" v-model:value="formData.inputCode" />
|
<a-input class="fix-auto-fill" type="text" :placeholder="`请输入`+t('sys.login.inputCode')" v-model:value="formData.inputCode" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="3">
|
||||||
<div class="aui-code">
|
<div class="aui-code">
|
||||||
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" />
|
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" />
|
||||||
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" />
|
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" />
|
||||||
</div>
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
@ -61,8 +79,6 @@
|
||||||
<a-button :loading="loginLoading" class="aui-link-login" type="primary" @click="loginHandleClick">
|
<a-button :loading="loginLoading" class="aui-link-login" type="primary" @click="loginHandleClick">
|
||||||
{{ t('sys.login.loginButton') }}</a-button>
|
{{ t('sys.login.loginButton') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="aui-flex">
|
|
||||||
<a class="aui-linek-code aui-flex-box" @click="registerHandleClick">{{ t('sys.login.registerButton') }}</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -70,18 +86,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div v-show="type === 'forgot'" :class="`${prefixCls}-form`">
|
|
||||||
<MiniForgotpad ref="forgotRef" @go-back="goBack" @success="handleSuccess" />
|
|
||||||
</div>
|
|
||||||
<div v-show="type === 'register'" :class="`${prefixCls}-form`">
|
|
||||||
<MiniRegister ref="registerRef" @go-back="goBack" @success="handleSuccess" />
|
|
||||||
</div>
|
|
||||||
<div v-show="type === 'codeLogin'" :class="`${prefixCls}-form`">
|
|
||||||
<MiniCodelogin ref="codeRef" @go-back="goBack" @success="handleSuccess" />
|
|
||||||
</div>
|
|
||||||
<!-- 第三方登录相关弹框 -->
|
|
||||||
<ThirdModal ref="thirdModalRef"></ThirdModal>
|
|
||||||
|
|
||||||
<!-- 图片验证码弹窗 -->
|
<!-- 图片验证码弹窗 -->
|
||||||
<CaptchaModal @register="captchaRegisterModal" @ok="getLoginCode" />
|
<CaptchaModal @register="captchaRegisterModal" @ok="getLoginCode" />
|
||||||
|
@ -100,8 +104,11 @@
|
||||||
import MiniForgotpad from './MiniForgotpad.vue';
|
import MiniForgotpad from './MiniForgotpad.vue';
|
||||||
import MiniRegister from './MiniRegister.vue';
|
import MiniRegister from './MiniRegister.vue';
|
||||||
import MiniCodelogin from './MiniCodelogin.vue';
|
import MiniCodelogin from './MiniCodelogin.vue';
|
||||||
import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png';
|
import logoImg from '/@/assets/loginmini/icon/logo_yw.png';
|
||||||
import adTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png';
|
import adTextImg from '/@/assets/loginmini/icon/yunwei.gif';
|
||||||
|
import icon1Img from '/@/assets/loginmini/icon/icon1.png';
|
||||||
|
import icon2Img from '/@/assets/loginmini/icon/icon2.png';
|
||||||
|
import icon3Img from '/@/assets/loginmini/icon/icon3.png';
|
||||||
import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
||||||
import { useLocaleStore } from '/@/store/modules/locale';
|
import { useLocaleStore } from '/@/store/modules/locale';
|
||||||
import { useDesign } from "/@/hooks/web/useDesign";
|
import { useDesign } from "/@/hooks/web/useDesign";
|
||||||
|
@ -132,7 +139,7 @@
|
||||||
//账号登录表单字段
|
//账号登录表单字段
|
||||||
const formData = reactive<any>({
|
const formData = reactive<any>({
|
||||||
inputCode: '',
|
inputCode: '',
|
||||||
username: 'admin',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
});
|
});
|
||||||
//手机登录表单字段
|
//手机登录表单字段
|
||||||
|
@ -415,8 +422,8 @@
|
||||||
.aui-phone-logo{
|
.aui-phone-logo{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
width: 60px;
|
width: 40%;
|
||||||
top:2px;
|
top: 4%;
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
}
|
}
|
||||||
.top-3{
|
.top-3{
|
||||||
|
|