修改框架样式

This commit is contained in:
yangjun 2025-07-01 13:58:19 +08:00
parent 28f8a1f00c
commit 0471697698
18 changed files with 262 additions and 238 deletions

BIN
src/assets/images/bj.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/assets/images/logo2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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>

View File

@ -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>

View File

@ -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%;
}
}

View File

@ -1,7 +1,7 @@
<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 -->
<AppLogo v-if="getShowHeaderLogo || getIsMobile" :class="`${prefixCls}-logo`" :theme="getHeaderTheme" :style="getLogoWidth" /> <AppLogo v-if="getShowHeaderLogo || getIsMobile" :class="`${prefixCls}-logo`" :theme="getHeaderTheme" :style="getLogoWidth" />
<LayoutTrigger <LayoutTrigger
@ -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>

View File

@ -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 />

View File

@ -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;

View File

@ -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-form-item> <a-col :span="2">
<a-input class="fix-auto-fill" :placeholder="t('sys.login.userName')" v-model:value="formData.username" /> <span style="margin-top: 10px;display: block;"><img :src="icon1Img" alt="账号" style="width: 20px;" /></span>
</a-form-item> </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>
<div class="aui-inputClear"> <div class="aui-inputClear">
<i class="icon icon-password"></i> <a-row>
<a-form-item> <a-col :span="2">
<a-input class="fix-auto-fill" type="password" :placeholder="t('sys.login.password')" v-model:value="formData.password" /> <span style="margin-top: 10px;display: block;"><img :src="icon2Img" alt="密码" style="width: 20px;" /></span>
</a-form-item> </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>
<div class="aui-inputClear"> <div class="aui-inputClear">
<i class="icon icon-code"></i> <a-row>
<a-form-item> <a-col :span="2">
<a-input class="fix-auto-fill" type="text" :placeholder="t('sys.login.inputCode')" v-model:value="formData.inputCode" /> <span style="margin-top: 10px;display: block;"><img :src="icon3Img" alt="验证码" style="width: 20px;" /></span>
</a-form-item> </a-col>
<div class="aui-code"> <a-col :span="19">
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" /> <a-form-item>
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" /> <a-input class="fix-auto-fill" type="text" :placeholder="`请输入`+t('sys.login.inputCode')" v-model:value="formData.inputCode" />
</div> </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>
</div> </div>
</a-form> </a-form>
@ -61,9 +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> </div>
@ -71,17 +86,6 @@
</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{