Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_vue
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-position: top center;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #e4ecf5;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
.aui-container {
|
||||
max-width: 1000px;
|
||||
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;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
|
@ -20,8 +20,7 @@
|
|||
}
|
||||
|
||||
.aui-form {
|
||||
width: 100%;
|
||||
background: #eee;
|
||||
width: 90%;
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
|
@ -30,18 +29,14 @@
|
|||
}
|
||||
|
||||
.aui-image {
|
||||
padding: 180px 80px;
|
||||
flex-basis: 60%;
|
||||
-webkit-flex-basis: 60%;
|
||||
background-color: #0198cd;
|
||||
background-image: url(../icon/jeecg_ad.png);
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.aui-image-text {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.aui-formBox {
|
||||
|
@ -51,13 +46,15 @@
|
|||
padding: 30px 20px;
|
||||
background: #fff;
|
||||
box-shadow: 2px 9px 49px -17px rgba(0, 0, 0, 0.1);
|
||||
height: 400px;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.aui-logo {
|
||||
width: 180px;
|
||||
height: 80px;
|
||||
position: absolute;
|
||||
top: 2%;
|
||||
top: 8%;
|
||||
left: 8%;
|
||||
z-index: 4;
|
||||
}
|
||||
|
@ -239,6 +236,7 @@
|
|||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.aui-clear-left {
|
||||
|
@ -325,12 +323,13 @@
|
|||
|
||||
.aui-inputClear {
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
// border-bottom: 1px solid #cccccc;
|
||||
position: relative;
|
||||
padding-left: 20px;
|
||||
background: #fff;
|
||||
background: #f4f5f9;
|
||||
margin-bottom: 8px;
|
||||
margin-top: 20px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.aui-inputClear .icon {
|
||||
|
@ -350,8 +349,8 @@
|
|||
|
||||
.aui-code {
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
bottom: 0;
|
||||
right: -4px;
|
||||
bottom: 4px;
|
||||
width: 115px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* @Description: logo component
|
||||
-->
|
||||
<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" />
|
||||
<div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
|
||||
{{ shortTitle }}
|
||||
|
@ -41,6 +41,7 @@
|
|||
|
||||
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 getTitleClass = computed(() => [
|
||||
|
@ -90,4 +91,8 @@
|
|||
line-height: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.advisoryClass{
|
||||
background-image: url(/@/assets/images/bj.png);
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -192,4 +192,32 @@
|
|||
</script>
|
||||
<style lang="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>
|
||||
|
|
|
@ -6,9 +6,47 @@
|
|||
// &.ant-btn-success:not(.ant-btn-link),
|
||||
// &.ant-btn-error:not(.ant-btn-link),
|
||||
// &.ant-btn-warning: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;
|
||||
// }
|
||||
&.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;
|
||||
// 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 {
|
||||
// .ant-btn:not(:first-child) {
|
||||
// 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,7 +1,7 @@
|
|||
<template>
|
||||
<Header :class="getHeaderClass">
|
||||
<Header :class="getHeaderClass" style="background-image: url('/devops/src/assets/images/bj.png');">
|
||||
<!-- left start -->
|
||||
<div :class="`${prefixCls}-left`">
|
||||
<div :class="`${prefixCls}-left`" >
|
||||
<!-- logo -->
|
||||
<AppLogo v-if="getShowHeaderLogo || getIsMobile" :class="`${prefixCls}-logo`" :theme="getHeaderTheme" :style="getLogoWidth" />
|
||||
<LayoutTrigger
|
||||
|
@ -11,7 +11,7 @@
|
|||
/>
|
||||
<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>
|
||||
<!-- left end -->
|
||||
|
||||
|
@ -26,17 +26,17 @@
|
|||
<!-- <AppSearch :class="`${prefixCls}-action__item `" v-if="getShowSearch" /> -->
|
||||
|
||||
<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`" />
|
||||
|
||||
<a-divider type="vertical" v-if="getShowNotice" />
|
||||
<FullScreen v-if="getShowFullScreen" :class="`${prefixCls}-action__item fullscreen-item`" />
|
||||
|
||||
<a-divider type="vertical" v-if="getShowFullScreen" />
|
||||
<LockScreen v-if="getUseLockPage" />
|
||||
|
||||
<a-divider type="vertical" v-if="getUseLockPage" />
|
||||
<!-- <AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" /> -->
|
||||
|
||||
<UserDropDown :theme="getHeaderTheme" />
|
||||
|
||||
<a-divider type="vertical" />
|
||||
<SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" />
|
||||
<!-- ai助手 -->
|
||||
<!-- <Aide></Aide> -->
|
||||
|
@ -257,4 +257,8 @@
|
|||
}
|
||||
//update-end---author:scott ---date::2022-09-30 for:默认隐藏顶部菜单面包屑--------------
|
||||
}
|
||||
.jeecg-layout-header--light {
|
||||
border-bottom: 0px;
|
||||
border-left: 0px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<LayoutHeader fixed v-if="getShowFullHeaderRef" />
|
||||
<Layout :class="[layoutClass]">
|
||||
<LayoutSideBar v-if="getShowSidebar || getIsMobile" />
|
||||
<Layout :class="`${prefixCls}-main`">
|
||||
<Layout :class="`${prefixCls}-main`" style="background-image: url('/devops/src/assets/images/bj.png');">
|
||||
<LayoutMultipleHeader />
|
||||
<LayoutContent />
|
||||
<LayoutFooter />
|
||||
|
|
|
@ -15,182 +15,75 @@ import { primaryColor } from '../../build/config/themeConfig';
|
|||
|
||||
// ! 改动后需要清空浏览器缓存
|
||||
const setting: ProjectConfig = {
|
||||
// 是否显示SettingButton
|
||||
showSettingButton: true,
|
||||
|
||||
// 是否显示主题切换按钮
|
||||
showDarkModeToggle: true,
|
||||
|
||||
// 设置按钮位置 可选项
|
||||
// SettingButtonPositionEnum.AUTO: 自动选择
|
||||
// SettingButtonPositionEnum.HEADER: 位于头部
|
||||
// SettingButtonPositionEnum.FIXED: 固定在右侧
|
||||
settingButtonPosition: SettingButtonPositionEnum.AUTO,
|
||||
|
||||
// 权限模式,默认前端角色权限模式
|
||||
// ROUTE_MAPPING: 前端模式(菜单由路由生成,默认)
|
||||
// ROLE:前端模式(菜单路由分开)
|
||||
// BACK:后台模式
|
||||
permissionMode: PermissionModeEnum.BACK,
|
||||
|
||||
// 权限缓存存放位置。默认存放于localStorage
|
||||
permissionCacheType: CacheTypeEnum.LOCAL,
|
||||
|
||||
// 会话超时处理方案
|
||||
// SessionTimeoutProcessingEnum.ROUTE_JUMP: 路由跳转到登录页
|
||||
// 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,
|
||||
"showSettingButton": true,
|
||||
"showDarkModeToggle": true,
|
||||
"settingButtonPosition": "auto",
|
||||
"permissionMode": "BACK",
|
||||
"permissionCacheType": 1,
|
||||
"sessionTimeoutProcessing": 0,
|
||||
"themeColor": "#1890FF",
|
||||
"grayMode": false,
|
||||
"colorWeak": false,
|
||||
"fullContent": false,
|
||||
"contentMode": "full",
|
||||
"showLogo": true,
|
||||
"showFooter": false,
|
||||
"headerSetting": {
|
||||
"bgColor": "#ffffff",
|
||||
"fixed": true,
|
||||
"show": true,
|
||||
"theme": "light",
|
||||
"useLockPage": false,
|
||||
"showFullScreen": false,
|
||||
"showDoc": false,
|
||||
"showNotice": true,
|
||||
"showSearch": true
|
||||
},
|
||||
|
||||
// 菜单配置
|
||||
menuSetting: {
|
||||
// 背景色
|
||||
bgColor: SIDE_BAR_BG_COLOR_LIST[0],
|
||||
// 是否固定住左侧菜单
|
||||
fixed: true,
|
||||
// 菜单折叠
|
||||
collapsed: false,
|
||||
// 折叠菜单时候是否显示菜单名
|
||||
collapsedShowTitle: false,
|
||||
// 是否可拖拽
|
||||
// Only limited to the opening of the left menu, the mouse has a drag bar on the right side of the menu
|
||||
canDrag: false,
|
||||
// Whether to show no dom
|
||||
show: true,
|
||||
// Whether to show dom
|
||||
hidden: false,
|
||||
// 菜单宽度
|
||||
menuWidth: 210,
|
||||
// 菜单模式
|
||||
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,
|
||||
"menuSetting": {
|
||||
"bgColor": "#ffffff",
|
||||
"fixed": true,
|
||||
"collapsed": false,
|
||||
"collapsedShowTitle": false,
|
||||
"canDrag": false,
|
||||
"show": true,
|
||||
"hidden": false,
|
||||
"menuWidth": 210,
|
||||
"mode": "inline",
|
||||
"type": "sidebar",
|
||||
"theme": "light",
|
||||
"isThemeBright": false,
|
||||
"split": false,
|
||||
"topMenuAlign": "center",
|
||||
"trigger": "HEADER",
|
||||
"accordion": true,
|
||||
"closeMixSidebarOnChange": false,
|
||||
"mixSideTrigger": "click",
|
||||
"mixSideFixed": false
|
||||
},
|
||||
|
||||
// 多标签
|
||||
multiTabsSetting: {
|
||||
// 刷新后是否保留已经打开的标签页
|
||||
cache: false,
|
||||
// 开启
|
||||
show: true,
|
||||
// 是否可以拖拽
|
||||
canDrag: true,
|
||||
// 开启快速操作
|
||||
showQuick: true,
|
||||
// 是否显示刷新按钮
|
||||
showRedo: true,
|
||||
// 是否显示折叠按钮
|
||||
showFold: true,
|
||||
// 标签页样式
|
||||
theme: TabsThemeEnum.CARD,
|
||||
"multiTabsSetting": {
|
||||
"cache": false,
|
||||
"show": false,
|
||||
"canDrag": true,
|
||||
"showQuick": true,
|
||||
"showRedo": true,
|
||||
"showFold": true,
|
||||
"theme": "card"
|
||||
},
|
||||
|
||||
// 动画配置
|
||||
transitionSetting: {
|
||||
// 是否开启切换动画
|
||||
// The disabled state will also disable pageLoading
|
||||
enable: true,
|
||||
|
||||
// 动画名 Route basic switching animation
|
||||
basicTransition: RouterTransitionEnum.FADE_SIDE,
|
||||
|
||||
// 是否打开页面切换loading
|
||||
// Only open when enable=true
|
||||
openPageLoading: true,
|
||||
|
||||
//是否打开页面切换顶部进度条
|
||||
openNProgress: true,
|
||||
"transitionSetting": {
|
||||
"enable": true,
|
||||
"basicTransition": "fade-slide",
|
||||
"openPageLoading": true,
|
||||
"openNProgress": true
|
||||
},
|
||||
|
||||
// 是否开启KeepAlive缓存 开发时候最好关闭,不然每次都需要清除缓存
|
||||
openKeepAlive: true,
|
||||
|
||||
// 自动锁屏时间,为0不锁屏。 单位分钟 默认1个小时
|
||||
lockTime: 0,
|
||||
|
||||
// 显示面包屑
|
||||
showBreadCrumb: false,
|
||||
|
||||
// 显示面包屑图标
|
||||
showBreadCrumbIcon: true,
|
||||
|
||||
// 是否使用全局错误捕获
|
||||
useErrorHandle: false,
|
||||
|
||||
// 是否开启回到顶部
|
||||
useOpenBackTop: true,
|
||||
|
||||
// 是否可以嵌入iframe页面
|
||||
canEmbedIFramePage: true,
|
||||
|
||||
// 切换界面的时候是否删除未关闭的message及notify
|
||||
closeMessageOnSwitch: true,
|
||||
|
||||
// 切换界面的时候是否取消已经发送但是未响应的http请求。
|
||||
// 如果开启,想对单独接口覆盖。可以在单独接口设置
|
||||
removeAllHttpPending: false,
|
||||
"openKeepAlive": false,
|
||||
"lockTime": 0,
|
||||
"showBreadCrumb": false,
|
||||
"showBreadCrumbIcon": true,
|
||||
"useErrorHandle": false,
|
||||
"useOpenBackTop": true,
|
||||
"canEmbedIFramePage": true,
|
||||
"closeMessageOnSwitch": true,
|
||||
"removeAllHttpPending": false
|
||||
};
|
||||
|
||||
export default setting;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<template>
|
||||
<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>
|
||||
<h3>
|
||||
|
@ -12,7 +10,7 @@
|
|||
<div v-else class="aui-phone-logo">
|
||||
<img :src="logoImg" alt="jeecg" />
|
||||
</div>
|
||||
<div v-show="type === 'login'">
|
||||
<div >
|
||||
<div class="aui-content">
|
||||
<div class="aui-container">
|
||||
<div class="aui-form">
|
||||
|
@ -24,34 +22,54 @@
|
|||
<div class="aui-formBox">
|
||||
<div class="aui-formWell">
|
||||
<div class="aui-flex aui-form-nav investment_title">
|
||||
<div class="aui-flex-box" :class="activeIndex === 'accountLogin' ? 'activeNav on' : ''" @click="loginClick('accountLogin')"
|
||||
>{{ t('sys.login.signInFormTitle') }}
|
||||
<div class="aui-flex-box">账号登录
|
||||
</div>
|
||||
</div>
|
||||
<a-divider />
|
||||
<div class="aui-form-box" style="height: 180px">
|
||||
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
|
||||
<div class="aui-account">
|
||||
<div class="aui-inputClear">
|
||||
<i class="icon icon-code"></i>
|
||||
<a-form-item>
|
||||
<a-input class="fix-auto-fill" :placeholder="t('sys.login.userName')" v-model:value="formData.username" />
|
||||
</a-form-item>
|
||||
<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-input class="fix-auto-fill" :placeholder="`请输入`+t('sys.login.userName')" v-model:value="formData.username" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<div class="aui-inputClear">
|
||||
<i class="icon icon-password"></i>
|
||||
<a-form-item>
|
||||
<a-input class="fix-auto-fill" type="password" :placeholder="t('sys.login.password')" v-model:value="formData.password" />
|
||||
</a-form-item>
|
||||
<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-input class="fix-auto-fill" type="password" :placeholder="`请输入`+t('sys.login.password')" v-model:value="formData.password" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<div class="aui-inputClear">
|
||||
<i class="icon icon-code"></i>
|
||||
<a-form-item>
|
||||
<a-input class="fix-auto-fill" type="text" :placeholder="t('sys.login.inputCode')" v-model:value="formData.inputCode" />
|
||||
</a-form-item>
|
||||
<div class="aui-code">
|
||||
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" />
|
||||
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" />
|
||||
</div>
|
||||
<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-input class="fix-auto-fill" type="text" :placeholder="`请输入`+t('sys.login.inputCode')" v-model:value="formData.inputCode" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="3">
|
||||
<div class="aui-code">
|
||||
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" />
|
||||
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" />
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-form>
|
||||
|
@ -61,9 +79,6 @@
|
|||
<a-button :loading="loginLoading" class="aui-link-login" type="primary" @click="loginHandleClick">
|
||||
{{ t('sys.login.loginButton') }}</a-button>
|
||||
</div>
|
||||
<div class="aui-flex">
|
||||
<a class="aui-linek-code aui-flex-box" @click="registerHandleClick">{{ t('sys.login.registerButton') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -71,17 +86,6 @@
|
|||
</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" />
|
||||
|
@ -100,8 +104,11 @@
|
|||
import MiniForgotpad from './MiniForgotpad.vue';
|
||||
import MiniRegister from './MiniRegister.vue';
|
||||
import MiniCodelogin from './MiniCodelogin.vue';
|
||||
import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png';
|
||||
import adTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png';
|
||||
import logoImg from '/@/assets/loginmini/icon/logo_yw.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 { useLocaleStore } from '/@/store/modules/locale';
|
||||
import { useDesign } from "/@/hooks/web/useDesign";
|
||||
|
@ -132,7 +139,7 @@
|
|||
//账号登录表单字段
|
||||
const formData = reactive<any>({
|
||||
inputCode: '',
|
||||
username: 'admin',
|
||||
username: '',
|
||||
password: '',
|
||||
});
|
||||
//手机登录表单字段
|
||||
|
@ -415,8 +422,8 @@
|
|||
.aui-phone-logo{
|
||||
position: absolute;
|
||||
margin-left: 10px;
|
||||
width: 60px;
|
||||
top:2px;
|
||||
width: 40%;
|
||||
top: 4%;
|
||||
z-index: 4;
|
||||
}
|
||||
.top-3{
|
||||
|
|