Merge remote-tracking branch 'origin/feature-ui-fix' into feature-ui-fix

This commit is contained in:
bupengxiang
2023-08-02 10:40:06 +08:00
10 changed files with 158 additions and 49 deletions
@@ -205,9 +205,9 @@ jero :
uploadType: local uploadType: local
path : path :
#文件上传根目录 设置 #文件上传根目录 设置
upload: D://opt//upFiles upload: G://opt//upFiles
#webapp文件路径 #webapp文件路径
webapp: D://opt//webapp webapp: G://opt//webapp
shiro: shiro:
excludeUrls: /test/jeroDemo/demo3,/test/jeroDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/** excludeUrls: /test/jeroDemo/demo3,/test/jeroDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**
#阿里云oss存储配置 #阿里云oss存储配置
+5 -2
View File
@@ -2352,7 +2352,9 @@ i.trigger:hover {
background-color: white; background-color: white;
} }
.sider.light .logo { .sider.light .logo {
background-color: @primary-color !important; //顶部logo背景的颜色变化 注释
//background-color: @primary-color !important;
background-color: #001529 !important;
box-shadow: 1px 1px 0 0 #e8e8e8; box-shadow: 1px 1px 0 0 #e8e8e8;
} }
.sider.light .logo h1 { .sider.light .logo h1 {
@@ -5347,7 +5349,8 @@ form .ant-upload {
border-radius: 4px; border-radius: 4px;
} }
.ant-menu-submenu > .ant-menu { .ant-menu-submenu > .ant-menu {
background-color: #fff; //background-color: #fff;
background: none;
border-radius: 4px; border-radius: 4px;
} }
.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:before,
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

+52 -3
View File
@@ -1,4 +1,5 @@
<template> <template>
<a-layout-sider <a-layout-sider
:class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]" :class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
width="208px" width="208px"
@@ -15,6 +16,8 @@
:mode="mode" :mode="mode"
:style="smenuStyle"> :style="smenuStyle">
</s-menu> </s-menu>
<!-- <div style='width: 100px;height:100px;background: pink'></div>-->
<img src='../../assets/bgImg.png' alt='' class='bgImg'>
</a-layout-sider> </a-layout-sider>
</template> </template>
@@ -149,29 +152,75 @@ export default {
<!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 --> <!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
<style lang="less"> <style lang="less">
.sider.light {
background-color: #001529 !important;
}
.bgImg {
position: fixed;
bottom: 0px;
left: 0px;
width: 208px;
z-index: -1;
transition: width 1.5s linear 1s;
}
.ant-layout-sider-children{
//background-color: #001529;
background: none;
}
.ant-menu{
color: hsla(0, 0%, 100%, 0.8);;
background: none;
li ,a{
color:hsla(0, 0%, 100%, 0.8)!important;
}
}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
background-color: @primary-color !important;
}
.ant-menu-submenu > .ant-menu {
background: none !important;
}
.ant-menu.ant-menu-root { .ant-menu.ant-menu-root {
background: none;
//li {
// background-color: #001529;
// & > a{
// color: #fff;
// }
//}
& > .ant-menu-item:first-child { & > .ant-menu-item:first-child {
background-color: transparent; background-color: transparent;
& > a, & > a:hover { & > a, & > a:hover {
color: rgba(0, 0, 0, 0.65); //color: rgba(0, 0, 0, 0.65);
color: #fff;
} }
&.ant-menu-item-selected { &.ant-menu-item-selected {
& > a, & > a:hover { & > a, & > a:hover {
color: @primary-color; color: @primary-color;
} }
} }
} }
&.ant-menu-dark > .ant-menu-item:first-child { &.ant-menu-dark > .ant-menu-item:first-child {
& > a, & > a:hover { & > a, & > a:hover {
color: rgba(255, 255, 255, 0.65); //color: rgba(255, 255, 255, 0.65);
color: #fff;
} }
&.ant-menu-item-selected { &.ant-menu-item-selected {
& > a, & > a:hover { & > a, & > a:hover {
color: rgba(255, 255, 255, 1); //color: rgba(255, 255, 255, 1);
color: #fff;
} }
} }
} }
+37 -3
View File
@@ -17,8 +17,18 @@
:type="collapsed ? 'menu-unfold' : 'menu-fold'" :type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="toggle"/> @click="toggle"/>
<span v-if="device === 'desktop'">欢迎进入 Jero-Boot 平台</span> <!-- <span v-if="device === 'desktop'">欢迎进入 Jero-Boot 平台</span>-->
<span v-else>Jero-Boot</span> <!-- <span v-else>Jero-Boot</span>-->
<span class='bread'>
<a-breadcrumb class="breadcrumb">
<a-breadcrumb-item v-for="(item, index) in breadList" :key="index">
<router-link v-if="item.name !== name" :to="{ path: item.path }">
{{ item.meta.title }}
</router-link>
<span v-else>{{ item.meta.title }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
</span>
<user-menu :theme="theme"/> <user-menu :theme="theme"/>
</div> </div>
@@ -26,7 +36,7 @@
<div v-else :class="['top-nav-header-index', theme]"> <div v-else :class="['top-nav-header-index', theme]">
<div class="header-index-wide"> <div class="header-index-wide">
<div class="header-index-left" :style="topMenuStyle.headerIndexLeft"> <div class="header-index-left" :style="topMenuStyle.headerIndexLeft">
<logo class="top-nav-header" :show-title="device !== 'mobile'" :style="topMenuStyle.topNavHeader"/> <!-- <logo class="top-nav-header" :show-title="device !== 'mobile'" :style="topMenuStyle.topNavHeader"/>-->
<div v-if="device !== 'mobile'" :style="topMenuStyle.topSmenuStyle"> <div v-if="device !== 'mobile'" :style="topMenuStyle.topSmenuStyle">
<s-menu <s-menu
mode="horizontal" mode="horizontal"
@@ -34,6 +44,7 @@
:theme="theme" :theme="theme"
@updateMenuTitle="handleUpdateMenuTitle" @updateMenuTitle="handleUpdateMenuTitle"
></s-menu> ></s-menu>
</div> </div>
<a-icon <a-icon
v-else v-else
@@ -90,6 +101,7 @@ export default {
}, },
data () { data () {
return { return {
breadList:[],
headerBarFixed: false, headerBarFixed: false,
// update-begin--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮----- // update-begin--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮-----
topMenuStyle: { topMenuStyle: {
@@ -122,9 +134,20 @@ export default {
if (this.mode === 'topmenu') { if (this.mode === 'topmenu') {
this.buildTopMenuStyle() this.buildTopMenuStyle()
} }
this.getBreadcrumb()
// update-end--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮----- // update-end--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮-----
}, },
methods: { methods: {
getBreadcrumb () {
this.breadList = []
// this.breadList.push({name: 'index', path: '/dashboard/', meta: {title: '首页'}})
this.name = this.$route.name
this.$route.matched.forEach((item) => {
// item.name !== 'index' && this.breadList.push(item)
this.breadList.push(item)
})
},
handleScroll () { handleScroll () {
if (this.autoHideHeader) { if (this.autoHideHeader) {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
@@ -171,6 +194,17 @@ export default {
@height: 59px; @height: 59px;
.layout { .layout {
.bread {
display: inline-block;
.ant-breadcrumb {
a {
color:#efefef;
}
span{
color: #1D2129;
}
}
}
.top-nav-header-index { .top-nav-header-index {
+8 -8
View File
@@ -1,14 +1,14 @@
<template> <template>
<div class="page-header"> <div class="page-header">
<div class="page-header-index-wide"> <div class="page-header-index-wide">
<a-breadcrumb class="breadcrumb"> <!-- <a-breadcrumb class="breadcrumb">-->
<a-breadcrumb-item v-for="(item, index) in breadList" :key="index"> <!-- <a-breadcrumb-item v-for="(item, index) in breadList" :key="index">-->
<router-link v-if="item.name !== name" :to="{ path: item.path }"> <!-- <router-link v-if="item.name !== name" :to="{ path: item.path }">-->
{{ item.meta.title }} <!-- {{ item.meta.title }}-->
</router-link> <!-- </router-link>-->
<span v-else>{{ item.meta.title }}</span> <!-- <span v-else>{{ item.meta.title }}</span>-->
</a-breadcrumb-item> <!-- </a-breadcrumb-item>-->
</a-breadcrumb> <!-- </a-breadcrumb>-->
<div class="detail"> <div class="detail">
<div class="main" v-if="!$route.meta.hiddenHeaderContent"> <div class="main" v-if="!$route.meta.hiddenHeaderContent">
+3 -2
View File
@@ -21,7 +21,7 @@ export default {
props: { props: {
title: { title: {
type: String, type: String,
default: 'Jero-Boot Pro', default: 'Design System',
required: false required: false
}, },
showTitle: { showTitle: {
@@ -58,7 +58,8 @@ export default {
} }
&.light .logo { &.light .logo {
background-color: @primary-color; //background-color: @primary-color;
background-color: #001529;
} }
} }
</style> </style>
+10 -8
View File
@@ -2,11 +2,11 @@
<div class="user-wrapper" :class="theme"> <div class="user-wrapper" :class="theme">
<!-- update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航 --> <!-- update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航 -->
<!-- update-begin author:sunjianlei date:20191@20 for: 解决全局样式冲突的问题 --> <!-- update-begin author:sunjianlei date:20191@20 for: 解决全局样式冲突的问题 -->
<span class="action" @click="showClick"> <!-- <span class="action" @click="showClick">-->
<a-icon type="search"></a-icon> <!-- <a-icon type="search"></a-icon>-->
</span> <!-- </span>-->
<!-- update-begin author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 --> <!-- update-begin author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 -->
<component :is="searchMenuComp" v-show="searchMenuVisible || isMobile()" class="borders" :visible="searchMenuVisible" title="搜索菜单" :footer="null" @cancel="searchMenuVisible=false"> <!-- <component :is="searchMenuComp" v-show="searchMenuVisible || isMobile()" class="borders" :visible="searchMenuVisible" title="搜索菜单" :footer="null" @cancel="searchMenuVisible=false">-->
<a-select <a-select
class="search-input" class="search-input"
showSearch showSearch
@@ -20,9 +20,10 @@
@change="searchMethods" @change="searchMethods"
@blur="hiddenClick" @blur="hiddenClick"
> >
<a-icon slot="suffixIcon" type="search" />
<a-select-option v-for="(site,index) in searchMenuOptions" :key="index" :value="site.id">{{site.meta.title}}</a-select-option> <a-select-option v-for="(site,index) in searchMenuOptions" :key="index" :value="site.id">{{site.meta.title}}</a-select-option>
</a-select> </a-select>
</component> <!-- </component>-->
<!-- update-end author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 --> <!-- update-end author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 -->
<!-- update-end author:sunjianlei date:20191220 for: 解决全局样式冲突的问题 --> <!-- update-end author:sunjianlei date:20191220 for: 解决全局样式冲突的问题 -->
<!-- update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航 --> <!-- update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航 -->
@@ -266,15 +267,16 @@ export default {
/* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/ /* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
/* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */ /* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
.user-wrapper .search-input { .user-wrapper .search-input {
width: 180px; width: 210px;
color: inherit; color: inherit;
/deep/ .ant-select-selection { /deep/ .ant-select-selection {
background-color: inherit; background-color: #F7F8FA !important;
border: 0; border: 0;
border-bottom: 1px solid white; border-bottom: 1px solid white;
color: #86909C ;
&__placeholder, &__field__placeholder { &__placeholder, &__field__placeholder {
color: inherit; color: #86909C ;
} }
} }
} }
+22 -2
View File
@@ -50,11 +50,13 @@
import { postAction } from '@/api/manage' import { postAction } from '@/api/manage'
import { mapActions } from 'vuex' import { mapActions } from 'vuex'
import { JSEncrypt } from 'jsencrypt'
import { getRSAPublicKey } from '@/utils/encryption.js'
export default { export default {
name: 'UserPassword', name: 'UserPassword',
data () { data () {
return { return {
rsaPublicKey: '',
passwordType1: 'password', passwordType1: 'password',
passwordType2: 'password', passwordType2: 'password',
passwordType3: 'password', passwordType3: 'password',
@@ -118,14 +120,30 @@ export default {
this.disableSubmit = false this.disableSubmit = false
this.selectedRole = [] this.selectedRole = []
}, },
// 获取RSA公钥
getPublicKey () {
// 获取公钥
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
})
},
handleOk () { handleOk () {
const that = this const that = this
// 触发表单验证 // 触发表单验证
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
that.confirmLoading = true that.confirmLoading = true
const params = Object.assign({ username: this.username }, values) const params = Object.assign({ username: this.username, rsaPublicKey:this.rsaPublicKey}, values)
console.log('修改密码提交数据', params) console.log('修改密码提交数据', params)
const encrypt = new JSEncrypt()
encrypt.setPublicKey(this.rsaPublicKey)
// 公钥加密
params.confirmpassword = encrypt.encrypt(values.confirmpassword)
params.password = encrypt.encrypt(values.password)
params.oldpassword = encrypt.encrypt(values.oldpassword)
postAction(this.url, params).then((res) => { postAction(this.url, params).then((res) => {
if (res.success) { if (res.success) {
console.log(res) console.log(res)
@@ -142,6 +160,8 @@ export default {
}) })
} }
}) })
})
}, },
validateToNextPassword (rule, value, callback) { validateToNextPassword (rule, value, callback) {
const form = this.form const form = this.form